From bc73285ea37a68483b0ef7e38061fafda156adee Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Tue, 4 Apr 2023 14:31:45 +0600 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BE=D0=BB=D0=BE=D1=87=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Makefile | 157 + README.md | 42 + VERSION.md | 1 + com.ublinux.ubl-settings-quotas.checked.svg | 327 ++ com.ublinux.ubl-settings-quotas.svg | 4957 +++++++++++++++++++ com.ublinux.ubl-settings-quotas.warning.svg | 55 + screenshot/screenshot.png | Bin 0 -> 144454 bytes source/CMakeLists.txt | 33 + source/main.cc | 76 + source/ubl-settings-quotas.cc | 224 + source/ubl-settings-quotas.h | 117 + source/ubl-util-standard.c | 91 + source/ubl-util-standard.h | 20 + source/util.cc | 195 + source/util.h | 41 + ubl-settings-quotas-banner.png | Bin 0 -> 33872 bytes ubl-settings-quotas.css | 149 + ubl-settings-quotas.desktop | 15 + ubl-settings-quotas.glade | 3383 +++++++++++++ ubl-settings-quotas.glade~ | 3383 +++++++++++++ 21 files changed, 13267 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 VERSION.md create mode 100644 com.ublinux.ubl-settings-quotas.checked.svg create mode 100644 com.ublinux.ubl-settings-quotas.svg create mode 100644 com.ublinux.ubl-settings-quotas.warning.svg create mode 100644 screenshot/screenshot.png create mode 100644 source/CMakeLists.txt create mode 100644 source/main.cc create mode 100755 source/ubl-settings-quotas.cc create mode 100644 source/ubl-settings-quotas.h create mode 100644 source/ubl-util-standard.c create mode 100644 source/ubl-util-standard.h create mode 100644 source/util.cc create mode 100644 source/util.h create mode 100644 ubl-settings-quotas-banner.png create mode 100644 ubl-settings-quotas.css create mode 100644 ubl-settings-quotas.desktop create mode 100644 ubl-settings-quotas.glade create mode 100644 ubl-settings-quotas.glade~ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1d74e21 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8c69de3 --- /dev/null +++ b/Makefile @@ -0,0 +1,157 @@ +#!/usr/bin/make -f + +#SHELL := /bin/bash +MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST))) +MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH)))) +MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH)) + +CMAKE_COMMAND = cmake +CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source +CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile +#CMAKE_SOURCE_DIR = ./source +#CMAKE_BUILD_DIR = ./compile +FILE_VERSION = VERSION.md +DEPENDS = /bin/cmake +PREFIX ?= /usr +PKGNAME = $(MAKEFILE_DIR) +#PKGNAME = ubl-settings-manager + +default_target: all + +.PHONY: all init depend debug prepare check build uninstall install clean up_ver help + +all: init build + +init: + @echo "Initialize ..."; \ + sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ubl-settings-quotas.cc; \ + echo "-- Build path: ${CMAKE_BUILD_DIR}" + +depend: + @echo "Check depends ..." + @for FILE_DEPEND in $(DEPENDS); do \ + if [ ! -f $${FILE_DEPEND} ]; then \ + echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \ + exit 1; \ + fi; \ + done; \ + echo "Check depends: OK" +# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 + +debug: + @echo "Debug ..." + if [ ! -d ${CMAKE_BUILD_DIR} ]; then \ + $(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \ + fi; \ + echo "Debug: OK" + +prepare: + @echo "Prepare ..."; \ + if [ ! -d ${CMAKE_BUILD_DIR} ]; then \ + $(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \ + fi; \ + echo "Prepare: OK" + +check: + @echo "Check ..."; \ + if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \ + echo "Check: OK"; \ + else \ + echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \ + exit 1; \ + fi + +build: depend prepare + @echo "Build ..."; \ + make --directory=${CMAKE_BUILD_DIR}; \ + echo "Build: OK" + +uninstall: + @echo "Uninstall ..." + @for FILE_PO in $(wildcard *.po); do \ + LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \ + FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \ + PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ + $(RM) "$${PATH_FILE_MO}"; \ + done + @for SIZE in 16x16 32x32 48x48 scalable; do \ + $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \ + $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \ + done + @for FILE_SVG in $(wildcard *.svg); do \ + for SIZE in 16x16 32x32 48x48 scalable; do \ + $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \ + done; \ + done + @$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}" + @$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop" + @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg" + @$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}" + @if [ -z ${DESTDIR} ]; then \ + [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ + update-desktop-database --quiet &>/dev/null || true; \ + [ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \ + fi + @echo "Uninstall: OK" + +install: check uninstall + @echo "Install ..." + @for FILE_PO in $(wildcard *.po); do \ + LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \ + install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \ + FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \ + PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ + echo "$${FILE_PO}"; \ + msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \ + done + @for SIZE in 16 32 48; do \ + install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \ + rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \ + done + @install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps" + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg" + @install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}" + @install -dm755 "${DESTDIR}/etc/xdg" + @install -dm755 "${DESTDIR}${PREFIX}/share/applications" + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop" + @install -dm755 "${DESTDIR}${PREFIX}/share/${PKGNAME}"/{ui,css,images} + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}.glade" + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/css/" "${PKGNAME}.css" + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}-banner.png" + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.ubl-settings-quotas.checked.svg" + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.ubl-settings-quotas.warning.svg" + @if [ -z ${DESTDIR} ]; then \ + [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ + update-desktop-database --quiet &>/dev/null || true; \ + [ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \ + fi + @echo "Install: OK" + +clean: + @echo "Clean ..." + @$(RM) -rd ${CMAKE_BUILD_DIR} + @if [ -d ${CMAKE_BUILD_DIR} ]; then \ + echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \ + else \ + echo "Clean: OK"; \ + fi + +up_ver: + @CURRENT=$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2); \ + MAJOR=$$(cut -d. -f1 <<< $${CURRENT}); \ + MINOR=$$(cut -d. -f2 <<< $${CURRENT}); \ + VER="$${MAJOR}.$$(($${MINOR}+1))"; \ + sed "s/VERSION *[[:digit:]]*.*/VERSION $${VER}/" -i ${FILE_VERSION}; \ + echo "Updated version to VERSION.md: $${CURRENT} to $${VER}" + +help: + @echo "The following are some of the valid targets for this Makefile:"; \ + echo "... all (the default if no target is provided)"; \ + echo "... init"; \ + echo "... debug"; \ + echo "... prepare"; \ + echo "... compile"; \ + echo "... install"; \ + echo "... uninstall"; \ + echo "... clean"; \ + echo "... up_ver" diff --git a/README.md b/README.md index eaa8e8c..ef1382a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,44 @@ # ubl-settings-quotas +# Настройки квот +[RU] Утилита для настройки квот +Utility for setting the date and time + +![alt text](screenshot/screenshot.png) + +# Build +In order to build ubl-settings-quotas you will need: + +- CMake +- C compiler +- GTK+ 3 & dependencies + +Once you have all the necessary dependencies, you can use: +```sh +$ make +``` + +# Installation +After a successful build, just use: +```sh +$ sudo make install clean +``` + +# Uninstallation +After a successful build, just use: +```sh +$ sudo make uninstall +``` +# Usage +```sh +$ ubl-settings-quotas --help +GTK settings quotas for UBLinux + +Usage: ubl-settings-quotas [OPTIONS...] +Options: + -h, --help Show this help + -V, --version Show package version + +$ ubl-settings-quotas --version +ubl-settings-quotas version: x.xx +``` diff --git a/VERSION.md b/VERSION.md new file mode 100644 index 0000000..12ebd01 --- /dev/null +++ b/VERSION.md @@ -0,0 +1 @@ +VERSION 1.0 diff --git a/com.ublinux.ubl-settings-quotas.checked.svg b/com.ublinux.ubl-settings-quotas.checked.svg new file mode 100644 index 0000000..e3cab42 --- /dev/null +++ b/com.ublinux.ubl-settings-quotas.checked.svg @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + diff --git a/com.ublinux.ubl-settings-quotas.svg b/com.ublinux.ubl-settings-quotas.svg new file mode 100644 index 0000000..f636c26 --- /dev/null +++ b/com.ublinux.ubl-settings-quotas.svg @@ -0,0 +1,4957 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/com.ublinux.ubl-settings-quotas.warning.svg b/com.ublinux.ubl-settings-quotas.warning.svg new file mode 100644 index 0000000..9a90dba --- /dev/null +++ b/com.ublinux.ubl-settings-quotas.warning.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/screenshot/screenshot.png b/screenshot/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa8cdddb67af82da1aaaa5d6d91d454c4f916b3 GIT binary patch literal 144454 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�l;kEMuZD!Uw4meYxgo!jrav9lc}V|a$3*aerlMP!&KQ zN7w4mp;%VLH3UX3^WSM%Y;3sT>(NX-VZ}CsC?G$8c-8MCdniu_+iJA&i@O-_TG_!S z)&jH5PDgF46Y_L)@vC-KP7-hX-T~^t_neBFjqs)9kbT$PY__^k}w1&7C2X_MpIrH!~peI z4J7qk8(^?`sU6r!T?s3c3`qEg&idRbFdu6g3>hGo0sjlA-|b*k>Yj)#wpeQGF9aP4 zayv2$Fl~?R`&}Ig_9INk(J^)RI*JUPriaRR46s)1kA`#>8!2Vvh0^^ch$@&>y4N^! zbx7v=<(FR|K8AihHO75g{a?*eAeW|PWm)=0UXh1BA&9ZROb#qUrnEl@fNpY;q6W&! zClQ8p$YA-gib~fRy0Z!Av6Zl`^7lGRShm;8>#n>jDQ7^;5%L}nQntlBi}L;d8&WXaKJ~#l$N*R# ztE0EsU1?;vnwxK1CY0=6O150AT=`7#Chv?$cS^iswk-G=V{>vKFf#5u#K#t$iX75g zuL^OikaLD}1I8a$Q^NAO1k_>~bci8>U_j8nvmagV@+3NCue6@$Qa@JeFS&;&_I%@gwhlbBcl{+IUD+)8%^^)hUR)8T8w^vdpE}tS-CmV(( zJ+`jgutBhC(N3PKgW+ZaC6v9$9K>Lrwc0_4!pDlc4!5<<{HZCO^&vtqt<&=6stnd43j zEOh8K@U6P1RXF+?DE5TJOGpC@3IS=|FpbITv(_d%I1Wo^kTMi}!hH88|0u5i1X~$+ zQF!lmI?DgesT+)VL>6x)OthRjL#0&~Q36iKzLL@c(E?z@wv}(IFD@Qg{su$oqSxfw zFZoL(N_zQE$1kiYweA_{Zf87Yd&0<)|1RYV+ouRLItXx0%%*5%594D+UD#of{yCZe zKN>MCY+MX1D-R;TaXL0KB1}n7OA$XXux0Ka9dlO$0)UP^AFfUvczf5U$D?*#{-d%q?zGoTQS z$IRRJr3UE85Gq{&UMr6cbSS9y?a&mOer03x2m8$_#bLyKzykEp?mvW82p$7zP{*cI z8Y?=7};x`hpJZMYxAQ~D%#i4O{7sHHkJ-m9>bpR>(`GQV;6}iP5a2In3Lfz&mZm+ z!EY4cN2}NwYM8^>8xmly5%|#-Z8|KK$aOx&UqV0SUS?tE!xIcN8U`MZh0&Hdg~Ozo z$wkKC=!5OVZ*)e(k_rkenul9kT2wVO{EVv?eW2NPrZ@KC<}DbKr2h2Ks=6bQUnkG; z*&K~PipJ8e7C{!JHt+Xb9Jlc4-mD@=2H{FZ5Y*(qc;C9EkqPF!m8pR7)uN9t>KB*4 zw^JHoRm{xN+0Vk)+BrMxfag+@G7dq2Pu-$TcaEavvjs(uOY6%L4m-qG3@jH#p+SPl zy=?s`1!eyOg|>E>1Hl*P31J@(_1djVtP3D(@p>%Rjug~$V6WL+z^~|(OgaocB&m-( zrE8|59+W_abUL}X!Qbus(2Qa}pv(@%Op)3>l~>>)WJUGmuRVfh09CPa=U_PN#uJ~L z*PkYzDm~{vJ#n=+q#vCHlVi4LWCv|$C;Paz|9twJ7YvcQFR@5U8s^`|YH%brQ9MpQ z-5_bhE<)$}>9{6gO`?d<;yf|+Irk>KZO0j{gd(e9bp68aR`=+rY~`1eG?Sz34p^Ar z^29BwO_|qk>T`TFjK)rFRE-VD@%I;Yeiee#DZ+fItJ7YSqe?AZqBO-t%#VMYhUrd+ z*sPTd!{ww3El(z=np7n~hsSYh+n4t+_1&%>5Owl$)TV2|#sLG;|` zZA&hS%c(AEs$$!dB%SY5-0u0CBBdoImsvAj(z#61@!7|{z+|vV`?o(;jp^=z579f! zZ_(g47$LY_L``&g_;7OQrSl|d<0#~`9tCt12mOKSf+?jcFr~MSJWDAH{h^D;FeETP ze?U*4Z*Ir>b>jo}-m1A``ROl}7SBAc4hj>x7@LD(L#e+T?`phxhC^%XnStx9m60(t z#~IpFVH0WxkV^ z^WdQkL4x1*zUiLsQ5tEdRo_@%bya3XN7LR*ySJQ-Y(`Pgdq6oh91+C31R~+T>Id+wTxpm}5MY51sY{uH@t3pnSH@%_+lPKaJ71N*Lnz z_@~`sDc+Te*B{@K4Z*fUBT`UM6l-FRf0?6S&*$?w8x6g?vJ=^~!BduB%gd>G(Kp}r z@j3No*?ihGGW5{*QcKm-*XJ{T7V2y+?k`OlI}@Ip$+81bs`lSt zjBm+kkY}48oL*S0WR` zd`eAe8XU}iuLZ4#5#sklU|?j%Z#z}$`?fuVokUUEU%u>g?+s>o=aMo+bKIR(QS+%@ z)bZ8WLH%P9+@iNTM&_D6=1*NSSEiM6-hOeuTazg;7hC)8z~txwSqg~c+xMcG))a(KRnz#78)j}13>)9KZXB(60Eb_!%G>Vr{Ce`$@*laUTP1`Ct zg8Sla+DoDjS_{qkI?pf~QS_q2oKDYU)GA%;O`GTYgQ5d7KgV39cBsX1Q#Bp=0=sF% zTF1rNfl_I#HI`cRZO-!s@*uj;^Jb4sT#~qHr^m2n`O;k6D;L< z`3}qNmw0%`Ykqs>W18jTBPU;i(hK z^2>`$UC;{5EPHoEBI1yqU_gNCxCwVtZEfO>$jr>l80Y36LLur)v++cWj!e=Z}4p})DNx;;{trEDHh#@4u?p&R$j)H zt3}4*8@Aa!`S4H*zqSQoW;maU~4Gb>bwhCfwIr20L&m=*81Y+X?l85Fgypc)wkLh z$S7$L(%%kO?akS$V2?(lO|vSAC(IjK#i-pkzUwsP-pA8DdwwtzDuI9`1=@Zj^H8Tc ze#V)hIxepMD!`tT?if`SI=!0Ooard&zMCs4!cj<~AWzk)u{u`#vz>FqQx$SOdpMuUx8)9&_g!-e*&)%#hB zI?G?|Ar#(XKz~g(zz%}zXa~p!F7_5TugQ6a^pvi}}2Wrsn0`?eEd6lt4*^MW^FrtX$45p2p6ktgs zj*X6HL+k2fINmUSt*xmE`ou#j(?X0DG?kR}dAZ zgs#2=E_uAqV{=^K8Q+og+&gC6=lI6A7xIFGCey>YEFNzCao}JGZHu1TgWyz6T*Duc za#HfJr8W35Pc`RghFZv?_%Z?TB4+%K(BoYVv7D;8I2|+5L#Ix#aaCW77B1@ToA+>X zgaM#VOKVjn(qGnI2dXwvJaKSXLM97+$q~I|Xh{F}VGb!(*(=56m7-!4gH^srr6bbd zo33uS`>eIw;s_aE_aJ|(7TA;EWZQIHpaj975kBBJn})@;ouPoHBT@$-9w$pK({N2j*(PsA0%;6Kub|FH&kXLzKycK^rBEJ?=!M?5c^Ewax zB46U1;Zr3}EhMS{EzY3~fLRoxg$ugI(iIzf8>FK}ZZ(^eEY|X2a3ZXGSJw$PRu-0y zxP76Qi%jI6xxhw)Zu`?NLd5eiR6z!uSWbWyZ@(SHS>rE!O@qyRWj%4tq9(O@xn+8O z?Ay15v@|Byv3N}P$Hy1v(y=sRH^>!SRCISfV+}p~vuH(}EZ}{a&)}iI1j9TOzlP`P zCepKm-{}#PJeB51*o4fvW7KEiu*mH>so3VGt33f(v&wGRy37QFr4DiB%8o*+=N`dJ7)9t6s42`j(AH=$!3U!H*5v&dcOV#VK@n!Mrjak4`oD zXwi=N!8g0>5@0o!^qcgor_DJEvorybC*^!A?fv)9_o9D7-nK)Ty~96sEt9FK**N{0 zn9yq?rr&$v$E5_xb1(h$Xa5Y?w`LRL*O+O<&fER?6SCHTYW2e>jvg1*{rO+FpMMzR zB@PQw@47nRFaG&*NjNilpJ>H1hPj*)y-Y2?3c3h&W3iQFYmpD zv_pFOQ4f~wG~;5Web-bDADq4hzjq{?(Y#Aki?h}8)2@w`>{`n!D@I{k2K@;+S>L)l ztV-8tKeiNSxI7@cb!YE#f}iTXpybaJSwxE8)??Cd>_flP(YtZ-$89N`n49?4o+_Pw za~Ifv!{k3#I{)%Xx9v1Caof(`bt+yzeUrz#gjjx+AigJ*Vc>f%^VBJoaNfcLco~oN zW>Hp50uC>@cUT$D6wt_*KXh?ryiH5P)|%Ub>1D2JUKys#mt!U0`~^S(FQCQizt|Qz zM8cq7yh%&PI!bk=+9g)aW!BB1s`CEs2aXdBb>RD6qH6=~DYH%b<)aehQJGUpihurk zC|$K-)pa}h3jonhqr~S;gDu&}tNkcU%qyI?rM=JKvR-nQmNZEGu1(U691yI;Mk4b9JY@O7sTU*3-=P6jf9-?2l#*gsg! zX=eHmJr~RxmmV7*Pq)C9$pK~3*+1Xf3lxgFC5OhF!rS2R1UC&Z4Ku|P8t1wiUFNIt zoPcIRbqTdy#*=>i_0Sdh!oC-ImB6_wN#EKVNa^1Y>w0}np+a)Rw>Bs+GWEdGP;!ctl5?!^D`-z4LV#L+h1s;2bqKp_6 z+Kv)3WnQKlbdQIgPz8q)o6BgM9*|K;fde3oRZvi=N*p3YGDA~Ccs#9E#uqhCR>UH^H24Sk&zL>bLs3P1Whb1u6D}rl&N&g_Jb)_9nrsfvWJtB z4YLY{4TEhoJaclYv@_qozj)x#foW`iLx!^HTP8@R-CTKz%OUVX9-e09{c=KCCRaYb zYQTZxayt+@ko#_+&Hl`Mul zwM!2qoz1VKbr1p`3d-{tiIP~*zH~=j6(;yOTC$*s(!Xn9!pz)4nr9100+VnH(ew>S z(3dm?G@&a>vv%|l#8^&}$i;CfEuN-b6A}e?I`Cyvn{3dhw|%77)oEU1oSJ!PEzNbs zrz2#zm_>xS_=Z77WOd4xV1(COsSD~8f6s)3<=X8l%s+{69(zV0&Cu6fot0z9JQ!Z&O<-VP9w6c7 zvg5C;hkL|#ba$e2yfOMop2K$eU`=QzNe>b_deea?6KOJby?Mb=g66EC2g^kP;F zVi4mexp)zAR74iA#;5!VPsRMa=9JcaE9rJigw%96b1Ew&u!Ow7u`=(Ro5X{WDttM+ zY@(t+fW>0XhpT)cRhgzWFwr2Agaux&XK<%fJw4r6?ECjXh^TSNZg4@bVx}=D#X+9C zQ3%$hG>A#mZWD`tQ#$+ViFS}&DYV~rl@IP5X1iLS)q<1?1;QO zmAx4){r|QA#pVhaWcz%Qt8<)9f_hLU09hgDJp3i>i@$ z9d*v#Q{&p8ZH6}rbT-cE9&OmU_U-eS?q$|!@MG-judEQ|bNqO%w7e8(!X!klfux5M zE5X-a`5f-GIbVD`03m__G4)3V2C5qIr)I9boR2Ru9g>5q2)nJD7GBk)3{)#>e%QB+ zU!ELon;!2S>WHVV7lAN?UuOp@6%(aCpaS4F21P|>++El|J~NZ`;`B4hsTI>!>e$??qH}G%ii~1(;1Z)GPNDMc92pK4}09xeJ1hTgNLS zw%PS8930BIEh(2E;GpDl3aI!(BEcl)5B>eJiBiYjl$S?BmF2jRTw5^mf#@O(gf&~_o_xGjj1s*C4Y{+3wd;+Ss7t+QpjdtZB4PH(zS&fm$nxr$BqB| zToc#F5Qio-WCVwV(B5)eyxiIJ>!Cxi8}yD;!L<5z1W7uU^FxP?I7&|=T8HL>g?gGZs{gJWY+3JNCMHWUi(Qhpyaa6IYq1172wLi$kfrqa6W zHM4$yX$K2;1^jeuev0~3 z(#*_&j1*}*!h-x!zZS|yJhB9sO zyKV0nu|ZRNCQA-|HM$9hyR~3PTER8(LFiYSy=Y>GCURm!@3q)YCr#b)>C{JL65(=H zGO|2i@%ZB1H8pka$gyL#@LY^fKIqt7p5KZA4_NB!ukTn#u^Bmux%9$rYOssL9xWxY zrIve}9R+X!spbK#)z&3X$Go|etG*&xKKbR(QD}UI-P#kOuP(A@`+w|#Eo~NPU-#VL2!)MPw zt|MggsQ&;n7`KruzBbVv9bbp2m(vpv+7}`ume}e1sbj@*Pmp61mCP5?zi>Tx$0OQ` zuf?z{-rHdEB=;i9 zbhfWQ&O39KwW#;jI99;?OhWx#--54QMo=857Zj*9vZSA=(^r>EWreW?^PXEQfgQzt z-v&@8M|>&z*`$tAas)E)ov>gCY)ndy_00ZuFA~x<3hi;la7u7_^-h}lW#sL=yKtNa zvQyk?{3_LSR_kQ+(c@|64M%Kfn1BUzC$;Fn!w5WW&=M0{P#Pn-F$dI+^0&XWc?`SlSMVLamX5sU?=HPa2B3w%5T&gP9x&?(2-Hz6Gzpd z#1~(G_=Xg%C?k_wjKR2=fuoOAESY+1j3>Wfv>+FBycvsQM~(ym0az4p3PT*&I2!aO zJb7S1)IE3WJW;tjU~FU#TTvlO6l5N5153Mm*@Mzr2es6Uu*?Xy9~6K>#r?Cu+K3dy z1SBIB_Sn+m!m5TB^q+HV6JBV-a&L(gz{CMQ(&MO)(P96RCI{rL64>yF9H{_S}wuO+)LALAod zKR9eU5INB=tTW54=@ZE%v>{nGh7d4Q&Ab%tzaG5EVMA1`wc>eIwHLf;r!s7$ts_t%JdiCkQ??`^VZXg=6hi4d3;h6 zy)V1WWK792Rge^}M(GUSo#$5RUy=fVaPwaE^WY^#bi}m@kF4@}_nU7{-USD^Q7Oi{ za@>`)R!P3n)mF^{QXmWh^H|%_l2FwYC?9_mY%BCI3=Wz1FB#ax$Nys4C0_*to8WKaWduox9_hm7$B?`m^ z+WtuPOg~Tkkh9hnS>-~H9zem%E7KkF|4e-p_6SPLvwD}__i|EiMLsu%$)^hzRDpTR zn!O#m<3;>a3V}2mUxJ;Q_S}CXcUJY>S1+on7J+r~#@qwTtR5=6yBd@Pjs+CVe|@8Z z0%J%4dk)pt-L9lPHNN5KvV$Fn|5o-cpNLSxt{O(waT-3lAtT_Sm>*p zn@vU@^94!$zGt|y;hhN%rE8C3p+@jLk-!Q8G#%B<3LR0s#!ZO<^9-8CTS@5=!Y&D< z!y}%3;UDy(%M9A4T30t|&{gBR$cHRw!`&o7M<8?kT>po$ycQ>p#EZvQQg3K0;!-cZ zWkAoJ;RwvVms@P&Zw-t~=F=D76-6M%4({)Q|5=(H>?W0i74P!O?&Tik=P39+uiwbb zNDP%e;ZO9sbY1@??88urbfc*XRp{?yeVT(!EnXhyGoX30(JQKw2DJ`C{(nEe8lGva^cynI`ofl0kY|r?-TCP z3dgV{`eS_8%C`0|kO|7i#d>`TKRYY(AfzxXy5`3P!!x}D;W9^-m(mstj?`SE{cU;4 zb~5zLkKf?%`^hKzKd>hMQK;2ZAYHgBl#TticWpAVD8|(rwpyl2`t`f_7XIgYq=NPK zxT)!n-~0ch^8O3=@#8xG%<}x__d6|2CM_Si9o5;z!+@%*;};SVYHV!$0|hNP&FIED zF#@;fk4p>M{6j~-8-E>5>s@OsN_>Slpj)F82;k1$`w_HZU`kClQcHTA_*1J`+~afs zX-Scb05Is?DzpIezJWafTRP2MXwfh8?K@?(e7_$Bu48yQV++>sg^l5-X39Qw_+dqYbfAds9k4@E@@p<4zqF)+nVStmkU zl}S+zcnJf{sD3tSjv0`ZW>2Y_&Nhy9W%}GDW@cuDK?p^kKQmZmmF!?OlqV0`&Bx*4 zw)oGYq64^OhXQQXy(G(`Q|{}H_c(N`RFG2N!yja-a7BrWD4ne@i{=g9KBksjU&Z-J z8}?S}z7ETu?c59Pvs1(!{XrxIAHOCbqcnTJL-QnmQ1lRC+|_gY#!6{YXl0zPdcVkg zt7bop!EOFb2!fiW*QA;ahIWH1Uj2OerHvm?!dEKH1wnXZI7ctz<*GEJqM}#mh83z`9r0QMt&> zESbHDe0SPiw=pM6GKzwNco~^f%{vF3kpinX4HZ+l9kBQ|x{UGC@j(LAft?{GP9_@j(8Te&9U4p;`RZ-Fjf{uX^CE+euyq zi1NR5X?f;o4)k4BLmA5I<1qPMc^pr98E_Hldsmsgl~kfl^6=r1B=9*EZZ)gBPCot( z0COjHkjP8G70=A}T+9S2iAKi)zSSE~_On@KTGJ>hlFPe%w;tSSKYirH5u{Z;AW)UH za;>}Y0d%@|G?+{Wcw^Fxywh0w<(LeUlfxlNdgj3T^763*2M=~rVdQ^aRwb{3TU|4h z6MqK)oOA$GEW2EJ0D~Zcb2zto(Q_e@HK42`Gv`3@R=yh*zp&qkg`K^4e-CyK2kSHd zY{~iCgoga`jCang70Bs*&VO8ocDxh5h5vxh@6por+J!|k9|;(y0qi~!XGmnEuJ6)0 z2G~zEb?!(MX4`39f*Ir-q%8|rn}|g*II~K9Sk@Isg+c%HzLi9d8%w{1l^Q)-Z#t6D zw({|Q+sCeERiHi55Dg5@c1Qrqi4d^KpfqVgNbAkjm+EWYWolH+S;{XA!Zx%h0&hP( zv=W@-@0>kq0m*g={ly)lisD?51Av}v*Xa3n57oIvPH6^Xi_4Z)bNT$1dPJ5AOosQ7 zmX}uPs6IG5U(s`4qfO}Vp&~l8iE0>m?5!`dZohwMGki1iSn(@HuBG=Q37MgW z7+oMEl)Wcfn)H#m2rKX0cS1UPi>-fgxaRJ+=UOEb9FE?SvPHaCPlc#AZ*-KZ7Rc4V zI?x4sN@Gjm#Qhk8%Fn-^rbzv%qn+{~i$9>4n(u#=f;e|RFys%%WF{q@DKs5Y1EPO5Hf*s1S()k5YLHH$v=Y-CZ9<=H4QyY8sv3Jj=qvj9u14RHubO4Y|FF-uNyEZL#0>2nR>d~A1 zg1IIiaWf4PLlEPM^wE$>uh35ow z9a>-%G@C7!FmJ$$0RVf0%Seq0PY%OIJAO%vXNA-x*_^8M*I)mjprj;xUPwAJTGwz~ z37(|MbQ9xr!&oiEt^uz+6t)y|g#E0TNwNKB&QRG(S%}a_&$?-bLRl>8Ub(0{D-rewQ1gJWbPyqc zpgueenT_z(g102;?!wbE=Q=)%8>`R9UUD#oO}05lgU~*52~4(1v9hjH3D(g&kADm? zh^rDzefG7RH$OmCh40}V!;Oa+Hc?SINaaP6i~#dc%o+iMmVmz7`$Yn_KgPNL05#tcZ2MVgvOoc))SrV0RYIpeZ%pfr6PMjWVjgO$sJ2Yg zb=~6RSj^0>yy$q1Dl?jDW;;Gq5H)F9STa`d1np@??V zZA0eS^Iw5=u*+`PljE+{Iw~BkVfOZcDN8{Ng=T{)(*BG{UQ|#e z!BzbA>oq_K07JR+3)~y5A*4b_%8(vqB=S-ba{jvgC9+k4$7By#9Hv*0=VJqbK-!-! zG}Q}CF*~fs=!ES*(G4$r7^}w83n##{tZ#2ej?kpG5*zUpOP}W8WV~Yw#C` zgCU<~BvD3AP9ukIkeA)#PARd0H0--tEh2PonXoA@qu3VI*rwG}{Aw*HMd&p6L;!U_ zh%gL$G<_y;qU*d3NfC@KKkbQ+21_}9oxjZHSh+oc8OP3lE=|?DPy$P+xoTY}0D^=b zWKU>qLqEf0yMn^Or?7%_u^b>&0QGSZW$$DU1Lh+tsiGj^`kA*x@i1Xz#JZXjb=P;h z&t;$h^(Xl5npzswuRQ|FEAWAYQ)ylzHZVY?Y3?`Sa%mpTkkAm0$mZr|Rl{t(#2gK* zQ07v!V(YCcw&v8059Oy$8sw6d+bwBWk?xm+e-->Dr~udi!qqemW2Z@(W-vE_9n~3O zcj=|Uyr%i-sWTaIjR-+4*YR4@_fyIq$|!FFmJ=u*x4`ThIPzNRx&Dby$TWE z=XD{^dRuf>cvgdzY!o$t>}xc5DM<$wO`ch|j7-Tpl~pSFhCdB1<`Z_#UDKo91o#@%lS1j!KgM>?4QJwt(3Jl4eDmGlBhB9c;pl8zC-u zkY^TP;*=Qi1pmkAn!j#FzIHwnuzEf7x;qFJ4Hy-Eiy`!Mg95#nlOE!8q4&_yB=D*6 znW*L82Hg3%;n5P*%C#w?HPQ-nfm=2<5iv|rKq@4nH0LYM$oT)mD!u%!UI`r@;Xbi{=#9lT8znz zh-rY0^E@`KYf&i>HoyYtIU$*NCoAcC?5I9HxcWv7ZGh}^Myd}ZE2oZ48uqiB*@;7R9=j|Rkc@C zKFWyBPmEt^3t#k0s;3(3DBE zgX3uRAC4pLz2}BZ5X2wa8XI@~!;@M8pGx^FSM)c9d=CHkg;vFtl;15|(G`c?RQk>> z?|nkDN1Ir%kIx=<)_mIMRcg_ES61K4eu!GaEF(oBCJiKWG;Nd60=QYG@4P<=UWn52 z@^p3Y%OpZy2XM~j)v0ms5*TGQO#vK%h!ot>E3GdqZ2@1Ln($D3ZNu2ugV*_i`4Kmt z6Z$f_R3S2CX13PrgvweN=c>4|!*g-%0yy?*)$S_4i4d?zfOZcxcpQjgL~^>$1Zd6x zH!e{3Fp4H4GlwP_+5uQU*aAiziYC4R&CYxlqPQ+|>f(;a_^d!o zptrYd^6cE4b;Q!N9A>90cCS3WCW*Uqq-G9#P@eW=mXq%wAK`qy$CpsU-V5=5Tlm&U z9CQaDCE5d!ws$%$Tinbu1_lR_h~Oz6<8zWE(r-F-@>)CifI$|Bbh+akU#JH_V{alu#s$I)tR5cF4U zKlNfj(R1l#4CM}@XVpUyy9ex!6gYMjec@ZZf-!(z4w6qM0{DXfW(~ydAHwSKk?gqd z`9Hvv38qzE=qiK`{68l=3vReCIc53e-d~`5pX!h{xf^BCOftuygaLQD(icw*(dDDwO&_3T^LqCa` ztZGmYdizWhd@aaEU1&w*ba8dP>|rZ`Ae8^MJ)mHoJNn^p;xvv&O4nmJWhP3mZq=tF z>^!!p*b^KW?kg=i@WEIFFDt>fr{R0!sRhlNBM5h3N;rTFWvQsBbnL3eW-UMbwh5k- zk8sLkIXS`hzlkO>wYXSKobz8B^si=3u}GEiH-^OYzA`JXZ3lb{MITsN5^q7!Ptu16 z8yn})aJ3SkTKE-CrA{}_aL72?#9!Z6`lw!Z@=>pau->ECLtH& zmQTE?wu>@~PbBr$#KS>csjvybvaoP(d0Bn^s{O9%0i$I(A{NpM`8iy^`%$N-f!yNfQ>= z=~ut=k=q9{gfF$WU9{EFDLX+UnuM9J(pOMW;12iUPS3g%285*-UDzMMasajHOMNoc zu*a%^vQ3UD5mpJCfPes){4;fX{lF9go~6l@&dyWNI)wCuY;DN_cNIiKv!(`KASg>R zp_D|aWQHh%(%oM3XYGoUrmccPjDh>8J{Z=K(;e}|?GKy_Xnsjs6T<4}h?TKbdQ?C3 zun>+vWoUCe1?CWtk}g5SQ(eOfmvc^wabRJ|v~xRHDzR9jTLT1asosL*K~vy53v3rC zbqXGoGHu~C3SXG(VB30uW`gOh6`}}`vE=$?M*;>6(y0gU*lmf0FY`}DpSr&O+o`g{ z@v?8sHQ6V>JxO?ShT_l57hmLYvfoM6y7u5!#^H|_`E3u_QQT6yHYLUozAVKZxIsF3 z?l-g3I@}9Ot}*U(6GNC*QVgbb#h*0cHov{!>&0R6+TPyOPng+$&liIj50lM;U*o1N zM%^g$L)Ze}ylE_XsrnoF(YoQ`P)Lt&FEi2$?~NfDIJmHia9#ZIv#2@Z`0~!9ZW=Zo z{)li74AsG>kIe`H7J8?s{#bB41#@7Mo%~`3YcSTO6Hq=>ea_1ssM^|cW7!(*e~Z4C zaL#_`5AgJax!7=|=!QPDu1vQHCdyw;4TuP7YkYT)1}F_T{H;8jvTD zs+byd*^`Fq&Nn~ZL$>`bB(3kQ)f;y^%BxD&G#x*O}_< zY!F-hqT|x@V3}V{9z0lF&gc52JyV(zyjEllJp*6<%xWC7*%6DgQT+O?CoekyZ_d3D zc*Wxkgo;`cCqxV)%U=ueq3@=P^LtOyVr?Y72>q|a!akfoI#k!&5IJEdpV@7r zbcYNuwOoW?&xn0(>!L{D>z zW4sF`^XtzaUhmh?Ca!dtnW-!IT2E>4?*HTMEr8-ow{GE%I}8vcXcP$UE=dRwf+e`S z26u-T5FkK+;1&V|cXtRD+}(n^yY|0(&NmZs&YXMeR^9(nHC0nhc)R<3pXb?ouf6tK zpHsv{ZbHu_^>9zpkc9x01mfc2FtLb))LwgFr}Tmr7Jb6EEaz%n%SHUv7ZorVM96MW z`1;c)wX^3$fs5#+4iB7b8X1X9 z(OAqrh(*4Tl6nsVR@;j`XMQ$^o=uf8C^G9!!xBx{v!;?SzWVcP->_@CwpZ=<^5aXw zOYhTv#8eA5{Aj)lrpqyl{7--V#2Jd^++*wS`@mjuR3j_@#4)9yCMzYyuj8J3)?Ask zV^P02KN4#Y z+NXl8=-bf7(~yl#k~N>xQdnG!NuU_48$~QyL(=f#-5C%OpiSW&e59kp^5zWb#8AQX zw=-qJ+q-ksE}G*L+8^-(UPou3_Z1klEbf;781f1-r=a%;nfqa0Z$CtRjK``@!Ml7A z2-|`7Rg3bRg0n$~g!Sr)H{1uAeq=6eWqN!w8w<_;ce{g4lF=qBZ)>Sc8eywo&4ptw3SaZw;*k}xV0=KVyR{2K5WkGN$ z-4K~0c+#bZ-aH_KMv5zC@jh6kjetYe=JH+HrxgSyU&g#yrEKs{-x0BvdCaQvD4J&c zn~xRJ10Rw+kOWR^jOyhU4K8|J#n4<*kDBYkR_^)*^EuQo31l}rPJF2U)Fc4hllvl(4gJWDSdRb zr~=$B*x=W=i)~1$sUu&Ci+vv(Lnl9RHi{k{DLf83L14GegE)G~)=|^m!Tz9T$iXn% zLa#?UQxt|KCV4iFdJgvZ_;?iL9Q%lzOI zNxq~sy_>fpP}O!zu-Q3#@2cQ5B5_3$ub&<6`2%Ud1RPUe{`IBjIdrg2)seSt2q0bKTwGw&?k_AZ*D#lSYorgV_1i7@#^rMAlrS@<=^=U~J&iqRyHkB% zOjn_hqNa@PN`&O5eUg9a3i1&BIL4sAAV{0LrMxpKtuFeX8ZHQG($03rl?Kq0YfF}3NS|+ zf7|=rwa!jPK!9|TRBXB-A%SkX)+KAQUKuTqvtpT7r(9*6dvg;+lIDdEcIU@UkuUc5 zV1DIRdj>8s@yhuN7fm-Sc^r3-eO;{8=w4(PUmrVKKSJiLTPPG5S~qBPA5xw=0%SeA zmM>p?){@1b85=rZ;I2-G7m`m?RQKS`nT49Cj8i9%Qx!JpH%Apj3TW1c?Il$unv>$b z#cwuGx%6jP(c{q-;{+#IS=dx}b>$2@7Z@R_y!*b|A~b8)yRpVfi`I?YAGCD ze$DfAp+`b^yq+J{UgSG%5@oa~|A@FHxwgBTQ?Gvz+iV6m>fFH&RS(O3woksjF5e^i z#x!7!ezuFoPU*9dM2^OVbWwODzMAAzwUxUZ8anX6=f>Pn0PEO3YfE~WTeJaWw{*oz|2o-2uDXpx`b~prKF@NZYe=}+-Jv`+XjwCiKb$}0=bNSEyzF-VlS$l4puFLf9x#uCb{`i4%rs~Pk3&xp@&5gJ zEIhUE3Q|uYnWOLUgG?0DtJbqc=N>(M!#L08#^ytEs{5Q|!SI}d*;ePrAB%~#J|Gb` z!uaQ;9Q{#b2szZP^1JH^V80EzbV5QxwHjHOCdkJQ=Bti@E%W8a?sFqK27#08(N$`d zdX`l!EoGf~FM8N02`2Z!!2CH(V)4c2v;k41f4!RKtjJ0H^JvYStc7adqTO`G#lye13>`qQAPj*i7qgzyu zQxA`<*_D#H%En z03vsv%Gm*ou5WF1YIJH0`)L_i}kEHBg>dDKO$;%8_ z%AFLslJ~sl2IrnXcyszgo;;5Lo9T&EsDFx@CkuwVXRivLI#BQ4b-{)@^oMGlLC!a6 z$h}Ve$i9D-?Rh%Jf9PiTy=MLJfAN*{9-`N=)`Sh3qrv)dGjc@5JpFw?*3uv6CePZ1 z-orW-9x*VIFEV`Ug=Xofn&kp|fH9oL$ zCOm}Z13K$D(YxGx>w3BrP4f7@z^HFF+eu!D;dzayEYB66@ zHze4d6(-^e1s`)rhBn5Q4NqQCqRvk>Iw?)dV7GyYx=WP28pspAh==4qlMk$lmV-`e zdNV9)HSL@SMPNs}c{N45NKTB8w+_pGla!PDfh8_JK3*{<*hT7{VQYBm?%#FM&LhQG z8rQiUqe|ZQ)Q-*|Ak^s4B8Bt5yJPMN7NjY*=36l2yR25;4Pz1VS+A(EqVVM@{VU1D zA8btUs>HZdL=C&NEz70K*Uj$wI_8rmdpV;p>I?NRb7*Li~_+*7x5!h~uW^*h7?Fcy~y9vom|!TS4x7 zy|B19tkltaeZ?Q!a<$iQPQm}9QnBHUG6$>4x~LJrrXJ8$qLTWbJBkPEqlc7PIM~uQ zA0BL##xRlwxLCR0IrYUif+sCQ1y#jyb#8dxrtWL}?Cbw9cQB-#_Pq{$R7g&mh(f?q z4Y&B>>fENrMxFIT%7L6&o8jS+xsEbMCkLB)HM%wU7)yKVxSY=Ywb_9Nw;bDyP`M9G zc7lXMZCk}kZBtXgD0gvtti$Zp!?SqXH91OS>CC(jBWy-_{`mQJ z_EaVC8f?Bmk*#jIV2gIMT)UyIZ8jm=1`ei*K#smx2QnGwJ$jD>F)SjYh7hy14p8DQ zA1HqZ%9eltXtxuwsx#rg@tn=fwvxi0^)dL53Wg~*$~MTlFK?ng+W8J8Ww_Y-vR>~N zQZ7&D9KbzHg~`O|=p`fp6(kwu>ns=;>ceJ>2n5ebo33N##J$l_B<=9dv=Am6{h z686*%jQ!{;4J^iDgaYcWlW>FtBw&Wp8xWr%bwL3dZw^;(Q*%ecK{j`DtaVgpCETls zBA+G)$?ghx)ka%HQZDW5?p#YMoNKfq#BK9&S}IZd;FrQYb+D*lc2x6_=Sc6IWHf>J zvuA%aJk){Gh-hKgF{5-H4df&=w|=NE0fKugXO>}cdUkzhr?^=>$NUhTP-iE_WYC3| zQ~f%Gp~KZ=pKV864pzje0wI|zzox6GH^xzQ zYczf6(Y{sNYVHSvM#vgIcwQyrVtU`3Hc_bCo+d{vgF|!jIxwY=(eelPbluB z-VayP;?8zESC*(_I*+bUob;<^v|?vxyPNNuPRwhGJs_or`1w)b9tv=7&mbGhcTqJC z|NL1B3gz!D=ZtH5dOkEviGxWSpHryF2~@ndY;0^G-3IC|qYp7R+UpjX_qDI4`_}^i zQ+&ermcF=9ioH(KLntmTWFCr3ge>dF2W)H~K*>|(JDCmmQ6;uP)fa+1XgYuKqMDd! zPISqqeYU>ZW>IZ8$!@WlQJ^B@L)sHBBHk4WE6|9JZVkA1EQ7Q;(+fBtB+F7hzKSVY@KYOmQsF(rn$WwlSeymi|0N#-j ztD2D!@BRa;4<$SJ9JQ+M6%{1#x-y4KTZd-tu5m}{!+P-up!mDPZiBwxt^N#L-lO$Y z>*H+qpq6kbH}v}Qv0>@HeRr-XMv=^ih*#d2klE?Cji7WnVF=^;r!Y0U+M4Op2b zAWf(@FrfhRIIYFLtm-9Wb?I=Xt+iJnP}QWW$uSOrDY#ezI6YlAPGz8QD%QkNL@;1n zH>E3j-64#%Zf-IDp(wMs`l00O22>XVcx=Z*sX7)E>UXN9^Viqct0KY#UcP+k@qW^E z%c>l$uOOy++vu5y$b|QW)rrMP(apkd(hIEQbO<11lZq000ez)oi7{f5_$ko6VE79aq*dG!-LL~mWiD5(H&k0 zyO*!sIOB=c55u23W^o~sSFT(+8)1Of*7r@?!udp-)^2})t7QG++q35`qoGZ>lemzw zvifq+za(U{4e2ppq1z87Tif1N-;Elxn~%;28cJZ~ML(6?_-(K$>(5z4iWHdMF8Wej zO)e{9c^{4?nN$V$T8-L>u)2dA(H&_9jzvbW1;?l78;X5-Yjtw`qN8CTapA(YRXUJW ze2!j@vfjTRQi;Io{d(8^V0&xrHW}Ha*NHz&HNM`H&$fJk;nYYO57Z@n&?9784 zIiPNmO`k4zFs99-wCiwadM4a<8#WM_Y!3*Na1IehrC2rTEFIXf*84`^hfWj%2whbr z!a-eM?Ige0rp->zO1_YLW-UfTDU*?rDX!~Gd@32ZJ8c$5R8>_j&^*vfk#}W1ZL~8T znrQ!oJv4b8=k=B`)| zHnI*whW)P0$5ilFP`G>`D7K1oD(S5pu$t$xu%!uTAOXA;{`Ek>sF5P;?7L|Ly@9W{ z5GV+s&>%zI@%y#C{ew=f^oOpl)3P^AXJ${QP!h!FDo^<84H16hccfoAE?8c@u~4t% zmihc}{29+CO9Ds4b+mQn4b#5c3Oy-%;c<8KIzG@}dGK86bUc5yZ2fc1?688Mu9u#z z#pfsB-STUXq<&A<0NI~RT1h$;Z9aT>Mm@>I`If)NETbh%X5`N4-#ugQ^!a}W=Kuc< z-JjaF7#O;EUYapaElLfNh?reXyR5wtZ&V!9O|=%mW! z1zi#MmclH&?t24C03>2Ke1dyOjDAKV?cdGQ-v2p1E(SQ5q)J4sm60ODMn?tKO}t8v z01quKouDCAb@e;o0&=Y-?1W@&xxe9cIrkac{aW4SK9R5uabx`UlBd}xj(}SZLU{gu$Vx6Ag4Qlq5?_v@SrhaG!%C8_K>8z$=SZSBAj3YN|5k9)e1_+-+~isAzHL z4TRH)l@$TQV-Cp76pVR!mj_#v znIPYBTa;Pg!Kt$@&lSMUoo!3?-Y=Is&C^8o$wQx{c*70X!l6Ljj1ZqbZCY)#;x+Jq7dK!j^ zX!To6l=}ez9?oXq*5szouQP?&;`JLZmfVz&?oZCdXH=e6sQ#2B><)y z9&HJuav67bPQ*VKH}iNdL`^b|TH@p@Fdr_Oq5rX<02fFe2oWb^u7?kGbm(%$egEPD zw1$d5dd)jhTyt)1aM(t#GmakEkuy_CPoZfc2x%9rZc0LeN56Gq5VqUi1^UE&pX*5u zIU5>uqQcm)4TGm%4lVPVh74qs>m!es-qS+}7FGfrRim{z>Cw7aR}KXMR%H%W{U5h5 z>UKiV#1b5!G9R?I$JFW(^aaA);e^m7q&@*vM%%Fkt_O%5hBJI9Gjj&`dq zwzlL#4G*QARZi{7yR#PmSUr{Ar@OhDY54EufZanz^}W#zjf!P>7-5 zbcx-T(!c~j_q!gG1Q}@ED(Ak|`K9721IO38p+;%rh8D$bO6nmzj^6=qu=)&PSoJ z;nugQM|*~gwF$?T6YcHhJ~mSs_5<#7!IV6x5$9RAH2V$>XLL(Z_8s|emYla^0``)YU->2t!PbCi|f6auuvv;(>1!3K0~z) zM)9AEi`6UK6`P&Bs?=uQX`bx`#C>f1?h*GjSXebH_aof z(y}?HCr{q$_k0a4lQM?|!=mVS%wh2gKgPwejrp&B5O!?Vp8dZXLhkj}>4*T;q!XF~ z95Yc5FN5z6s~Nd2WQC~WYBgKFXcP(nw~4FsF*9yxoFT@ACrciiv- zj$sqK#_$4w*kHDKY3#EYeF7#Xrsd0B4lu686%A)XwWzL>Si8jc>FUmY^7E@Duu#b+ z8#xmd%@RNaGCT1bvv1yzUcE*=H8V55ygdDaDln}t8>Fw5nh(eIxMnMmKwP?sJwSNy zE$7r-e8wM<4tVD;{uLz@F{MY2SFc`cXl>B0UD$rmdT8sA0~51`(myUb*xNJAth?{o zFBTY%?C}0Ou`0YQj_y%eF+Ehpdwaam9qSR$IsQC{_A`3oQ}c!LY!`edtW zrW_T(TkTPgxK*X=fcZ^_uWV{Tc_P60FV3FBYVq{f18!Nn&5N19hKh^V{S+Bl4MPx1 z)84dOD%y|=a`qQ3%FdJ(g#dI3ge`WniJQF0;)3oxyW9~eTf9`X-f{+RXHVoPhvqo#aOp@q_)xZHe zg(#gq6~5uTK2*p3$k7SnN$%5zJ^}!W16fCPmI@n&UB-xV4V}~Yj@?|{=qCIwg&r@2 zKjr8D19Hs&Lcx02x?Nvj(o`p^+L`${wJaKR!e9^Ea;W1A#QH^Xb9AK}QGQ|TV1HHf z0*6|q?nl;@y~BMJjt|`biT3_hT{=8GI4xJH6dETrqhrKGv_j(pX_?_nbh}>e<+@58 z3$b{8X!Q~vvxZ)19|yy?e{VfK%xWuvWEs!Z*6TJ#^Ye zkD)(rjXF>br_fXiR6WAYG@MpY@)j^IiC499zbpNsx6~Ui zK#lgLvf^>(rfv|;;iq6##~s=n&R(6I^{Mv{hi!I^(2y@rz3GP^@|Vy^3Xmo0hD7h+ z@f%CG1zbSy9*r~ybT%rSA-36Kd$CV_xL=UAa23pc^NkNlCZlba-X4CUT+QGzp$=DV z3d;k!V=#A(bY@Bc3o4ewG?X4jUv4qqsf6B7p%RExdCI`=F)7{X)Sf>KR^6SLoD{XR zoYJ0GrSYxUD22fhVwbJe^XKI4UOeRjh+b!7|;zwAg= z{K0s9&EHc9Lqb41)RAwhwMSQ>zTG#j7du=9q!mRD zP&FQ~uhLAMH`p9`K)JWPdrp?_YuMt^J}>CJ_wB9rnlzQ6YU2H&%nq)-wf>3i-R~j* zs>Bc56j2y#NTA4Ct7R1%+1sa@{pR!$GXzzE>!ysK+G#%Ej+_wyipm_wolmE>|C*GBtsuF=R_@Y`i^+_-=YV~p;b zEtMP3p&=)qQni@rig5w}$D;z1uV@0e3^_)JHp6y9uNTm2=eb#qOi+Ic#TA?BPdYDT zng7@hk=oQf^dP%q*Hj_FvfY#C(7le=bYDbOFJbZ-G+$(WX&#JT`?dP~!YUuyoOdX? zWy*ZA@3P?VpUpTS(T%^FZ*xCT@4Iwt#H${2Cs%)jP*(OHST`{F8lb2WNd_as!*d;J zSOe_r5$qPA|DO67BW_wDbmJw1 zs|*3wfonTe9hOCYppb$8v*t`Gn-B!F-PbGIUpBiOYnPUlB5c>EWq}z%nWk6=#Mpn} z@~P!y=`6djS?-a;Vr+*AQ)6OV%|M%6@Wz%svRSl-o-Hbq{*OjoN3M`2ihQ1!XzHLr zgKWMfz`ahDqvBlNDF=e8@<%7ncb4{vAPEHX6Opme5kO;LnP&lOcxP!u(D~#RKJ%-} z%uA~eDyPtI2Je&|wuZ}>oL~WG-)?5U10rlD>Ypz2KGoBsv$M0SL1rDMCzm6~flVzk z)!~lR;SGWflSqc5yIgvtqQZmXOF&bU^QMVk-sSML%joFnpoq!8n@+Sm`%TQ=6Vi8t zPHU9lix;=~Rw`1yJF7+>qE#F_zlNm!cKTe2 zkStnmtz#ZonBCt~9iTq$u4v zVwN8Wq2Q=+u1+vST3;Hf7^w=giv9#s0wBu<1dK2k@H3lTK1aJ)cxp{0H~!a}+Em*o znyuEI#7J$yViIuqyX>_haNiK8tKdH?Uzfnfxs^RLTms%>e<7@TXvd>fQks!w6)*aMSKbmuXpo~W`rE%tOzLr=4Xt6Gc&zj zeXah%Mv-7s-;i@j#$Euzlxrs19@GW%2E~w3KFz-wT)?Qm%s-b@> z@ILE!h^Vw^ZOn2JQOT+kjt@~CmMU(A-{C__d?nNm{R|(kp7v7H0b^mHNr_h zT`P}j4a2PN7r>!+rnJnTQ)HB$SbMM>8<)O;NDW;oT!OtLuZ(BU=^33~ovqt!?aR*# zjrc5aBuF$Ha@36V-qjVcw(~XqL8~-VLZEkiDf9WY&ZdmdLo1FXse2#9*85(PktTOK zL`jd9NCg#L!^x@C7V^*phj#5ciO>%p=$sFoT#_aO(;6DtOPD_otiSy$cAFQmL$jpx2|=54NX@*+HCfj}T(UP75tLW1tL0#;XDP5-AKl0C z3T*%M6SE=fKdS3h(=im~tz$x)i~becH(u+-$mb$=AJmEji!GliELNui15VU_L8YuZ zGAz(MM>rmi_}19$F|tdlQ2i5ga%U5|6V^tG7-}12Y;2z(C`>?KbjNu_Nf{`s#9!~; zTie+=xK}6T0EAC<%T;`I>Hf%##F0Ftm6jJdF)FI9t}h;7ww@{cc^CNrwE;^1a|kxDhs zhpdjb?G2wG;_{6v6R_4=9ac*lCkj+i&Fj6HAtD%%kk#Jl$yBF;amJ%^q?*TMo{^D` zmX3P0TXb|rbz9L__B2DP>7?f+PKW4O4sEN$<`!dK#k&09mF7Ge!5LeFOy93ap)IV) zk;ZA2?g&dY6v5?~0h%e?_9a56V3l7W@++Kw>WgMe{#WuQ48Z=YVi&mzj_jYJ{N_!^ zR1Ht?(b0V|IWhme8>;M$r>r#Bo_+&>C80KAWfYan_Xf$?7wS~HHuTZq*Z-&Ox>WHO z@AC$m{nB~ptsSzn+7w`FzlSTvAEZd&>=BNtsBrC7-o`1-dv6fVlutHIF{GsQvh;sb z^;0esP+_+;>_f`%qq#Y~v+Sb)E{w#uUT`%Pd(xsH^*-F70Z9eu1!|;Z*xG^@r*zYV zN3PuM{d(+kCE(F~NK*|)l|t^3yj>-_eG)IDlK^pt@E(Kwi zE06BGs@GKrm?OYFJ(u7o-1hIBQG*%e8P$l}bWkx$&aCA9XO|Udd_Y{O*P+Z-)fE%H z$Hewy{1B~t)*7d@?0tMwpD7Fqow(FrsOv|ohentoO zX-|zSbo+pWyzP0F7krH+T=L4bD;GU&NHbJ&-ZZpvy~)TxFWEh66-GMd4HuphagIMI z!TZ(6)klh%K7M>hWi)>FyPvHnsmr0w15w`cki` z8jdcQR!l!M5d)He5KQPW+`UdNCgJw}y!5;ZNR*$ybio{^X5m!M1I9XoUt(f5mLb%< zKppZ&4|0(*ZiXZZoAhypLDyR>GI4r~R>vrp86jZGz8V?4ex2#1oZcN)R`gZ#-obr} zu&%~B3Fqd(0>;pz(6y<{sr>w9wx5wxpC+$(L2rQ{}Xhn3ybdFvz;737^pMXNCam=E`+Cb!rN+SCQl zBzE}#6zHa2BjmZ;6bumnMgT|313Jy1aNM+fwmXG@Pd&!f7rA+hsO@2y;!7%E#=;7g z%X&owEo6X$7Fity3ewki=x2Uw>%j=3%uaL+}7>p$M1@&<^~s3YVbyVy%(q&_BNLEhozaq92n9C)#7H30Tt)*$!7 zq1Bw~KYw)WI1inNmT=}Xo)s1ZzfpVBG98nv)YO1YRhpys(AU?=jf37#J4iMC>VL&Z zFjxO)zKk9Z4@fis(ns8gf^K{8zH)yukGn-6GZ_$XZV=Qk7#$FLdU_VdC<+4e4zSW~ z=qR0At9xrBB;ItJi|aECAUp%AVk?@5Ds*8Md|3ce6@?*4R0mG~k%B4ZNL5wc^$s@3N~x2Yt0t|9sLT!*p`8lr z&O#j|k1hRX0Y%7iPQ8I61z;?rC?CPc?5B_sslYR8$QVtQ*FV-iQ84pZakyUG)}-N+ ziw6iT+Ads@NbI8f9==_n!5?W0b~4Uch~L2&7jgqJAO~j#C!VC3=I8ALCrrM0iBH9O zUEbZ=^8|Y~mnCz+kc(aY>h6dW0l+AVBjdl`{fFxCo9g;yq%odi{ZHu5EB0(^Rh@HL zR+jzW!ZO0b781?3qWPL;`m%MF1%Ts%ZWg#Sj6IvT7|gwQu-AS!eZqY1)FSVx0$}EB z%$=&z^+w^~_*HmpUQi)+bod3wyCiY62+`|0qCuKePjbu&BJ({&o=O7HuX<`J^}ZaP z>hB97;WTp-luk1utRM>zY7?=)XBoHK?l&4FmVuNwJ&03@AKb}1cKmYwcJ95k_a`C>y>UOGbTHa)^dmhUR%AU~E%B~1) z&SO12bk><)QY(nWGryS)MX^tsoR2Q9{iXAZ`01=G1(HgvuD?`G5X_Ud8lIcFzsd31 z|7K#;&G`Fuf0MV}{>?WvQI~5Z60uf6!Oko@P{dD>ja|a|x1I>1`wR%2hn_3N#-Ea$ z&w-1wJ`-z^e*7{^f%#f+f}i*P-?|Km5iKgI$L^BaqHP(ucp?|Bn!Z~azRPTYciO;+ zW|PT2(M;qML(Vk{ryz=(KQHpSGtobmSi6Yhil913zOOB)5#j<}>QE3P{YBl;-$Hk;w?Pv9^tJ)fgXISbuE zZf=`$Qqjot0$ghDNn7Ta{8aS6-qMt}E$ph}q)WOan3q3SD%r2t?Uu4hya)Q;-C2B! z+{eR|Ah6f%Iw{aN)YLShALBzGDuT~yAEH6MdmI~KjPe_i*H zRkz$7Jo2`+m~+gIbB}Bi-f$TAe>$1X zd5Y!H9C7dp0A&deQY9N#Djbw<@GajIlU3rujm-?0QhC`%Y*sw=wSxhA*!g9%C!xiA zZ(lBSm6YUE>;|Vxz^sUInf}{2EWuJ5m28Pi=)^&g!lxH5J;~E|ic)ddR9+q+pjGq} zb>(-3VU&RTqESpQGpOX`jK#ANv4y*rpR4hEK9f|=;Dk}po;ChnJ z(G}6@6$cU^N|^keKCsV*KMS?cQZfpkk-*Xb#D?2;?51cKhjLefXizO?qN`VsKDb>r zw$Z+53Tm;MtjLgVA6qR+p};@n^x|#rRXzFhKfoD4`GZEfZAE!;`rxlM^7^2P+EoqW ztkp`lSgp6? zf9iG2e+&kC zyZ8;ML@RW#nL%`L`B<)~Ma(iV!^oE8Qp~c}r_-e9M%BE%Y`xHyA zJ3_Q&8{epOa_o2J7CP}LBk$odee~`)*F`GqPaL(M+q6v4a(uJm=pX@9OHzOS{KBAF zRG8yJC?BMnYZk4RY~MzO9wxt~(%C*fB)J5$e_++2zjLn(M4VF- zqMZ2C6!KqW5Gz|jitJQqpQgjjB?@$-=VDnD_wV<|gNV#{U_m$XC@ReS(0ee4Ri&*t zJfldQ8=Q^C7@{*0S3NbRXJ+)5i@n3R^uNBP3c{p!a&o-cmlq2{;FtqO*04sBfU6nn z!Kx$~UzD!5gq2>Rq(49Jx!C#g_+TfsVDWDWq6Hv!S-zsf>rOKulc&;geScp6QN<{S z{Z`>-IqX~kG!iQ4K3}*b&t$#z0xUhFY4QRezrq`OgxuZC@Q=GeP$8Y*vm8-?1xhw~ z-@r7P*gtNjC5-(3{b%lIL`ihBp632yOAJx;n-96SeguT=PAqcB36%x_Jo$yFWargz zh`K-Yoo_xMB?ZUVDmYd=js8gcm#>hj60v5yg%qDszdR-?DQ>KLr;;@z@tbms|Q zn&n(Ez1gHwun5G1?181L=+^=}s;l8Kp|0@xW(sf?sD(H(_$6K4+{jNVW6bNNRK@~p z8SLy|P2A`sC*??%!st??O9V^CtJxta9iKbz4(8!v(qW6qKFZ0_r=LcF)13KckZP{} zrVKkFna|zyIlR8LH9Bn_?UG^ZskO)Uy6fh723^lNtyg+OURFn3KppFyos3L}9!0IQ zV2-i5rzRU26)-@USduWD3`!hn$^|bo%1?ZvLYT{jcS1wu?Jaj0{o|_6wFRR*oFCSP zCBq)T6f6@E6kI4FVJYIOYn%ZqnL$G|%M%{+Jzm$A2@Q7yWI+#KKCW zt=P{RmV5K&3wLqmOi!f+w4@qzppGE*K+2ud$$(@*ikx=j+1>}kHg-N~D8C(#Kz z!^BzVfENtP-O<)7gDFL{RHmbC&CL+0zHM^mCMD^E@q~3!+I{}_?n!3Va@_mP!ua%t zUq05kTxG6$jI+OIYcMzx&`50^6#q3sOq;>(RZZrb1H)qh5VZ^>Xfs6X?&dU>G0RdG z=Veu`cDw%K*|SenL673&b%ITQ}d_zU>pr5?RKyS>trRr!qWrO2yNn&(*+LFS(I%e!-PZ-DI%aJ1`5>40e9p3f|b^;jH3j1q(jRgyV zt&aLdt(*by%}L)TD3?HPIuvmU$j&BmLAl=j^YL+Vcir?bQRjkq?_#!ay)<6RW073w z(B`ge(xToeTJ?5H-iC7FG@J@E+i-$Yt-|f3mfwkKs((|GtZw)b{_$2r0>MetJ4f(H zp~!!n`}Q5xf!Z_~Z1L=G-}GAsX_@rYRD&mUbZ6NtZd|(t>x_Q~9?8T3DE5+(3Hsl} zB1-DN*r8CW<+^DCH@;ziDV1#I)nO|)&9<_9YGa+nhErQ>L(ip@-p_?DuUe<4rD2UO zo?4@<1<;!w`W8Q!XB01}!<~k3amh0oQ{ZO_-ztkZ(OI8d~SN;*%D?Nb~IT50mQ zA97GUX=}DC?6v}BEk$F(jA=@q-goG{cT{;*;chPgbK=|g$OPm+gD%Tw~_eWtpmq8bMb zkHte07S4?LcwN2TNsH~~0AH#8Ug%Utl|07hh^shz?uhc^^t^s|8moBwp)hZ^tSXXR zJm4h|`MSTHna1s+P`DRt&RIKeAn|h4)s_EXGGqBwZ*CSot7n?2lJq$I<>w)j?(a6i z`qgzNQ~Dd-A%1+!hRf{F4bUui$I<)K8)LzXb;;sOT(_6#SK2Z7-h@^(cGI|uoHd$W9T2EEPEy=pWe zPoL`+CM+%`ko!LHAxXcH94;yC!;*eurfe^)&iht6M8D64C*X#$5LIFvz)siB?NRiF zrJQwo!0EPVpiJX zq9D&LI$bwnTySL};tHa%cx@BkW)FK15kboIL$G(tahY3B+Ryv6^-M%V7vBuR#P#C7 z)BzQ|r|6S+j!FmjF8uwD$)2YR=`T_L%X0QN{~T_bu6X{%kUmJnY z^~m{ykm%M->u)d4P0gtO->R_xmmleWRovEfja(^wRo9&GIV_A+2oA1|wY5*~?vMQ~ zd$4imk9fEZa*<d*gKSZZCaVWv#Acp(`caxMW{-umJg5#eSNan`O~?fB%32c*oH$>)xnik17bubp*g` zc26QO5lP~(=6c!2jZ6llBB|utFe(}sjLIjA^Nf5k$S97JQq`Zo1&hgktvm^`jE-xx z6)~F%Op*nKVjJu0GP7dKmirGhwF__;%i<~X>|5-;D|R-nZdM$4dId&BCAAU_CD~*c zw=QN>?5D$$6K54Ed|r>`kE-YzHCRABI^ADtre922{&3?X9?vs(UqVTcbz?StL^8Ym z@go&vPFBd=hQ^kbE-%`OB-)A-6-cWRWln8B-Qb)*9J%OgBkex_L3B%I8oHtl*$R?9 z1>)#J62P0kiHRA<=kAjTCE?WkeA0TKaynoox&%4wFJNdBY&InTSa>z`EijD9Q(8^! z_5CE1=oN4eSZ!KDC3JuzOigP`7{1f9T4(9Xl>v`+*ny8O;3nJKTjN`7e+ zck@56J};YqP*jwY?D`xO6*C~-Y^B18cOB{>f3P0BPhzrqRTC&=O)5%DN8EIks@5eV z@h9ibp4G|$Fl(%I8rNvBR2t3Qa%ztLg0wl6rJY1-(p5AxbK-NFl03uQGL7jSwFqVnh)H`pncp#lNV9)Qgv#e-dn@k*xr;Dv5Y&}%rKZ5H#1%wF&fI1D#=gV`jMIdipUu|%Ze#KbSy?m zAS)WRJ>*tqGX4zo9SL_fH&A z0{n%Rj`m+C$!o0N15owpU%o*9EeGh<{69dBf4}U%hgwE`*uv9>zr6Pl2sYu?#6PHn zTEc6hyiaX+L{IK&r5|R+Z$>l!M;JEw`RE5QsAOStHSg-?-$@Um5ZzVn*L?t}yN#bL zqcs1;l`BH8MpLr@0-Y|J%a%d8^t#bj^mN45qcrrPtU)19X^MHKHm{7U9DiMbIkwK` zydv!2PoM4!dGead0j$bAqMZi2(yT07Eyj9vAVa`gqo-K<8U&-oW9^i!<=yb%$WiwC z(^pA=s~{mqzwUn#eIdbH)hR)_WEVuGcbG?v(k4D_&Fd0q6 zCe*!sV@F@mz*m!v?MInM)V=0kYvV;utI!=b78U_BWzL1BjPkCX$dX9cpHR-VIBTQ> zD2#%clfQg<(N?yW3;?v0R?d8X)_aL{Fs6%J8R0P4!LnffqH1#ER<}4yi84qT3&VtQ zF-)UHnu()g!eY?u{CBf^TC_C1OJp<2K>sS<``+On2dR2jhvpUgpQ8=_anNZ_Q$z;t zkg$=XzjIf}H%!N_fjGz7l`}hCjq%>G45-wkFshVYdD;4@w#s`y5Z$~r0)eo6;J}+7qU6B z`HE7XWzJt<8`^x?VVh%No@;z8JBaJ@NB|ujwP zul|>+T}AaKo$l{j-&}K!G1eH|9zH%)Bdcz0Fm{5Pp`dmLJUf#Caz_HCC%X-*i`WPO zsE~1k(aHT2zf0CK-X=4PAo0|&u=uo!zCUNe8Tsr9Kr1 z2DX9ZRny3sg#~gR9wOKVkj;^#n-v8GMOOxNJ#hfKM+O+DZ_0_Tb*m_)@~$~PEE!4n ztGTkU$5XI0#k_*dN8P?<*DQ@sa{aV&zU=) zmg(;&v?*FTjYZu+N0+v-NhBtx=6W@hza}yCj9Lrr);9}vvJHXv?-veNk3?=Ek*Fy+u&|P#*UzfNH9sG z!!JX&HGVBPjb-u%ZU^%DA>hcD{1l>FRyuA7zRoV^0;SqR!>BJA^N7E(U+66mR2nPS zuy%iG0>0BS&e@{=J%!>m6gye7aO27yAK2pF8qCrcbGL6Imnkc-2qbQrpZEzdst!FX zGqXsGtkbeXUqi!?t+M~Gn9~8<;X?6LXb76yn`Pd-F$vrZnC7%P(7n&EOh!x`X+yfa zOxUK>SDLHaDGZ(pNN~$B-)TyIC4)jwox2$?V`nYT%kXV6%Fz~W#nK*6ev_Vvq?M=- zF*)qc*pW{!1@AdY_37Bzxe~vhk{x?LMP3pN@PW+F5z(n2VToK6OVPOUItO`9a3n zSOYV_bFsBM1RQ(wu&R5(t5>9GigbskLN*CmA_8~bKZ|}!jDEkTW55YMAG3P@!{CO$ zCTNt1B)lOE2Q!xS&r2CnIq_$hU0|+}YuiFQSaIe80QGb!At81$;YhJ=_nBdDz9C0% zx$=_W(Hqe$$m!#2=|B{;9)a~HXr}#{cWV6_u|12rLPWx!`9nXDR&ffp@&RD$VzDjv z(QeNxpfkqK(mck^t=u^PGC=mz6q)3PMLk0g9Dwl&NQv=dE}n|#6{oww zuD4dnl8$YG#;QQ}ytkLf_#v(kFd#;}?oifn-5(~Z6NnPQFSZ|y6-lfI5GGmQn-4!s1(`SZ=0|9tcx=_!o-uS%+iG~W*C8lTub9UDpN zQ3!|^MQpzhz#_n!2s$NlT$ZmRVujZHp|LS-B%(Aay?hfnQm{wE32_9#;(+3g2)+>x z0_-u8Bd`1OQu&TAs5)fLWnN5QzPr z5-b0arQ!Pim^ru!Sg{5X9{t@2+c1Xrzu0q)V<0SwYws9!#N;G!aX6_ALMX6cfCS5$ zmSyLv@U_J*Pd;QPVK))Tk~h(^#$>dene$B5vZ*OAZS^nK0VRUKa#nX<@*wQiCex|p z^wuuZ{AuSqJw&DAdp4^TF&YaEE0aK=bka)>B>=E}uX_AKpbK!BB;&Q!;?3-vm{|8| zpf*CuNQ9Chjn|>c@P7V>Q*(Qh_=^`WLOZDBcm0rfH*_rI5Y_}lkN17H*8nB)t(8~2 z1ehPvWo0oY-XUABs3^YBwhxOvS&?wuL9i}oXocO0Qyetv--3e$I>j-vu?E@=)c?94 zE{sxhR+p~s+vu)Jiwm~o>CY}|Vhs=!I}3-f*B&;886v!V{l9+`x4&TudS@i8bvm3c z2^QH%EE~F%jMP*EYCGpIR?Gd=0l@;VuI?e`F+N3>$dQfhe6!o}>dvS*Ndk+woz?pZ z8wi!v(z64cvH6^i3aJ+_euC=Pa!KSKe0`Po!`;BjFRt*mf0Vnvjv&;G!}mqb8T$?8MwVuk+u_x^bz5CHejjDUqOhrL^H z#r;L`+qm>mR0{)II=xp@T|>A zGYlH|ot~VGMA(TIdt*|N%_+KUMsKQH0{An$hCU0p@e<5E3)<4npu^}fNlBv$ar@o+ zrBK@~=Dj3-KzbCX%mYG0JL(ABcHRYZiauGHnyRjznBxLs~r1XH%>??%I z2sx%adqgk)0^2;4R~^&^jg2M*LT{w@3fu9X6-H}wbIXDXvJarBo)Vo1Xih`fKD)Us z`VDj}R%bog?tiiem1#iFMaGrct|IZL+k!FhmKajpE?@l)zT?aTN@idKwEy@yWBK&U7&a^Y6#@NJ#_gWfcJcxtbt}{eok*fhEP#V(~RQD$KC)osyZB`1!Ww+rj$wRTsb@O z4P!A>`qc&_U=rAYJC&CM-q!wjebjNo!^7(>gdc`Ff?g>D8NJ!A(M=-lxFTvzx~711 zh_hU~n1gvAgC>XVxdz{DX{BHvEpGcw`?i^+W$wRfLAwvTECe|B;Fm-0vnJO*TW zyPvEnFZ~*o03cI0uA@=pG44#GjY|6J`?$OJ1&9I73zmCv1(Z4WMMVPA}ic@hW+ zHaM37uPx1%U#0dI#%Ct8{f8%;L(y?Js{H&gkZLZ_Yf(89eR7a6HO;zvPf`%y86O^J zAkn(xaJ)P9jmr{X)T1z6&Z(LB-HguD8zJ94Go#hD%m%>f`<_IMPdl3*zl1R?)JuFB z2XWHK-tQ^@Snxq_Y#37X*I%n``j}d$Zgt9Sv`r_VvzyLF5i09hm%7kRN=d<>#B-X< z3z93v4j#sC+wV+&T{XREc6qpJCrw|%vWZ`mlcE#kVi$2lG8`NowS1pA_$LSq=ir(asV{{Q>wAE30D9f8o>#YPNFVr0b=tARAC*BrNQnnex*2 zkIu+I60XujY1F0>Cel!8w4Cm-RgQ^Kcj%|X7%+33zA7+ww(soW8*OtJVbXxrvZV^U$t0XShZ!>V3NdtuYEz^L0{zH|wU~cdpf zYxg|HD@;7R?1%P;EFa?-?GZ2nOfOZ7k6-!p!trREb%T1QmiQdalNZ82VsC2Qj^bQ!0|;cYY^0_jUVc?nU3 zmgGi|F$K1Xj|Fc0@1(WCvl4tXH=rNdPhU$_fs6}b>}=4Tl0n-AKo>CfmfQ2DCq;${ zLMu7hIXlqY_Y_H%Fs!NC_tp(&ZYVmI&YA-(fJ{?G&QmS24yh2LBn)2)c88^*H5Ql> z1KPB^fkDZ&8sV$6TzLC92%^BlmkymU+fv=}-rM7jl9)Tz^gU|dP6zWPQ)Duv zwYBp>r?5CwQbL2z@=L08$mle9R3%p!`de8wmkMNm(1PGjXThQA-1tmf_v|Z;b!xB* zC*R&Ek5I)~mI#u)i?RMyyf*mYX0R^Ah=PPn{mTYXIHMRLUrebm>B#;)z%X`&KmGzaCH*yQ+r*_EYE_#N_PRdShB#Q6ax(MFfeQ74JE*g=EN9 zh*}om;$y4zv|W7Flb0oSTjviujIx@yR*5m!@sIf=)X+}(!O?u)b^2A&KdnECUK#s| zx7xq{H54EL|8IfL=bp0vHsbt~OkJwtEIX7AlQ3VV;UdCQ>!JP+Um;H@asZ=rTp!_C z>95(AuU~~oVh+Lh^LcwjfiyK}vnqqYNkQg8ltj6A@BFsrz%q?R`>%=1WwQtL-^vq) z42g!h1x{R26&}cTtazzBwD^Drkpx+$Slk@%7cE4hpUFd)Irp?A*>*ci2N|k&-@E=U z!rXj|>Ff&|2wJTrwM}>-JypediHpl*jR53T3#a#emzoC9VZd$~N&0J88^`<~W(9VA zsAu)wgz+F~Srwg04Y63Nfc)l?yNL9&y%nS8E7BMM=z(%bx9{GT)LXg47Ft3fjK8?^ zAK1wOU({3sUhvlWx2=97wzbEzIGd--(;uhS&sRPQxH%FrF~9=44(kMzH~#P>{-S^4 zR>*NKS^Y;l*2jwuoJ@PkPvd3=nawS;J(kf%cu0i_)E$x6xSn4?urafULnHy*_4%S5 zPvhX=F&1DaipF6-z)|wQx4P`Uj!{gO#p&gfj~z?3%TO;~L_SUt{M?FEACLvWYIzvg zX4E``0VS5xBZbTItww|k0|7vY^R8w5_8}+%x!L>q@l!l5^-Q3&AdZ|&)-yP@CmLW2 z1cLvGE81^pjFAGRChHCm**smS-P1?PP+DjRDFv|F4*-W^p6X1%yn{R5`mV2LFIl|i zO5iLb+)}I|&l!*u4h<>dcoC$75>M7hMWsl8XY#lpSAUNi1{&C8-kzS4`P7#0wGV01 zUkwV^(b7nr*In;kqgLI>B3|%lp-IeK>9Hs3BPbA&f*F$;-nT8x)E8PHVu6l!d+A4y zs*2wo2a*g*SvyFsIm!X^*(VmBPeI9{h=jeRgH`7_1s%G27K$gkOc$Ma zd)*QVwTRgY^)O4-C8SVbl$|B|*V6uxpJ@I?tz_iq%kWoiHD%lDyc5l|7Kw&l)@f9z zL~M3SMCmFi^5|mVDgM=8G8Hh|AmXz1W<_{+F_EGZK4dSYGuwt3P9O{fIu4L4+fPWCxS>o$qk69&%I``;py}$RyKVBqy#f;m3`}ajj z00e%DgcmIC6pVHM0H8=IWytuXfOw&RCm$)W1?GYyB1@Z#KBJnG5^t*LA51;Wvs;ne z(v}UuKz9SC3HT!%6aaP9@PWcv9Sba&b@zHSH}2zoMkMmg3Fn7^M=-7!i}fKGlwxbh zF5KLcRy=oE9}}*M{z%^Rz_**PAtuot?4fF1dX2%Fu#5G91PIF@AUZ&x0dhE4@DzaW z`H&GK)z-j73;DO}cS->+1#HtBe~7^Afy*T>Z1Fv3-`XFVK9F(4s6)xbB=_pdPB*+s z`$4~+;7j#vc#DOP^fg*cc)fr6cPi+{1$s~SKNaf^zp=H$)5;0~93Ljh=GoHXgNXG0 ziMKhV-q7BK;K9hz-6kE?^vn+MBSwz+v_f*ubBZ5SU9OTgowUHDT0fPW+a7UAR+JbQ43|FS7%_!dYALxtlh=AN8LKKH(cE-7K=ak#Ux zP%7J-mrT{+QU6o`+fyF&_A+3RiDaTw!p`!eoVDXyXP@gt1y%U6wL=4(Mr!N)~|CDjemGR}Y2}VUd&U0)q;@a5uWd43q zgaa#xoQ)SG2M5Y>|4^L%^e1+9b_M~kl#-HCGOm)G9PwDU)!S&yyZBNQ5nze+6tW7M z58j+%zKw}_j1)AKtc53mjbaNjdL@mbCFd7?6lBXLf?ixS6f~s2t zAh#G_o`kFz*PsJmREp-TU$%+MYc0KhE|EzAyEUW*`@{|9(iZ(5dH)?8w)lbG^CO0L zpItInu)hBU;4MuL-vZaoK!5t={jcWiMStekB$Psz_z5p zCi_42;(^2fc=!Qv$bDe(33_cL>f-ND5#AOL9;Y0h_6aEl?R$_H{q^0&l!%T6*ku4x z4;5AkOqZ74f;_DRPk5@qID&>C(h;fB0kZGsL(ig~&S^8&+|3#>%auSJS@Kzd^wJ|J z-SMFCfs-xs0nE`HzJA=jmo;3;c`AO?t}f;HY4GaHoWBYQ>=0SVRQXgtzf91u8nv0* zXje%UmT?z^(ZIr8Dt(Uaa z9peLaLMI%v#KOJvLlmSxiSy9}oq$YtwcNyB+!U%$63Z}RW-kvjQ8yyhoA{+weA2!E z@+;lt`FD#wKhubty1Ns}3&s+^tkHBMnTPJ_Bp=1EKKoAsAtV)2pNST_Ne$kiiX6n}CB0^2KRLP)}8k5?6`wDWXFrF`3L zRUq&lk73>cfHqkQQK+dZQF}JFky0ED9;f9>kPO!HAVi+)c=006x@{MB!%^vDS93>;^mFItSnU^u zAK@mF*SJE~!(knc4|_xCzdk((9It{3BClS^oCx$0f4#hes#E?~vx@Tk-<6X8TPOX$ zo;BRCutrTEw4)Qta0-kEU__|H?Fz1COXVF)!)3{u(7#$$l;fP4<>)09!N}gmS`6b01Wm?qe?-Jh6{`%x7ZxP6&m4906?`x}4Nc= z9$U@TwSl9a#QL^Rhxe49EP6CRv~9*6^L<7Y)HJJ3Egm$Al}m5vDCa zoT%h-y-+>lN?%d^nzM|g4?k(zAr;bROG8c&hB>!KMtt73<_vn#5EFr=ZoBg^Ao&~f3-50tJbJo zFxc+A(}wP_(R&4`m!!M+wXe{Jg?fKepdE3k>gnMTwX0VD40&Q>Yj4^S$)ftZuUawx zqZ}>>nP|*&gfic}Kns?`s=4JtB%t(D|M8>H!{eVbBaE z0^`90{^p+_O1M zB9q$~m|Gqxhz1SoVoy@t`q5hTnedC^SXP=|MzV8@Wz$%E;zrfw%Q9wLX+6o4^^z>VI%p1-GJ+2BF6g-J##aGS8iw)&cX7ovv;hTU++l2B0}YPY&(#J0wYw z&Pel8*Zvazwj>gT+P%N}rHP;* zo~h||;poFlq4M&r5zKBoW5>_OMn^6jvE^Gw3$-?tY}q2Tey*4oq!Zve9Q{y7XlX@i zj|7h~=uOidw`u=a56xCc<>WBrY!Iv692UyRh7FO_+a5Eew|QudR;{kt@)m&^2Xz?B z1Zcc+us#;7^nV#xZdfgI?#wm4xJ&f)5lkY#DXMaHM?Ggb zBc*u>hD%K-6LI+hZ{AG4ZN)Ic|9ur4-?Vdxem;_pSZp!aMf!9@W+4XFeQ>t+X0_Wk zMoE>qd2snM{?XATINc|89j$tPQeqZYtiImw+qXAhe}qyPZ^iWD#fMsa?nNn4Jw$TV zJiqH!dpIq|opCXBiA~;_C5f4KKaiD1MX-KqXb{smG(Xc=+KsGBCx80%A#KIB&hOs& zk4>7Wl@J_CZbTt!qnWH=fE<5u#X{|U8>14#CfmpZ3IB9tACVV z)k62cFl0&&wNLBK5!t`*i^TwofoEx9Q^vcHcYBkeYh}`JY-(5d>b8IqXzwfkl{Uh3ZF_8XC)<%K4e@A zkRzKQzP^ifzv}lR>r984xzdwUhhocxN|B34K}BPqYl*=eID~VBcL?c9JjIq`7l{n) zfN-g*k~P}ccPGX0?6YFE418Q3*c*(Gk4F~t@kuis%R3pccw$Xs67dwicvl?PKQQN> z?hWlWR1~=Q+0_+HZw2%e*k{dsF3M41i$)4QwbWnu{Y|Z_i@_y(Zh!d5fnL}s{;n)z zbPJr>Yqa-qbaZ_B^y%?3{Ns6+`Z@M%(O^K_o%;S2L_k)DbyQTd*EY8++uNA*bDVe*TocqSnp%;hV1)C@4J}7~hCN<{5b0fE zzk6B-0xT81Xe>6ObM^D_OdRq#O}|HefbZ2oy+$VpLpz^KMJPBReT!Cot}el#k8pei zRYlP79@c%I1h=dD+-G%&eFsxYxy&{{R z=1XholMxF=JZW#X#}K>x(h1vGWSwz6A&y)B9nFe(RFmk)3up_dtF9j&rf{Lx_fqOXlx!24-$s ziVq6Rk7-}Y)fsa5w+)Svu_@m|+oj)BLp%?YEjVkJ^xLE}YmI%Z__w&0uS#B@+|Ke( zlsVX&-@cQ%#FDXERkG(A{Pzg$$B$*XR#GU=FX6`$O;RCPRgVLk9^^EJX%GBM3lK%U zcIVud^g8x#x5vL_w+Qlm`Ty&c`n=MMCNf4U7aBz4{rv(x!63{&4MI{ITD%kK7>!7$ zusq(L|8%dX7vH|SQN=G7Kfbgg+Lnj{bLNPCnhd3>dni6fs9>7j2id1D&lP@f`AvEC zWdM(zk<$0ub7MDNwWmrL_;;s8_+(bGz6$@_drQC-RZNpf@Tk-Q1k6qGjq2^Lt}ffT zPhara4q2$fnAPXMaWr$pwk$5_s3PNJ3kxA^7&i$Ut7@eHE!HXxZ-!t{`u$!Mk9^kR z&3Iv4<t=DF#9)pF>YSyj`p>>WkBiK*9A z`WCud!z(_Q9qk50M!t$<&%<>(Q{E3hL1A?|CSGeh3HcnW344rypy))M?C5l(U&VVw z{^d_=h1X*|Jq?fVOGZC@SV`m}t6d?YriKERf9+={rJ-Z_%i~$%=&0Ymh17m->ev{K z2t~1qh8CL&;wRg|dS!ik`v(+8a& zbg1p({BTwpweuFXgP@=uMGQY0ZIGfpTQ1I-Ph?5xQ72jH_OK@B@W{aWNyqYuInSBn zIyZ`T#RlQTJL#g8*$Y-%a|W%un@`WJ6$uroYvrvf_DdH*?A4g)SM$|ZY}(zOG4Z}K zfs6fGdEoSSOa&%=VK_dF0{w?t^LFsTPQgl#S9&|n63cqebQUuHd%E9rQAILF}6}N^DUc!rAvbR7rpNh~SHV|-1Te8A{6TxG z*;1Bh*p)&~HZ2$!8JlR{)$NiA$#y2a(g#5dEyP zP`vE!R8H_K`wbSuVHbtYUiqTMo2!K@^^YBm&Q8#M2so;0(1+)gP9we!s1TmB)_vXV zneSTeB^trWtFF$#0(l^vy0Ln_->OlgB4sD=y!i+V&uF+$H7^^thPFUiBToEYJqoi3 zgwK$;?p>oCUmpc zy4&TO?8^Ub;E2(m=qn;+2{3G#>Du4lf2)?&&wX@w_!fTXp6mi8;%h`AAE`h5d-6ZtTwRL3uGLj8s#Mmv?Ha55qoceW-46@|t zLOrlA2uTd$;!rRVhveqo8k+MC&tLEE2+xuzRJL?+p72pd!&!(2drAh##&D=(nC*9o2SnU4(c>R%_{aCqRUCFP&kE@ zentXTwol%10U7TFb?U;L89E)zOQYdO^w4H$AfkBgTf8E2I-Ox@xE`yEM!Cqr z-M)~Gfatu)v0Piqs;Uo6RPTmn{Ws@?TYV<)oa+Y2X(=wL^1-T@oV*96DzgmHbKi91 zdLizu{e7D)P$Wa|R%z9)cQRKD6Cfw&a47pmmO3Rq94s(ElgOReO&saghE(>cCSt}Tq zn7kkK>eTG<4EeC6ss_Kfn4z=LB|SYigCQ{!Z98OdrH)4Qgr2;pcBL4mYEn*ae^k#e zIw~O|W1|R&(i)dqy#VvV+ZaCPD5q6tSl(_UE0rrVzdLiBDQKc1OLo@>DH;1ukBoLt zi=qJwdbgR2b8y`L1w=Q?4WJBfDCjLQ8Jo+6?4B zxk5=53(k1NQ{e)r+B1i4Q37S+!ZEe zLFRO>v*c_Gm){HUmoHg;P#n3%J#unY9bD!0L)AI0y|P38KK-nGVuV2~GE&4yg%Efj zD&?%cJ{Sb?Aw;x%f05$`6?R|hQP@<2m>Fyka40_YZ1yTRc^q^+l%Z_lIf^JTB9c-c zWu9pV6cqz2fLs+E2=`0$I#gkIj=;1G9T*?}9@!C~Ov+0*#0HL@UtpD0{d zN)s2+m*njkxsOOcx&ofTg9X%7yLkqkpP}R27|*ny?@oD;QMPlzmy6B&k@c8h4(aXt z%x0`$45G7K_#QC1yAbI0_3CP!u1=hmt^HBi<$4a-ZfWm!YIE%W>-Xbs3dH2fz zz$q{topPw_x;w&NXQ1T82fqd1))Rmo6fZnBFWar)^+t_=^{t(s&SOzb@1=-b5TnN~ zj?RSRM?_}>>8#{zUj)R;Dit%hp+oeQ)L^ZFox>_kH_CBB8eC)%mP>C+o>8Od_GA)z zKj_mKj@4P;+4w0ibp=q43*(cM)s1eho9$O`9%$G2N_l!!YBFr>+TVojGDb0YH`icv zI{L${E9q+^Wpc|tnB3tcJRA@T&BwzKVS6)Z9US7u^~~Z_qY1Z5)6M<3jR<>u$;etW z(-aDVkIcWgNzb$mbSO)qt<;^>_&&&zqq10%D81$=vZAX{V9@-FB${4*|4zb|tU~MV zWMNpvr}O>O!F?38TKpW;&tKR_8TOPQxczMk-?Y}Xl)~XsRG&y;k|&giiDor`>3xGA zh`-Yw7M4Ynu&X*wIVu$BX;bRDn+p!c7pAI&99&_!y(|Ri2R7U3{{Dh+DC?D+=r!IQ z=XB`(2J(Z-aluBp$wOL|POExe2vfe!G|B9IC%0*Avc5i+U!l*>e;+1zHI@KBg%dA z$O`7|y0rqzb5{?3l*PjOc5#GuF#Je1su#VsC2lutTOTdvmwzoTh^q=OTMh~^V;7(Y&sg2w*Gu; zD(6eoG6L)mKTUW|-h5-ZFJC14kipL%eC7sDxgFU{@SmK!t{8sK;Wu&~_v_`cOJCw{ zQKMrWeyNb2N=DWW4a|KP5Pm=>Xkto!OkMr0#OSB~-0sZ%Q4&iiU2n_z?6IRXW#%JTkXtwF-1UZJZ^9v-KPYNgS)#J_YF+!a@q6)e;%u~DZu|r zOG^`_bJ#x_6TJ=`|MA#x>_qJmSkY;#I5|;Bze@SezRQ0zxGUe%9B}^2nAknCu!TiA zI%C*V5b~%J!H7^)bORaKzmw{dRpj@?YA z`=Vyr{*kxkYr43%&x)cd)=9(?)YksfDE1SrD`@i~F#XZWpUDRN{zk#1Klt^2M+Yex zOR(bAos4h1YA*R{;W?+_L>^cl;ousFp#t;8hm4G#@JqkMKiP3^SC)O2y8f7i1oE`b zYFoN<-jtM=je_k-}mJ_CW6j{ z&FOJaPi}4t-4f;0@tS;I;x+BEQ<^e6i$_ec+o(n7hx{iLmt+~h;6qbK_4rwBaB{SB zj+0}0jB4~!Gl!RFUpDVOZiRL7tb|F!6l<{kf@EPaa4o**0;iWc6JKzx7H^R%mOy|k z%t(r<6=T+`Kea6^K|xznOj|*ncjx#7ou?Z{0XVPp4?cuFSHDh#Wj9Y5No4xB<#0xv zac%AH{!$JPI$ocmMKWA7xDdPW*B>bhWD}Ip5h|o&YPjong@{`j{4e?`8jY_#m??k7U=Jq| zdU@lktL?Y{nK3$4+mv9lJ@M`};;TBW($`RZSIsJ?FCj;JPl9T71ERs|#48~x7EJyPslc*y5s^~UXIRm_c1Vb_e5`?W;!eI2}Qjo~|u0-y&(h8So!mVkFf5>q*Q$fDy@Fp~PB#^M19yw$_b=%S4gblA_ z^q{Le14)TaOwLeTI%gx_$SeM6pJA~dGD~?B^(il%m7BBdWTbrx4kn}Ru=4~`1<83$ zPTjLrpS-2VCwsNByXF&i+XKdZpYW%RwBt1g(a01#*V_aJ)}{Z9==j(CKIBue+xH(P zcqDEVFYFwu>O3UcHoxeQ<#bU@1dhC^q3{dM&j~)ImZ8n~HFVQC+X4%~9%R$y^4|zW zgRHgwqHs%9Cw=>1>dGzJGQN{T%lq`pgrX5%TC=GI8!Shiz_Si9OOpCLO4Yjtt8S(Y zohM!~7){GgY)8JraHI-Uq1SKSdb$(lNsyAe3q$OZNmOq#FN5RaJrsawh22jI0Crk) z9@eG2WIS*PVWS(S*KG<*G_2NNU3OUpxBkS>)S(274GLov9{_#8y0(WPU+2iiF9@3;UKWXvoLfJs<%B?`K_| z${^4d=-`)-7c?$B(xFE88)E2z0ljqjvWaqmC=h(Lm+MRzp80(K{JPje?`kE~c_2E7 zXV=BO_@1B-JL3>JXMbdwZJpUwyn0tNLC&^lz;j3G2)#B_XHE4Mdk(M3%a?cE)O}2* zT(}|I6+#%mgrK{Du;U0y*ubmM3#8 z5K;f-h{(a~AOE>}PtM4j8_eY!jq$E1bnfqCrneh)rqaW06*nja#v@g3gDXdZ4W9nx z2>cRyc1G2J6v`S`G*Zq~3Kf+oQ7-d~SGVgyzVY>Ib?=GJkvY@om)WtgWqz0}pxw91 zxOe`-^HYALeFCr^l910fB;zWvp3S)EhD(1;xO-~rQd#M;CF6jtd{P815l)A;j50S0 z)^4w}sJ^`g6C5!~0-f!kXTAmvWE#jmL19kj_fvgaSrzg`m_sK}*VY76A9M&)37l7- zgMY!giS^ZoyHfZcE}Rw?vhJ0*?tiXTKY*k7NXpSLx&vG7Rq~~KIML4mL^GI!P8tcO zn!H6x=}VvMWf`NjRGf|j5*eN_ICd}OJ*VD4kyggIl`BUTB23CpUehq-d1YrY8;ln~ zoeaC^ZPn=N$A)sfZzUwU8yj1z8-{LzJJxLZ77vQkeuXM5FrF`?TG44FfNM;kbD^nG zu97CiV%yelZEbqi5@2ID1JMd#z#R#a!dl$O(2S-wI2`A;k`trTZm?UUwm(PFbKCm#%cMIFp_T??9#FyW;oTJu;M*~^w5)@hq2z#i`SN94 z?|OAZI7ZXz5x5lc%$5o)k(LLJa5^A)tXo4N?d+HUcib1EY9-0IUBeYOKB~fBgNqHn zb_~T#1druuRy1Xmcq-sd_Xvpupy)Evw#FN;EnT~D1L)}R+E`60Y){F$asSO|$Vho( z^42e_y*!7RjU*75>;(NetDd6xpcTA;rq^dn_L+7ovOo&bJZp#g(bUQ=GR3!p1WDuS z&9h)57!9@6*3`Uz($H7p6MF+TefHi-|Tbd7<0!6IHE34BsxHD{f^h07u2e|66 zuy&Yaj1?Ddu7k8F({gByH=iHv8XXuDiUH0ERexi1o5~?$r`Zxbx?*cjBSY5?@VU$Z zev(VW9-4zspB!NuofWeY;XMZ(2SDW5p1l(sRp*<_hlFdVf8h@A-Kf z)H_!pT?8NI%sz)xW|-umn8N8NK>{*{$6hGTj6xmLJoMzDc}wL#6%lA8D#riFGNlV0 zJ~!X1W?AEESWB_;2TX0wF$=lY-lxpEbn3A^O(cgVJi9JFeo$t@WB2nRBT~1*JIOO zE7`S2^@u){qUwWeU4`noSw+HB8Ynhy6(g7i?%thV$$YM!r{FHsTHDalwrVLWc=U`~ z9uid$eQCEbv6ql^>9DOQ964!v&FgAv7&%xN5h@G%FWuox!YNX&PZ_@Gu*yyB!u!Ev zZ(~rAXuUt68`o?vjY+@joA?vA9FtD7dY^Dt*wZ0O&C6z7gj_q6+E=zX0uS+}sMCYFqyD|@E}E4aDlZIyL6 zrfzAB9+Plx_7g*HD>9^91h1FYY$S)awZ2ZbwoYvvcB8N97}C=bKsXufPE|Z{4Pv^6 z*jrUeotF>u#A^|?x8HJDX+!Vdo4Zhcwh^7?5diXt?Vg);GApP^M1c@n5Ee7{s0wep zw5P}T!NNWHV)fe@tx>N)zw-jXyZ3UwASJnwxqwK^ecziZw+w=tcMBeQAeh3upQE68 z$$pOj)*0$kszGiZM^vGpj0xwA3L!y3iVLTwxq1WN`EI9M9+pS7bTZ;#;<`WynIhxz z1dv-Hm#IA~f2F@}k|cVg%Utr5IYk3#Okc5(c8K3|;B|61j|vAiRMj{Sou(5IXe9#t zGa}5VCw-G@jgBT1+R4n9CMFNTLvIRHL8pusnIq3OuDf$GJ8HYn>Ggb_Y-%7Z$N%XO zkS>L>FX7$$OJ3vn#IwRJ|5b@hVeoqSFlCy2fNQGK2}#LmzmNt;iXCM@r1NrJ!%%qq zTxrVRD>{-v4s7dN;Wz-Rc%Xp*KmS^Cbxb&IesP8%s8JfWlk3jTJW9%xt;RAmf}jf{ zPkMjps&o`l*3q^WL_yq;f? z$DI4Ow|+ws^D^`Q$}3X}qZhs&E7p-|`S}I%tCWMB@?7JA;di5QdhuhlFUN~hLbMF& zM{=?FweYI}IzNrtC<^iN=pg0&&ma62+Dwyqxx4P<18AOA$t!DJ*A9elQjT~t(b3&eHSECrirLKL_GO|>rNT<%`i zO4K#d6-uH2&fw&>gU4tm;* zc^lyCfv>1z$46?YP%s|<;7FYbk09Ssz1rf+hzS>@v}Su3%m-kB1JTy+i+iYF z6iaE8N+ZC+3j{Pxh6T4`NAnQtt55GTYePL`6c!r917V5*q9rt5Y#V zkC}1>{fa~*4)M{^9=zPq^W*j5p?}A&LFo7mdIS&~h3vKp6F%5^2tFR5fX$xn4m>_U zybv}@M+UP+AuOu^xMJqlF|#mAjZRazTKVIH;0=j_n}^EyA8_r#fi6+#djL;D3w z$aW{&o0=vTbW|qlAEYN(rf8FJZs5@TH`suy*qZb|iUMXC^p-IP^WRs27uFl0jvvb5 z*td$7WQGnh$`3x!mJdD`6{V5>_{nDegMAX7LfyNHIUx~|shR^JR!s9tw8peZl@?x4 zhQ76EoVQ^{29krHGi1rOTd{+q*GN$jKoIJ{w}rHo{|DtjwC!l5mhmbPwNi7RAqP?u zEfkbC8&$>99WT8lXbrAp(KO7#pe<{QZ&O5~ER={;9eB6T(zi|7D^#72o&YjO3bTTD zNr_@oRvG==tLmCpMGLJJ_Ro&#mrW7;G81-L(2kAwg&#`3RhyU+3(5g{(RJ985+x~VftZ+>;ob1l>}=7k z!*C*G2MWCgj+-=$=m%lM)>wE!}U(=uooEraGQ@YWo z6ctJT;p(Y5ItuJl5J7xg+28rZz;LL+Rj%;Sjtdm2^B^Jf<%rwrc2?Exqw+x8v| zyr>sXkm>^H#B(F}HaBC%GFA&qiZI5FHDZ!U~u(@EI(w)R9YSO zB-z}(7hsU$t=F6SLhT0+zwfCbi?%)eiwTOUq;6I9=3E@4oE+cu_n15!LDOD~zKZ)h zgA4^!;t}jv9Xn+u8ccXl+GF5fGdML2?>4sxiD{`#>hAy<xo~{I)g1bk80Kzo- zX>6C2Uj@ntZX*G=^8vK7aRA6du{sg|;Y#ZJ{lxa%uOQ#nX8cw-i0B8ZV zhpxB~))TVXLm@WGI{Dygh2Ky|`4a=q%j!XTFjmuUm23~1j<%Mo_d<+XcS z&6e_WXn|X&N*+p4Yw$=Rt5H@ApW5#KDel~(pNS}cL|MqX4=y!rITCk*T_M(WF+O%kR}GXR&v>d#%+i(nB6c&<~*}iwDvk{opt^> z|IK=5*39p>-ub=n^L*dW_jwpW+w36efW>dm!Gj`K+iHCZjZWICte;yQr>dF>e}-RwFRWQ8ZwjiOS&k`2 z%BR9!SJ2O#?26_xpYVVB9SG?qhoMf?tQjB=kePdAWxEjv(Q3WrqQTuPbzolS7bhY% z3kjhC)1PNzW#*QnPUe?enwe22J={0GuJJa3{;?ZQoG?eg1KbpR52`sX4|QZ@X65Ee z-`#J^zN;jem!IER&|`Sxmq_yMSFU?CXWsVd?mYD3fu_@25N_rECZD2hVUN>WS#h_w zS6QwQpbpAvj3%E2})JKk6$2hS_^2iP;TJftO*}rT%`G=YzC9f znC#Byg(Et<@n6No5>A*}aL>?v8sQ)`ija>_S)C~@@!h+3=QD|4MWqiDr6YWc8D=%* za#Hb~&7t@Y!vU9{3lDL^i9{@g*=SMk9*D`g0%|@`L;Bc23L3)vL(Ym;=MHOaTX_{? z6lx734-a+T*Uy(~=mOFdd5PHj(ba3AyRFSN#JAllYfUm3#f>31#{fP2G#lTxsIZ#^ z*gl-VqPxB6z3m10`3dRC?pRSDB=P|1$Oen2KWr`(GynA43CBzpKbIZxT&ChZH!Wt& z&0g|&KO$=eJzMG>&8Y{{>?fg(yVFBXG8`0`(KK%dPhAusqslwk+G-MbF9pAN~Z>bDHd7McDkK3M(s#OQ3@U65rda zJs7qii>t2jd|P=WZAn;Ywh_9<7mCZ&wY9P6$dfKw-hC6-mae@_x}%IDxb%&d0uBPz z0G;$W^HXjgM~?d2Zl}j;R6R+?vplyh2r^Pkz!_E4jkB3fkCiIfBd-|^?{pV)k^x*hG$47;l0M@~9eqvk zX+bm=p@e@1Dby^PfH17(0ow|Aatel3_TLY%DMkfPFY}gV`~B1SD#Q4AcqhR}(7>Tw z;Ogw72dQoDD8dS~#n~92a2k}OkiePV?nxcpjNG@;kyKx}h=%%a<< zPT8-HaCvx$_h4anhi2!aRH-|uiLHG>L$8aA0_b8u%{(FRkd`(AxPD_Kx$sy0_XDuC z^6mM?h`6&=?hd$1q8k`xy=8v2r(K}l@*7;c0ezL`C~sl~xTx$W2)^=it1)EyPtwN7 z|G2JxuEk22IXjDP%@yTRORUQyB^G2jb#ZD_4#*7C)Z@P5}d|9}#`?af7%jr08)8-r!8u|-I`5j!A0k=Y?_T}3(9t0)s zde~p9-?0|b`=4)iGrsgWEXdQUR;AOuIx4n8OL(WFnd7g|Y1P@;s+!&?YLZO=bg~Vc zc^8A)pP}2udyA)gDcwnTN*#F8C5Gkl&Q9pcTkd33oI)phfA0HI^|T`#~5KP>KsnP-6*&hWR2N;eQWaH&^pX~t0!$#BEikR{7ht28hVxuZG{;Ry|jSqRw z=a9yBwr#gGPjz%m-w;x#>0!| zs+8KCA`-l8RUcN@RbJ#88Y!p5QyEKwp^3AEv3dWe4MF+V;d=XQ%6FX2jmy~dNtteC zdSB|G^zFuO{$L)zc*SSNziuO#Xrb?{7(^QkyRN0LXA!pYi!p#Rt^-ZEifjn z69<|PvCi9}{4wmju42XC;`&?d;H%=rmAEtvP>0AwAZGE`)X9IRN`9Q(d#W5BI_>& zT)`(iq&OG6J--``Tjv~MahTIve&E@{a}7Pm8TyH2l6o=teA-E=5>>F3tA8!heK_iC z1Eejod|wJy)o&(!ai0HwJ~k3l#q9W2p=b3{UbJiwIpC~miyW=s4xBW$Fd`g9U;8)q CbJ} 1){ + str_argv = argv[1]; + } + bindtextdomain(app_name.c_str(), "/usr/share/locale/"); + bind_textdomain_codeset(app_name.c_str(), "UTF-8"); + textdomain(app_name.c_str()); + if (str_argv.find("--socket-id") != std::string::npos) { + auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example.plug"); + auto builder = Gtk::Builder::create_from_file(path_glade); + Glib::init(); + setlocale(LC_ALL, ""); + Glib::OptionContext context; + + CmdArgParser parser{ + "Socket ID", + "Command line argument for socket ID communication.", + "No help available, sorry" + }; + + context.set_main_group(parser); + context.parse(argc, argv); + + ::Window socketID = parser.GetSocketID(); + + // Handle plug: + SettingsPlug plug{socketID, builder}; + plug.show(); + + app->run(plug); + return 0; + } + else if (str_argv.find("-") != std::string::npos || argc == 1) { + int len_argv = 1; + auto app = Gtk::Application::create(len_argv, argv, "org.gtkmm.example.plug"); + auto builder = Gtk::Builder::create_from_file(path_glade); + pars_flag(1, argc, argv); + MainWindow* wnd = nullptr; + builder->get_widget_derived("MainWindow", wnd); + auto r = app->run(*wnd); + delete wnd; + return r; + } + +} +void pars_flag(int index_start, int argc, char* argv[]) { + string str_argv = ""; + for (int i = index_start; i const& builder) + : Gtk::ApplicationWindow(obj), builder{builder} { + this->builder = builder; + this->settings(); +} + +MainWindow::MainWindow(Glib::RefPtr const& builder) { + this->builder = builder; + this->settings(); +} + +void MainWindow::settings() { + this->get_builder(); + this->lacalization(); + this->add_CSS(); + btnBoxAboutDialog->set_visible(false); + Gtk::Widget *boxWidget; + builder->get_widget("boxColor", boxWidget); + HeadOverlay->add_overlay(*boxWidget); + ubl_make_plugs(boxSave, boxButton, socket_ext_id_I, socket_trd_id_I); + if (geteuid() == 0) { + } + else { + boxFuncs->set_sensitive(false); + btnSave->set_sensitive(false); + btnLoad->set_sensitive(false); + imgInfo->set_from_icon_name("com.ublinux.ubl-settings-datetime.warning", Gtk::ICON_SIZE_MENU); + info_status_app("boxInfoMessError"); + lblWarning->set_text(gettext("The program must be run as root")); + } +} + +void MainWindow::lacalization() { + time_t now = time(0); + tm *ltm = localtime(&now); + unsigned int year = 1900+ ltm->tm_year; + string str_authors = string(gettext("Copyright © UBSoft LLC, 2022 - ")) + to_string(year); + aboutWindows->set_copyright(str_authors); + aboutWindows->set_comments(gettext("Date and Time")); + aboutWindows->set_website(gettext("https://wiki.ublinux.com")); + aboutWindows->set_version(gettext(version_application.c_str())); + aboutWindows->set_website_label(gettext("Project Home Page")); + generalTabLabel->set_text(gettext("General settings")); + GroupsTabLabel->set_text(gettext("Groups")); + UsersTabLabel->set_text(gettext("Users")); + generalDeviceLabel->set_text(gettext("Device:")); + generalFileSystemLabel->set_text(gettext("File system:")); + generalGroupsFrameLabel->set_text(gettext("quotas for groups")); + generalGroupsEnableCheck->set_label(gettext("Enable")); + generalUsersEnableCheck->set_label(gettext("Enable")); + generalUsersFrameLabel->set_label(gettext("quotas for users")); + generalGroupsSizeLabel->set_text(gettext("Excess size delay period")); + generalGroupsFilesLabel->set_text(gettext("Excess files delay period")); + generalUsersSizeLabel->set_text(gettext("Excess size delay period")); + generalUsersFilesLabel->set_text(gettext("Excess files delay period")); + generalGroupsSizeWeeksLabel->set_text(gettext("weeks")); + generalGroupsFilesWeeksLabel->set_text(gettext("weeks")); + generalUsersSizeWeeksLabel->set_text(gettext("weeks")); + generalUsersFilesWeeksLabel->set_text(gettext("weeks")); + generalGroupsSizeDaysLabel->set_text(gettext("days")); + generalGroupsFilesDaysLabel->set_text(gettext("days")); + generalUsersSizeDaysLabel->set_text(gettext("days")); + generalUsersFilesDaysLabel->set_text(gettext("days")); + generalGroupsSizeHoursLabel->set_text(gettext("hours")); + generalGroupsFilesHoursLabel->set_text(gettext("hours")); + generalUsersSizeHoursLabel->set_text(gettext("hours")); + generalUsersFilesHoursLabel->set_text(gettext("hours")); + generalGroupsSizeMinutesLabel->set_text(gettext("minutes")); + generalGroupsFilesMinutesLabel->set_text(gettext("minutes")); + generalUsersSizeMinutesLabel->set_text(gettext("minutes")); + generalUsersFilesMinutesLabel->set_text(gettext("minutes")); + lblLoad->set_text(gettext("Load")); + lblSave->set_text(gettext("Save")); +} + +void MainWindow::add_CSS() { + Glib::RefPtr cssProvider = Gtk::CssProvider::create(); + cssProvider->load_from_path(path_css); + Glib::RefPtr styleContext = Gtk::StyleContext::create(); + Glib::RefPtr screen = Gdk::Screen::get_default();//get default screen + styleContext->add_provider_for_screen(screen, cssProvider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);//add provider for screen in all application + HeadBackgroundImage->set(path_img_head_background); + //Glib::RefPtr headerTopic_css = headerTopic->get_style_context(); + Glib::RefPtr boxButton_css = boxButton->get_style_context(); + Glib::RefPtr boxSave_css = boxSave->get_style_context(); + Glib::RefPtr headerBar_css = headerBar->get_style_context(); + if (socket_trd_id_I == 0 && socket_ext_id_I == 0){ + boxButton_css->add_class("bkim_no_plug"); + boxSave_css->add_class("bkim_no_plug"); + } + + //headerTopic_css->add_class("textHead"); +} + + + +void MainWindow::get_builder() { + builder->set_translation_domain(path_app); + builder->get_widget("headerTopic", headerTopic); + builder->get_widget("boxButton", boxButton); + builder->get_widget("boxSave", boxSave); + builder->get_widget("aboutWindows", aboutWindows); + builder->get_widget("HeadOverlay", HeadOverlay); + builder->get_widget("headerBar", headerBar); + builder->get_widget("boxFuncs", boxFuncs); + builder->get_widget("btnLoad", btnLoad); + builder->get_widget("btnSave", btnSave); + builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog); + builder->get_widget("HeadBackgroundImage", HeadBackgroundImage); + builder->get_widget("imgInfo", imgInfo); + builder->get_widget("lblWarning", lblWarning); + builder->get_widget("boxInfoError", boxInfoError); + builder->get_widget("imgInfo", imgInfo); + builder->get_widget("generalTabLabel", generalTabLabel); + builder->get_widget("GroupsTabLabel", GroupsTabLabel); + builder->get_widget("UsersTabLabel", UsersTabLabel); + builder->get_widget("generalDeviceLabel", generalDeviceLabel); + builder->get_widget("generalGroupsFrameLabel", generalGroupsFrameLabel); + builder->get_widget("generalGroupsSizeLabel", generalGroupsSizeLabel); + builder->get_widget("generalGroupsFilesLabel", generalGroupsFilesLabel); + builder->get_widget("generalUsersFrameLabel", generalUsersFrameLabel); + builder->get_widget("generalUsersSizeLabel", generalUsersSizeLabel); + builder->get_widget("generalUsersFilesLabel", generalUsersFilesLabel); + builder->get_widget("generalGroupsSizeWeeksLabel", generalGroupsSizeWeeksLabel); + builder->get_widget("generalGroupsFilesWeeksLabel", generalGroupsFilesWeeksLabel); + builder->get_widget("generalUsersSizeWeeksLabel", generalUsersSizeWeeksLabel); + builder->get_widget("generalUsersFilesWeeksLabel", generalUsersFilesWeeksLabel); + builder->get_widget("generalGroupsSizeDaysLabel", generalGroupsSizeDaysLabel); + builder->get_widget("generalGroupsFilesDaysLabel", generalGroupsFilesDaysLabel); + builder->get_widget("generalUsersSizeDaysLabel", generalUsersSizeDaysLabel); + builder->get_widget("generalUsersFilesDaysLabel", generalUsersFilesDaysLabel); + builder->get_widget("generalGroupsSizeHoursLabel", generalGroupsSizeHoursLabel); + builder->get_widget("generalGroupsFilesHoursLabel", generalGroupsFilesHoursLabel); + builder->get_widget("generalUsersSizeHoursLabel", generalUsersSizeHoursLabel); + builder->get_widget("generalUsersFilesHoursLabel", generalUsersFilesHoursLabel); + builder->get_widget("generalGroupsSizeMinutesLabel", generalGroupsSizeMinutesLabel); + builder->get_widget("generalGroupsFilesMinutesLabel", generalGroupsFilesMinutesLabel); + builder->get_widget("generalUsersSizeMinutesLabel", generalUsersSizeMinutesLabel); + builder->get_widget("generalUsersFilesMinutesLabel", generalUsersFilesMinutesLabel); + builder->get_widget("generalFileSystemLabel", generalFileSystemLabel); + builder->get_widget("generalGroupsEnableCheck", generalGroupsEnableCheck); + builder->get_widget("generalUsersEnableCheck", generalUsersEnableCheck); + builder->get_widget("lblLoad", lblLoad); + builder->get_widget("lblSave", lblSave); + builder->get_widget("btnSettings", btnSettings); +} + +void MainWindow::event() { + btnLoadGlob->signal_activate().connect([&]() {}); + btnLoadLocal->signal_activate().connect([&]() {}); + btnSynopsis->signal_activate().connect([&]() {}); + btnAbout->signal_activate().connect([&]() {}); + btnSaveLocalGlob->signal_activate().connect([&]() {}); + btnSaveGlob->signal_activate().connect([&]() {}); + btnSaveLocal->signal_activate().connect([&]() {}); +} + +void MainWindow::info_status_app(string stule) { + Glib::RefPtr boxInfo = boxInfoError->get_style_context(); + boxInfo->remove_class("boxInfoMessOK"); + boxInfo->remove_class("boxInfoMessError"); + boxInfo->add_class(stule); +} + +SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr builder) + :Gtk::Plug{p_socketID} { + MainWindow* wnd = nullptr; + builder->get_widget_derived("window", wnd); + builder->get_widget("plugBox", plugBox); + plugBox->get_parent()->remove(*plugBox); + add(*plugBox); + show_all_children(); +} + +void help() { + string version = string(gettext("ubl-settings-quotas version: ")) + version_application + "\n"; + cout << version.c_str(); + string help; + help = "GTK settings quotas. for UBLinux\n\n" + "Usage: ubl-settings-quotas [OPTIONS...]\n" + "Options:\n" + " -h, --help Show this help\n" + " -V, --version Show package version\n"; + cout << gettext(help.c_str()); + +} + diff --git a/source/ubl-settings-quotas.h b/source/ubl-settings-quotas.h new file mode 100644 index 0000000..72c223f --- /dev/null +++ b/source/ubl-settings-quotas.h @@ -0,0 +1,117 @@ +#ifndef UBL_SETTINGS_QUOTAS_H +#define UBL_SETTINGS_QUOTAS_H +#include +#include +#include +#include +#include + +#include "ubl-util-standard.c" +#include "util.h" + + +using namespace std; + +extern const string path_app; +extern const string path_glade; +extern const string app_name; +extern const string path_locale; +extern const string path_css; +extern const string path_img_head_background; +extern int socket_ext_id_I; +extern int socket_trd_id_I; +extern string version_application; +class CmdArgParser : public Glib::OptionGroup { +public: + CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help); + ::Window GetSocketID() const; +private: + int m_socketID = 0; + +}; + +class MainWindow : public Gtk::ApplicationWindow { + public: + Glib::RefPtr builder; + template + struct Result{ + Type response; + int error; + }; + Gtk::Label *headerTopic; + Gtk::AboutDialog *aboutWindows; + Gtk::Overlay *HeadOverlay; + Gtk::HeaderBar *headerBar; + Gtk::Box *boxSave; + Gtk::Box *boxButton; + Gtk::Box *boxFuncs; + Gtk::MenuButton *btnSave; + Gtk::MenuButton *btnLoad; + Gtk::MenuButton *btnSettings; + Gtk::ButtonBox *btnBoxAboutDialog; + Gtk::Image *HeadBackgroundImage; + Gtk::Image *imgInfo; + Gtk::Box *boxInfoError; + Gtk::Label *lblWarning; + Gtk::Label *generalTabLabel; + Gtk::Label *UsersTabLabel; + Gtk::Label *GroupsTabLabel; + Gtk::Label *generalDeviceLabel; + Gtk::Label *generalGroupsFrameLabel; + Gtk::Label *generalGroupsSizeLabel; + Gtk::Label *generalGroupsFilesLabel; + Gtk::Label *generalUsersFrameLabel; + Gtk::Label *generalUsersSizeLabel; + Gtk::Label *generalUsersFilesLabel; + Gtk::Label *generalGroupsSizeWeeksLabel; + Gtk::Label *generalGroupsFilesWeeksLabel; + Gtk::Label *generalUsersSizeWeeksLabel; + Gtk::Label *generalUsersFilesWeeksLabel; + Gtk::Label *generalGroupsSizeDaysLabel; + Gtk::Label *generalGroupsFilesDaysLabel; + Gtk::Label *generalUsersSizeDaysLabel; + Gtk::Label *generalUsersFilesDaysLabel; + Gtk::Label *generalGroupsSizeHoursLabel; + Gtk::Label *generalGroupsFilesHoursLabel; + Gtk::Label *generalUsersSizeHoursLabel; + Gtk::Label *generalUsersFilesHoursLabel; + Gtk::Label *generalGroupsSizeMinutesLabel; + Gtk::Label *generalGroupsFilesMinutesLabel; + Gtk::Label *generalUsersSizeMinutesLabel; + Gtk::Label *generalUsersFilesMinutesLabel; + Gtk::Label *generalFileSystemLabel; + Gtk::Label *lblLoad; + Gtk::Label *lblSave; + Gtk::CheckButton *generalGroupsEnableCheck; + Gtk::CheckButton *generalUsersEnableCheck; + Gtk::MenuItem *btnLoadGlob; + Gtk::MenuItem *btnLoadLocal; + Gtk::MenuItem *btnSynopsis; + Gtk::MenuItem *btnAbout; + Gtk::MenuItem *btnSaveLocalGlob; + Gtk::MenuItem *btnSaveGlob; + Gtk::MenuItem *btnSaveLocal; + public: + MainWindow(BaseObjectType* obj, Glib::RefPtr const& builder); + MainWindow(Glib::RefPtr const& builder); + void settings(); + void lacalization(); + void add_CSS(); + void get_builder(); + void event(); + void info_status_app(string stule); + + +}; + +class SettingsPlug : public Gtk::Plug{ +public: + Gtk::Window *window; + SettingsPlug(::Window p_socketID, Glib::RefPtr builder); + +private: + Gtk::Widget *plugBox; + Gtk::Widget *parent; +}; +void help(); +#endif diff --git a/source/ubl-util-standard.c b/source/ubl-util-standard.c new file mode 100644 index 0000000..3b753b1 --- /dev/null +++ b/source/ubl-util-standard.c @@ -0,0 +1,91 @@ +#include "ubl-util-standard.h" +#ifndef __cplusplus +#ifndef UBL_GET_STANDARD_UI +#define UBL_GET_STANDARD_UI + + +inline returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id){ + returnstruct *ret=(returnstruct*)malloc(sizeof(returnstruct*)); + if (left_plug_id>0&&LeftWidget){ + GtkWidget *plug=gtk_plug_new(left_plug_id); + GtkWidget *toplug=LeftWidget; + if (gtk_widget_get_parent(GTK_WIDGET(toplug))){ + g_object_ref(G_OBJECT(toplug)); + GtkWidget *parent=gtk_widget_get_parent(toplug); + gtk_container_remove(GTK_CONTAINER(parent),toplug); + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + } else + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + gtk_widget_show(GTK_WIDGET(plug)); + ret->plugLeft=plug; + } + if (right_plug_id>0&&RightWidget){ + GtkWidget *plug=gtk_plug_new(right_plug_id); + GtkWidget *toplug=RightWidget; + if (gtk_widget_get_parent(GTK_WIDGET(toplug))){ + g_object_ref(G_OBJECT(toplug)); + GtkWidget *parent=gtk_widget_get_parent(toplug); + gtk_container_remove(GTK_CONTAINER(parent),toplug); + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + } else + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + gtk_widget_show(GTK_WIDGET(plug)); + ret->plugRight=plug; + } + return ret; +} + +#endif + +#else + + +inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id){ + if (left_plug_id>0&&LeftWidget){ + GtkWidget *plug=gtk_plug_new(left_plug_id); + GtkWidget *toplug=GTK_WIDGET(LeftWidget->gobj()); + {GdkScreen *screen = gtk_widget_get_screen(plug); + gtk_widget_set_app_paintable(plug,TRUE); + GdkVisual *colormap = gdk_screen_get_rgba_visual(screen); + gtk_widget_set_visual(plug, colormap);} + {GdkScreen *screen = gtk_widget_get_screen(toplug); + gtk_widget_set_app_paintable(toplug,TRUE); + GdkVisual *colormap = gdk_screen_get_rgba_visual(screen); + gtk_widget_set_visual(toplug, colormap);} + if (gtk_widget_get_parent(GTK_WIDGET(toplug))){ + g_object_ref(G_OBJECT(toplug)); + GtkWidget *parent=gtk_widget_get_parent(toplug); + gtk_container_remove(GTK_CONTAINER(parent),toplug); + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + } else + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + gtk_widget_show(GTK_WIDGET(plug)); + gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim"); + gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim"); + gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar"); + } + if (right_plug_id>0&&RightWidget){ + GtkWidget *plug=gtk_plug_new(right_plug_id); + GtkWidget *toplug=GTK_WIDGET(RightWidget->gobj()); + {GdkScreen *screen = gtk_widget_get_screen(plug); + gtk_widget_set_app_paintable(plug,TRUE); + GdkVisual *colormap = gdk_screen_get_rgba_visual(screen); + gtk_widget_set_visual(plug, colormap);} + {GdkScreen *screen = gtk_widget_get_screen(toplug); + gtk_widget_set_app_paintable(toplug,TRUE); + GdkVisual *colormap = gdk_screen_get_rgba_visual(screen); + gtk_widget_set_visual(toplug, colormap);} + if (gtk_widget_get_parent(GTK_WIDGET(toplug))){ + g_object_ref(G_OBJECT(toplug)); + GtkWidget *parent=gtk_widget_get_parent(toplug); + gtk_container_remove(GTK_CONTAINER(parent),toplug); + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + } else + gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug)); + gtk_widget_show(GTK_WIDGET(plug)); + gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim"); + gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim"); + gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar"); + } +} +#endif \ No newline at end of file diff --git a/source/ubl-util-standard.h b/source/ubl-util-standard.h new file mode 100644 index 0000000..3209625 --- /dev/null +++ b/source/ubl-util-standard.h @@ -0,0 +1,20 @@ +#ifndef __cplusplus +#include +#include + +typedef struct { + GtkWidget *plugLeft; + GtkWidget *plugRight; + + +} returnstruct; +static returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id); +#else +#include +#include +#include +#include + + +static void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id); +#endif \ No newline at end of file diff --git a/source/util.cc b/source/util.cc new file mode 100644 index 0000000..d2ca2dd --- /dev/null +++ b/source/util.cc @@ -0,0 +1,195 @@ +#include "util.h" + + +array, 5> read_csv(const string& filename) { + array, 5> array_vectors; + vector vec_option; + vector vec_opcision; + ifstream file(filename); + string line; + char delimiter = ','; + getline(file, line); + while (getline(file, line)) { + stringstream stream(line); + string option; + string opcision; + getline(stream, option, delimiter); + string line_local = stream.str(); + if (line_local.find("\"") != string::npos) { + string str_delimiter = "\""; + vector point = find_all(line_local, str_delimiter); + size_t len = point.size(); + if (len >= 2) { + int index_start = point[len-2]; + int index_end = point[len-1]; + opcision = line_local.substr(index_start, index_end); + index_end = opcision.find("\""); + if (opcision.find("\"") != string::npos) { + opcision.replace(index_end, opcision.length(), ""); + } + + } + else { + opcision = "error"; + } + + + } + else{ + getline(stream, opcision, delimiter); + } + + + vec_option.push_back(option); + vec_opcision.push_back(opcision); + } + + array_vectors[0] = vec_option; + array_vectors[1] = vec_opcision; + return array_vectors; +} + +string call(string cmd) { + FILE *fp; + int status; + char path[PATH_MAX] = {0}; + fp = popen(cmd.c_str(), "r"); + if (fp == NULL) { + exit(1); + } + while (fgets(path, PATH_MAX, fp) != NULL) { + break; + } + status = pclose(fp); + if (status == -1) { + exit(1); + } + return path; +} +vector find_all(string &str_ntp, string substr) { + size_t index = 0; + vector sub_index; + while ((index = str_ntp.find(substr, index)) != std::string::npos) { + index += substr.length(); + sub_index.push_back(index); + } + return sub_index; +} + +void str_remove(std::string& source, std::string to_remove) { + string::size_type n = to_remove.length(); + for (string::size_type i = source.find(to_remove); + i != string::npos; + i = source.find(to_remove)) + source.erase(i, n); +} + +void str_replace_all(std::string& str_base, string str_find, string sReplacement) +{ + size_t pos = 0, fpos; + while ((fpos = str_base.find(str_find, pos)) != std::string::npos) + { + str_base.replace(fpos, str_find.size(), sReplacement); + pos = fpos + sReplacement.size(); + } +} +std::vector split(std::string text, char delim) { + std::string line; + std::vector vec; + std::stringstream ss(text); + while(std::getline(ss, line, delim)) { + vec.push_back(line); + } + return vec; +} +unsigned short read_uid_min_max(string filename, string search) { + std::string line; + int uid = 0; + string remove_tab = "\t"; + string remove_space = " "; + std::ifstream in(filename); // окрываем файл для чтения + if (in.is_open()){ + while (getline(in, line)){ + try{ + if (line.find(search) != string::npos && (line.find("SYS_"+search) == string::npos)) { + str_remove(line, search); + str_remove(line, remove_space); + str_remove(line, remove_tab); + uid = atoi(line.c_str()); + } + } + catch (int x) { + if (search == "UID_MIN"){ + uid = 1000; + } + else{ + uid = 65534; + } + + } + + } + } + else{ + if (search == "UID_MIN") { + uid = 1000; + } + else{ + uid = 65534; + } + } + in.close(); + return uid; + +} + +vector pars_users() { + vector vec_users; + unsigned short uid_min = read_uid_min_max("/etc/login.defs", "UID_MIN"); + unsigned short uid_max =read_uid_min_max("/etc/login.defs", "UID_MAX"); + while (true) { + errno = 0; + passwd* entry = getpwent(); + if (!entry) { + if (errno) { + break; + } + break; + } + if ((entry->pw_uid >= uid_min && entry->pw_uid < uid_max) || entry->pw_uid == 0) { + vec_users.push_back(string(entry->pw_name)); + } + } + endpwent(); + return vec_users; +} + +string read_passwd(string username) { + string passwd = ""; + std::string line; + std::ifstream in("/etc/shadow"); + if (in.is_open()) { + while (getline(in, line)) { + if (line.find(username) != string::npos) { + size_t index_start = line.find(":"); + if (index_start != string::npos) { + size_t index_end = line.find(":", index_start + 1); + passwd = line.substr(index_start+1, index_end - index_start-1); + break; + } + } + } + } + in.close(); + return passwd; +} + +int synopsis_show(string str_link) { + // gettext("https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/") + string cmd = "xdg-open " + str_link; + if (geteuid() == 0) { + string response_user = getlogin(); + cmd = "su -l " + response_user + " -c \" DISPLAY=$DISPLAY " + cmd + " \""; + } + return system(cmd.c_str()); +} \ No newline at end of file diff --git a/source/util.h b/source/util.h new file mode 100644 index 0000000..6c569e5 --- /dev/null +++ b/source/util.h @@ -0,0 +1,41 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + + +struct Passwd { + string user; + int uid; +}; + +std::array, 5> read_csv(const std::string& filename); +std::string call(std::string cmd); +vector find_all(string &str_ntp, string substr); +void str_remove(std::string& source, std::string to_remove); +void str_replace_all(string &str_base, string str_find, string str_replace); +std::vector split(std::string text, char delim); +unsigned short read_uid_min_max(string filename, string search); +vector pars_users(); +string read_passwd(string username); +int synopsis_show(string str_link); diff --git a/ubl-settings-quotas-banner.png b/ubl-settings-quotas-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb67cbc38babeaf498d981356cf7e77e2741f12 GIT binary patch literal 33872 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 { + border-color:alpha(@theme_text_color, 0.01); +} +.menuitembottom{ + margin-top:0px; + margin-bottom:3px; +} +.menuitemmiddle{ + margin-top:0px; + margin-bottom:0px; +} + +.menuitemtop{ + margin-bottom:0px; +} +.menuitemtop *{ + margin:2px 2px 0 2px; + padding: 5px 10px 3px 5px; +} +.menuitemmiddle *{ + margin:0 2px 0 2px; + padding: 3px 10px 3px 5px; +} +.menuitembottom *{ + margin:0 2px 2px 2px; + padding: 3px 10px 5px 5px; +} +.menuitemtop:hover { + background:@theme_bg_color; + border-color:inherit; + border-left-width:inherit; + border-right-width:inherit; +} +.menuitemmiddle:hover { + background:@theme_bg_color; + border-color:inherit; + border-left-width:inherit; + border-right-width:inherit; +} +.menuitembottom:hover { + background:@theme_bg_color; + border-color:inherit; + border-left-width:inherit; + border-right-width:inherit; + +} +.menuitemtop:hover* { + margin:2px 2px 0 2px; + padding: 5px 10px 3px 5px; + background:@theme_selected_bg_color; + border-radius:2px; +} +.menuitemmiddle:hover* { + margin:0 2px 0 2px; + padding: 3px 10px 3px 5px; + background:@theme_selected_bg_color; + border-radius:2px; +} +.menuitembottom:hover* { + margin:0 2px 2px 2px; + padding: 3px 10px 5px 5px; + background:@theme_selected_bg_color; + border-radius:2px; +} + +.workingbg, #workingbg { + background-color:@theme_base_color; +} +.workingbg.view.cell:selected { + background-color:@theme_selected_bg_color; +} +.workingbg.view.cell:hover { + background-color:darker(@theme_selected_bg_color); + color:@theme_selected_text_color; + border-radius:3px; +} +.bkim { + transition: 200ms ease-out; + background-image: none; +} +.noborder{ +border:none; +} + +.bkim{ +opacity:0.99; +border:none; +} + +.bkim_no_plug{ +background-color: transparent; +opacity:0.99; +} + + diff --git a/ubl-settings-quotas.desktop b/ubl-settings-quotas.desktop new file mode 100644 index 0000000..ddea473 --- /dev/null +++ b/ubl-settings-quotas.desktop @@ -0,0 +1,15 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=ubl-settings-quotas +Name[ru]=Настройки квот +GenericName=ubl-settings-quotas +GenericName[ru]=Настройки квот +Comment=ubl-settings-quotas +Comment[ru]=Приложение для управления настройками квот +Type=Application +Exec=ubl-settings-quotas +Icon=com.ublinux.ubl-settings-quotas +Terminal=false +X-XfcePluggable=true +X-UBLPluggable=true +Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings; diff --git a/ubl-settings-quotas.glade b/ubl-settings-quotas.glade new file mode 100644 index 0000000..33419f1 --- /dev/null +++ b/ubl-settings-quotas.glade @@ -0,0 +1,3383 @@ + + + + + + + + + + + + False + UBConfig - Quotas + com.ublinux.ubl-settings-quotas + + + True + False + 5 + 5 + 5 + 5 + vertical + + + Name + True + True + False + start + True + + + False + True + 0 + + + + + Quotas + True + True + False + start + True + + + False + True + 1 + + + + + Size + True + True + False + start + True + + + False + True + 2 + + + + + Soft limit (size) + True + True + False + start + True + + + False + True + 3 + + + + + Hard limit (size) + True + True + False + start + True + + + False + True + 4 + + + + + Hard limit (size) delay + True + True + False + start + True + + + False + True + 5 + + + + + Hard limit (size) activation time + True + True + False + start + True + + + False + True + 6 + + + + + Files + True + True + False + start + True + + + False + True + 7 + + + + + Soft limit (files) + True + True + False + start + True + + + False + True + 8 + + + + + Hard limit (files) + True + True + False + start + True + + + False + True + 9 + + + + + Hard limit (files) delay + True + True + False + start + True + + + False + True + 10 + + + + + Hard limit (file) activation time + True + True + False + start + True + + + False + True + 11 + + + + + True + False + end + 5 + 5 + True + + + Cancel + True + True + True + center + + + False + True + 0 + + + + + Save + True + True + True + center + + + False + True + 1 + + + + + False + True + 12 + + + + + + + + + + + + + Byte + + + Kb + + + Mb + + + Gb + + + Tb + + + + + False + False + True + center + com.ublinux.ubl-settings-quotas + dialog + True + Quotas Manager + 1.1 + Copyright © 2022 - 2023, UBSoft LLC + Sum up system information + https://ublinux.ru/ + Project Home Page + Это приложение распространяется без каких-либо гарантий. +Подробнее в <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, версии 2 или позднее</a>. + UBGroup + UBGroup + com.ublinux.ubl-settings-quotas + True + gpl-2-0 + + + True + False + vertical + 2 + + + False + end + + + False + False + 1 + + + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 2 + System quotas + + + + + + + + + + True + False + + + 90 + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 69 + com.ublinux.ubl-settings-quotas + + + False + True + 0 + + + + + True + False + + + True + False + + + True + False + vertical + + + 255 + True + False + Configuration of disk quotas parameters for system groups and users + + + + + + + + True + True + 0 + + + + + False + True + 0 + + + + + True + True + 0 + + + + + True + True + 1 + + + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + + True + False + False + False + + + True + False + Help + + + + + + True + False + About + True + + + + + True + False + + + True + False + Load from global configuration + True + + + + + True + False + Load from local configuration + True + + + + + True + False + + + True + False + Save to global and local configuration + True + + + + + True + False + Save to global configuration + True + + + + + True + False + Save to local configuration + True + + + + + False + com.ublinux.ubl-settings-quotas + + + True + False + vertical + + + True + False + vertical + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 25 + 1 + + + False + True + 0 + + + + + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + + + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + + + 81 + True + False + + + True + False + start + + + -1 + + + + + False + True + 0 + + + + + False + True + 1 + + + + + True + False + 5 + 5 + 5 + 5 + True + True + vertical + + + True + True + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + + + 135 + True + False + 5 + 5 + Device: + 0 + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + 135 + True + False + 5 + 5 + File system: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + Enable + True + True + False + start + True + + + False + True + 0 + + + + + True + False + 20 + + + True + False + vertical + + + True + False + Excess size delay period + 0 + + + False + True + 0 + + + + + True + False + Excess files delay period + 0 + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 2 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeHoursSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesHoursSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 3 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeMinutesSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesMinutesSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 4 + + + + + False + True + 1 + + + + + + + + + True + False + quotas for groups + 0 + + + + + False + True + 1 + + + + + True + False + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + Enable + True + True + False + start + True + + + False + True + 0 + + + + + True + False + 20 + + + True + False + vertical + + + True + False + Excess size delay period + 0 + + + False + True + 0 + + + + + True + False + Excess files delay period + 0 + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 2 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeHoursSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesHourSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 3 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeMinutesSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesMinuteSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 4 + + + + + False + True + 1 + + + + + + + + + True + False + quotas for users + 0 + + + + + False + True + 2 + + + + + + + True + False + General settings + + + False + + + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + 5 + 5 + File system: + + + False + True + 2 + + + + + Filters + True + True + True + + + False + True + 3 + + + + + False + True + 0 + + + + + True + True + liststore1 + + + + + + Name + + + + + Quotas + + + + + Size + + + + + Soft limit +(size) + + + + + Hard limit +(size) + + + + + Hard limit +(size) delay + + + + + Hard limit +(Size) activation +time + + + + + Files + + + + + Soft limit +(files) + + + + + Hard limit +(files) + + + + + Hard limit +(files) delay + + + + + Hard limit +(files) activation +time + + + + + False + True + 1 + + + + + 1 + + + + + True + False + Groups + + + 1 + False + + + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + 5 + 5 + File system: + + + False + True + 2 + + + + + Filters + True + True + True + + + False + True + 3 + + + + + False + True + 0 + + + + + True + True + liststore1 + + + + + + Name + + + + + Quotas + + + + + Size + + + + + Soft limit +(size) + + + + + Hard limit +(size) + + + + + Hard limit +(size) delay + + + + + Hard limit +(Size) activation +time + + + + + Files + + + + + Soft limit +(files) + + + + + Hard limit +(files) + + + + + Hard limit +(files) delay + + + + + Hard limit +(files) activation +time + + + + + False + True + 1 + + + + + 2 + + + + + True + False + Users + + + 2 + False + + + + + True + True + 0 + + + + + False + True + 2 + + + + + True + True + 0 + + + + + + + True + False + True + + + True + False + 5 + 5 + 5 + 5 + 2 + UBConfig - Quotas + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 32 + com.ublinux.ubl-settings-quotas + + + + + True + False + + + True + True + False + True + menuLoad + + + True + False + + + True + False + Load + + + False + True + 0 + + + + + True + False + pan-down-symbolic + + + False + True + 1 + + + + + + + False + True + 0 + + + + + 2 + + + + + True + False + + + True + True + False + True + menuSave + + + True + False + + + True + False + Save + + + False + True + 0 + + + + + True + False + pan-down-symbolic + + + False + True + 1 + + + + + + + False + True + 0 + + + + + True + True + True + False + True + True + menuAbout + none + + + True + False + open-menu-symbolic + + + + + + False + True + 1 + + + + + end + 3 + + + + + + + + + + + + + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1000000 + 1 + 10 + + + 1000000 + 1 + 10 + + + 1024 + 1 + 10 + + + 1024 + 1 + 10 + + + False + UBConfig - Quotas + com.ublinux.ubl-settings-quotas + + + True + False + 5 + 5 + 5 + 5 + vertical + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + start + File system: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + Disk quotas for this device: + 0 + + + False + True + 1 + + + + + True + False + Group quotas for this device: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + True + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupSizeSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupSizeHardLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Size + + + + + True + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupFilesSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupFilesHardLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Files + + + + + True + True + 1 + + + + + False + True + 1 + + + + + True + False + 5 + vertical + True + + + True + False + end + 5 + True + + + Cancel + True + True + True + + + False + True + 0 + + + + + Save + True + True + True + + + False + True + 1 + + + + + False + True + 0 + + + + + False + True + 2 + + + + + + + 1000000 + 1 + 10 + + + 1000000 + 1 + 10 + + + 1024 + 1 + 10 + + + 1024 + 1 + 10 + + + False + UBConfig - Quotas + com.ublinux.ubl-settings-quotas + + + True + False + 5 + 5 + 5 + 5 + 5 + 5 + vertical + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + start + File system: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + Disk quotas for this device: + 0 + + + False + True + 1 + + + + + True + False + User quotas for this device: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + True + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserSizeSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserSizeHardLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Size + + + + + True + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserFilesSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserFilesHardLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Files + + + + + True + True + 1 + + + + + False + True + 1 + + + + + True + False + 5 + vertical + True + + + True + False + end + 5 + True + + + Cancel + True + True + True + 5 + 5 + + + False + True + 0 + + + + + Save + True + True + True + 5 + 5 + + + False + True + 1 + + + + + False + True + 0 + + + + + False + True + 2 + + + + + + diff --git a/ubl-settings-quotas.glade~ b/ubl-settings-quotas.glade~ new file mode 100644 index 0000000..1882970 --- /dev/null +++ b/ubl-settings-quotas.glade~ @@ -0,0 +1,3383 @@ + + + + + + + + + + + + False + UBConfig - Quotas + com.ublinux.ubl-settings-quotas + + + True + False + 5 + 5 + 5 + 5 + vertical + + + Name + True + True + False + start + True + + + False + True + 0 + + + + + Quotas + True + True + False + start + True + + + False + True + 1 + + + + + Size + True + True + False + start + True + + + False + True + 2 + + + + + Soft limit (size) + True + True + False + start + True + + + False + True + 3 + + + + + Hard limit (size) + True + True + False + start + True + + + False + True + 4 + + + + + Hard limit (size) delay + True + True + False + start + True + + + False + True + 5 + + + + + Hard limit (size) activation time + True + True + False + start + True + + + False + True + 6 + + + + + Files + True + True + False + start + True + + + False + True + 7 + + + + + Soft limit (files) + True + True + False + start + True + + + False + True + 8 + + + + + Hard limit (files) + True + True + False + start + True + + + False + True + 9 + + + + + Hard limit (files) delay + True + True + False + start + True + + + False + True + 10 + + + + + Hard limit (file) activation time + True + True + False + start + True + + + False + True + 11 + + + + + True + False + end + 5 + 5 + True + + + Cancel + True + True + True + center + + + False + True + 0 + + + + + Save + True + True + True + center + + + False + True + 1 + + + + + False + True + 12 + + + + + + + + + + + + + Byte + + + Kb + + + Mb + + + Gb + + + Tb + + + + + False + False + True + center + com.ublinux.ubl-settings-quotas + dialog + True + Quotas Manager + 1.1 + Copyright © 2022 - 2023, UBSoft LLC + Sum up system information + https://ublinux.ru/ + Project Home Page + Это приложение распространяется без каких-либо гарантий. +Подробнее в <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, версии 2 или позднее</a>. + UBGroup + UBGroup + com.ublinux.ubl-settings-quotas + True + gpl-2-0 + + + True + False + vertical + 2 + + + False + end + + + False + False + 1 + + + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 2 + System quotas + + + + + + + + + + True + False + + + 90 + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 69 + com.ublinux.ubl-settings-quotas + + + False + True + 0 + + + + + True + False + + + True + False + + + True + False + vertical + + + 255 + True + False + Configuration of disk quotas parameters for system groups and users + + + + + + + + True + True + 0 + + + + + False + True + 0 + + + + + True + True + 0 + + + + + True + True + 1 + + + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + 6 + 1 + 10 + + + 23 + 1 + 10 + + + 59 + 1 + 10 + + + 100 + 1 + 10 + + + + True + False + False + False + + + True + False + Help + + + + + + True + False + About + True + + + + + True + False + + + True + False + Load from global configuration + True + + + + + True + False + Load from local configuration + True + + + + + True + False + + + True + False + Save to global and local configuration + True + + + + + True + False + Save to global configuration + True + + + + + True + False + Save to local configuration + True + + + + + False + com.ublinux.ubl-settings-quotas + + + True + False + vertical + + + True + False + vertical + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 25 + 1 + + + False + True + 0 + + + + + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + + + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + + + 81 + True + False + + + True + False + start + + + -1 + + + + + False + True + 0 + + + + + False + True + 1 + + + + + True + False + 5 + 5 + 5 + 5 + True + True + vertical + + + True + True + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + + + 135 + True + False + 5 + 5 + Device: + 0 + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + 135 + True + False + 5 + 5 + File system: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + Enable + True + True + False + start + True + + + False + True + 0 + + + + + True + False + 20 + + + True + False + vertical + + + True + False + Excess size delay period + 0 + + + False + True + 0 + + + + + True + False + Excess files delay period + 0 + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 2 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeHoursSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesHoursSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 3 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalGroupsSizeMinutesSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalGroupsFilesMinutesSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 4 + + + + + False + True + 1 + + + + + + + + + True + False + quotas for groups + 0 + + + + + False + True + 1 + + + + + True + False + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + Enable + True + True + False + start + True + + + False + True + 0 + + + + + True + False + 20 + + + True + False + vertical + + + True + False + Excess size delay period + 0 + + + False + True + 0 + + + + + True + False + Excess files delay period + 0 + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesWeeksSpin + + + False + True + 0 + + + + + True + False + weeks + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesDaysSpin + + + False + True + 0 + + + + + True + False + days + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 2 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeHoursSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesHourSpin + + + False + True + 0 + + + + + True + False + hours + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 3 + + + + + True + False + vertical + 5 + + + True + False + 5 + + + True + True + 0 + generalUsersSizeMinutesSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 0 + generalUsersFilesMinuteSpin + + + False + True + 0 + + + + + True + False + minutes + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 4 + + + + + False + True + 1 + + + + + + + + + True + False + quotas for users + 0 + + + + + False + True + 2 + + + + + + + True + False + General settings + + + False + + + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + 5 + 5 + File system: + + + False + True + 2 + + + + + Filters + True + True + True + + + False + True + 3 + + + + + False + True + 0 + + + + + True + True + liststore1 + + + + + + Name + + + + + Quotas + + + + + Size + + + + + Soft limit +(size) + + + + + Hard limit +(size) + + + + + Hard limit +(size) delay + + + + + Hard limit +(Size) activation +time + + + + + Files + + + + + Soft limit +(files) + + + + + Hard limit +(files) + + + + + Hard limit +(files) delay + + + + + Hard limit +(files) activation +time + + + + + False + True + 1 + + + + + 1 + + + + + True + False + Groups + + + 1 + False + + + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + 5 + 5 + File system: + + + False + True + 2 + + + + + Filters + True + True + True + + + False + True + 3 + + + + + False + True + 0 + + + + + True + True + liststore1 + + + + + + Name + + + + + Quotas + + + + + Size + + + + + Soft limit +(size) + + + + + Hard limit +(size) + + + + + Hard limit +(size) delay + + + + + Hard limit +(Size) activation +time + + + + + Files + + + + + Soft limit +(files) + + + + + Hard limit +(files) + + + + + Hard limit +(files) delay + + + + + Hard limit +(files) activation +time + + + + + False + True + 1 + + + + + 2 + + + + + True + False + Users + + + 2 + False + + + + + True + True + 0 + + + + + False + True + 2 + + + + + True + True + 0 + + + + + + + True + False + True + + + True + False + 5 + 5 + 5 + 5 + 2 + UBConfig - Quotas + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 32 + com.ublinux.ubl-settings-quotas + + + + + True + False + + + True + True + False + True + menuLoad + + + True + False + + + True + False + Load + + + False + True + 0 + + + + + True + False + pan-down-symbolic + + + False + True + 1 + + + + + + + False + True + 0 + + + + + 2 + + + + + True + False + + + True + True + False + True + menuSave + + + True + False + + + True + False + Save + + + False + True + 0 + + + + + True + False + pan-down-symbolic + + + False + True + 1 + + + + + + + False + True + 0 + + + + + True + True + True + False + True + True + menuAbout + none + + + True + False + open-menu-symbolic + + + + + + False + True + 1 + + + + + end + 3 + + + + + + + + + + + + + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1000000 + 1 + 10 + + + 1000000 + 1 + 10 + + + 1024 + 1 + 10 + + + 1024 + 1 + 10 + + + False + UBConfig - Quotas + com.ublinux.ubl-settings-quotas + + + True + False + 5 + 5 + 5 + 5 + vertical + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + start + File system: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + Disk quotas for this device: + 0 + + + False + True + 1 + + + + + True + False + Group quotas for this device: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + True + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupSizeSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupSizeHardLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Size + + + + + True + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupFilesSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quotegroupFilesHardLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Files + + + + + True + True + 1 + + + + + False + True + 1 + + + + + True + False + 5 + vertical + True + + + True + False + end + 5 + True + + + Cancel + True + True + True + + + False + True + 0 + + + + + Save + True + True + True + + + False + True + 1 + + + + + False + True + 0 + + + + + False + True + 2 + + + + + + + 1000000 + 1 + 10 + + + 1000000 + 1 + 10 + + + 1024 + 1 + 10 + + + 1024 + 1 + 10 + + + False + UBConfig - Quotas + com.ublinux.ubl-settings-quotas + + + True + False + 5 + 5 + 5 + 5 + 5 + 5 + vertical + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + Device: + + + False + True + 0 + + + + + True + False + DeviceStore + + + True + True + 1 + + + + + True + False + start + File system: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + Disk quotas for this device: + 0 + + + False + True + 1 + + + + + True + False + User quotas for this device: + 0 + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + True + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserSizeSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserSizeHardLimitAdjustment + + + True + True + 1 + + + + + True + False + + Kb + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Size + + + + + True + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 5 + 0.019999999552965164 + in + + + True + False + 5 + 5 + 12 + 5 + + + True + False + vertical + + + True + False + Currently using: + + + False + True + 0 + + + + + True + False + Soft limit + 0 + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserFilesSoftLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 2 + + + + + True + False + Hard limit + 0 + + + False + True + 3 + + + + + True + False + 5 + + + True + True + False + right + True + + + False + True + 0 + + + + + True + True + quoteuserFilesHardLimitAdjustment + + + True + True + 1 + + + + + True + False + files + + + False + True + 2 + + + + + True + True + 4 + + + + + + + + + True + False + Files + + + + + True + True + 1 + + + + + False + True + 1 + + + + + True + False + 5 + vertical + True + + + True + False + end + 5 + True + + + Cancel + True + True + True + 5 + 5 + + + False + True + 0 + + + + + Save + True + True + True + 5 + 5 + + + False + True + 1 + + + + + False + True + 0 + + + + + False + True + 2 + + + + + +