From 3e5dc1ab07f56631181d1c0171df3efa2f4ca6a8 Mon Sep 17 00:00:00 2001 From: arcan1s Date: Wed, 7 Aug 2013 23:30:56 +0400 Subject: [PATCH] Added mathmech + added files * bug fix in mm_trj --- mathmech/Makefile | 289 +++ mathmech/bin/mm_agl | Bin 0 -> 22784 bytes mathmech/bin/mm_envir | Bin 0 -> 21824 bytes mathmech/bin/mm_radf | Bin 0 -> 31289 bytes mathmech/bin/mm_statgen | Bin 0 -> 33549 bytes mathmech/bin/mm_trj | Bin 0 -> 20795 bytes mathmech/bin/mm_trj2pdb | Bin 0 -> 19234 bytes mathmech/clear_items.cpp | 103 + mathmech/clear_items.h | 27 + mathmech/errorwindow.cpp | 63 + mathmech/errorwindow.h | 23 + mathmech/errorwindow.ui | 129 ++ mathmech/main.cpp | 14 + mathmech/mainwindow.cpp | 552 ++++++ mathmech/mainwindow.h | 88 + mathmech/mainwindow.ui | 3449 +++++++++++++++++++++++++++++++++ mathmech/mathmech | Bin 0 -> 187588 bytes mathmech/mathmech.pro | 20 + mathmech/mathmech.pro.user | 257 +++ mathmech/moc_clear_items.cpp | 80 + mathmech/moc_errorwindow.cpp | 80 + mathmech/moc_mainwindow.cpp | 215 ++ mathmech/moc_start_events.cpp | 80 + mathmech/start_events.cpp | 296 +++ mathmech/start_events.h | 28 + mathmech/ui_errorwindow.h | 112 ++ mathmech/ui_mainwindow.h | 2223 +++++++++++++++++++++ mm_trj/src/main.c | 2 +- 28 files changed, 8129 insertions(+), 1 deletion(-) create mode 100644 mathmech/Makefile create mode 100755 mathmech/bin/mm_agl create mode 100755 mathmech/bin/mm_envir create mode 100755 mathmech/bin/mm_radf create mode 100755 mathmech/bin/mm_statgen create mode 100755 mathmech/bin/mm_trj create mode 100755 mathmech/bin/mm_trj2pdb create mode 100644 mathmech/clear_items.cpp create mode 100644 mathmech/clear_items.h create mode 100644 mathmech/errorwindow.cpp create mode 100644 mathmech/errorwindow.h create mode 100644 mathmech/errorwindow.ui create mode 100644 mathmech/main.cpp create mode 100644 mathmech/mainwindow.cpp create mode 100644 mathmech/mainwindow.h create mode 100644 mathmech/mainwindow.ui create mode 100755 mathmech/mathmech create mode 100644 mathmech/mathmech.pro create mode 100644 mathmech/mathmech.pro.user create mode 100644 mathmech/moc_clear_items.cpp create mode 100644 mathmech/moc_errorwindow.cpp create mode 100644 mathmech/moc_mainwindow.cpp create mode 100644 mathmech/moc_start_events.cpp create mode 100644 mathmech/start_events.cpp create mode 100644 mathmech/start_events.h create mode 100644 mathmech/ui_errorwindow.h create mode 100644 mathmech/ui_mainwindow.h diff --git a/mathmech/Makefile b/mathmech/Makefile new file mode 100644 index 0000000..3459f10 --- /dev/null +++ b/mathmech/Makefile @@ -0,0 +1,289 @@ +############################################################################# +# Makefile for building: mathmech +# Generated by qmake (2.01a) (Qt 4.8.5) on: ?? ??? 6 23:41:09 2013 +# Project: mathmech.pro +# Template: app +# Command: /usr/lib/qt4/bin/qmake -o Makefile mathmech.pro +############################################################################# + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED +CFLAGS = -pipe -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -Wall -W -D_REENTRANT $(DEFINES) +CXXFLAGS = -pipe -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -Wall -W -D_REENTRANT $(DEFINES) +INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. +LINK = g++ +LFLAGS = -Wl,-O1,--sort-common,--as-needed,-z,relro -Wl,-O1 +LIBS = $(SUBLIBS) -L/usr/lib -lQtGui -lQtCore -lpthread +AR = ar cqs +RANLIB = +QMAKE = /usr/lib/qt4/bin/qmake +TAR = tar -cf +COMPRESS = gzip -9f +COPY = cp -f +SED = sed +COPY_FILE = $(COPY) +COPY_DIR = $(COPY) -r +STRIP = strip +INSTALL_FILE = install -m 644 -p +INSTALL_DIR = $(COPY_DIR) +INSTALL_PROGRAM = install -m 755 -p +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = main.cpp \ + mainwindow.cpp \ + errorwindow.cpp \ + clear_items.cpp \ + start_events.cpp moc_mainwindow.cpp \ + moc_errorwindow.cpp \ + moc_clear_items.cpp \ + moc_start_events.cpp +OBJECTS = main.o \ + mainwindow.o \ + errorwindow.o \ + clear_items.o \ + start_events.o \ + moc_mainwindow.o \ + moc_errorwindow.o \ + moc_clear_items.o \ + moc_start_events.o +DIST = /usr/share/qt4/mkspecs/common/unix.conf \ + /usr/share/qt4/mkspecs/common/linux.conf \ + /usr/share/qt4/mkspecs/common/gcc-base.conf \ + /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ + /usr/share/qt4/mkspecs/common/g++-base.conf \ + /usr/share/qt4/mkspecs/common/g++-unix.conf \ + /usr/share/qt4/mkspecs/qconfig.pri \ + /usr/share/qt4/mkspecs/modules/qt_phonon.pri \ + /usr/share/qt4/mkspecs/modules/qt_webkit.pri \ + /usr/share/qt4/mkspecs/features/qt_functions.prf \ + /usr/share/qt4/mkspecs/features/qt_config.prf \ + /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ + /usr/share/qt4/mkspecs/features/default_pre.prf \ + /usr/share/qt4/mkspecs/features/release.prf \ + /usr/share/qt4/mkspecs/features/default_post.prf \ + /usr/share/qt4/mkspecs/features/shared.prf \ + /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ + /usr/share/qt4/mkspecs/features/warn_on.prf \ + /usr/share/qt4/mkspecs/features/qt.prf \ + /usr/share/qt4/mkspecs/features/unix/thread.prf \ + /usr/share/qt4/mkspecs/features/moc.prf \ + /usr/share/qt4/mkspecs/features/resources.prf \ + /usr/share/qt4/mkspecs/features/uic.prf \ + /usr/share/qt4/mkspecs/features/yacc.prf \ + /usr/share/qt4/mkspecs/features/lex.prf \ + /usr/share/qt4/mkspecs/features/include_source_dir.prf \ + mathmech.pro +QMAKE_TARGET = mathmech +DESTDIR = +TARGET = mathmech + +first: all +####### Implicit rules + +.SUFFIXES: .o .c .cpp .cc .cxx .C + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cc.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.C.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.c.o: + $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" + +####### Build rules + +all: Makefile $(TARGET) + +$(TARGET): ui_mainwindow.h ui_errorwindow.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: mathmech.pro /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \ + /usr/share/qt4/mkspecs/common/linux.conf \ + /usr/share/qt4/mkspecs/common/gcc-base.conf \ + /usr/share/qt4/mkspecs/common/gcc-base-unix.conf \ + /usr/share/qt4/mkspecs/common/g++-base.conf \ + /usr/share/qt4/mkspecs/common/g++-unix.conf \ + /usr/share/qt4/mkspecs/qconfig.pri \ + /usr/share/qt4/mkspecs/modules/qt_phonon.pri \ + /usr/share/qt4/mkspecs/modules/qt_webkit.pri \ + /usr/share/qt4/mkspecs/features/qt_functions.prf \ + /usr/share/qt4/mkspecs/features/qt_config.prf \ + /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ + /usr/share/qt4/mkspecs/features/default_pre.prf \ + /usr/share/qt4/mkspecs/features/release.prf \ + /usr/share/qt4/mkspecs/features/default_post.prf \ + /usr/share/qt4/mkspecs/features/shared.prf \ + /usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ + /usr/share/qt4/mkspecs/features/warn_on.prf \ + /usr/share/qt4/mkspecs/features/qt.prf \ + /usr/share/qt4/mkspecs/features/unix/thread.prf \ + /usr/share/qt4/mkspecs/features/moc.prf \ + /usr/share/qt4/mkspecs/features/resources.prf \ + /usr/share/qt4/mkspecs/features/uic.prf \ + /usr/share/qt4/mkspecs/features/yacc.prf \ + /usr/share/qt4/mkspecs/features/lex.prf \ + /usr/share/qt4/mkspecs/features/include_source_dir.prf \ + /usr/lib/libQtGui.prl \ + /usr/lib/libQtCore.prl + $(QMAKE) -o Makefile mathmech.pro +/usr/share/qt4/mkspecs/common/unix.conf: +/usr/share/qt4/mkspecs/common/linux.conf: +/usr/share/qt4/mkspecs/common/gcc-base.conf: +/usr/share/qt4/mkspecs/common/gcc-base-unix.conf: +/usr/share/qt4/mkspecs/common/g++-base.conf: +/usr/share/qt4/mkspecs/common/g++-unix.conf: +/usr/share/qt4/mkspecs/qconfig.pri: +/usr/share/qt4/mkspecs/modules/qt_phonon.pri: +/usr/share/qt4/mkspecs/modules/qt_webkit.pri: +/usr/share/qt4/mkspecs/features/qt_functions.prf: +/usr/share/qt4/mkspecs/features/qt_config.prf: +/usr/share/qt4/mkspecs/features/exclusive_builds.prf: +/usr/share/qt4/mkspecs/features/default_pre.prf: +/usr/share/qt4/mkspecs/features/release.prf: +/usr/share/qt4/mkspecs/features/default_post.prf: +/usr/share/qt4/mkspecs/features/shared.prf: +/usr/share/qt4/mkspecs/features/unix/gdb_dwarf_index.prf: +/usr/share/qt4/mkspecs/features/warn_on.prf: +/usr/share/qt4/mkspecs/features/qt.prf: +/usr/share/qt4/mkspecs/features/unix/thread.prf: +/usr/share/qt4/mkspecs/features/moc.prf: +/usr/share/qt4/mkspecs/features/resources.prf: +/usr/share/qt4/mkspecs/features/uic.prf: +/usr/share/qt4/mkspecs/features/yacc.prf: +/usr/share/qt4/mkspecs/features/lex.prf: +/usr/share/qt4/mkspecs/features/include_source_dir.prf: +/usr/lib/libQtGui.prl: +/usr/lib/libQtCore.prl: +qmake: FORCE + @$(QMAKE) -o Makefile mathmech.pro + +dist: + @$(CHK_DIR_EXISTS) .tmp/mathmech1.0.0 || $(MKDIR) .tmp/mathmech1.0.0 + $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/mathmech1.0.0/ && $(COPY_FILE) --parents mainwindow.h errorwindow.h clear_items.h start_events.h .tmp/mathmech1.0.0/ && $(COPY_FILE) --parents main.cpp mainwindow.cpp errorwindow.cpp clear_items.cpp start_events.cpp .tmp/mathmech1.0.0/ && $(COPY_FILE) --parents mainwindow.ui errorwindow.ui .tmp/mathmech1.0.0/ && (cd `dirname .tmp/mathmech1.0.0` && $(TAR) mathmech1.0.0.tar mathmech1.0.0 && $(COMPRESS) mathmech1.0.0.tar) && $(MOVE) `dirname .tmp/mathmech1.0.0`/mathmech1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/mathmech1.0.0 + + +clean:compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +####### Sub-libraries + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) Makefile + + +check: first + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +compiler_moc_header_make_all: moc_mainwindow.cpp moc_errorwindow.cpp moc_clear_items.cpp moc_start_events.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_mainwindow.cpp moc_errorwindow.cpp moc_clear_items.cpp moc_start_events.cpp +moc_mainwindow.cpp: mainwindow.h + /usr/lib/qt4/bin/moc $(DEFINES) $(INCPATH) mainwindow.h -o moc_mainwindow.cpp + +moc_errorwindow.cpp: errorwindow.h + /usr/lib/qt4/bin/moc $(DEFINES) $(INCPATH) errorwindow.h -o moc_errorwindow.cpp + +moc_clear_items.cpp: clear_items.h + /usr/lib/qt4/bin/moc $(DEFINES) $(INCPATH) clear_items.h -o moc_clear_items.cpp + +moc_start_events.cpp: start_events.h + /usr/lib/qt4/bin/moc $(DEFINES) $(INCPATH) start_events.h -o moc_start_events.cpp + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_image_collection_make_all: qmake_image_collection.cpp +compiler_image_collection_clean: + -$(DEL_FILE) qmake_image_collection.cpp +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_mainwindow.h ui_errorwindow.h +compiler_uic_clean: + -$(DEL_FILE) ui_mainwindow.h ui_errorwindow.h +ui_mainwindow.h: mainwindow.ui + /usr/lib/qt4/bin/uic mainwindow.ui -o ui_mainwindow.h + +ui_errorwindow.h: errorwindow.ui + /usr/lib/qt4/bin/uic errorwindow.ui -o ui_errorwindow.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_header_clean compiler_uic_clean + +####### Compile + +main.o: main.cpp mainwindow.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp + +mainwindow.o: mainwindow.cpp mainwindow.h \ + ui_mainwindow.h \ + clear_items.h \ + start_events.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp + +errorwindow.o: errorwindow.cpp errorwindow.h \ + ui_errorwindow.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o errorwindow.o errorwindow.cpp + +clear_items.o: clear_items.cpp clear_items.h \ + mainwindow.h \ + ui_mainwindow.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o clear_items.o clear_items.cpp + +start_events.o: start_events.cpp start_events.h \ + mainwindow.h \ + ui_mainwindow.h \ + errorwindow.h \ + ui_errorwindow.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o start_events.o start_events.cpp + +moc_mainwindow.o: moc_mainwindow.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp + +moc_errorwindow.o: moc_errorwindow.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_errorwindow.o moc_errorwindow.cpp + +moc_clear_items.o: moc_clear_items.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_clear_items.o moc_clear_items.cpp + +moc_start_events.o: moc_start_events.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_start_events.o moc_start_events.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/mathmech/bin/mm_agl b/mathmech/bin/mm_agl new file mode 100755 index 0000000000000000000000000000000000000000..856b7ba271f1b8e8d08f10bbd625bcfb1d76ad09 GIT binary patch literal 22784 zcmb<-^>JfjWMqH=CI&kO5HCZ_0W1U|85jgyz+5olz+l0^!Qj9k#~{tX#=yY9%D}(? zQ|AC>!RP}Z!x$JCU^EBV1O^6X1_lNe5Ss}^FfcGMK}~?tGEiX{4K)VrHjsT#X%w45 zVkLGUl7Rt6GcYKC1wi^iZiPCJfx#gGEDoc0K;3ZzO2hPlxFCHJQ0GZN^}*;5AcGkg z7+^Hae;~hsunfom1_lNhn7^PjEI45_NG-@g0Z&U(KluOLM}UC=9OmwR zpmpe)AE!K%(Xhlc?i2_SiK1_lNR1_lNx1_lOMuuTjMatx4IP=fMR7#JATpllGO z$-uy%#lXPu>hgQOO*@L;W!KND+1dM%??z#S%i&exn= zufDPT)Gfm!@@SrC$KUz4&OV-JoOJswkJWT;@j2HgzOr-Mr@1>8 zz>*)xIu!hcfq_8?MFhgRfJ2-c>KBMA1X+wj{Zbs_yK#tb#UcI(hxiN};!tK)G0 zRUGOM;Sle@A>M>T+zf}kRXEgp;ZUD~L%k^@C?5G3z8FFB87yX2fW>(k62u|mTc8r} z!RGKXT;PF-PvwM2ECQ?NW>~-t5r>E}Fq~jyU=U!CWZ2;ZPU_hm{Z7Q1d@P!v|_SgEdsVK^o#tZIB}w7#L>2#G&d_q2f(Yaag?q6=tYo z1m$r|cg8{03qZ|JhiXWHiYv%M?6rUfkUvyBK@lQ;f)Ao02P(b+Y7U4GlGy?imx8Dd z1PL-QFwBF7!vVB#V93c#$^{jRW(@J3A-?e`sYR*jnZ+fkMIpYACrN@x>*HMJ4g^4DnuN@j*~^&N+$2#i_**?N~Jz7Z#O(>`8{$Q(RJ%Tu{kSTu_vm zSCYn%mS2#X#}FT%S)8A2X&GN!oSc}K#*mhtT2jnVT#}MsT7r;FgGv^ZmJ~CjCFkT9 zr!wRw=H%ojgOsKg6*1)GCnx5VWag$aq(RM(kI%_WN`^W;H!(AhA+0Dil|ervKQ~oB zu_!q)FSA(RB|o_|H#M)MSU)|pB%?G*KQ})or7}-HH#a^pJqJ{oSTR5iN-i#qPs_~9 zWGGH8iBCyQODxSPDQ1XIO-U?CWGG5aOv%hkk5A6eFG?w906QT*H?_DpF+CN^D=sN2 zO)e=d0tG5a55#2*@t*$i#U&}3dGV#isVT^oW#(m;zzt4J&tXU{D#|a4PtHh9&d$tB zXNXVD1F26cE`}Nfa#(U|UP)>ZLvd)|uD9BuhdQe#b$`1?-rBa!kAd}uh+ZT)s zObnR}5P6V#@ytwKP|f=roS$LpnHXT|IiTqmR9A!Q9*`aohNWvz8wyl+g2X@=mhVC0 z@*n{y)_|G=s=J|10m~R5iGxA}EXcsXV1XnK&6;2-2PAQj9biEQ1_lo#agbYK;sHqF zAiH7W5lG^&G72P@fFuqrl0m`@8A#$>U=avWfFzC_J{3sfJP@T|vH?k)7c2rHI*`Pn zMGjbE0+KjCSOh}MKoSSFjUb{73=5FNg<*oA@M(U-;nB?+Yo@^9(R!eS^~Gwi;1Q0) z5Jmq@gUl2d{;P(VDKPNMJ23oL1@SXLk}n_p|NsBLs+XApLk1}7US0t6oj`n0l)XFv z=39aIpyv3?4Pd?zh!2XomkYprEf60RWiKay`AQ%@D5_pIfca7&J}8P_7J&IeAU-H+ zUM7I~Tp&IuN?rzl`Ai@_C@Nk$fcd{n6&Nx=QSj0L%>M-9gM$900+{~_#0LfWO93$d z5r_{8>X!^){w)w66vQt-{QLjkG2FBByJMJR=Re0#$B@uqkH$AAco-ObdV5qBFo5V5 zl>^KS3?98cDhVFFQ&d3x5|7?3DjPt-+Pg>P00RTVi*!B)2FK=qjCER`-R>L>7P|Z` zcNrPL;ky?UG9HabK!$d{h>mrPag240bBsUST%(e}$lr2-je)_po4-3mCBfD3fJe7! zw5b9^_a3n29-TK|%;AO0JMI9*ibuDp1*(!tUXc5Gpzg%s#4kJy46O%zyZQNB|1vW$ zfb8?=HhpKJz~Bh(${<;($qSc1XQBWO3Xrd%Djau!;vVEQMzFnmz(KN)#n^%2Mg713 z|2*#Gzce~-@hFOL8H|G(QsrJ&b_!6W(q z3ypvO|7X{z6i9e<9`#86?{V-s(+iP*|Nnb-9)+kn3QC?ZnO`77l5127JUfqomA?E7 zQhE%F((^E-9-S^K4q(N5Ktio=K>{8ne7>!3OE`U7pYXQ|F(ZXDC_{O4o8B-+j*7h? zf4|`2VPJTv^Y8!vouJ6r3nF}a*Qo3OrBq5-+&z3U2>ko1C)3e85o+6GQODp=l_3x`38_Ln~yR&TE64&y9;t>@>$Pr zmh+(W)Vk&G|Ns2k0vH>9Wt1+47_|_jq<4^eICXR3_Eoh7#Iu>7{2xByzkL@ z>+_O*6~>^TzyIRfA5g&G+P4A1H$3p-2~>o`1gygFz>7;zkp#HN0jLOzIZVwusK^eu znmJGrKDe4Ls0fECOjiX|Bmgdw1{G<5i-bT$R=`D^pdvDGlMSFE7vO5-pdugOB0M0G zZc|Ys1qP4K`!8~T|NsB8796}Spx|X__?67xGM@nyFZrPIkH6&cOet*>7Y^7$B)&BFOMRpm>&dfTosxV0AU1)G`HJG>=)4I| z&@a?E85mx=|Nj5qxAhx;%TrL0HrJ>)Fz~nB1hHEW@V8v}^Z$Q0#FwA>qozPJK#vNj zr1;Dq)dS869=$!_0ur3oSr`~T^GCISz2Ue6G#;=EM0C2SXmq=%BMCadHjVg2fXaNqz^TU0m&#(y#+Fgl>=0|O#$aUP<1c?sXFlK{P@C@ z1ytPfw{SBeSqZ9?Ji1LAQLWs?j-&)sFL`vEhM_8%&d$K#(fQu+?F-)@|Nnb**Qf-% zaQ^ZCzfb4;7uI0<`3qw({r!bDRE5I}MJUVTh4_#E|DlzP;||aWjYqfXXFU{;o3Jx5 zK&qrxzn`GO;yzgaOUIw^usx{<4G>1800E6@cy!)$*vjlRp_7s)~6Se0zr`mN~=DdANPYAHy)iiDjGhWIVuXEszCyz z)x)PVMMVI_Tf z{Qtl85`XL8zyJTcbo;0jboYR@!7>9R4{TD{cfkylnO_8bhlfD8E;OXEg+Lc81A|XD z$eJx+^L#pAcGsvB_;fycQO^WUb*){0k>VRPTISJh%B_nM-!7~S4BcD6K?6=tKAoRl z1V}-&dn0QHw_mzV&*-3NX9Z~o`3Y(SD8`u?7<@W)R6ILh`gT45nb*JyG4D61tbmj` ztvXPjf!ZLDR*vHiP~#00w;Na(7+#(O7uF1hZ#_FN#(8u;@@RhYAt1!__<;{b4h$a0 z4>o|QQ z91<8jI-mZ(5c{(FKdA0!cv%dg9YZ}kzk*v+jv=8QomYcBI!}8vzTseEV0fYM_5XiR z>H!U~dUPJz2ckVYkGxp%1tD&Dz@zh}Pv@(BY@ob%@5}%Hj@_;dtq1Cy4Bvv?)4N9n zq|c}G5m-N{4#_~$@6mY+WW>XLT%e{x^I?`3vp{B8<}%bD@#%d2f(N9w@d(I0h6fD_dQ`?U~ud_ngUTxq4I1rb@Mu0{;BnmP1IQGQ<4!+7w5#RC zq9c|cIzN@v^qK_uB%fPeZLrFH4X|@`dIDj2<%_kF$V^Fp#mJLI7lJ11OI$^ve7NyTt%7^*Er+Re30?r17?1WBOWvOHLiH}vNRZevpml)qHz%LeH0WrXVUmT_@fM47pf?qhmfL}bo zqE52&f@8Nxx8))J)}a6Y|AXAve2mfZeEsw2Si=L3F^3H=z5Ms|!432uKmq!>N{a=sf!;BuyM|m7A@A3Do2lY=*I$GZ8yj8E# zdDBJnVdn|Q@2@*g9Q+~AcSa0TY{{~|bSubs z1;$IC`2}2meC8JjW%$f5;QPlT`4WHB0hewb75;rZ0xtafTm%^RNflBOBWR#{(gQ?lIyNfk$A!S9+dcwSiqtX+@%NQb5MG?>KNh)4eQ1?76J?mp!6Wt z{9BB_otuS$;lIk=82$-Dpm zU-zU<0GkeJXK`49+8H3p=kGvu4mcn9bb^(;zWe{*@PJ3-5s-7C#X30sAnCth0n@)6 zWcX2t{0`sL-29?Sh1BCNDi)vtRIm<^FAR2oMs3nMT~usd&w%xRz_OtFX$Rajk?;Qh ze^~+!ZU+Xq{0g{jmLPdZbT}}0>~O8fEXmAER{*O7+vBmLJhLPtzqAD0cC+x<0UpRL z=3)TJI=qzpk5nFb>~JeeO;yNE%>}tPzo?Syn2U-HSfv5j#Fwv7`fFe@kbCFC-MjMb z|Nk$K`~w9c*gbhE3i)XY1-sI@7#NPZs5n6l+fkICoLXF*nU~fXqT&E@iUruPmz^LB z(8A*-B#H{)o^}CQ5)ZZn98X}a5JeVnMe-m;Rv_cxgvXAeRE50!5``3yn?Q-ABsIAtHH8brb$Iy&-0TF!r!#c?|Coyk)Hxs( z1|B;UpvelvwRm|LtN~&H$Ug~i|8&0o|NrF@ur$;Fh<_~LD$+qJn*RL%zXMdFzH9}n zg^VXShC>SLP@m4D;K4|6NxVe`G>y;+E*`#vTZbN<)rFAOW`8qxB?zizcYD=?zf{@aQ}b9;`Dw z@Iv$zc!VyX*Tw#u(2&F zAb)vuLY&bZqvEm?GztsqZh820LYxkAj{&G(4{ERZbVB?A8Ug@SJwBaReLL@flvp@+ zp7p?Rz>8HcL9JgGl>(n`9~A>o{|=PUKtm6p0bGyX5S1EGqZu?%3o=Cj)R#-xHvv2- z>7v2`s#PpNT|2`AFV?>V`&y&<2P1#WDi%-!m5IM)Co`xUQz8oLPEmV0Fw9otkEh-=%8XoZJ?ok1?pnbZhK;v!> zIPP9^PVi_xz-W26F2k~?1@M~P=7xEI|7jjYnHSYO^f-dljdA;BlbNazA7IcGO*z*CuxaSLg;lK<0;(<5# zg&jZei#z^swER%M-SS80FaDOz3=9mtJV74GA3@FK4U2i(~Ksb-lD5}FKRy6}TFa)TP`%$~jB9H03G zTfqHr$8Hl9-`;qTgfojr=XJ2e6wttOCnW#-bUysdFW}7K)At&a2LEql$KaQ54TslKk6iT!~c6~mI z69=E<1D>ERh9kd#yhrjk|6U#zU&a?6y)~Oz48MVr^%ii)M(+ejr!t7pD~bhm>yC0V zFf{*T{LC*H|A)V28JNfPnO{(yza@YZ)V&bQXL0Qm^k_cD=-GUb#id)wv-tpvNAqzW z*Uo@H9?k!l`CBxYKnewVz;?KF3-aroC|(RQd;-`wnBfIr9@y~G<)F48$7lYCv!D3| z{aIemfz_{|e0dr)Kop`g-%ftMA zNB;c(Zy5s4qi-C$?Rrh@8NYiZfAdKG|JjjWP-MSH^Knpm5aihp;=Al;@#x;80`izk z2ama9w;AI%N6V`o$=_T$T+A8yTUZ%E8Q4SxqzY6rbc$>TC5Pr?jEf; zJFhx+n(XpSHgoLc*$m3TFY_Qx8y5x!$8IsOAHZc_cMsUAUKSz7Lmo3g3DS{YkY&0D zD2;+jAyAPFauz6ALJK7j*JU~j|F$XM@aPa>bnIpW@jzk0c)(*uM+hURj3{ulJX(?r zDr-ETg;*!cM8|F(mEJ%`$4(Iy&tyK2?k(U_t@#zBW9QLMkv`94F_2~a>y19$H7XiDo&R5iJO(vTU)KKm z|Nl6sVg~hEU4H-n-+X`>G;+{e$oScbU!bQ4lq_94Pc;8yE|qvG51xbro7;Sh5uCO_ zeHebd6GfFC$^Ssd+ofC3Bl$=3 z0Y=wOkv%TmLav=5dl~rk4)V9Mu%|8~l1F_?v!$O&6G=0xCK{VHf_HUtoy}sOaF=dr;)bukpCo#G%{r zGk;7fgGchW&-{Wan?X4qR8A;^L_tNM%4QH(4aDX6%rBU-nZ+ad1E_ZEwAs>a<=9!X zl>uZnAHQA;#OU_J%nS_tdWZPi|1p6W2l?A)fg-p)kpOPm?cq!e44_mBYE(75s7Nq+G#_N~Y(C86*?f%0qxldEsE=o9$KO{Ank^|& zQFyub7bu0gFfj0IT>Z=+6AE&%$nKZYpf)wQyye%p0upBdB@2f4p=hExqzyxYa zIPnYWG`n;Q`XnD{KEUYSDbnK7E#%%A(#r7iC)kCczBR~`5m!I+3ySQ137&q0j1LKf zvV7)`xB{|CWb#W;2!Y!F&<=UTWvIC8UvR2Hq>%`eG~)G{Um%sC*Tms7f5hW%OUe?- zA^!Gnpo9PlNhVO236^5ozCc_N3bpAn%q9_dauf!|4k$T_fRm%xXZ{F~zXe0EB*&La zL1EKe1xkHQH4vjA9(J&=#M3emr|?Jk zf?UA^b_L&O{s>=C67#|43Ma5p0#hKl0_5orpbmt_Wmu*Qg=RVwUq*nUO%U!&ND{{C z%S9m5;0`|x;*n-Ho)832#gbM$M5Ka30$cI$^8IgcB7+w_{7pX~VS_(uMWlj)nuzk} z<;uVR{~KOgsl3_r|Nc{oZ70Ln91{&YJijdQV$U$ws2P%^^&VJ^P0jCvzmY0jaLG&`X z^s<0*)@6iSmO+9llm%ogBPatSjNJgLel^a33<3oV|I4s%|NrxAoCXOnfZA@LHr1b( z4iM8p=``ZZXMREcmwHeU&=@mld|4f$P#mNkIzQh0j}bDW|CwJv{xiQoKB#${&cWZ8 z3#u-|o8K|{^j5KW^se1W7egZUe5aQFDo)H=h8nyh)FJLPJ z>PpBvFo1GUh{_M=UY0Tt(?#XaXZ{#aQF|1` zm-wSje&UZj@QFY2cYwdknGrM!E^@%9^RcVpTkuqP8h_LW zaQO~uc>np#F90ep4u9s4x%!!3z?%hP%K@-OC;6ie@JC$&84s}q#Kf?rsydBd_Wg7!{V6$)JK=p20EPvGc!Um}loV=t!$i zuWAOb0z;@ruP%rV_R)N5c-!OPUuKWyHykhC-T+O@zAcf1^#^=9U-@)?bLsr=_+R7> zXhhh<@^$Ge&{#WimmV>r_4#nx1dvG}6`&<_pmmi+436$TwyK%7s>KZDpzb9&o%;JK zD5#odDySx_CMzf?`1<=OD5#obDkvx@s9NY5ry&T?uqa5FAcm}x1u17xEeQZUpr&@&`xDHa7jnaQbn#is)M75EdQkd;C|A%`NKVbkQ7F!=N>$KE%gIkH(bQ3J9%y|!)SL`t`QnWHa)pwN%wmO%)SLo^ z#Jm)R)QZd!n19TY9pMQO92!;%>Z--+)?BJ)$)4~aLK5^xxC=?tCqLavK{XSsEfC}) zIL{g8Un>PwJ(DyYBoY)pX32h~xk;%-pfP#a^6X-TOyqn4G79Qk234%;K`N{jP~;Lz z@^gzp;-D}I1+6=`0KVtOHyq;kE~tz5>X^0j6D`kWw{E4oWR9%_#v}Q2^T7 zkeZ@Ul8^8=c7Fxu=cblqfaZzHi}Lf*6}f^_Q$fL`pqrr%%8ClP`9-M;DXArinK|Hm zWtQv=UfPeEZb1GjPA$Q-L)9$VHLonQC_fLhy#eevya5gJhog%dSYcv8L26zKcK-&0 zc7iArK+1YZe&B*70)+y2VpHH!EoSg9NX-L>158~2D0mc#AmN1^MqCVTplSk?5y5jH zY5ApjDO}*05@<>gP=xGjd7uEH7eMI-D4hVM9iX%Xl>Q+PQU3r+AAr&epmYV44uH}E zQ2K)$MBf1@-2kN%ptJ*&7J$+pp!;_=KxqT0dsQ=4i&fLWFjEz@;emm{o>7|Fx`Kg$ z0kr5_=HmbVpt)$BOaK4tFflM3x&8k?sDHNS&j0^!7#J98?*9L;!^ptE^Wgvg7)Az$ zoCp8^moPFg+p(k$t{|{Px%;3Z) z(97h-C(*;~$fwZ8;=-rV%<9FrfrV)TpN2D^f+L@V6Q6(+AE>1bvR8+JfdMpf;&JEy zfAC%~Cq985CT~88HfCo&g=QA!EG8~K2}eEw7d{S0ZixRt_N=(~|37RG6v!MO1_p*R z3=9k(?*0D{-g^ahhbzb(E^v3a@foCZp*q8bI}B9-WEgZ0s0?VY%KiWUVSB|uQXqRw z7#SEe?*IP}-kasbC(zI2$|ups?8K+g%i_eR(ZlM(XVAvx$Y;^a?#5TZ?8(Sy;ml{? z$fx1Nr{IL=ngV4hJk@0g^7Wo;?w{C;5~!!pz!hqndbxYpBE^+T;cw6 z;VWP^1cldOJ_E;Nd>T$?_!OMZ@<}+I;}dW?&&T1ySJ2Gf#@55y%hJc(&jd+(N0=BG zKx@drd-uTZ1;>XgpF%H-E698gkog`U_xkcV_{#Vf2Xb>N^uT~Po0b%I= zd1(-vfq?;5Zh`iFgM>Js@}RO3%m)z+3=CiY{m%z66QKL&L2JN4d<}L;y#t;k2krf3 zhVY@)AOkBj@qzLVNIiIFje&td6vRQopv@p4u7DF{pDt7zLjyDbVC6b!Ju*lgXump$ zR^Woz2NS=+3E{*1Ix(`|mN~=L>Gbrr_rNf|f8k8=B(rr+B8kAlJrME%pV^A91J?_rV zRtg&KexaHQCVCcn1`0+7hQiqUpDRmKQcq13~RDutF$-t{>F)`u6{SK2$jath`Bp3V@cKfV9HO zA6PyIiGi>m0|Nu7tbrY#e*j1` z0|WTn7mym5`=P=NpmP~OUIfX3#9-y&4XA!tc?h!~rXS{iP}>z*KdgLJfEMVm@))Ea zROg`U?}LU3D11To!|J02ph$t9F9H&WVUS%gHi+&-(|-V3&K-d22e;ip3ZWRhnjL9h zHmENGidUHZpnVM>r58YsWnf@XK|a6)NgqfJ2+u;ZA69>UF#^dV>JbPJv_l-mg3zEf zQXu-2X zqKY#!!0JC#aTa*JhAPequdh(W*%)B;5UMyk1FU{Q73W}p)f=edoD8t~09Ble0anhV zigRO}rvs8_X5e9fmCGPL3^OzE!q4S_iGgTl2F&w)AmWH~c0ha>W@Zq8pSuMU1JTS3 zf()?o48(_FX3$AcuyP6}2(HJ48DQlPk}v}^g9rnxTtO8VWq_3zsN!M_uyO!ZT$}-x zzfr|8&(i_PGc!ms!15!A55vq1u-+F;1kx^JVfYBjjtD_03!6Bo{JBT)tq& z%WSAQu>LU2-sNERLWuL?pc2Qx=htC|&qW;K_i%{6#32sa35PA*m>EHJE~dSpb#U0! z;|hOCMo=6JG8EWBD>kUV)WPD|(glutnNyiB0J3}!wBEvf|V!3L>8#-OooY~rA$ zjRIK0$B&5tR4O4G0cIzG#d#Uf&&etTi({6P zfW=Xif;phYB-s3Qi-~~&Vf#Eq0bN+zC6Q&A5b2Ed^HA9s1u(kK--c*rhv*35N!h%2eD9b01okNusG)Vaph3)4QS_%wK0SIE6IRr7#J9? zg2jJ5pQZ*nbPawQ z9PGq5_-S;gYVn=4R}4P#4plv9L<@Gd8~E@%RB8Cxd1>I|@eq>cuw&^UN97?TK*zs< z;s)ucI&eHgkEnw=KMi!w9;zJfjWMqH=CI&kO5HCQ?0W1U|85m~37z_*y4h$9y91IQ&atzW8YzzzxtY9&) zas~$mh(Z{B0Av^g0|SiafGA^NW?*1o0kN4t1Oo#D6GR`3mVpYxXs9t@w}I?~N~72e z5^J#mkqitlnt?$9ECA9Ea%%@vzQZN~EDoc0K;3ZxO2hPlxFCHCp!ya-^}*;5AcGkg z7+^Hae;~hsunfom1_lNhsQ+NJ3)prB1{e)e3la)=T9N`{b6A3S3=ABWkZ^&~B@kf- z7!6Vj5(<1;k^*ukh)oQJxl=zUGs(uCo`|KLbt-gOxMgruQ*@N2pm5G3=H5f zclQeg8w>Id$R1Frg6tMyU;xJ@NM1vy^z9PPxT{?qcUDc}_|CIqbDD@C0|Ns{4M-n5 z0|UcEfdd=@iX!|Rtm?jVco@Ku0FoDHU|^77U|^60g%#K)1_oIM1_pTs1_nhaUzve{ zK^4jdQ5p;k44MoK46iP~=Zl-q_c*(LR?W`dk9;=^BV^WiKR&SQ@uZrIq3s>noX*#r zT(7>d{M0SOBl2jTXUE_9x6VGEXPk8VEsxc7Zt*$SC%&?C+o!=Gxgz<}g$<`yl`(3{ z_P~-J$SMr{g@J)V2t$;C;Q|hEZU$J2Le*4^L;X@5;=6H(Z^a@02#5F#9OAcdh^ymp z|5Y6758)8+z#-m*L);99y;V5Wd*M)@fEpB-5ah1*Ij$3~9+Z`NgRWxrsSB`N<%q zsYOK$Ir+(nIVG97sSIgQ^W)=lGLw>_PR~uu%wtF^N=;?Z&&bbB)lV!+PRz?J)_2KI zF3nBND=F4b&n(F(P14WJ&q=Aw)6dO~Pt7aKECN*bK|O)V}?OiyJfPE9OI&VU#Rl`1YN zDorjaEdqrx$N-2#8R9+tJ+fd4kU3< zcz^{#?KdQGXjTMEoj?)?*#Q=0U|_g_Bo1;bO#B9tILL08_yZ(ycwS^+V0eKf4lQcI zT0S6&bAd%5#1ABKFIWUZ2q1|=ix{wk1d=#ESOh{SAc=$8 zJP=U^1`Q-}VVEET1A|BN8xD_dR$gNT29MSQC9E$tg9VRp97a;az`*d|^p}wW!++I3 zMhXo4@(v9DRYCj=kfN6l{{R2~U-grb0z(EU3SV9T^Iw7Zps0I!0L*^`;)9yoFE@bs zw?KSQ6uw*l=3fHwK~eW|0+@da#0N#$%LXw25Qq;7wwDE9{w@$76h$u+!2C@hJ}7El z27vjiKzvY?ymSEb7lHVosCa1r=FbB0K~eBh0nDES;)8%E({3QdJ-vr`= zg8Jo$fB*kGhC6otcMS9F{N@*Bzo#;A(ilqucbep#nqq z9be&uJPZu22YkEv_*-3A7#KkI zcyycg87eS1g1ah6Rz>o_`7(k%_@+ee=;|@^VgPddtwr>wO6!xt)bzpc=|L^~Q zkJbYook#gw`q?0^X<%Sr*vDe&z~Iq&-0;AQJ%9iI_vn28;>h3s|GQgMK(f6y3?9k< zUnu?i|37;VSVY33^QcGie~*LDnO<=J`~Tmw^9Wq+QBYEaNxu6Fl01rC@*>EpWQd8L zoyWnZ?FEUozV+yIQE@2Y^KE@n!s*-kmcKQM87X){`O2f)w9)`M2KIuy{lb=;f#Ibo z$eX=eR8BB3Fzf`y#af`Hi9BS0;Z;I1>Xy!>?ri)^&^w z3=I`b4E(KcKrZjDImhAC?V{oUiZ)0hdbw|rsRM)If##!(FBJa%|KEI+(b4iff8SM* z!;{Z?cC(xVC9BpofB*mI-xk2w@GGNqHpIx8ASJzXR4y~OCkt0wM4OU`kC zii``43=GFzR0=>T2Nc&+e*ORdk{_%Gnr;gDTaW+#{~w}v@9+QrkGFtJ1CWlFPeIWy z?*dCr^H7XtU|;|l=?F3sl;6Pq0H?Y#6m?7xb&?=;Q@{o~KvSn5SX~XssZ+p39ykX> zQe_uNc`7LTf=a<|(;!_?83L-Kpe2My=S^^icp<>S!0?je_y7OCt^fI3=7M6U^#Fg% zlt19C4=PDN^GC%%%2`nP`k6m!3OG}N3R+N+0}d!=28Pf4Q9aXt@Dj=%UMTKJr zsBnI9@#p{l&~mX%2U_kiGr$UA#~q+L4OH$~B8qCq9iWQMqubO~2f3_xA;u0bLbYK= zfjU=^^4xI;sQLpL^$t`>f(wAo92E^vNjm{tm87UB_;l8&Nci+Z{N&S_qapySaeO*| zg32!rk6uXmxgV4wJUUra9J|F|{NZ6>$ljv@GDf1)MI{DSQXcv7|G!5vL;|GS16&-g z`vLZH3`iuP^%8%JG9#!dQKRC)z~A!b*Z=<>%{3|k4E!w*e*OOst)3irfGSsyZqq<* z6hAAmAr+yZ`qiV`R1a0je^v$tkIwgoZ(p>2|Nq~kyGF(1MfLap|9v{2zbFRN?_Xp? zWddF#f<^wnh=htbyzu{y?IBF6}5?8T$=ro&dI7m=(C3@-ygntS)Cfb!|SCk74-FBXBE(Ruh~*pL7JUAlX~ z6;*c+IHY0e6p}nQDeSWVmjy5Czk`DpWT^_wQsfi`YW0AU!E+WwsF(djgnHJ`|NlYt zgGcukusuGV54$1tnNR1d7Z({pRXTrb%0Hw~0gZimberzgLzMU^#Y-52Kx)V`sNNYl40i*$zFF?&WP=H)xW?*>P^Y{P%35IVyJ1@q0 zbUyNEe)1t8#Pj$8(1?P^@q?g&0*~XzLE|Pbrhona|4Z5gP&v25-9CXK)I%54fAMJk z!ROKWw45pS@D6aRq4hw?m)QLvss9h4_45u852pU$4`z?fryiY$JPy9H_h7u>aq&kf zQ|#eg5Y3lLzQlTT9)swA1l8YQ8wo09N(DnbI-kC%`~Uxc>@ik14Fv|q&xb+o@o2Vf zP*q@HD3OCZK_qnl44VW7kItw6FT}pA{tvDvUKT@W$BW}9th^|d&0oL z;MjS{@!%^ar(Tn(Ai36W{4K$t()$N9f14K*1A|ZJAy>nbj?D)dJ&uE#>I@#ooj{2T zM1%4Phz5;@GI%r}GVnO=^Z{gw$8o10AllXPV$l)H51pS%YI;qAe3H*KA7k`L{^op~ z1vI$E;CP$`)Cgv9JnpgqR8BJV7BN~Ls}1NiDQiB&1W|5z2%m;pm0p%0kK_x@2N*qO zI38yK6;2>y!4;k3ahC>&u`++bt}#4m_||dHWEIazt+)C6Kx#qZ=-PS8QS+Be=LN^_ zZ(KSr9Q+~g)N3N-+%3|5@E?=rF=(J^esI)0}A- zf(-oqCIA2bH#}*0!0=n^fBx_%{QYYg7#LoH8VG6pp!)bTzt+8876*QfGak(c84o^S z=GQplF@s;@if1oNgW)&J^ZY^{0{lV_3j9I>{9+yw{9+Co{9*wd{KsxH@W-9zk2}mS z>>8L}2EWD;ej$edeldp#kaA%Ge(?YfevK>q zLIDQ+VgVKq1049pVY&kN#T_E}g#!%u#RDwrBs(uSc8hdd9^!8e`VT5-4l*_$W3)V9 z|2#U@@PK2?VZ%!=zyJOJKaF3$1r!?${NV@q_1LQfc7S?ZrJSHd4URT`J$IHWcCcv4 zD}Ft94jAWdgPrmYP(CiX++d}=fft;4_+1YjhJ=q}sAuO{#}MDnGodb>M}s>rgF3Fw z{~1dpJ*-XHRTUUY1Ux!F`gERh={#om|HWHI28QO}j3ojd%||#44?y}&hxz3hd^%tH zbUx~Q2d?~HfJQk{R3N+GquWJ=<1@b?`)7VZcNP%Aag0qFl248^f+|nPV+_iU$3ZNH z7%0XqWRCG-v&`ycIp}Q3vc7aH$an?DOP~1#Tz`D# z7YJqe%rD^k$0PX?f7Ah&ZXOl>eLMm#{QF!4827y}aA4q%y3`$_!UL+MB_Msi=EIEq zQ73&mLsSG@I%8BcK<;{B{o()rW{}?;E${hsgQU7+R5bYeLm=guXY*0UZWa|w7Zn}; zetuAr>#k9ecyaVSDDfS!fJG^|D-7~4D1BUY4Dp19b>kZg0R{$8`VedWEymx@&BDO& zU*)cYg#!a5JsJM@=*>|vcyR?}U~i3z1}FwJUYNcIRni_DF5M119-Z&IJp{S~L^@+s z1iB5H4>C3$%3)_<=qyp;=yqV)x53nbp_4_$@W6}n??G*mXQ2M6$@~BRU-zU<0GkeO zaPBKG2X)LqlFQ$N%4~2x@aY6AXMO+wzu^Io#v>r-!c(aWs0*B7ruudIl^%f@OU=U+q({fVoEU{r~?j zOTfYHzyOyQfZO)--T(hDA<^N$;IYHCBC{kjFI@qw5^Rshj`GZsjQr9P1rXQ5V+VNj zvzUtk#C3Qn`5&n~@Yvy2l$xrLo0#Qy{so0=UOE><2gut7 zFQN!cJDj0|=Eq!Apw0oQ zF!0!+08LgPuEop4U=0upK>j%a_m3yYJxjpSPy-X>tjeR)N5!BsM8(CYdx?qws0r1*Mn!^& zfx+=Os7uEHtqwf8=cp)vWWi-;FJ3?u`*g>sD1gdPgVqE5eb>Oo zwy1#o<@|r3U6=kSPKnwF&!v zSb#=dTvRwfwTcC(_i1?GMLxtM8qGf#`CC@8FfcU#VB&At$qZ`zm&k(089f@0fT9Fa zM1o6wNI4E_>m{=?Fm#uwBz)!FPNNqZCXJs2GEGfAudn|GV{0XljnmD? z82L30do&+3;Mcg!FXSb_FXW^EYTWY+1zq45^LoKA=JbPKEa(Qmu;&AQanBe0!hsj~ z#RG5f3p;+`7kB*OX!)UhyXBA0U;HhgnSx%PAdlpapyqP&$@m$PVEKhvq7j!XZsVnW}@oYZC1Tnz!0!W%=yGQa#ka}!JfE2ix zgIZ!B-R8X_K_1Dcnh$}^W$E`wz68?P?a|8v?(Be6vrGpGO$ISt_`w>vK@D|g&)#rQ z%dQ37J9g|gQSt4K2T3@ycywO>%rDrYG6g)I0?GeAoew|r3pjK5biM-1fz~YWhaWiZ zq5|$4fks?3JUjn^>t&a2LEql$KaQ54TslKk6iT!~c6~mI69=E<1D>ERh9kd#yhrjk|6U#zU&a?6y)~Oz48MVr^%ii)M(+ejr!t7pD~bhm z>yC0VFf{*T{LC*H|A)V28JNfPnO{(yza@YZ)QK0&XL0Qm^k_cD=-GUb#id)wv-tpv zNAqzW*Uo@H9?k!l`CBxYKnewVz;?KF3-aroC|(RQd;-`wnBfIr9@y~G<)F48$7lYC zv!D3|{aIemfz_{|d%$F|w+aOaS@XYDLzpX`OA*h{tzz02d^7G3xfU=V1 zVg9}&fByfs3<2lSH;&zQy(adI-#wDQc_jb;?8q-DvfrcmI4C^`^6UrkUG}qhbnj6C zdCaAQ$K0{ojPaYJ2l(`1)tvYBHi&t^~#ewhbp+PE+GMn$11Sd8PTeIc z4xJ_w!H#eJ{r~?2*KQV-ml3}~jVX}R89=^%$@3pnw1}v@-ssa^qoU!{`TvE;6Ho*7 zW$my3|Br(zW>Bxy<@f*p%?Fr4BL}^OjGvwO1$ufw$)X{122K_JB0->s=_y=(TZhZ9U+Ve4W3=9h3l__yuJqyYz-LHvePv zO}@n6A_=Np!Bqo4R9~`rE^ho~Ee1Orl zQ)G`zw~%XR$X*71y@UL1xuBjz@;`pP7Kj7dV*daCkK}^2P#aKPP!D%ODO4WC1s)J- zCjJ&XkTgHS1;-eh4}koS;*QoY|Nj4X={#@v4dkTuEKq$78ae@m-CNMmgJ<(kX8zU% z|Nj36<#=$h!LN6Mzv(B~bb%@0!U+_1;h*^hmZ*S=4t~7{MV|Z`k9$oVx-CER$D}fN zB!BzNFQ~E^l;c6=gfd7JR0OJQ265FuT#nEDf+?F>Jd!_vYPU|CE!|d*oi$q-KxXst z>$O0PZa>V-z`(C}h`;?G6Nqt;zkL=cg4+{WKvR^UM9sj!58>&ZfcAfj!1_UD9Dlny zSpPx(cF=qlD3yX5Rn0Cc5{w?r2U$Fu5A%37ALH?8KEwj*<5}AA_tk>N`$|+4UatKG zN}(NuMOs|Ch1@$sS{Yvc1iKv6w+4AK;_7F9L6O}rw}3@mKH|XHbJ;AAxRjk zFBgGKgFE~*h)0^)ctWriY#K?$LqsYlB(N0^FW>(LCo*`^!{77+5;pjgRzxZ&sEH_l zUatK6|G(j-m-D`Y?SaO1H^dGouMHH<8dt$t3zU{Pp!rLr`Q>b|XRmi@Pq)gUmNVv{6@pI^}i!% zq>_Pwzi$}>14FM%{ogcxjR&5c*9>nTe8B86!>3oL$)lI06*RQ&)2qVd(VN4>!Y|JN z$~j^nB97&=BY#XNNFYW=1tj9f0d_FI$R&P}+x#LY`J*oJN8SF!A9;yC>f|T>ND%Yn zC;o`bpZFtAec}&1n8vSnpvpRpU*tdN)) z1sBWTr7a%KM>J3d{L=U}4*G!RWkJ1hflvH`DJmQ^){M^)%qReE4NZcMa7xtvSO(Q%Eb0gfxt67; z=4DnYIOe2g7pJC{DI{hmDnQqYQe>`fZenJRf|WvQabiwtMQUo9Lpn%AFF8M#3v94z zF)WZ3bTbt^{Q^Qm6m*jnB6K2kq7-!V75qa(Ktj<9x_JtIp}z6{Zt=eUKCaH8KCTL} z3egI>MG8TVE}o&m3b9c02znM-L9~Kyj)ITByPGG>yh4bv849sr2ZF*=7o3P7+H@5% z^9o8!6w)$tQWf$Nb5p^#g3^Zq$lVY{3JMCk3dyNCISR#@RjCRZX*v0cC7L=4j$GjQ z(anb|Q_xk&FD=1hAlTkKWOaF^xk;%-prKiK`a(*I8ku<|sp+XjntBQ@kQKTLnZ*i* zP}f1-SA=X{QDRDFX)(w==qL{+n7Pk4Y@DX6O!t6OuankD-qLIp|GCqLavK{XSs zA`oORoaYP+Z7T&;J(DyYBoeGTI5j6Vxdfgy5&B@c5~R;C4eBZe2350UKa2n`25VD5 zkxMMe&jpKv{2mHg^=t)V1tbe-T$Gwvf~f=KTW~nz(pLZ( zfXA*=)hszEwYW5=1Z+hCXlZ?Fib6>~!r$2a6$~nlGeGk#55#zsi~k;r=Xjm z4lcuU^NUgyQc_D2GjobT<-S?6Gk9G&D5JnKUNP9x;?xpMJ5T=0zko| zPy`7teXpKUysG(|NkwR7#J#^|NmdX#K7S3?f?H1 zObiSW-~a!YU}j)A@%{h*1kmzS=-xO`N@uJJVqmNgV3g)z=a|6AE&y5=1loYM;m-g6 zS|9~b3=#)1QPndrs6hA4UAXxFzW`|7noq!uPr{3zyPTte!CuN*%UDGTq)&$dvggp_ z?*ISbJw#4?0zFLLd=hQU&U^~ZEX-L<9n!bGiBG`^W--Vx(AYA_|BMU_J1+kJ58k_lFwd0_ zW}YM5Ja@hc5=^mN*bD@P4g&*dTj&%<28JIG{{IK>Q9=s`M^HF;@;y*sTF=F&;fNFx zZlDz!3?Tnq0qKA8|37#y6WBdYd=kk11G~osIJh{|E2!0-NUwGS8Jyp_j!K6#gEd z@bUn;&zH|32b2`Trlh;t3ibFiHTrukC{vBwxeCK}i|JMyEl0W7{1Gr-2%<@fj&a3~(MqM|@&Y zQDP-T2aKJSTm*JTVs2(KgI;=m37F6W+X68$skoQ{)a?UxmeB*53_d7dgR&ef9mCEQ z01bhIjDzKC5F3O+YC$v%gZ7$(@)ArxY~Ma?KR;+GI!rBy294W*Xc#tRU|>MjZv!na zY@h~$>T8%<5RI-MbS}WR|Nrx$${AqgO#)N^v|tyc4_5xb@;OKhg#8#87(itWR5^nJ zv^-LP7BC;6G^o4+`5mSoRxX4=_w~c{!^$@Skf#_J;N=;}E)WKp0it0z4zza-$^EeM zg9BOsg+LX;+z+z{MrSiHFo4P?7(W48{v<&42SD|M+z(O%b3as=0kl6H6s90KkQl5y z+yK=ND-U7z!}P=a51L&;)(KTw6 z2!reb(J|6{`n-r!NM5Bk_HZ=VW&~r2zpp8owX!-}~1z|MjFo4?spiPJ{Ww7=F z?EDaP_2~RF3=9mQwh2r>tUWOS)L=wvZ-DFuVRZdBpzeq12dzK{shdHh{<{ne;Imm^ z`eF4c>>QI1pvZx$0htT4AC?ZDq1g}HcRaxkq#Ds)g76T0m^rV}^uyXSGoboGlczAf zAR49*MuXb?ASc4y4?Ew$z#gQUfdS@D2oGUDjQ_@srFT*FozuWR;+O^00amRh*dt zR{x=jv%u>$RB={#eT6E{#sI5_P{r99VD$^CI0pl)-ar-SWPsHNsN!4wg2XqViTi_3klz>^ zF=C0A*-&#}{b7(=5MB;0BQWFl82B75%<#F4Lmadt7F#&H#i1Uw;|QC2Mn+Jbk7+Ni za0azk7(waQ2GUOj`3Z#O7(r)bU{8nG?9~DXpb$oSwg#Ic!C(OmXOP(->;V?XOwXWm zWEimImlUvi35@f4KpTGh@~ z__*Rw9|;!cWk5f#Cj%^wSsvzr#d#Uf&jYFfi=(;)#Onu(W1iDA2P%$!9?%-FI7lZd zK8-{C9uugoff;VEai|9!hK4O(_?bcHE+NW!SoJH%j6IwUz~a0Nply>Nmx9U>5bXdK z2eD9b2oCXlusAQn1+?>z>XuqLSj0(zG7FXy0mAJ5>B_;?1y@lf$4x$()M1EPuNO#HWcLSZzhNc$mr{a>7)S@C(830D5M=byV literal 0 HcmV?d00001 diff --git a/mathmech/bin/mm_radf b/mathmech/bin/mm_radf new file mode 100755 index 0000000000000000000000000000000000000000..139dd15f2712641109729063570e4d183927bcb3 GIT binary patch literal 31289 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 literal 0 HcmV?d00001 diff --git a/mathmech/bin/mm_statgen b/mathmech/bin/mm_statgen new file mode 100755 index 0000000000000000000000000000000000000000..0ed58104381e9694ef77e11b50683fec60308915 GIT binary patch literal 33549 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%0Ax@V9INb8A#G82DS3f%A?p1E_*7 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 ZCk?s|8dWXk)xqFm19Z`IYEcoYS^!=jz$pL# literal 0 HcmV?d00001 diff --git a/mathmech/bin/mm_trj b/mathmech/bin/mm_trj new file mode 100755 index 0000000000000000000000000000000000000000..5d7f231d72acf7cd1b4b26a8335be52467b29d5c GIT binary patch literal 20795 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 literal 0 HcmV?d00001 diff --git a/mathmech/bin/mm_trj2pdb b/mathmech/bin/mm_trj2pdb new file mode 100755 index 0000000000000000000000000000000000000000..d040b8b9e7ee54ad964ba5d5300eb46099654d08 GIT binary patch literal 19234 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 z@NpEVLhui->trj_lineEdit_workDir->clear(); + parent->ui->trj_lineEdit_input->clear(); + parent->ui->trj_comboBox_type->setCurrentIndex(0); + parent->ui->trj_spinBox_steps->setValue(1); + parent->ui->trj_lineEdit_atoms->clear(); + parent->ui->trj_lineEdit_output->clear(); + parent->ui->trj_spinBox_totalTypes->setValue(1024); + parent->ui->trj_checkBox_log->setCheckState(Qt::Checked); + parent->ui->trj_lineEdit_log->clear(); +} + +void Clear_items::clear_statgen() +{ + parent->ui->statgen_lineEdit_workDir->clear(); + parent->ui->statgen_lineEdit_input->clear(); + parent->ui->statgen_spinBox_stepsFirst->setValue(1); + parent->ui->statgen_spinBox_stepsLast->setValue(1); + parent->ui->statgen_doubleSpinBox_cellX->setValue(0.1); + parent->ui->statgen_doubleSpinBox_cellY->setValue(0.1); + parent->ui->statgen_doubleSpinBox_cellZ->setValue(0.1); + parent->ui->statgen_spinBox_atoms0->setValue(0); + parent->ui->statgen_checkBox_atoms1->setCheckState(Qt::Unchecked); + parent->ui->statgen_spinBox_atoms1->setValue(0); + parent->ui->statgen_spinBox_atoms2->setValue(0); + parent->ui->statgen_spinBox_atoms3->setValue(0); + parent->ui->statgen_doubleSpinBox_int->setValue(0.0); + parent->ui->statgen_listWidget_int->clear(); + parent->ui->statgen_lineEdit_output->clear(); + parent->ui->statgen_checkBox_depth->setCheckState(Qt::Checked); + parent->ui->statgen_spinBox_depth->setValue(10); + parent->ui->statgen_checkBox_log->setCheckState(Qt::Checked); + parent->ui->statgen_lineEdit_log->clear(); +} + +void Clear_items::clear_envir() +{ + parent->ui->envir_lineEdit_workDir->clear(); + parent->ui->envir_lineEdit_input->clear(); + parent->ui->envir_doubleSpinBox_cellX->setValue(0.1); + parent->ui->envir_doubleSpinBox_cellY->setValue(0.1); + parent->ui->envir_doubleSpinBox_cellZ->setValue(0.1); + parent->ui->envir_lineEdit_output->clear(); + parent->ui->envir_spinBox_molecule->setValue(1); + parent->ui->envir_doubleSpinBox_radius->setValue(0.0); + parent->ui->envir_checkBox_log->setCheckState(Qt::Checked); + parent->ui->envir_lineEdit_log->clear(); +} + +void Clear_items::clear_radf() +{ + parent->ui->radf_lineEdit_workDir->clear(); + parent->ui->radf_lineEdit_input->clear(); + parent->ui->radf_spinBox_stepsFirst->setValue(1); + parent->ui->radf_spinBox_stepsLast->setValue(1); + parent->ui->radf_doubleSpinBox_cellX->setValue(0.1); + parent->ui->radf_doubleSpinBox_cellY->setValue(0.1); + parent->ui->radf_doubleSpinBox_cellZ->setValue(0.1); + parent->ui->radf_lineEdit_output->clear(); + parent->ui->radf_comboBox_atom->setCurrentIndex(0); + parent->ui->radf_spinBox_atoms0->setValue(0); + parent->ui->radf_spinBox_atoms1->setValue(0); + parent->ui->radf_spinBox_atoms2->setValue(0); + parent->ui->radf_spinBox_atoms3->setValue(0); + parent->ui->radf_spinBox_atoms4->setValue(0); + parent->ui->radf_spinBox_atoms5->setValue(0); + parent->ui->radf_doubleSpinBox_radMin->setValue(2.0); + parent->ui->radf_doubleSpinBox_radMax->setValue(15.0); + parent->ui->radf_doubleSpinBox_radStep->setValue(0.2); + parent->ui->radf_checkBox_ang->setCheckState(Qt::Unchecked); + parent->ui->radf_doubleSpinBox_angMin->setValue(0.0); + parent->ui->radf_doubleSpinBox_angMax->setValue(90.0); + parent->ui->radf_doubleSpinBox_angStep->setValue(15.0); + parent->ui->radf_checkBox_matrix->setCheckState(Qt::Unchecked); + parent->ui->radf_checkBox_log->setCheckState(Qt::Checked); + parent->ui->radf_lineEdit_log->clear(); +} + +void Clear_items::clear_pdb() +{ + parent->ui->pdb_comboBox_mode->setCurrentIndex(0); + parent->ui->pdb_lineEdit_workDir->clear(); + parent->ui->pdb_lineEdit_input->clear(); + parent->ui->pdb_lineEdit_agl->clear(); + parent->ui->pdb_doubleSpinBox_cellX->setValue(0.1); + parent->ui->pdb_doubleSpinBox_cellY->setValue(0.1); + parent->ui->pdb_doubleSpinBox_cellZ->setValue(0.1); + parent->ui->pdb_lineEdit_output->clear(); + parent->ui->pdb_checkBox_log->setCheckState(Qt::Checked); + parent->ui->pdb_lineEdit_log->clear(); +} diff --git a/mathmech/clear_items.h b/mathmech/clear_items.h new file mode 100644 index 0000000..b7d2471 --- /dev/null +++ b/mathmech/clear_items.h @@ -0,0 +1,27 @@ +#ifndef CLEAR_ITEMS_H +#define CLEAR_ITEMS_H + +#include + +class MainWindow; + +class Clear_items : public QWidget +{ + Q_OBJECT +public: + explicit Clear_items(MainWindow *wid = 0); + void clear_trj(); + void clear_statgen(); + void clear_envir(); + void clear_radf(); + void clear_pdb(); + +signals: + +public slots: + +private: + MainWindow *parent; +}; + +#endif /* CLEAR_ITEMS_H */ diff --git a/mathmech/errorwindow.cpp b/mathmech/errorwindow.cpp new file mode 100644 index 0000000..011102c --- /dev/null +++ b/mathmech/errorwindow.cpp @@ -0,0 +1,63 @@ +#include "errorwindow.h" +#include "ui_errorwindow.h" + +ErrorWindow::ErrorWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::ErrorWindow) +{ + ui->setupUi(this); +} + +ErrorWindow::~ErrorWindow() +{ + delete ui; +} + +void ErrorWindow::set_message(QString language, int mess) +{ + QString message; + if (language == QString("eng")) + { + switch(mess) + { + case 0: + message = QString("Work directory does not exists"); + break; + case 1: + message = QString("Input file does not exists"); + break; + case 2: + message = QString("Number of steps is not set"); + break; + case 3: + message = QString("Atom types file does not exists"); + break; + case 4: + message = QString("Output file is not set"); + break; + case 5: + message = QString("Number of total types is not set"); + break; + case 6: + message = QString("Log file is not set"); + break; + case 7: + message = QString("Component is not found"); + break; + case 8: + message = QString("Cell size is not set"); + break; + case 9: + message = QString("Atom types are not set"); + break; + case 10: + message = QString ("Interactions are not set"); + break; + case 11: + message = QString ("Depth is not set"); + break; + } + } + + ui->label->setText(message); +} diff --git a/mathmech/errorwindow.h b/mathmech/errorwindow.h new file mode 100644 index 0000000..0c7e6f8 --- /dev/null +++ b/mathmech/errorwindow.h @@ -0,0 +1,23 @@ +#ifndef ERRORWINDOW_H +#define ERRORWINDOW_H + +#include + +namespace Ui { + class ErrorWindow; +} + +class ErrorWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit ErrorWindow(QWidget *parent = 0); + ~ErrorWindow(); + void set_message(QString language, int mess); + +private: + Ui::ErrorWindow *ui; +}; + +#endif /* ERRORWINDOW_H */ diff --git a/mathmech/errorwindow.ui b/mathmech/errorwindow.ui new file mode 100644 index 0000000..27fcd22 --- /dev/null +++ b/mathmech/errorwindow.ui @@ -0,0 +1,129 @@ + + + ErrorWindow + + + + 0 + 0 + 287 + 101 + + + + Error + + + + + + + Qt::Vertical + + + + 20 + 10 + + + + + + + + + + + 0 + 30 + + + + Error text + + + Qt::AlignCenter + + + + + + + + + Qt::Vertical + + + + 20 + 10 + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 23 + + + + Ok + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + pushButton + clicked() + ErrorWindow + close() + + + 143 + 93 + + + 143 + 57 + + + + + diff --git a/mathmech/main.cpp b/mathmech/main.cpp new file mode 100644 index 0000000..a3e99a8 --- /dev/null +++ b/mathmech/main.cpp @@ -0,0 +1,14 @@ +#include "mainwindow.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QLocale::setDefault(QLocale::C); + + QApplication a(argc, argv); + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/mathmech/mainwindow.cpp b/mathmech/mainwindow.cpp new file mode 100644 index 0000000..5a9e570 --- /dev/null +++ b/mathmech/mainwindow.cpp @@ -0,0 +1,552 @@ +#include +#include + +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include "clear_items.h" +#include "start_events.h" + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow), + clear_items(new Clear_items(this)), + start_events(new Start_events(this)) +{ + ui->setupUi(this); + statgen_crit = new float[10]; + + ui->statusBar->showMessage(QString("Ready")); + +// TODO: read config + language = QString("eng"); + mm_agl_path = QString("/home/arcanis/mathmech/bin/mm_agl"); + mm_envir_path = QString("/home/arcanis/mathmech/bin/mm_envir"); + mm_radf_path = QString("/home/arcanis/mathmech/bin/mm_radf"); + mm_statgen_path = QString("/home/arcanis/mathmech/bin/mm_statgen"); + mm_trj_path = QString("/home/arcanis/mathmech/bin/mm_trj"); + mm_trj2pdb_path = QString("/home/arcanis/mathmech/bin/mm_trj2pdb"); +} + +MainWindow::~MainWindow() +{ + delete ui; + delete clear_items; + delete start_events; + delete statgen_crit; +} + +// signals +void MainWindow::on_trj_checkBox_log_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->trj_lineEdit_log->setDisabled(true); + ui->trj_pushButton_log->setDisabled(true); + } + else if (arg1 == 2) + { + ui->trj_lineEdit_log->setEnabled(true); + ui->trj_pushButton_log->setEnabled(true); + ui->trj_lineEdit_log->clear(); + } +} + +void MainWindow::on_statgen_checkBox_depth_stateChanged(int arg1) +{ + if (arg1 == 0) + ui->statgen_spinBox_depth->setDisabled(true); + else if (arg1 == 2) + { + ui->statgen_spinBox_depth->setEnabled(true); + ui->statgen_spinBox_depth->setValue(10); + } +} + +void MainWindow::on_statgen_checkBox_log_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->statgen_lineEdit_log->setDisabled(true); + ui->statgen_pushButton_log->setDisabled(true); + } + else if (arg1 == 2) + { + ui->statgen_lineEdit_log->setEnabled(true); + ui->statgen_pushButton_log->setEnabled(true); + ui->statgen_lineEdit_log->clear(); + } +} + +void MainWindow::on_statgen_checkBox_atoms1_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->statgen_spinBox_atoms1->setDisabled(true); + ui->statgen_checkBox_atoms2->setCheckState(Qt::Unchecked); + ui->statgen_checkBox_atoms2->setDisabled(true); + } + else if (arg1 == 2) + { + ui->statgen_spinBox_atoms1->setEnabled(true); + ui->statgen_spinBox_atoms1->setValue(0); + ui->statgen_checkBox_atoms2->setEnabled(true); + } + update_interaction(); +} + +void MainWindow::on_statgen_checkBox_atoms2_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->statgen_spinBox_atoms2->setDisabled(true); + ui->statgen_checkBox_atoms3->setCheckState(Qt::Unchecked); + ui->statgen_checkBox_atoms3->setDisabled(true); + } + else if (arg1 == 2) + { + ui->statgen_spinBox_atoms2->setEnabled(true); + ui->statgen_spinBox_atoms2->setValue(0); + ui->statgen_checkBox_atoms3->setEnabled(true); + } + update_interaction(); +} + +void MainWindow::on_statgen_checkBox_atoms3_stateChanged(int arg1) +{ + if (arg1 == 0) + ui->statgen_spinBox_atoms3->setDisabled(true); + else if (arg1 == 2) + { + ui->statgen_spinBox_atoms3->setEnabled(true); + ui->statgen_spinBox_atoms3->setValue(0); + } + update_interaction(); +} + +void MainWindow::on_envir_checkBox_log_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->envir_lineEdit_log->setDisabled(true); + ui->envir_pushButton_log->setDisabled(true); + } + else if (arg1 == 2) + { + ui->envir_lineEdit_log->setEnabled(true); + ui->envir_pushButton_log->setEnabled(true); + ui->envir_lineEdit_log->clear(); + } +} + +void MainWindow::on_radf_comboBox_atom_currentIndexChanged(int index) +{ + if (index == 0) + { + ui->radf_spinBox_atoms1->setDisabled(true); + ui->radf_spinBox_atoms2->setDisabled(true); + ui->radf_spinBox_atoms4->setDisabled(true); + ui->radf_spinBox_atoms5->setDisabled(true); + } + else if (index == 1) + { + ui->radf_spinBox_atoms1->setEnabled(true); + ui->radf_spinBox_atoms2->setEnabled(true); + ui->radf_spinBox_atoms4->setEnabled(true); + ui->radf_spinBox_atoms5->setEnabled(true); + ui->radf_spinBox_atoms1->setValue(0); + ui->radf_spinBox_atoms2->setValue(0); + ui->radf_spinBox_atoms4->setValue(0); + ui->radf_spinBox_atoms5->setValue(0); + } +} + +void MainWindow::on_radf_checkBox_ang_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->radf_doubleSpinBox_angMax->setDisabled(true); + ui->radf_doubleSpinBox_angMin->setDisabled(true); + ui->radf_doubleSpinBox_angStep->setDisabled(true); + } + else if (arg1 == 2) + { + ui->radf_doubleSpinBox_angMax->setEnabled(true); + ui->radf_doubleSpinBox_angMin->setEnabled(true); + ui->radf_doubleSpinBox_angStep->setEnabled(true); + ui->radf_doubleSpinBox_angMax->setValue(90.0); + ui->radf_doubleSpinBox_angMin->setValue(0.0); + ui->radf_doubleSpinBox_angStep->setValue(15.0); + } +} + +void MainWindow::on_radf_checkBox_log_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->radf_lineEdit_log->setDisabled(true); + ui->radf_pushButton_log->setDisabled(true); + } + else if (arg1 == 2) + { + ui->radf_lineEdit_log->setEnabled(true); + ui->radf_pushButton_log->setEnabled(true); + ui->radf_lineEdit_log->clear(); + } +} + +void MainWindow::on_pdb_comboBox_mode_currentIndexChanged(int index) +{ + if (index == 1) + { + ui->pdb_lineEdit_agl->setDisabled(true); + ui->pdb_pushButton_agl->setDisabled(true); + ui->pdb_doubleSpinBox_cellX->setDisabled(true); + ui->pdb_doubleSpinBox_cellY->setDisabled(true); + ui->pdb_doubleSpinBox_cellZ->setDisabled(true); + } + else if (index == 0) + { + ui->pdb_lineEdit_agl->clear(); + ui->pdb_doubleSpinBox_cellX->setValue(0.1); + ui->pdb_doubleSpinBox_cellY->setValue(0.1); + ui->pdb_doubleSpinBox_cellZ->setValue(0.1); + ui->pdb_lineEdit_agl->setEnabled(true); + ui->pdb_pushButton_agl->setEnabled(true); + ui->pdb_doubleSpinBox_cellX->setEnabled(true); + ui->pdb_doubleSpinBox_cellY->setEnabled(true); + ui->pdb_doubleSpinBox_cellZ->setEnabled(true); + } +} + +void MainWindow::on_pdb_checkBox_log_stateChanged(int arg1) +{ + if (arg1 == 0) + { + ui->pdb_lineEdit_log->setDisabled(true); + ui->pdb_pushButton_log->setDisabled(true); + } + else if (arg1 == 2) + { + ui->pdb_lineEdit_log->setEnabled(true); + ui->pdb_pushButton_log->setEnabled(true); + ui->pdb_lineEdit_log->clear(); + } +} + +// file dialogs +void MainWindow::on_trj_pushButton_workDir_clicked() +{ + QString dirname = QFileDialog::getExistingDirectory( + this, + tr("Select work directory"), + QDir::currentPath()); + if (!dirname.isEmpty()) + ui->trj_lineEdit_workDir->setText(dirname); +} + +void MainWindow::on_trj_pushButton_input_clicked() +{ + QString filename = QFileDialog::getOpenFileName( + this, + tr("Select trajectory file"), + QDir(ui->trj_lineEdit_workDir->text()).absolutePath(), + tr("All files (*.*)")); + if (!filename.isEmpty()) + ui->trj_lineEdit_input->setText(filename); +} + +void MainWindow::on_trj_pushButton_atoms_clicked() +{ + QString filename = QFileDialog::getOpenFileName( + this, + tr("Select atom types file"), + QDir(ui->trj_lineEdit_workDir->text()).absolutePath(), + tr("Atom types files (*.types);;All files (*.*)")); + if (!filename.isEmpty()) + ui->trj_lineEdit_atoms->setText(filename); +} + +void MainWindow::on_trj_pushButton_log_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save log file as..."), + QDir(ui->trj_lineEdit_workDir->text()).absolutePath(), + tr("Log files (*.log)")); + if (!filename.isEmpty()) + ui->trj_lineEdit_log->setText(filename); +} + +void MainWindow::on_statgen_pushButton_workDir_clicked() +{ + QString dirname = QFileDialog::getExistingDirectory( + this, + tr("Select work directory"), + QDir::currentPath()); + if (!dirname.isEmpty()) + ui->statgen_lineEdit_workDir->setText(dirname); +} + +void MainWindow::on_statgen_pushButton_output_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save output file as..."), + QDir(ui->statgen_lineEdit_workDir->text()).absolutePath(), + tr("Output files (*.dat)")); + if (!filename.isEmpty()) + ui->statgen_lineEdit_output->setText(filename); +} + +void MainWindow::on_statgen_pushButton_log_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save log file as..."), + QDir(ui->statgen_lineEdit_workDir->text()).absolutePath(), + tr("Log files (*.log)")); + if (!filename.isEmpty()) + ui->statgen_lineEdit_log->setText(filename); +} + +void MainWindow::on_envir_pushButton_workDir_clicked() +{ + QString dirname = QFileDialog::getExistingDirectory( + this, + tr("Select work directory"), + QDir::currentPath()); + if (!dirname.isEmpty()) + ui->envir_lineEdit_workDir->setText(dirname); +} + +void MainWindow::on_envir_pushButton_input_clicked() +{ + QString filename = QFileDialog::getOpenFileName( + this, + tr("Select trajectory file"), + QDir(ui->envir_lineEdit_workDir->text()).absolutePath(), + tr("Trajectory files (*.*[0-9])")); + if (!filename.isEmpty()) + ui->envir_lineEdit_input->setText(filename); +} + +void MainWindow::on_envir_pushButton_output_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save PDB file as..."), + QDir(ui->envir_lineEdit_workDir->text()).absolutePath(), + tr("PDB files (*.pdb)")); + if (!filename.isEmpty()) + ui->envir_lineEdit_output->setText(filename); +} + +void MainWindow::on_envir_pushButton_log_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save log file as..."), + QDir(ui->envir_lineEdit_workDir->text()).absolutePath(), + tr("Log files (*.log)")); + if (!filename.isEmpty()) + ui->envir_lineEdit_log->setText(filename); +} + +void MainWindow::on_radf_pushButton_workDir_clicked() +{ + QString dirname = QFileDialog::getExistingDirectory( + this, + tr("Select work directory"), + QDir::currentPath()); + if (!dirname.isEmpty()) + ui->radf_lineEdit_workDir->setText(dirname); +} + +void MainWindow::on_radf_pushButton_output_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save output file as..."), + QDir(ui->radf_lineEdit_workDir->text()).absolutePath(), + tr("Output files (*.dat)")); + if (!filename.isEmpty()) + ui->envir_lineEdit_output->setText(filename); +} + +void MainWindow::on_radf_pushButton_log_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save log file as..."), + QDir(ui->radf_lineEdit_workDir->text()).absolutePath(), + tr("Log files (*.log)")); + if (!filename.isEmpty()) + ui->radf_lineEdit_log->setText(filename); +} + +void MainWindow::on_pdb_pushButton_workDir_clicked() +{ + QString dirname = QFileDialog::getExistingDirectory( + this, + tr("Select work directory"), + QDir::currentPath()); + if (!dirname.isEmpty()) + ui->pdb_lineEdit_workDir->setText(dirname); +} + +void MainWindow::on_pdb_pushButton_input_clicked() +{ + QString filename = QFileDialog::getOpenFileName( + this, + tr("Select trajectory file"), + QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(), + tr("Trajectory files (*.*[0-9])")); + if (!filename.isEmpty()) + ui->pdb_lineEdit_input->setText(filename); +} + +void MainWindow::on_pdb_pushButton_agl_clicked() +{ + QString filename = QFileDialog::getOpenFileName( + this, + tr("Select agglomerate file"), + QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(), + tr("Agglomerate files (*.agl]);;All files (*.*)")); + if (!filename.isEmpty()) + ui->pdb_lineEdit_agl->setText(filename); +} + +void MainWindow::on_pdb_pushButton_output_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save PDB file as..."), + QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(), + tr("PDB files (*.pdb)")); + if (!filename.isEmpty()) + ui->pdb_lineEdit_output->setText(filename); +} + +void MainWindow::on_pdb_pushButton_log_clicked() +{ + QString filename = QFileDialog::getSaveFileName( + this, + tr("Save log file as..."), + QDir(ui->pdb_lineEdit_workDir->text()).absolutePath(), + tr("Log files (*.log)")); + if (!filename.isEmpty()) + ui->pdb_lineEdit_log->setText(filename); +} + +// clear actions +void MainWindow::on_trj_pushButton_clear_clicked() +{ + clear_items->clear_trj(); +} + +void MainWindow::on_statgen_pushButton_clear_clicked() +{ + clear_items->clear_statgen(); +} + +void MainWindow::on_envir_pushButton_clear_clicked() +{ + clear_items->clear_envir(); +} + +void MainWindow::on_radf_pushButton_clear_clicked() +{ + clear_items->clear_radf(); +} + +void MainWindow::on_pdb_pushButton_clear_clicked() +{ + clear_items->clear_pdb(); +} + +// set interaction (statgen) +void MainWindow::update_interaction() +{ + int num_inter = 0; + + if (ui->statgen_checkBox_atoms1->checkState() == 2) + num_inter++; + if (ui->statgen_checkBox_atoms2->checkState() == 2) + num_inter++; + if (ui->statgen_checkBox_atoms3->checkState() == 2) + num_inter++; + + ui->statgen_comboBox_int->clear(); + ui->statgen_comboBox_int->addItem("0-0"); + if (num_inter >= 1) + { + ui->statgen_comboBox_int->addItem("0-1"); + ui->statgen_comboBox_int->addItem("1-1"); + } + if (num_inter >= 2) + { + ui->statgen_comboBox_int->addItem("0-2"); + ui->statgen_comboBox_int->addItem("1-2"); + ui->statgen_comboBox_int->addItem("2-2"); + } + if (num_inter >= 3) + { + ui->statgen_comboBox_int->addItem("0-3"); + ui->statgen_comboBox_int->addItem("1-3"); + ui->statgen_comboBox_int->addItem("2-3"); + ui->statgen_comboBox_int->addItem("3-3"); + } + + for (int i=0; i<10; i++) + statgen_crit[i] = 0.0; +} + +void MainWindow::on_statgen_comboBox_int_currentIndexChanged(int index) +{ + ui->statgen_doubleSpinBox_int->setValue(statgen_crit[index]); +} + +void MainWindow::on_stagen_pushButton_intSave_clicked() +{ + int index; + index = ui->statgen_comboBox_int->currentIndex(); + statgen_crit[index] = ui->statgen_doubleSpinBox_int->value(); +} + +void MainWindow::on_statgen_pushButton_intAdd_clicked() +{ + QString interaction; + QString crit; + + int num_inter = ui->statgen_comboBox_int->count(); + for (int i=0; istatgen_comboBox_int->itemText(i)); + interaction.append(QString(":")); + crit.setNum(statgen_crit[i], 'f', 3); + interaction.append(crit); + interaction.append(QString(",")); + } + interaction.remove(interaction.count()-1, 1); + ui->statgen_listWidget_int->addItem(interaction); + ui->statgen_doubleSpinBox_int->setValue(0.0); + for (int i=0; i<10; i++) + statgen_crit[i] = 0.0; +} + +void MainWindow::on_stagen_pushButton_intRem_clicked() +{ + if (int curIndex = ui->statgen_listWidget_int->currentRow() > -1) + delete ui->statgen_listWidget_int->item(curIndex-1); +} + +// start signals +void MainWindow::on_trj_pushButton_start_clicked() +{ + start_events->start_trj(mm_trj_path); +} + +void MainWindow::on_statgen_pushButton_start_clicked() +{ + start_events->start_statgen(mm_statgen_path); +} diff --git a/mathmech/mainwindow.h b/mathmech/mainwindow.h new file mode 100644 index 0000000..c8034c4 --- /dev/null +++ b/mathmech/mainwindow.h @@ -0,0 +1,88 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +class Clear_items; +class Start_events; + +namespace Ui { +class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + QString language; + +private slots: +// enable/disable signals + void on_trj_checkBox_log_stateChanged (int arg1); + void on_statgen_checkBox_depth_stateChanged (int arg1); + void on_statgen_checkBox_log_stateChanged (int arg1); + void on_statgen_checkBox_atoms1_stateChanged(int arg1); + void on_statgen_checkBox_atoms2_stateChanged(int arg1); + void on_statgen_checkBox_atoms3_stateChanged(int arg1); + void on_envir_checkBox_log_stateChanged(int arg1); + void on_radf_comboBox_atom_currentIndexChanged(int index); + void on_radf_checkBox_ang_stateChanged(int arg1); + void on_radf_checkBox_log_stateChanged(int arg1); + void on_pdb_comboBox_mode_currentIndexChanged(int index); + void on_pdb_checkBox_log_stateChanged(int arg1); +// select directory signals + void on_trj_pushButton_workDir_clicked(); + void on_trj_pushButton_input_clicked(); + void on_trj_pushButton_atoms_clicked(); + void on_trj_pushButton_log_clicked(); + void on_statgen_pushButton_workDir_clicked(); + void on_statgen_pushButton_output_clicked(); + void on_statgen_pushButton_log_clicked(); + void on_envir_pushButton_workDir_clicked(); + void on_envir_pushButton_input_clicked(); + void on_envir_pushButton_output_clicked(); + void on_envir_pushButton_log_clicked(); + void on_radf_pushButton_workDir_clicked(); + void on_radf_pushButton_output_clicked(); + void on_radf_pushButton_log_clicked(); + void on_pdb_pushButton_workDir_clicked(); + void on_pdb_pushButton_input_clicked(); + void on_pdb_pushButton_agl_clicked(); + void on_pdb_pushButton_output_clicked(); + void on_pdb_pushButton_log_clicked(); +// clear signals + void on_trj_pushButton_clear_clicked(); + void on_statgen_pushButton_clear_clicked(); + void on_envir_pushButton_clear_clicked(); + void on_radf_pushButton_clear_clicked(); + void on_pdb_pushButton_clear_clicked(); +// interaction (statgen) + void on_statgen_comboBox_int_currentIndexChanged(int index); + void on_stagen_pushButton_intSave_clicked(); + void on_statgen_pushButton_intAdd_clicked(); + void on_stagen_pushButton_intRem_clicked(); +// start events + void on_trj_pushButton_start_clicked(); + void on_statgen_pushButton_start_clicked(); + +private: + Ui::MainWindow *ui; + void update_interaction(); + float *statgen_crit; + QString mm_agl_path; + QString mm_envir_path; + QString mm_radf_path; + QString mm_statgen_path; + QString mm_trj_path; + QString mm_trj2pdb_path; + + Clear_items *clear_items; + friend class Clear_items; + Start_events *start_events; + friend class Start_events; +}; + +#endif /* MAINWINDOW_H */ diff --git a/mathmech/mainwindow.ui b/mathmech/mainwindow.ui new file mode 100644 index 0000000..ec3aa4f --- /dev/null +++ b/mathmech/mainwindow.ui @@ -0,0 +1,3449 @@ + + + MainWindow + + + + 0 + 0 + 564 + 554 + + + + Mathematical Molecular Mechanics + + + + + + + 0 + + + + Generate trajectory + + + + + + + + + 110 + 23 + + + + Work directory + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Input file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Type of trajectory + + + + + + + + 130 + 23 + + + + + GROMACS text + + + + + PUMA + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 110 + 23 + + + + Number of steps + + + + + + + + 75 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 999 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 110 + 23 + + + + Atom type file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Mask of output files + + + + + + + + 365 + 23 + + + + + + + + + + + + + 110 + 23 + + + + Total atom types + + + + + + + + 80 + 23 + + + + Qt::LeftToRight + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1024 + + + 999999 + + + + + + + + 110 + 23 + + + + Log + + + true + + + + + + + + 80 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + 80 + 23 + + + + Clear + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 23 + + + + + 16777215 + 16777215 + + + + Start + + + true + + + + + + + + + + Agglomeration + + + + + + + + + 110 + 23 + + + + Work directory + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Mask of input files + + + + + + + + 280 + 23 + + + + + + + + + + + + + 110 + 23 + + + + Steps + + + + + + + + 75 + 23 + + + + first + + + + + + + + 75 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 999 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 75 + 23 + + + + last + + + + + + + + 75 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 999 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 110 + 23 + + + + Cell, A + + + + + + + + 50 + 23 + + + + X + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Y + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Z + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + + + + + 0 + 0 + + + + + 45 + 23 + + + + atom 0 + + + + + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 65 + 23 + + + + atom 1 + + + + + + + false + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + false + + + + 65 + 23 + + + + atom 2 + + + + + + + false + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + false + + + + 65 + 23 + + + + atom 3 + + + + + + + false + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + 110 + 23 + + + + Interaction + + + + + + + + 0 + 0 + + + + + 90 + 23 + + + + + 0-0 + + + + + + + + + 0 + 0 + + + + + 90 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 0.000000000000000 + + + 0.000000000000000 + + + + + + + + 80 + 23 + + + + Save + + + true + + + + + + + + 80 + 23 + + + + Add + + + true + + + + + + + + + + 484 + 85 + + + + QAbstractItemView::NoEditTriggers + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 23 + + + + Remove + + + true + + + + + + + + + + + + 110 + 23 + + + + Output file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Depth of search + + + true + + + + + + + + 80 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 1000 + + + 10 + + + + + + + + 110 + 23 + + + + Log + + + true + + + + + + + + 80 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 80 + 23 + + + + Clear + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 23 + + + + + 16777215 + 16777215 + + + + Start + + + true + + + + + + + + + + Environment + + + + + + + + + 110 + 23 + + + + Work directory + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Input file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Cell, A + + + + + + + + 50 + 23 + + + + X + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Y + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Z + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + + + + + 110 + 23 + + + + Output file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Molecule + + + + + + + + 75 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 9999 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 110 + 23 + + + + Radius + + + + + + + + 75 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 110 + 23 + + + + Log + + + true + + + + + + + + 173 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + Qt::Vertical + + + + 20 + 177 + + + + + + + + + + + 80 + 23 + + + + Clear + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 23 + + + + + 16777215 + 16777215 + + + + Start + + + true + + + + + + + + + + RADF + + + + + + + + + 110 + 23 + + + + Work directory + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Mask of input files + + + + + + + + 280 + 23 + + + + + + + + + + + + + 110 + 23 + + + + Steps + + + + + + + + 75 + 23 + + + + first + + + + + + + + 75 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 999 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 75 + 23 + + + + last + + + + + + + + 75 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 1 + + + 999 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 110 + 23 + + + + Cell, A + + + + + + + + 50 + 23 + + + + X + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Y + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Z + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + + + + + 110 + 23 + + + + Output file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 150 + 23 + + + + + One atom function + + + + + Three atom function + + + + + + + + + 0 + 0 + + + + + 45 + 23 + + + + atom 1 + + + + + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 45 + 23 + + + + atom 2 + + + + + + + false + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 45 + 23 + + + + atom 3 + + + + + + + false + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 155 + 23 + + + + + + + + + 0 + 0 + + + + + 45 + 23 + + + + atom 1 + + + + + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 45 + 23 + + + + atom 2 + + + + + + + false + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 45 + 23 + + + + atom 3 + + + + + + + false + + + + 0 + 0 + + + + + 50 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + 110 + 23 + + + + R, A + + + + + + + + 50 + 23 + + + + min + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 0.000000000000000 + + + 999.990000000000009 + + + 2.000000000000000 + + + + + + + + 50 + 23 + + + + max + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 0.100000000000000 + + + 999.990000000000009 + + + 15.000000000000000 + + + + + + + + 50 + 23 + + + + step + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 0.001000000000000 + + + 1.000000000000000 + + + 0.010000000000000 + + + 0.020000000000000 + + + + + + + + + + + + 110 + 23 + + + + Angle, deg + + + + + + + + 50 + 23 + + + + min + + + + + + + false + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0.000000000000000 + + + 90.000000000000000 + + + 15.000000000000000 + + + 0.000000000000000 + + + + + + + + 50 + 23 + + + + max + + + + + + + false + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0.100000000000000 + + + 90.000000000000000 + + + 15.000000000000000 + + + 90.000000000000000 + + + + + + + + 50 + 23 + + + + step + + + + + + + false + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 2 + + + 0.100000000000000 + + + 90.000000000000000 + + + 15.000000000000000 + + + 15.000000000000000 + + + + + + + + + + + + 110 + 23 + + + + Matrix + + + + + + + + 110 + 23 + + + + Log + + + true + + + + + + + + 150 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + Qt::Vertical + + + + 20 + 47 + + + + + + + + + + + 80 + 23 + + + + Clear + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 23 + + + + + 16777215 + 16777215 + + + + Start + + + true + + + + + + + + + + Generate PDB + + + + + + + From agglomerate + + + + + From trajectory snapshot + + + + + + + + + + + 110 + 23 + + + + Work directory + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Input file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 150 + 23 + + + + File with agglomerate + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Cell, A + + + + + + + + 50 + 23 + + + + X + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Y + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + 50 + 23 + + + + Z + + + + + + + + 0 + 0 + + + + + 55 + 23 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 4 + + + 0.100000000000000 + + + 999.990000000000009 + + + + + + + + + + + + 110 + 23 + + + + Output file + + + + + + + + 280 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + + + + 110 + 23 + + + + Log + + + true + + + + + + + + 173 + 23 + + + + + + + + + 80 + 23 + + + + Browse + + + true + + + + + + + + + Qt::Vertical + + + + 20 + 147 + + + + + + + + + + + 80 + 23 + + + + Clear + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 80 + 23 + + + + + 16777215 + 16777215 + + + + Start + + + true + + + + + + + + + + + + + + + 0 + 0 + 564 + 20 + + + + + Menu + + + + + + Help + + + + + + + + + + TopToolBarArea + + + false + + + + + + Exit + + + Ctrl+Q + + + + + Help + + + F1 + + + + + About + + + + + + tabWidget + trj_lineEdit_workDir + trj_pushButton_workDir + trj_lineEdit_input + trj_pushButton_input + trj_comboBox_type + trj_spinBox_steps + trj_lineEdit_atoms + trj_pushButton_atoms + trj_lineEdit_output + trj_spinBox_totalTypes + trj_checkBox_log + trj_lineEdit_log + trj_pushButton_log + trj_pushButton_clear + trj_pushButton_start + statgen_lineEdit_workDir + statgen_pushButton_workDir + statgen_lineEdit_input + statgen_spinBox_stepsFirst + statgen_spinBox_stepsLast + statgen_doubleSpinBox_cellX + statgen_doubleSpinBox_cellY + statgen_doubleSpinBox_cellZ + statgen_spinBox_atoms0 + statgen_checkBox_atoms1 + statgen_spinBox_atoms1 + statgen_checkBox_atoms2 + statgen_spinBox_atoms2 + statgen_checkBox_atoms3 + statgen_spinBox_atoms3 + statgen_comboBox_int + statgen_doubleSpinBox_int + stagen_pushButton_intSave + statgen_pushButton_intAdd + statgen_listWidget_int + stagen_pushButton_intRem + statgen_lineEdit_output + statgen_pushButton_output + statgen_checkBox_depth + statgen_spinBox_depth + statgen_checkBox_log + statgen_lineEdit_log + statgen_pushButton_log + statgen_pushButton_clear + statgen_pushButton_start + envir_lineEdit_workDir + envir_pushButton_workDir + envir_lineEdit_input + envir_pushButton_input + envir_doubleSpinBox_cellX + envir_doubleSpinBox_cellY + envir_doubleSpinBox_cellZ + envir_lineEdit_output + envir_pushButton_output + envir_spinBox_molecule + envir_doubleSpinBox_radius + envir_checkBox_log + envir_lineEdit_log + envir_pushButton_log + envir_pushButton_clear + envir_pushButton_start + radf_lineEdit_workDir + radf_pushButton_workDir + radf_lineEdit_input + radf_spinBox_stepsFirst + radf_spinBox_stepsLast + radf_doubleSpinBox_cellX + radf_doubleSpinBox_cellY + radf_doubleSpinBox_cellZ + radf_lineEdit_output + radf_pushButton_output + radf_comboBox_atom + radf_spinBox_atoms0 + radf_spinBox_atoms1 + radf_spinBox_atoms2 + radf_spinBox_atoms3 + radf_spinBox_atoms4 + radf_spinBox_atoms5 + radf_doubleSpinBox_radMin + radf_doubleSpinBox_radMax + radf_doubleSpinBox_radStep + radf_checkBox_ang + radf_doubleSpinBox_angMin + radf_doubleSpinBox_angMax + radf_doubleSpinBox_angStep + radf_checkBox_matrix + radf_checkBox_log + radf_lineEdit_log + radf_pushButton_log + radf_pushButton_clear + radf_pushButton_start + pdb_comboBox_mode + pdb_lineEdit_workDir + pdb_pushButton_workDir + pdb_lineEdit_input + pdb_pushButton_input + pdb_lineEdit_agl + pdb_pushButton_agl + pdb_doubleSpinBox_cellX + pdb_doubleSpinBox_cellY + pdb_doubleSpinBox_cellZ + pdb_lineEdit_output + pdb_pushButton_output + pdb_checkBox_log + pdb_lineEdit_log + pdb_pushButton_log + pdb_pushButton_clear + pdb_pushButton_start + + + + + actionExit + triggered() + MainWindow + close() + + + -1 + -1 + + + 199 + 149 + + + + + diff --git a/mathmech/mathmech b/mathmech/mathmech new file mode 100755 index 0000000000000000000000000000000000000000..02c5ccd07835466e2acb060f365485bebf46c44f GIT binary patch literal 187588 zcmb<-^>JfjWMqH=CI&kO5bsW`16T+`GB7AqFoF3X!hykpfs?_3L7qW|fsKKIft7)Q z0jACY%7W29K!!0eFu-UIkO2$~49pA+3@i)`3>HvhEtnuCz-Sq$Iv5Q#2JAMFeNbr> zn?Yio84v?uGy{VINEoaSpz8g?|Fj@hm z0Hhj9!;As>4TM9W;vrD~!Dtt#H82{a79D7#May<#s}87`2;$fng7nvzLK^VLt-{ z!vO{chJy?Y42PiNAnGuPz=4l2FfbftU|=}Lz`$@ENzDlc28NSJ{8J1J3}>MHvrzgR z0|UcFC>usyW?*2r!oa|Am4Sib8cdLZf#Es>1H%m@K8Sgffq~%`hylg785kJuLfJ6t z9s>iz0|o|$hYSo1k70snbZ?}?NAph0fX7=k%aiSvmfkFkkhyOoaQfvWZ^nt|);ex> zoN#)p%cJ8K&tv5p%j0%!a5izACnOOXF=F z&#tqA|7EkU?0!6{CUl|k?v?K*zi5m$V|&lNbDN-{m;K!2y+@ndxA}TL`?lxx<@bC` z6sk|$RXl2b``P(DN0p*CdBwl_)c5!6^Yqjmo^0u<4>nJm75Dmq)UKVqANjt%lE`n@ z>hQ5`o?X5E?##S$-K(dxy&BVkuD^OK{Au3X`U1y~b<4L-46jSqb9|Ut^x9IK(UXvAf@28oT%n9O+61M>y=o5pGI2!Z{3wdsuL!pIJD> zwQ-a)|8S&}cR1X?7DqZs#o;ed^A1~ne2F7Gui)^n01kWi;V>tY1ABaF;z<9X)*v=_ zcH;=QW*q6z8b`QY#}U7iarie!0=xTX;4tSNj(GgZi`|?xILZxG9Qp1Pj__~Bk^Vp7 zC_m+J)N6e>%7-^N!iR?wyT9sjgnuTEaA;(L^+*tPGKe)5M>yEy5O>Cr{&jKqYblQM z=O+$x9x`M1uNIE_`VNkAU<(d$aUAxVU}jF`IjF@dP~NU zK09#Kr?xo4%?(F7*^k5hsyM>I5l221#E~AJ;PCHl9O>i|j&{gG9O1){qkPE4k*@yW zi1&Fo#BFip_jx$NK>&xnc{svT3`h9%<1l9mj_~=6qaC#xhxuJN!apBJy5a|oS%3-< zH2elfI2^@M&Y#4QK3#G6R}e=%*o7m18Q{pLbvVLj0gm)9jKiG~IO-QxS?uLlH;#N~ zh{M02elfQC`VWqBAe<3((T@gz_Zz5-1T4FQmGM35K=pMu8Mf*@4!}G6RG=py^~oB&s=XQVa}=Aag1p>R}!07-+f;K(lu)G+qkO z#D7BTyMka;^9!KiwjdBy+#0I>K^Us|9$0z^M-^WM4TlRcsNx~ea0@^)#}sOgLkOz+ zL|FM8iYo34EpHRh!e0)W&IQoyT?{QxHlX_#7S3qqEQ02*4`|}z;P{fnh_7a7IhGKG z>P|(de>b3o=R;`zx_}lAU!n2XfEEs$pzXZ|wDceY^;ZL$`QM=B+W|Cl{y@|D0<`d~ z=7yxJ2hemV0ZN1n3=DeE@NYni-y&&9dfos{hoEs&kQO&sdPDP<7C79b7!E+ygVciX zPH6q;fab3m(DteUnma+`prGW@k@FeouFFchGr&oFUFI3z&TTR?sA2O;bwT?j~YIz(DbkYEgm(Y?Xd*3a87`xhYx7^S00-F4bbxM zUTFSmKnu4s(0r7DW^XdIojCz5UtfdTn}8O-iO_g_fTlhTTJJcZiMK=RuM24ITm^Mc z09tzZ1daCzXzAf0w0xU@7S5lc{q6;5=~)(^RyS`^~zoRgoI8j_fllgbbuzb0B2@*C5bjd6- zG)yinDoV{O2}mr-a4iFgd&AV5XXd4(R`{p626+d^XZjfhmKd5kCl;p$r{)!BmSmP? zmQ=bzHTWlGr6!jc8svj%zr@^Bh*{==Fq!0x%$yY0vedj1*8oGqKxa4?WCGYJE`|_2 z-WGvjiA9--c_kJl`4E>wBoKy`Wag$8Aq)$Fb3uk#2D)YDq-DYeKo6C84;U>jiWg$0*o zT2X$kV{vk3rfYyVB#0pjaXZ5}IX^EiHMztuza%rQ5~K}esW-w0hGvOL#rZjs%gMCgt%D@x7HFH40w)EgYIhDI<$5C$NufSKTJXc*|5T9OEfFr$(pkaL0!!NC9z z#MDA?Vql2(DvJ+-CO7At#Ny)AVutuA(?YkR)YJfQDzXgp$t*5$Ni0b;G)ze?Nlea& zPcOHCR|%fWkVo zB+UZkNN}8>I?>QL&?m7ZGtUqbec(`qM21;vMP_kHF)T&-TQq&geA`US^Z_$20~ zmnNpCf;i^R`K5U!MUWJZ2rY12fA3PaBFJHSz%c;}v&3Mi8Bu=lz%nn% zhoo2(l_qILsj033e!=l3pa_II2kINMl+0piq@gBTL$g5V{GwFHf`XjP0pCVlAWOi)ac-x{E}j)N^nUM081>OXat8n zI2K_30*S)dup+JkoF)(ff-QKV{xL32ErBq>mZ3(gd0=>EN_uLEp?Pk8X>n>$YEEim zaVog902gDvAW<+EK=-1|6raS({L&I2TT^G#th9+Ro`+~|9P)f$)bIU;I{M@8`r~C>-)8f<; zXGopm393I_!BJso2q`l&6La#@4NcQiOZ*E`^FW0fIMm@Gg$Vv&llWkh_<&%ec(Xva zoW%5EPru-JGyeim!g2+t9E7DfU2dG6S{YE3T3if{Bi8`SK=0H_FdGzPa1VmgKyYSN zYCwKYW^$#gp7unx08$E4zt zqQvA9XmlAG6{nUs=47Vl<$@|fxTiqXsxe#~XJ5d=zxAw`+#>8VAUja$emWe4TkmQL-+nI3fxO{?$CqskGyyDcN5|CS5GeP0ynVg@8i1Q#s-4F7o zp()(;PNgL!`FS{UjzwTdetr&?bZ;K$m<&oU;4lo%$S*2ME(K*f)c6Eh1yhN`2F&Ce zoLB~~lgUrM@K`h{PA&0GtjNqQ%>^YpNZlQhk!NTY4=Sl40dAg>S_ZBLp(Qm$)X<hEkCcsIU_MI9grw_5|gl*2~rC81t``b zp%#)^k^_nsSS1EhhF&%sf zCPPvLq)VKkO30%27WC=Q?whE~%^jR;ViDZkt|wYV76 zBu2y#xIXtb4fIXTD>XF8P0cF>W$*kvEaicrS#o|}Noqw2NG-T5aSbpu4|GNo1bGV) zh&j+!I5f?H%R93`pTwlp9OSfsKaG3C%`?l)D=01TO)bgDPYEndEvkf+6=t63!YHl) zRl4q}`MIf}E&!;a3QA1|mzW5H4M3GXw8a2+q&Ffz7#cxaZ;&PsSQ_pk3vgNMms(L0 zP?TB*=?Q}iM0mu2N;pW<4iebNaSrd5!`n6{XlsN-qkd5PRz-1%?yC_8$nX=venQ4 zRG32Qc1W}tLTh@*qSQp!0C>d@@&q)E;Hbf2p$|$z!HA+A)Mmk5KpG_Hqbf{< zRC^!^*8ouS9>E7G1c@N}VJ4{+smYM+35hdYPBbzExAY<14CkE8cBl^ zR$P);l9`McIRIBN-iY3g2`K+VEJux7P6v-Ou9=yz5e8@-Mn)NA49=ncrAQ4cwB`_6qZr~IPz4NOfwL_l z4A8?HUWlN!>fpkLCK;)j=@}(%`9Vs~u_ps~o&dWD+Qx-@2Hvdz%VKpesKWuR zT>@ZDbWq|jGz>)4+vs6|T40$bg9dUS2@t7(HbnG9ia}iwP@fMxN($Cl$g6DMUmwaw`a~-2@cku6dxbA82lc)anQ!kRfp82IU#4sX2&j7Y^s5 zD$7A?Ctzv0fm(xviaCrnCaCU!MG|C80d2?u98s_a16T#Z-Kj`kL~@X!VW0;*qMe~b zycXcb1C|aOhLb?`uuE!kW^Q6mF(lz2)w0M@3n`3Y7Ql0o8K?%&Om_7%GztXwja*X8 zGLusc&5=01sU=03$)Iv8#1rNpP++5{@YE9L)Vz|S#2iS$0?O?W7D%x-y3vX2gY=w0-tmT) zvuKG9(K9zRO)g4JEJ+Q>FDNYlg#12j+x8rlL^ zhl<8$r&h*8q6eh5xFjW6TN|X*4CJriVw3ow)B;0;c+ebQaY<2rC1@N!(Gy%^6v-)$%!S&84x4E z_8J+)2gj%87L-)R7o`@&7nkH0fx3gBxw49i_=41;;{3eCoXnES_%Z{A_^7;ckjFrV zr{<-=4GRhLGc*9%QjwUHS!QTt5FcNh8J`TAIEpW+EJ%&d%uCA$g_vvs+NnRyKHsVRvii45`aNyWtw zafbNRyc7m^A5SOecq2U{JyQmEXXkihJp%^khzLg~&v-*UV~BJ_M7*({2?GNIXpb3e zUK}3{-9m??1iwyfvJf%QPBw%w5HSde5T%TT=~j?=*hNwIMS|3UFlg5uh{la!E{5&x z!>y8mff2lO6PpTT-4OR7i$HdJg7l$^f<&-kMg~TP-!h=JSdevTrBa!k3=C`x`mzw! zAo+Vp@&Rg<+@PJP)=2W}q|x=WAn9jfxCNC5nRt19HY;dXsxx?93Y+ z_ah&&z6%tZ6G0lF7`EO66!xIKZ%|q9`|$ouUUAenO>rWmvb5J?=guMZ}r0A2qBG6%HB5he~>M+6ez z2NPsqV2~()gabPRC@ml)6p+MW=?NsOfg}z|6(CUt1_LB<(0)FMCofh5ic6$4Qhki?PqsNO&l2dzN{sRiK&NaCQq zvmh}Let{$o+W!g?1K|%y;-J08ATbdBfg~;n5`f`CM7kA%iGlVPBZ-6dv%;hVkiG2T3;|i9?H2 zkT63BlDHgL1VT(e5|@Vvfyo(2;;=P#Ac+M?;));vC|-dij=a}+1Clss9UfFU!ww{I zWtbqS{6rF0K@vZKBo0~&36r{jB(4e*1nqZ55?4bKe}E*ejwJp9NgTE}93=e#Nn8UY z0L4F$#P37Jz*G?;{cC~+AOr`JxE4eRObQ^0gZAWs1wrLMlDG~`5S0Fr#C4IxHIT&h zki-p;#6f%EVNw=I;`%T_&?yf{;s!|K9!TPbNa6uV;-LNVFsTS6@uM(71_p)%Byr?D zT(iB}+r8zYG~Ac=$8sxYYzBym%iAOi!#1SE0LIRP-K8A#%0FhK?e zh6PCC=1Afzki?Pq|8GDNhpjOMY1@G$ZV3{A;sZ$HpuNjbVTKb(;#M$0(7IhDacd;; z8%W|dNa7EW#6f2mz@%OviG$7$fQf%V61Rm3g3cL161PJVXDCLbe|scx4kU5pm9hdz z;>atBC6L5Hdof`~DIkf%&O`voX&{L^g9M=107)En1_(&X0!bYC%m@c0aaWK+DE2@S z2c7i*6=n!P5(k~B027Zu5_f|Mg3>>dxI2<~29mf3l6V1>fKLkE($7n1k{ByrF=8ZfCDNaEfwK~VZf5=KoSR?6#*4y&_EK8h6#e& zKS<&+Na7Yq;;~5L4oKp6ki?+qBZ;RXiBCWhPeT%)fh3-eB)$MiJOfF51(J9s zlK2KBanRW?FsU6#;#n|3Q2Pf-JR3>;1d@0TlK2HAaoAZkAn6-O;*UTAQ2YQ%JQpek zqFx}0!_MLXiGM&6&jSfS@ed^Ne5e?hDuu)zsIOK47Jv{ONaCP#Y9OKv3<5~vg)l)- z`v*z92uWN4NxT?ITmwnG1WDWgNxT$E+yY6w3`yJpNgQ+*5KPJgN&Es#kb!|A07<+Y zNjw5cyaGu)0ZF_PNjw8dyb4LY07<+WNxT9{9CU^gOsWA%ycQ-1O8-dWbx7h9ki_ee z#AhIhHzJ8IKoW045?_HN-i#!^0ZIG`lK2iJ@fIZU14!b?XBeG85^qIPe*sCn4N3e4 zk~s3&N)M34+mY12Koajj690fC-iajs14+CKNt^+?FA0?XL1#t4q&SeodtibL3=9HD z;=M@X5=i2p^QvG{3P|F8FhK?e1`Qn*);gB#=TV_COM! z3>5=W0Z8IgKmt%4fh0Z^Dh8qwki@5h1fVzrNqh!W3`7+miO&QHKyd|Sb z_$-hB6n7wrgU-W(3NuVV5}yqdWME*Jfh0Z$Nqhm4_$4H9kLEWV9^I_G3Q7zftp`e2 zUqtgTFnBZ{;eZYj{WoP&P-6J6%A%mez%TE>@Lv_g2iG7kAN>FS|G(-lc_oGn(4g(h z3t;{y5Fa$e_woRk{|dwh4eh<$0Omge@j*j(FBgFMw?KT*(A>)jVE!c#A2h`FvH{FL z1>%E}<;wyv{}6}|8ajKK0Os!k@j*jiF9X2*O&~sK=y zt(OX5{wxq5G-UNs0L-5R;)8~&UNV6BT_8SaDC*^he<1%hf%u>yrI!!D{3;M1G?eu6 z0+?R};)8~eULFARvp{^%P|(W_V15#a4;lh`xd6%E-TwV%*`9dH*XsG2S1DMYR;)8}*UVius@;?)Z4;or|`2fuSC8xxY0UA&D-1mc5+OkN%U^Iw7ZprMkN8^HWWAUVnE>YR0`WmZ7B2(9{7oP}XsF_)1DL-G#0L#gyfgsw7lHVo zp^29YVE!x+A2cNKQUJ`K1mc5+B3?3p`CTABXsF@khd&_yH-Y$|A%>R^!2Bu@A2hV^ z@&cG&1mc5+0$v^f^RqyFP*?xu1~5Mf#0PcpUoHUiqd$e{;~kfcLMQ2UGkR+V7?WI59*4)3;^?uKzvYF`=tYzuLa_Ry4Wubz<@=F0QUkJnpb&X##fcab?KB!Cl^22YC|CvC1P*?cn12F%WtP(>8s0;k^ z0+{~^#0PbKUmgJSUxE0buI%FctS={k`IkU^P}lQi1DJmb z#0PabUlxG*hd_K#SMy~8n7<3e2X!%D27vjSKzvYF@udTpzY4?$bp>Amm`IA6=P}lAy1DM|h;)A+$FF*VO`M(Lo2X*CMJ^=HpKzvY_?BxY8 zzX-$+Vqjo+c>v7M0`WmzvzHsd{3H+`)Fpel0L+g9@j+d&mlMGJAP^ta1$)^5=6iwo zpsv@;0x;hR#0Pb`UM7I~Rvly<(aQ^9 z{wEM0)R=yG0L*^{;)A+CFE@bsk3f7-7w6>yF#i^a59->yoB-xu0`WmznwJe={wWY2 z)RlQz0OlV8@j(^P%LFig7l;q)y1Wbk^EZL`psvYF2QYsXh!5(Lyfgsw7lHVouE%{>uqqeh`QcYTCbS0Q0>-d{7hp zWdWG)1mc65<}VY#d@B$i)Fgiy0OlKk_@JivO9wDt3&aOC!CxAH`AQ%@sOkMu0nC>I z@j*@QmjYnE5QqN~=#E=1MYQMYy=6?e5 zK~3zJ2f+MSAU>#R{c;1C{|LkfHJx8B0P}Bw_@Jio%L!oqB@iFfB!1Zd=AQ!bK~3J5 z1z`Rm5FgakeVG8}?*j2bP286OVE!f$AJnvc=>X=h0`Wmj+Ls1k{vr?`)RcXx0OrpE z@j*@4mjYn^BoH6eM19Es=68Ykpr+}|58pukZvyc_P12VS!2Bu@AJi0mc>&BX0`Wmj z(3c0m{45Y3)bxD00nASV@j*?_mkYrBC=egi)O&@h!2{&d^rKk4+8N)L!&PnzOK}!x^DuDS?AUVYP|1W71_~k)GHUq`>{}1@(L3ISf4iFEf{@@R0kIttaorgRQzOwgVyx?*1M=4Y6VNhaa@MyhM z@+H=z^B6?`BdGocTSF-&28L3>P>;^1FY5mP{~vpdRZdEYf${TUP=C~;*;a#JiGiU+ z4(oP`?C7~|Ns2*3@?izbZD?g=WlSQ_c*(NkQ0N)ad&|m!cGhx z-Sq}9_`m=E@6lad;L-ZOgw3Oy{eOUhM|X7vD%ax0i*F!h&KV#6bMQ|+)N-k$$fMgi z0mkER0VPh4Zs!Pu2&g#o=ync3h=4-Vqubd7CQ_2-(e3O2=XrQ^J8QssN}vw8N9X>z$Wj34mg`=9^+U*`S)|33|+KH|l55Z?#JPk3=1#Mc6)+0LULz10aX)a*ei zuR7v|EQAs8LIlF_c)<-}IJ{tjFf?BLv}0iK=)C`8Vq$L_Jjbixp5okbaPdDf z`v9^u9Be6?|G?_+LXtY%e<0;APCx}g?f|KJ84gNmkodrDzW@sZ!;7~c(Cn9BVPJT9 z{R7C;X!e8E$3m?F#|J2UL56rh1wr8>B3MEGN4DRi zdq)OHFak|*21w8uSrBB?3RVV&m%3n=g7cfZ0nE@HUy(coGjuVUAlT48G(nJ=FDjve zhTmWY9*4#fSOo0Et;ix^qZY$O;EtQ{@&A8>|CvghQT#8#2J-)VRHt%)1S60IL8fW2 zF)+MzdJicNVCfL7|17A6>PDn@u>Kurf*|cL7DEL;@e8oZ&u3%+MIOkq-ESZ+NaGJb z;L*JUY`}7;7)b5!d5jEjH}t(h&(FyILrvcvAk%x_K}-jy7mzUlAg`3a!;-$h>i>R5 zQt#2d1El=L3#cGSKS2@9|os8P`TjIz2gPQ5wP?L z@{Y+ou-66H85mw1cnz@(BrXFHR{)8xKoVzxh#P>!CqTu)o`D(e4Rst$@B_$3Gc-Z4 zb&6<$V7qvb1wkGJ+4S<;r~m&U`4`zA4sRjuMX^d7O%QCA7@8p1Dn?{MxK*#;fWi`9 zKI4wh3{Vj4g{BO!6F_DZurn~c1f>^f`vBx#Ncjy`uZvuMdvxyrDSsgW6$I%Asd~Bm z3&;)NcmqYINAnv8P4QPT!trivAlI;*tbB?iQ&aWP>$>MQ8Do7 z4N*}5X%O)2eBjY}??pODJ*ce)udx$AO*aEL*Ac`O=nmj$y;LIZ(d}#iYWxX!bXNqt z@CN687Zm}R;!-Y;?iv+=7fB$A<|7WE1O}=PYE%qffacygE2TSw4TK?BJCg5xeKph0nl7g^AP6C~>3(OnSm;srS1N>sps z9Pq*tR5J9Is04siB)sqf1s=$Kh9`Gv!2??bWJ<4#ihxhAi%Nkqf+o<+2{ZNUvGoOlf#Q? zApUe1KjB5&=l}m-X8#Ab&p@mm4FvzpcLO*qvG(Q#*~5K^=Xjb!6xKFl_b1K21#55Nf?0a3juMT zg1BIHt{`=t_h0ZLTWbsGSc=FK!@l3*_`N#Tb%aV!&Yu zO)vEzL2!C01+hBszpzD?P5=pl(~BE8w}H}&k1E#NjE+wKo znFBJr8>KwKn_hT8mJ^X)DmYsIqox;7&)|hGR69m`NdZYDh)6FO^|d%ClY>k_sjnY`69TsSdiyg-p#Tr{ zk_=F;hSwn_o*=G(OSc1uYwH0-va#G*GZ~W2v;)f+V1oHncwj%C8{xuUEtJ zwZeGVp2Z45 z1`(0PEJ0?YW--ukCn(5~ie%7;IVgYvUaSQ95G9Lcfz%?3WN#2x!KK@S!?pD!BDO$< z@(xg^_XX4dcyz<+?f)PNSSCZ1uLUojz5f6I^-5TLIlQq$X~4>b)ENL_#&HM08&Fl{({xt*vsQCP~;=ZV@P^o1;;%+y@Y|? z4^J=YPe7@uM#aGJM zoCir@OE24AqNbN+AU;xhnf4Mjy|jV&DCy;jHYB~wffZ$-M%jLlAhg&$Lb*UDE%iK<#7auYwK-9jDgBy3uXp}7i=K^V=IqkK@yndF-Sdf zdHn4;N_p(A1&IuPa0-Q%$3`GQP@(ri1H|gQ|Kh__h&RDyxG+@kHdGK?9{|JNH~ z<*vgEKM;QsjGyqr?%DtUFVisF$7&#Pl>Akq0f|x@a6m%K<9LuDIDdtLSfKQeEbRai z1m`a`Xrwy4(9uB2U$Rgo2`_{}5{Uf80^%a_*H?9j^?N~)3u>u=viAdZ28P!}4r`i){V|kQx%w3-Ths*aRtXcJiSZ^x_FJn}qbT6Xa(i(hFu695fm5;ulmqM)@KL@)T-%`S%bty}SeQkm!7mWJ*_)VxMQ0niA;8cLE{!Ry} zN6w-0S5L8LN$N;fA@4qlWmJWsrN<#&~5oo7`ul~l~pUMJPr- zGjKG)^Orj){6J1a=}#$w3?d?by#$#}Fn=NXQ;{GaqU0|e{VBBGFStJiDv@VE4Zz4@ z>p>FW9EK8K1uv%ELv0_of%r)6ZnQGi5g4al>w@_0T-5L_Nl1+hTs zA6dEqBnZx5X?GzB+Tlfx0!sdhg(^vS5e$+*eALFzj1zxWG|6KL~60i=eA z`~|DOv6shIpvXrmkHP6>>n)Ij;pv49?0$H95x)+Sh1B1O^7!KokSO8y-cFF&B%~Kj zP?!>vUa<7PLDOe1GN1-vq?dY-1h({&b_X@Rgn{@->Ba31YI-pP@ln!CiyS1q_<%eM zOE38#L2!CW1+hBsztBaN4gd*)(~B82njK!)$f2YcU8s_T7s?pmjmW^HGf8RDi8KzJ3|hBy>@M2RQcf*rhuFwFe9; zkyn7`6Sska1zU-H79;^Kk>T@ipz;``9=SYTb_=CH^<4%M8T-L06j~lX0ttc&y%#q? ztj_x{79dL>h6;8=1;OPp=oTpWycEXx7WV$st*fBGK$OQ|4~Bxn4xYc3fujkYzqW(I z59BnI{?tT}K}3|tE6;%}B-Ecml*cDQJ|rf8q4j=2)8#|{B;e)N6B9*(vT>9a}Am_K^+=?kRUjJv4U8j^p7n4K?>3w z3V3l19Q>g9hC5Oy`RgoHNy3Z6APGeN+5+Mt^4C(3I?((VviTE0YDg%L6_~KiPptw) zK2muMPA{t9xQC~gGO+vM>81T5BoIL3TW{d~sYH-LM5LF>GsL79M1N`~$j>P0h1mW# zcy+=psCIba081?&K@#B90`Gs{yN236J_q6>wU75*!`?n#1`17YBCb>4q57g_oMNDy2eF9QcZD7~zaKuIrip-K{7Oa@6H(n|}7i%2h}Aa$Vm zFJ$u*Kx#-xFWCFvRiMa6PcL6Dfl>rKy|{th4^J=Q=RvZN`Ww;zHUt?&M0)uNGMixi zjYuzK=~h8dICrgoLFz2^mreDw5k^a3bFz|)Hu*!}SIqJ9=63rR1C_8ue1AR^Ms zNs!qjq!&w&pNU8>nEh|i;+hv#Q0*A$WgUr;DKS#l=wh?Bb~Wa7j4dG2AiC zG1S%Ytz$^2N9W&QkLEWPpfyq+y)i1F27?A@Ld^aA|NqTDm^`{&4IKHW9QEklVF400 zfC%$XIl#Z|fFt8kki19t4iAu=2zI#)ketP_|NpyPR5bR1_RH>Pc?ViU?xF(PBFX^T z*Lk4RMMdM7i;8x`i@xKag}N*%V3R>E^6Y%#)4c&?icjbF7yYLp>0H3E^ElYSo}Eu# zoH_v#1i8L91hk^*p-bmKpU&@|oliVFZ@jPpHMT%YonAZwY3^oGfvvpYZ)sqKq=^&9 z{{MGveaqi+pM`+|;ZP1d4t;tI;ZP(8zB>hSON|Q1fiDcf4hvBc@a(+d(+PFfi`CG) zD)1r@!$BbXK`WunQ38wyk2_+qyCV(R9VPwY z&3_sBTaGd#hl~Io7o9$eHDs=wL<$*ktS*`eYUhBX${fQ*OPL`ql0Ax?ltl2j!x_6f ze30GI4+=eukl}>8V?9VQO33g+-7)nDvO6U3xMTMbtl@D4oH(EhFQ9`B}>Z0ny$RVSE#~lj~BZmy!9jm~J0~|8PUc3dl6~i6raCh)xxZ^cw(@W?5 z7oQIyyF&$!J0!8YLkZa(saV}{9~3X(@Mr}oMhTB#s5`Pz+@XQT9TN{>4Ubvi!~qSD zyCAn>ghx2s9e+WJQQQIA*#;_89v=j)ac1!74z(~mfLO12oCS0g1A|BN0Tz$u9~!0a zJ(`bLM8`VDIL120ImRFM=(bUL@f{T2o%dhNKL|~2Et5byL^gx_0X8ZxuAln<|K-y^ zkoDj;Dld+M_`V4Kb`XE{Z@Bz&5MLO3sfTI_S)b&igO!9{`2$`xoJ$R0EN!fl3{LO4&f9 zUcUy-WeR|{n5;Vb|NrYNaPI7*|Nn!`bcSl|hH7MnYJ3dZpYjZ@JO`>=1gbm+s{9Hl z!GMwu$O?C;qW9d8Tx||jv>v3W^XO}+nGhGBf+`Y%D(ZqN0&ka@0qLY0HNBMj{{KHBeS_LIkoDgNpr%OgK2TrU*#NwA0^F$Cy%!<^UO^6P z>7;>_b>5GDdG;G9*Fg7kAer+Nln=Y1=73E$21N(b&IhpJ`#{P-=Cp!#2!Q6LG2NT> z4ZC|CK<>Q@bsgBf;D#1AR0QT;u;4b3AjlqBO!tD#F$FmU=3cN!GbjR(+zU2`52Ora z&egB~|4%@7uQ51$cY*d$A>~Kd{*M5Vdv#$Bner7BaG-VRDDrDTWgN^MU>(0fUfAyW|38gieHK|0vZtoJK@WL|NmPLICdW6@4Lgu zz+iaW1FGO9XwxMkJwn>RI`14AUM$=LY7&*G7j6%3{+i046k48(aoZ=3$$;-qw_sD%(@FWn%^rGc zhp9`OD0m+6-{JrNU)F-kAn=xp_lN)gf4$eE^XW?s zkncegvY=rq3pNG@Q1NKM1}eVazX0uT0+n$e4uXo;!>=EMia_uxdOkJ=21s239&fgx5 zZ$Jk(fHrb~_KScH(O`J-YUls|9>n{k~Xn{kgjYe2K)oIBuLy8i@dC~Ey~P=Grd zcpP_jfXdfEHH2VgalrAfl3bKOvB&u9d1Si6UYoCkKO@U2r4Fg zAcdI13ofXB`1lTg%Y3;01z`QqKw1FRYv9xQ9Avk_i*ul0K^=a9)yX-WWTN_e3I)dXLOTv7|s-~iHa4x%9gq@e($q2R^uU7#3oQ9&$!v+-y=0!rqv z^2Ra#Frt0{l}H$oRKEZJfAFSeQ2hv69-OxS|NqxJK=m_d9bCeTFpz>0*m~oD7j7Uv zsDz#Xl6QDv2I9X1?TQBR4ZsOZ2_&}YAE=rJw{L1x6yV914J79UQ!jv$v|sJ}|NrGX zNaGq*uz_`XcD@H2stfA%^j2rQ0Bw{5Zv~fzh(x>)0x>$@`*i+&!OjRNF#j`v==U$a zgX!-t-ZOv-(EBfzgTk!y{fqUWqy%mKf!yE;sz9KL2XtZtWNVv)XXo)3paU~rw}RYb z;L&*$<{a=bB{|TtIsv2(e6ULtR3rc-0zL`{w71H$^9Z6dW(4!3ifj z;HB#S|Nmd#1~*@ygJKBm7)VZd0XmKgYDx@YI{m(M`8Nas1c7hklp+Lzo+HB z(i_pSKAq1U!M(nhH?||}hnLUb!NTNQ9?fqgJi6ICOF(B+fQaM(4xiqf3lg2TUTgs8 zjZg+qKqfnJc=Y-llJEdI(xcY|bbtqgPcM(5kLAe{C*RH&F#ornEaCC&Ht^^){P3R* z)ZS`7$l=+1fWy=BWa%T1?obAZ3CUg@FjG8weNIVuBvB3jh0=!~9RKsEKw3Yl9^I}C9?1b5 z9=$FXBs`KsRCqj^k4V6BrAIHz1;_ZqprGaPg$J^4Zz+dwZw)ArKl@t#E75?2?@b@g zk6zs&nj9bgL)uoQTwdKZnjA0o?goYL{n8tt_Cdq8|NmciBJw&Y{|0+>e)ed7BjC}^ z-p$bbgRw*p+*AUUDfKVvL20J-KnagWx3EX2z=!`#-~a;E&9L@@M>iXyCVpWD$~fI3 zDjuBz9?&ZH_>0aBpvvO;i-~{#|9`Otl$<*cznB6l_dD;u@Y#vn`$(JM7~;4C)K>HC z{9<@=pTRpvhFt+nP7JWIVgvB7E2wdEc^$~qdmw*htcMhF@Dd-Kx>OWi?BDhOKiCY9 z&ifE!4NvZ}_~6L!Vk$^?cP#^Gi>4*0(8M-9-2n0pDEouWfE!>9YTt%{3;@+zAh(on z1UUd=+HR0(o%df9gES*oV-QCPywJktC})tP7(ixr*K&XywPY*ENTe1oM7zR^*P!MI zrlXudj@rK#(xMjtIqDH8*rBGWK^=7uq#2u|rtZWNQhp#uWrNJ@t`z_|iXWGw!mw#~ z1vyCvqTK_e{Q|Cd633=J1f>1#8c;CQMu4<$#AW-99atP64br|2qCEqoJqVZWGqGt0 z+nx{64r&v*8cwwPid9! z92vlA4;-JXL6Hj@hXZF2!;`z}VA3y+f#i;}sDN%;`tYAs{SvrQ3Tg!icyvC0A^r!P zS3pc25EEjTN9QBMZ!e@lj_iE?LKt-F33AflZ*h=ifE@7yF0~J}T!N*+^zB#zyc^_Y zTaZJ#_k#MIATQqo$37M>t70=@HpqnEt3WZn7j%FV$b>n#OnAHviyOePwi99k=m;c` z300dx24Zo;LTo0i0=c0aVgl&?Adm?XxZDtr&4m3R6HFl{`~Wv7?!CAM3S?|Wj4U=2 zE`Uty&T|H%e@y{Hi5WUd~tg#u5j20F#&W!49FKnxJ;Od&4eo;H{?T10H5R3 zdGCb*E)&ABnQ#kaf-b}a2dFRJfeT73z7WM`!UK>AuUCLPUTWacU90gT4xEQ;H9R_R zbsl@+050LMn09;%mM{SqM{~iZ?M;BX#}1rav6#?`%>;1jiiVg_05w4dmyevWneYYV zBT0w}4Nwzyfs+arH!xx|f#ba+!;9<7L1D6Y2GoQKTqf+_j3pfSKqgFun6Ln9f*CFo zYO$Fh0x}^OVgjfv0;R4m;E2ZJ3u|m9NPV{3YO!&D8i!ag{oETo5Uj`0` z2T&6VaG9_jn+g3O6M7*ge1Mvuhs%UgY$j|6ncxjE0d#pIC>-8^BNt0J7-KU*5fl!b z5ECT8!%z2Ktiol&$BkIRK?7vM@ulE!0L`6)+|YrmqFIm41bvVRtq>C|pl)!(WkN1C z6U;y+I73VT4da5`z=F#JZEPmkf=pn9n2-Q?ZgDSHot)Pml?J7K5X*0cyftTqZnOkHrn1pkUku zF<}AJglb$SEW&0&0LX+2hzT2@CP;$QCzgmvz-9utkTipsZ~$t;cU;A+95xeTKyLW5 z2pkRJP#r1- zE?;1E=pQf-OXN0VGZ0*dMuH98YXEi9FK}FAF~Jd=3E+SghnV01HQ@%XQWuneU>O?T zCZ|hnP?SHDLoT6F~U~!wum2>+F1RICMZw$irm zKut))km;qZSh z*cYHP2SLTf0bB*|^OacK04{L$LQF7#x}gr22}`k=04{KW3? zv%%r80BS-bE)zic2P2V#8}0KTChUNkV2{g$w&hqt5?tuTKuov+HQ_HfuCe&S1)B-r zLQe`}!UL!YyK$KS%0C#s02g{UW`V=u1Jr~{Tqc0>4~7ZgLT?(x1P1U-;Jp{-xJ&@$ z9}E+~g+zr&xAtBHr9&DM&b19a@1Ma8DgG}q*>j3rg0dPvd5@_t$OaS*&?#=*5eE`&i zI$S0kU4q38;C{+%hzSW$6Krsq(2UIlurDGZCO}s2-h1&29FJIh;fT!yurI_RCQN|3 zVFxY~{x8Pmi>uSY;jjQ|LK!X-_F^+(52%!$3^8E`)C3b;CRAfH;ULI_K!^zkpeB3* zM=q9du*7D-~butQ7`fSRxZmkI9|;tGeOQ^Db& z05u^EmkDdJnQ#*n4$Tk~Kx;`rZ4Vb*RYNv56Cmv$hzSl*H!$HcK@*z^;3Dz=6tFKq zhunhPZ~#}a{CokHaDcRbASPr$-B5?igr(R_fV6)gCR9L8u)$?QGBy()fI`v|Y{FI# zQ1t|E|A4a=y#0f#z!8FU1}1=ZOtwu$D(9cV3Ubgaz@5qH<@`UG^os)^IYc?HxC^zM z7X+P00x9R&K+NvFAiE&tyeP=cozGwJg3h2oE$5{`IRjfcpEw^&EPxwq<{*c3?_B^5 z!yDj)fh9-CV>1Dq6249Xr-Thq6Sm=L;3Lz$3 zfSO>0%MFp(OyCF2o#{hNcmOrw0w|ENg`_w(6TohGI}scXphJ{FIbt0+DPal8t8=l0 z1GvGq8e#$iJ7{Ucy%#>X+%OrN3E&1>Cd32|s0m!SObEng0=U7Z4lzLjYQhO{^1$K? zerzUy8*EP}fWtupYC;<>6VA@T5)R-7+hT|b4p0+ZaGB7J%>-~t|v4jJ-gq#gAp#$oM7+fYa zV>1C(COJNpra)^@4o<_7t;Cug$pPY zAxqOU!BX#E7$Sr~=SzSV*~%e=oS~|?5kdw~p&y`T6~ruAsL)e{5EoSF5<=)Z=s1ba z_b>J%gq}c!)*yr~LWO1`g!Vy&+7Lpkp+dz7p&3x21cXp4RLB=0R0I{WLI}k}h18)! z;9+?$u;Bd{PGI`|3ofwabI>|R|J(onzrG3Df^ZMKPU`*(S*W6?pfm*u5-zCFC4|s- z(5Vq1|09H+K!w&Igf2pbW+H_4L514jLLQy3UsQmi1nky%VEOwm(!lbEU%!Mps|_sv z{)Hb{9JC<;q|X7aFAXez|Aih{9-+?=4u(T)&W165T55(1?GP`ca>I=73n8Qr75WZpcR~Cv0~LCL5aNUiT|@|d105~V`ToT|gwSKC z&}xLx1*p&rgwS57P%A=c6;!AQAv7H-6ps*UfeQH`gbJZTmI$FZsE`^$$Qvpoj1aPb z3NavrRG~uP_9G-DgrGvVK#eho(0|ae51sE{97hPffeLLw2;GDVEkp<%g9`N_gf>Hk zsu4m9ph6i4pk$P$4ITP&!mdA0ZS16_P;+IYNav5kh)Up>LoD7R1}qP@%^NAr7d} z1%%L7(18w}?_cai2t9%dtwIQ$hYC$c2+yq{H-RM)Q+;^Vo(jL<_V}$gK1K|NWrrM_%-FLU&9Z_v}3SLazV+|9wUu92r0hzdN-dwp4;_ z>9+RheD~rW$dAajKvv)hym;CVGte5vz_We-|L?Pf8JNuhF;N|CVl@ZI$ZlLlPJ$cx zq668DRUjih;6@5SjJ(nc3chLqkdff{!sbeQkddH0B%lBRUF!a#w*wS{uY5Y6d31t9 z;7;%V|NBDVrb|FfFN2sa0W$p-xMhyzEc=Ij|Nrj?t#N;04l=d7SORM1ik|=f_knI` z_W>>U&sKPGy&LRU1;-trd)9Y?h+QCJABcEyv-|)5eMt}}K&=1X0#OgLJ{p(xNg(S% zo_n#Q9i$v?y(P%{T!?u-o!J@?GZ#b5)Bu^uj>}9wn3?bZivgM4`O5Gc)NgA*hL^() zH-H%K1~J?KWcaFHkZZ7n*T!C0c(H>F?JhQenmMBtCA=(Nd~X05QEh=eyjFJo|G%#q z;sl8G$D1MQLDp;Ivfc=8eFrExLZaWc8O3Uc7c~w4|L^NUHarVrxC6-Wb3Gu7u=wq2 z&;S46-AeF)QwCWA_Tww4Hy5`2|G#f8#Au(+Y!8Urxgo}TfQ-+_WqcV}qS|8@=$`w1 zpv#wEG=tMru?Oe^LyyjvhL_+rziffJ<;8q(GKPoqgU0{=_pOIJAOPZkt|pM5sslg{ zcn3BVi~qiYC8`4;4gf9be8B`3Dh|MOKnC0aa;Ofd2Zi<#xC0^}4&a11AOhroT(F^7 z98dz5sE&X*0Cc_hi^eXn!y~{ufnQ99q^Sr@=iCH`aIu3&ceRD#r5C?IWg$4*Hh@ws zBpsN7f(DUg6JC_m{r|u3HpHnAXC^g*txEto^BCA_EY3XJ1r2+6Y)FGFK}iQQoBsdb z_Xc9LPiJ-p#CT?i@fjfF({UM}2bQSLfP?}#9aMwsk>U)G?&<{8bnvhV>XsMNAt370w;5H3!D zrh`xIu;Qo!lmH>=Ko=A=@N}>mbVbRF%$ooI_o+Z!3vp?9Jt!&c2FZdPy94Y1ERNmZ z0gVB8YTyM~g_0V&K?RN}#B`s|)u6@t5KBJQfh_?EfGi2dWl0oRVmC+~Bv8P~A_bfs zHiJYxx}h#bE+mdLK%MrY3KA@^#L->%|NlN0xO+gG0wC^5g184H0CLY^umxB=eF`kG z8>9~69?)IqFRp-#!_6R3tnM*^yXO@+8GxO9+<^mBYkPDa^El36P?5xN+<^yF;~jSp z5Mf|oIPM?FDjZ=2 zGy^E|!{A;AZ6bhpJ-rqj6(9kS*H3``g2n6S!4kVc>L6YRN5xHWirfqm#p-p-dRSDv z2d68LlfZ402UY+7?@NQb2Xv=5#68z*!0rJFfZSsNwib(f?7XCvvm`BtgT0t3vT5$-v zQT%^Ufk*ddkg3o-tOu%Tz-9RsQ0j!_;mm5}I(;?h-s2ZbEB^oAR{;r1NEl8AduBIC z78HhGz{NC{F#HX&0-Wez7x;OCtU}4d$3Z1TC&YB0&efp3BM?jUAeMjxK$i65vSb=q zVmC+~B%;6xX92j>+zb-+=!Uu!IS(_`!oqtSIDx_w&iBgy|M$&=y9adh8pJ*Gsz5Qg z8zca7&wsE5SUk-JaSuox#694WUI46oGe{JxdkSh`?omT^Pdg|^*1+8Z+8G0J4Mk$bZiF4IixZ0wh>kd z6oc{=-O=-vz4$K{*XnJiXum zS%s2-+CVw|GQ@PB&efoeKM+gaR)8Z6BmlC+50@pOV2Rxzb&vo8C!lz6(Y_fZ>e0O$ z;!@-Uw7&`#VWr@ZfhVAC<^TWhdjfaQ3kC)Th)7Nc{MMss(TczYLOt#7_svb%^-+0E(X@CIA2L`vGw= z#HpLg!9fR-1vyn1>>?~ql>#LJlnkB$vI-@Bo`H%F&QH(=%WBZJDu^Y%5KBM;AWPPP zJ&47Utze1WAa#)N0LRaMNO}c{dUWrGxD+{l}iky$USmkYq7XT6)dqEqz>X9aE8(cy9X?4`0d3)1P{5MSXB(SVjlzOdV-gbGyyVe zpS=@5!;2NAAQhWI0$9D}Q33PTKd@G~xA;L3YYO)kXzv*$n4f`7+zk={dCMK_GA!Qm z151F_LA(VH<_K_s4Hkuz6Yby(xEX95ws2ow4s#$Ry~7 z?Br?-Yz+ZOD^38M`y50HLAwm{kSr)*{(@5imVjY_*R4@tzrlliHz*0zLX7n3Tn*Zr2r=0SVlqeoWb$HM zCa(fZ>;|br3i2)B0vId`3G&0>tg#uS%%giZ#J$L619K@XjqZe`J&+P?VGIde(i+Sb z&@cw+eGv&ZA07a^K;b+I9sr=Nm5=~%ECQ!FkN_wE7J+?)C1_WIC3b_4yy%~*rw4LBAyg8~EEM&tq+0jhhU=hkFRg)U114a9;< z`R-~BkIq*wjPgOw$Ku|fuv!vi2)F`w2jwoLL9ywe2E%fAkbt(jK!QZC5M<_VkN_x1 z`aw>?Hc&YYWCb`uL){P20qzA<6``c-08qNVmJ2o)#Kt~G)(R>~*F#(camwNXxE7F8 zSa3Oo8}5`uP*6hhmKZ1>A!^(RkQ;(>|Nq~20NDx$h!r4NkQEETbrzNYT>-1s-~sv# zoOCurd=2Z46&C*gzwbK40-w&+pgpq?uiOB~)NYUf$R0~v_Beng!0I3g4O|;|K{6It zclU0HW05n~szO-CNKGO!(3yuKDJu^Xfg z;v`U!`eHjIQG-N1usKN_?xeHe1O*K!u#>dGQS%wrGy&}khB#?c9yr250w5;|gKfs* zBq^}OZjd^NlfYGy3fM_tQAox!2BrD#%^+o1-B=8c{LSF-?A{GZnTD5M^p(My*CHT? zLlVk!wuKwJkB z0J&}{*g7nsum&u#8>9~6I`ELpHc(O9y%{75bsg$Zt{BX9FV29ID>Tf&$!J%`|Nr|I z!=1DOo{TnTfddRA0CJKL*k&wFk_1ca2B|}Gk}}vyU{U1O|C)5Tp^$RnH6;2$x*?-P zt1>|#wlRUsSV{wu{SOTmL$w`r5CxJzgWAafd+)zkNDngPl$QDRU zJ^;t{W{?2Zm~6;``Na&P6_l;06_Y0*G3n908Dy#lyri-&fR$7SLFpS(QkA8nw2>}= zN~%pM|Nrm%00~V<%q{@?XE#U|6pW1EaKRFc9I)yZo`S+aR-uu0u`VIT=vb zy--4S6(oJ9{{O#E8}6hR@bt|NaS})XqA$krkT`4Gwr@af9a=tq}WI)G(KqBjH3fN&F z0Z_>Jft`gVWJ19byFuz8z6D2CJh*_}3=)O94mGm&r$Jr!q7>{msH?z{H zg2M!)7!p|$2%A6=^H7+P;YA3fbOR{@iCqPWDL{fABnAx*)X3V93Jnf;WW|9KCNx-J zHOEa*$dtoF26XZYB(fYJNe(0c3Ympq=VJ+(6<~?oAaxMmf+K4axD4G45{0@BHL`?Y zu6uC;>^G>Zz>zgA>Hq(I-Eb#yFu}$H*FpjoBmi;}AJ}FrP7(!6>;|cO@iGY!Ss(%Q z$eNh|4u6mo#QEUJ`V1~2!6qO_R!uxyF(k6G!QKR`14WF95F^8j<&b~_nFtco0Erbt zf*vG>H8_~T$#65cFo#zTa-bRs+>c%Yl7>_ck%=gkg8*nj)YQ2D|MxA21Q;apnjxtQ zBnt|uCt&Yj38~j0D?sBS@I+z>vI@O&*aC`?JrE0gI#+`Z*MZn04Y3C#0J5hBmp#p3 ziQOP|FTxWMF#-}miV;RoRmTnqWRMgjMsz`CSR$ls0*QKb?}m5`xo>hX37Xtrl!L<` zIYFg@!sjB~`3mp^6$6QUkO0W}d%<>K38o`piQOP|FJ>eloDUK}az41I_J{+g5s(zb z`QZGp2%KBNCLkv$?O2fF%^<~Cef2sK=BtI^w2$no^$Gv~?|T9F73jPoNTjqu0uUqs z@)e}Lg~eCzAZ`MwgSgZY6wp5)g(pZ9tCJ$&PU6FG(w~_B|MxL`g*75TN9jYH^cfN; zAOVn*Lclg-aZ)r`VmC;g;kOsQ;Is(ly-UA$|l2fc#hhwi=5c%fS-6 zLFx>@y~qToRxl6ZZg3<(%L|YitPZ>!4|8BAI0+*=usr(z|9$#!2ZHVgfH*J@oY;1Q z1V9cv4=$6iIPe-+0<6yP+lv$6SO)W6%!x%r0>~KjNbmuND_AYWGvG*A1}@>jqR5e; z9|evCkU3cW_&yHi$EDx|jqJzGvH$ta zXZY>K6L2hpc@TGlBjFu5`E3TN!RkOixC2=*9QY~n|Nnh)a0h}eM}Ro+B_xPI0w4!^ zf!%?{fq`I&-5_;_-(EOF90=mQ5RXAb0!RQo5{^fL!WFC&;u&xxD1to$7DbMPRS_V? zn?dGa^Zi-HA% z3pi6E2g4#zFr0)31LzDoNHA!EGt6#~04Nx`z;3`23=_c;V093$fd`^zgG+0$C}fyo z6(s$Djq8SH3*?mcDiY?#1>h8o?8bi)|NrlM40j{wlskwUTOq*;5&*gJ8Q4-RZhQ-t z*bP#L{F$>w?{f#o;Dk39!0dp$rTR`<{Rrj&=}-Lv_Ooj^~ib1q(x*huRfs zkARhCwjh^6O0!R)D5cp1P-&(Y{Qv(xk#FGE4aB`N5ch&)LGG;uI{=G&Ti}6l3zB?5 zI;b_aG=m8;g$!!Ozo-J6kDN+wg#G`&PZQ#5pU%~wlMEq_kB8(ZkO0W>2S7zRw&}d% zV2Rxzbx5h?A~;ciMIou=0VI8bl!3~AdgKZI~en3Hrd zoYW19npU`zKu1zSLP-eXB#;2eNyT7qV{uXySYkIw9mGlCVzC9BMZuzw#55U_j6uq< zy74kNQZ|DlACjjHFTHpND$l|Fy>}|NG`cd;xKOa1b~| zL9!s{L;43;oWC1ha|(j2fF&YusU{C99yUQt_32y{*i46n4M>?s_il)jk(1Q+U|9U+LP80tLJ_zCnrrEl>n}fxGbqJOVEIgF^x& z0CJ-d*eO`tXbG0s4N?bjBRB$_!EW3P62;v|p&$Vv0Tc3^SRGO)yMkUAtMZ2*T7SQHX$`yr_jqztPY|AS*`GdMxR^R!er ztb$koN}-TE9qNZtLHq#a>51O||L;?P_yXemdPwR6$%35!0PG$t&VLTF0$h38f~-Kv z)3ZU*Wezdbr*k#v=vj#2N)W?A0wBYiaT(qPme>tahZHtbzy&K<6cRRzA&D8J%%giZ z#L38c`msMO{$_$h39N)#4G0cqqy~f~*nH${H60Y%0q`&Y9i9sb136!Ck_8EX!k`}P zDJ%ip2A0?jQil`<6Tk&1MD#y=iPSBGC?sS$A?X#Q8EeR#1V_YXaFD@M%@a^k1J(D? zRZ=bm$g89vo`Wuw;`9P}0*k9Jz^XxzIpBp-a-jTxv`{J!R2gQ%0|sS7hatXz=m6IyfxakdTmiIYVXX()To4=kLa7)~WtR_e5yUA~ z-f%4-r`!ew47NtzqYzj=vj8~-lF#0Hp}0W<vFuvZ4Z)74;x1 zK=}+Fpl87eXfwpuun7qdpa1{&O@&whT9U{N8~tAoj;Y;{lak-P5Wr=RI9LL#4wBr! zrMMy_hk?}j)QIfpg+z;c*5va7&xQR?~s|Gt%QCt1LqBm;30NC4#ZTCg2hBDw`E zu^Xfg;v{fGtPhg3L8745f1ndyQMNw5^M*NT2{=JP0}AXUCQxyA0PZBv;m?o=@AL#m zI7k5Gq*q`&usG=>SYkIw9mGlCdgM2_1O$shvL6>H&3A7GDZ}bUFL2~<28U<&ZcxfJ zy!0X!RNH{l^=ptcBrz=jB^*RU%mb8|?zsN{zwai*7ZB&4f+TT}EXeuVU{_*sz7edB zg(s#4kX7B#FoGqf-=LU#1F^uTb2aFMYluBb5PLuZAbSpj{f)(*Q(%eRAa#&n0w<;` zkU|n9>e0O$;#lOwWa0&jxmVy60(BKQ<}}>@|KIly?xYBKVmj{*jyaG3$VmoZo3S{_ z94xULqz>XFaAIvnP|Nr~6AijV&zt#;Lq99q2^Y4M(gT?tzK~|uYOvWIq&=b=-P|VptEb!@E z4LYhEVvi`q9*_XYo-$na)Pf~;gVaHS37nYPK?QF2W{{{y_im75Q73YryF+6Rp46v8 z!U?t96acx-7w$UHG3XH2mAisN0VDu&-3_pHSVG}GSYkIw9mI9uapRYe(hwvHbsg&H zi6_i;FaCoQ3vyCF>+=8qzIeEk8sJI&i3`|CAOVn*T){SDagq;MVmC z)Iod;jw~BU1_OygU56T3b6laWdl7`}DsZ`^0Lnhya3@WGN0vFnNgx4`lV*VJz~ZF& zV2RxzbuWsY5s?KFK#weCNce-KAkGIzRxP*)2b+K#S!@pAFaarsMAlb?I#9&y`^3QT z!Vr?AK#D+On?PcJA)W+@L4yM|vU**h!2!=%*5D{di>z&+kXZ^38PMVWkjRpSBsq`( zC}iru&cYHhtze1WAaxMmf+MRRQVxSep{_%XtoP1P*S%N@_8Zhy;K(X={QrO7cDR!k zz$2>*60jfvkdt16?ZD!sPhg4NAayT}IU*tpB!C`SW%l6k2T4Jk500!0;35)i0&-+U z+QAh=BFh6|6DVQ?KQb`9Xn_PA$V8ABD@ZH=67(Q3tikaBtY*Uy3_c7xPGoCI!ZT!)nNAW^JNGKV|q zEjTeEr(17O)bRa;wKPC?R6t_m5+vDx1VBzQ2HT9qNmgKq-5_-kCxKfUE?_5tMIkMX zU`UPuDZ}c<$>7M}432zwVp<0(yTL6D6Oh9piRmRM;UJo=CqRiw)%ySceQFS2K%6fO zaXv^EzgOQkO?O}<@7}-_e#H0xFvme|^H{ec^fH(;x0P=bz z*bXdSZvac|2C0KM3A|Rk3!Ll0qR6F)uoc*!AjOaf4T2XFa7-Qmmx^FfBqAjsNfjgu z3bjgbFklI_26%OT4U%*rSsolEPptm`-?t26s!!)?(4{vJ!*^SPLk}bXGF%3i;mTl% z-5_<4C;_JuU2v5E7KP-Z7)Z7TDf8&w4RJDZzqQ617WPIMZY;3)|9{_3xElpnVB<34 z5I2GZKyIu6TZ$zB>cJAbLFyoGTnifT?*tXK-J3z8Se^9J3g)Ew;N%I-U*KT-3yPpK za3_Io`hf&n3nbBj1VB!D3bq4_liq+Oc7xPGoCK~-zJWstED8xWR%jjqpFxi$*j&L$ zU^6&8;k5~cUM z=@8^AY{3lf-#d`Fa~K-TAiXc-!R8~Uzgkde^ZtUhW?590Z;%#+FMux zI0xcekUFF=C<7zaPKOy4OC@8N5-`x zQAWnWWfF8`{Jjy#6Ifim4OX>+%mI&#vw-p&(#UuSsMb?~2Mp-)21vlXHUXKr8zcY< z7$2~ouvifcvI3mAS3-ON(E(0*=4L3xasViePc{Ub3u0p*8FvCzdYTXyL7b8RaSBKa z$SDUw0fTL1`~;{f1v^C!v{{O$v4`Kmmu^T+gO@-J4xzg+1i*Mj8gC$h|f+co?)IpLP zxRziCi*5#qf|mDS}-qK!ZsDB(`ZfIEo^;v|p&$m_{qJFqw@3oNl4 zqz>XFa2KNllC(jhSehJQ&12?0}AY<7oeyqhdT*$OBp1>^TFwPH%I{Fqzhm> zusG>DSOTmL;v{gT@DN-Af<+7YOE0`Z zwHY`uT?9!(5>p!};UEg_3Q%G?r1$^-zJ7==AkNuEgSe30NHtPfTeb ztGc0K1WQa0K{2-wVgYCiF+AoxAof7+W_$NyCD`9s?AZX8*bPz#2_|r2+65^jL874j zx)_N`$`}@N7r-e5>MC%|@frO8zi$)VNgZ$}Z8ZQz@@|j-$m?QYo3S`a7Ayf)2XPWO zF{wkG1lHZX8xnrV5!DV(7n{Kn@Q7Ljs#d@er2%p$B%qvZMtpoo&x{r`X8F^Hof z5ycL1El3vR+6=JuSX`TL2@MK(MD2yR1U1)NfKtZ|hy|c6#PCp=uMZBD8Q?H}_ksbJ zJ?vnK-5_<4Pyt7jAgIXh-V722E!SdUU_c!kD>OuRojf+z%>u>QOStP6z+J}(aUDni z6beaT>#&4ECRk!ONFBs=;Lb!bBy)j8p{_&i-&{6;y6#0MIJqJxqjH`9|M&feJ81>n zNqKtU00RktoOB*+2Now?154}%sY7zo190I77DevgWNO0=g_H{`Akh!f4cT~_t_xDJ z86<$!FQD`SX(;Z6Xa%JlYPDcCAhlrN=`0j%4>ZhR1;PbTi6j0S)|dg^Y6wZs=3w{l z1_^+IZ3Z|TumszDumo5gQn0Or6wqMZ-Mc|vLybvJeOOHH2d5aQtH1@qTCM;8_vyf$ zbO0WcOLRa%x*H?_auO@pW-LzP0ZV|@AvsA5>?E)#a!k(Ggc}Np$$OCW0gTt(Fjb zzG{I(79;?&Ck&T8v0#baAa#)F0+&?jpaQsiGe{J)cMhYZI<5l^b-3$F!6_D+l3?lk z11LyR;I0GRmOdp*-ZvQ-UhIPe9LPkFm_10W3lj7oF=%k0 zRx484=#g~-oCu-80*fqXP|ojzhs+0f$gI);I}9WM3K?#&v#^AW5LjY2NFBtt;K-7J zR2CpnsOwN8t40gzx)(;st^!9E11S5?ZD!sOJIrJAayU6sUac@B!C`SVUX|#NkNuP+1JfyL`L5-6_cyjf%6X6|Rws$WopctQ z7?IPhHYjRj;7$TvXAFsrO^{>*5&$_#7;G~ZCrN=Nc7xPGoCNN?s(_sY7KJozj3GG& zqztPYi@}k<865fW#MB2WyTL6D5sxe?+5NFoA9*M5*qt`JjwI#+|PaE2H@4PrP*0A%=gaH)pH@PA;5 z-5_<4u$cxLfaU;;ZU%{Zbngba5Va7@P=Tf(c=`tA9}o1#&qPpSih#QgbSpE&bw3or zUIz()To(zp4vXs&z!JMb>Ry;AAxa#O08)tq-Xi}*9&RSYC*Upec90SRqyg#^)B+Qf z-XR^05O4xVPIyl8ptB|6&i8=l1xtwYK>{G>&jQ9vPP(qKNGH_mj`VQ8j_^9~*|Gql7 z2SImUL*gew0c8GekO0VoJHf8N;=u!839z~sQxp&$1ZhO_AUJ+pz-|Vsg?JDgKl4CE zaQ9}A2B=R^G+WiLF(TkOc{VyvvQtyFy@z-5_-@p2;CR z2ogZ@AUL+Bf!z#N3-KU0wmyK$xbDp$4N#w;##Vp=EVkH?eE^QFFVg@2@7o404>%C9#8xm^VmC;g;kOsA-~)*X-1=m$r{LurJ*bP$mB0&a` z3PA!$5eH6%0^qm+tA#`yI2C4rGwNoL2GF)C@F!}LYxmycdH>O7o-6> z-I+*$6mJF#cY`ArwUqcG1N9ZWlmL}~81W+uN_0$rVGXzma1XXX!V)9^^59djE3kO* z4On6~NZpGAQV0)%1du!kj-LXso55-!9t6kFDM(2T(ttI7v|v7Y@c^7=kmKi^IA}jH z-1#%$&OZtXOOOD_`D$QSVsXAMSYkIwo#D3^@{p_o;=TARiSP_a0Le4p*jg+OiU6=q zh-bjD^%q=_fklyHt4$1~cr(Zxs2@>d%S{?Rwm{_{Mr`Fv{r|sD1Mb}gaPMA&ge*t^ zc<)2#I+ezq9V%l&GN7^-4c{_ zAZ7YHkdF~f`wgHnT}uQs2MGxUNSQ7HNlGADkoPOWuEOH|23UOw&(r51E`c=hVKu*} z1nA%thy^~Kt9QVIc>^RyK>{Fq1aa9T0hZVeQU?hva6eHAoH;gwL_NB9gB**RhMOdy zF%Ng00XEmI24&e?xa$tUT_*%_9Y_G=x?-?(SVEx+EU_D;4&pj+RJK6MZjdO{b*Sm` zi8$1CFJ^%g8*;kL5dHsuUp?GOC*V%1hol;i0LV!Xz;$5BXH25CS}iGD(G#gL_6wg{WR2X@p#0u7`OG|chu2i4o!?kO0U@Nnks$I4Kh>u^XiBg{=@G0zm@k5%`uL z948cNPikJll85mytMz|6rHU%Vh9PCN3c_6V4 zkl1E$1j5B?Kw|g77HkH&1{$fT>0Te4gg1lAT0}+TB?+r&E`X#V6-}!EO6TDNsG>Q@ z`~UyG&yawHR5a@$ZUD)GLKMyKR+V1g9Ol1`+pvA z0tQJzJOfVck&xmAB#NBcA92GK?_&ZD>s>^s1J^ZzkO&6p1EuP!eGCjQ?t;Awb{j}6 z4~c4@d)Y z)UtDdLkJ`ciP~=nb)ab5zlVY0g%P+g0-FdDn++2C2lg^ttRE!y3Sl!yT`@>Z3~a$> zkOj~{M2+G!K4>7qqgVu-_|c-c9~7Rs@bFZChvzqloge{Fc!qL8&4 zj^Ye(me~vvg}M$kicj!DUH76690pKVfuq=m8?;#;?j#Mklae7$0ttYebOdY%7AKts zOY8=zGyL{qFC;)gycZL>5m5{hK#yWaPH?P&q#&LFNAYZMi3~OmIf_*{;EEwpER3)h z6is(_F)+OFhm;2(6G37-Kw{G1hya@h5?ccjgQgdlx)~rbW3UCAL1I_~u^DXkW^mmC zpYNClDz(A$9V(z40jaBQa-!5#25bxrFGSh@|KB$o63mdgiW!`wc7tR=;hO^XHkR-O zwWlFN@&_R&|0v8jwO8ef*qIPd|-*)Aa#%^0M}I# z;C#9nBnley0~><89Ik>JmY(!5oMZ!X(gC=W9NQC*G_V^a0CM96u%%es zcpWSORtIq-c$(-TIPGr+>+Xg|EOM|p!kzRT9QVjh3I(N^CvYbPz@2o59h~k#0w5>Z zf^Ej)Bp0y6Zjd^NlfbijeqbkoMIpf!3reQln?cI32HRY4ENup-N_Z;Y0k0zLzzzp5 zRmC>e3f-rm4<2$Q@_MrfHpo~jI2YXmSr5rYli5&mQ35Czoo5DZSA>KTBp2;v0|yUC z78E>kVEpK05KdS05bd_xFo@1_zAGYZjd^p zu)hQ@Yr&$Buzv_ih#+Mi-Mb-9Mou4!9IzyN9g+?~O0WepcvzameF_E8UY$azK#hc0A_#!;MMrDJ1P6CNyb<%ofn3Ga5 zoOBozH8bH(+5mTw7sN>*0g#hcgYCfLq)lLn-5_-kCxL6EJ>cROEDFi{ry)rZqztPY zxxwjgGdS`g>B{iZ3pGwyVp;=|h9ss$29(6K1C*HN{{8oV-v)>;Ac?6PlD|N*Am_gU zy9bN&KZC3QWfpj1as*k0o|yK4V(uWs0?<|1@L*Dg*mD4ym|Aez(+!r`4N?aQCU9b! z3MrvMqM)0d!G<6wrmu{!m|G1_w8)9+<-dRb_g#cL=>*(K6aN4E586-*HtpSuk6=5n zc>M=hVmDYLcn}kun3%w#n?a&josU^}ol zDHSZS8>9{rO5ntl4=z!`qL9Q?2T8^tWmw&~4;(3*!I2M7OgGtJi76hGv>}N}1Qdvf znT;Eu#1!!R-~W9-A-;elCOe4pL9!s{&j-5)i}RPUL!%3xn7%+<0;vpOB~w1A=;L5; zV({pE54si`9!%H%f`jP+H0I24*<%Nm*bPz#2_|sE)B}>mK%$^)sKJIHC#Dtu|NVz_ zG2)P21+Jpz{Q38PpBUUpFW^pchByf%0P^}0upL;uz8WmC8>9~6ByeKd3MrUDqF9|I z3U|_JaH2&{-;|cWI0>AXl)z2`i$W5U zAtV`tlwoyaAvp3kgCifFn0i2^Jh-|S0y!L#n2v)I4k9uA03{~opa1^vvx4{nl9)dJ z20I@l3vzxC*gaUB9|@{SQA(!e5SO4PCM8hO=LN99{rOyH8~H>4BXb@K8uB#C0H1sOwN$A$$KoUH76GoPLqhmE*5}|Mz9Wog@Hv zQUt_FAOVn*c7pA|;-mv$iQOP|FQ)wZ2fwZhB!E8n;qn9QO^_7C`QX8idEg`mHUW9? zL;X8kF=R!s7{VsdpvL``3=A)VAkhjk5hQjQBqj$5dXN}2I8eu}*8PSC2RyQ3z9~6TX1A;02R00n?a&b*P%w1 z0L*nSj)DCKbrrZ=n)2h{|9unTPEvq7X*DEZK>{Er@qlf{;v`|P#BPwf7tennA`2vd z9$C}BfxQWmf;b->Ss%fLCD;Vy$g27ZR}6`)Ot3e>>Oc`=w1R=*#ZpMXflLI6se!}_ zAwdrkg9Zm`WHJ6ikF53Jgb586SY&B|3YL}dkkNpL%tS~k0ttXZ<`dZYSVHC}SYkIw z9mKcb$YKVIZU%`$U56T3$v>g4dm)MJDsW^y|Mu_yzMXI<8Ni+N4-&8-0g#j8!FFJA zQW{udH%Q$JtM7=&0tui;)~hez@CQjjoDYsH7f@;34K@Kevd(^nD~3eY9)vnj#I!DB zV0iHZ5^x|BL1L94u_F*qg2b=}M+i6>ZUz_T@X8_o-@pI+!Ii^TkTj%nSoQVa|9yzc z!GfKE;l;C0pe7t7z#x^w6-cTA$$~=46zohaA!P%rIN>?E3uF~~vz7JxzyJFlLoD#= zT5qztstA8aael6w6G7Jm!DNf$Xu-T(OS|2{jo8#CZ;Z2JVx z_8)Ir<`K9J@IB=3Vnu{tRN?j$}8C*^=5$RF;c0=Sbte*`-T zBmi;|cWI0>AjQo&9Fi$a2}1d^CR%CNd|3pkcGgOdO}Nu7t6;h~TO z4jRV6HUbG9=$%Z;KyL**(m?N5koAxxy9$&%5#?V4D9Jv1`|tn0BuFShlI)ca;NStt zf`Z2s>|ZRwV*{%sUrYj7fs$lDfRaNg#8jWo)gAD#FNYWo5&#)~1Dxcr7=9ltu^Xfg zDePZ@3s|ryB%zWW6C6}DgoWxeAh4)jid1~W+Si$1XV z$XVhID73raVK4(82F35eP5}vk!r%(nQ&_^_HdtaeNF7obJOw8=h$v#9S0AAk5;FI| z$!ar5GuDui180KG;2?viN=uO0py~`d&^uEIWuO<_>wymR#=QY~0*k9v!7eG*@aV2q zaNNnrz`)=Ly0V%9%mg*FbW}h#fCmkCf*nyT;nVs2#oy1csB-@J@4rvyGY?3jWqtqe z|GxR~U|awXMxA#c7wiTJfP%3Xv0wBYefGY?rhJ)%?k8ZGgK>=Fx3g(ed?~wzP1(Y{;!tL1sx92uEN_T?< zK=#<+vd0-LF&U%|+>!%XX8#suSu2WV%R!zx3b*V4+_F4~Wgr2NW#_>e8H=Z`fh9JB z)Pd{~e+dfc;sB5CYK<3CV7cN5kM8P#7rYQofk$_B#0v%pr^2JVy5PlUNLHA@z`)?q zU0w0wF@(PY%-;3Ac7tSI6hedqAVMIS7jY0FP{Rqd=?`>emN!Jm0HO*c^TGlmHdGQ7!v;raol6i3xA_TpL9VGMO7(@tq?KDW{#b$^Q z^m1d6%!>sOA?OvlAek4v5FzO8sUVpbRS+TQ?WG`@7wHfo=w+WEnHM1tA?Wp*Aek4A z5FzMolpvWGdJrM#{f{7-7t#ICnGB1uogrH~FgJfQ8f(Sv6iU-NOm=6(x z9=#2cdC>zAf*$Y;l6g@H5rQ5g43c?~1`&cDSPPPQ5eyN6o(~I>dEo#Nf*vRel6j#E z5rQ6736gms1rdUtpa_zA!446Eo?r-)dGQ5O(t^$v1m!f)=^GCrLeO*UKr%1RL4=?O zxPfF|K+AvV!B-%e7b_sDpyy11WL`{#2tiLY0?E8+f(StmnE}bX$cG3)Pb&e*yoiAa zK~HA@$-MA{2tm&P0Li>Cg9t%)nuBCsC_{vxdzwKqF9aY$&@IFunHPV-tqj;!T9C|( zR}dlS?oH4p+ZWd%LeMROAek3OAVSc6Xdsyv8zDl_EkYof7xN%O(0wQ%nHSvnHRetLeM1~Aek4- zAwtlV1t6IhQy@anDRq#{i$;hLbcPlr^CAx-1f3uR$-Ib$2tnuLKr$~pAVScYACSxo zQ-~0Bq6H-LLJ1-S9nuHMyx@ljK}XO*GB5ssn+=tE09_E*C0X1eBJi2RC1YW4U{rCUn1<=KMorgU--@hmW zohZ?H|Aie$Q|Doy&i5~rpZ)vq(Ru%cHbe-dDgdfV0wM%b_4g@66)Qvtq)H2_>eDNb z6xgimP*wLKLLgNvP*rCjLLjp?LRIaA2!T|A&r|BW|6&EFg~0t6FCao7RlHDDS0O?mvvxsM9fAmfR6PeB$^wh$qZDkZ2Y zEr<|El|R%haQhbG$3KrDeq=$Y(uAt|2uk%3Ro9@Z?m>h=W-&umorVa3Y}^1_g}M7fT^RAXQyZRg)k>AXVV=Gdl0TsD}uFRHZ;wC2dAXU~-Rm>0}kg69CAtCVrT!erN z7*VLIyAUCeszXp!ryxQgv)+SFgy_8gVmm|#q-qXS)e?vhNYzQGs)-OGkg77Msyc`e zNY!Gfs%(f5NL2t-RRlx`q^cIG$`v96Ql$k|WdsodsREz()p`GgJVXejiUq2Q2O;FuL=2(0uchKnh8~vh!ARn3i&~VKpKsq8m%EhAdLx7RT>Z>kSboN zDp80KNR<^-6%#}Vr0V&7h_~N^ix6-E5P_mBF}hR*vhwn2nI zs%Aq~ErtkzRGomTng9_3sVar4s)Y!FR4sz4%7O@iRQW?yg+qius%oIBTp&UqRhm#$ zh7ci;sxYW3IfxKQ6*E*7H$(`e$^feB2e`ZdCxE;6AR+M-A_P*!1yywkA_OvPJ5<$v zh!9BC6VP!Eo%dg?fe3+AO@ykN2@wLR+6PtD1`z_O%7&^ch6sUF&48*(fCzz9xk6R> zLWDr7ilC~jAVMHj@=#Uk5FwB%@c9#+_g{!Wgg~l(-i7#)5h4Uqr3N+Y9k{#zhs0&5 zs@o7DkSYeKsuK_)kXdV?sLgUvMTii{tZ%B2DqtT(2&8H;RMl#T5J=SpsHzzdA&{zCsH#?o z5J=T3sH!4}5J*)xR8>4g2&Ae7s>%l<1X5)PRb>eg0;!6Fs#1dpfmCrrRS83cK&mXD zsu&~RoQZ*B*Y9T}j zqzZigMCbh%eGnm#s$!_BYKRa>)dHwl84w|mDqpCoP>2vnRTWf~6GRB4N*$_7A0h-& z1wQ|%^ZpANh!98>BUBY9L_qT6BLgFz*2&9Sws_Ftn2xQh)sH(jX zA&{y^%8)d%3L*qj)eluQ9U=r$wFj!I1tJ7el?hc<2oVCQng&%B2N43Pa)zq%h6sUF z6+l&4K!iZ5WTC25AwnQkUQks+5FwDN?>8ZS{0}ZKz_G0YRrLlU1X6Vos_G_02xQhj z(D@9V_g@@?2!T|shN{{O5dx{Y0adjCA_P*^3RTq$5dx{&1XWc95dx`-hpI}42!T}f zKvji6gg~k+p{g7qLLgOXP*r*mA&@Fzs48iQ5J;5+R22tA2&C%m4M<3Q1(z4#kdT6^ zdIS*ysX7i-bsi!FGV2TIsE5w`FZMu$K&lo(Rjq^wfmEG?s+tB70;#Hos%nM^fmE%4 zsw#j8fmDS;RmDPtK&qOcs=OdVAXWNMRpt;Okg6D{Diw$jNEIhkl^{e2q{L0jp z0H^!M*C8SC8X^QzB>+`*10n=6YcEvQQHT&o)hp0x44wC1Y=Q`ZR85Dfnhy~IsX78x z)dLX%sVao3s)PuERLz5`N`nZ2RCz;H1w({Dsw$wW93VmkHtq{Myvw0DJq5xf(U_B@k3QzhX{ep+5=T}1R?}d^%8XEL+AY$ z8zDjiWh!9AX z15}jA_P(;1y!X45dx`lhpOU-2!T|6xeN)3Kj6XvT<|GERlS4=fmEG? zs=5Xd0-5z2bVx+!{TGKJLLgNupsF@Ngg~mULRHO$2!T{JK~;4@gg~m+LsgYSgg~ld zpsG?JLLgP0P*s5tA&@FFs46>%5J*)rRFyVF2&75?s!9SP1X5)SRmBPs0;zg+2@(>Y zz(oi+B*dYr?n8t?s*XTaoq-5}%=!pA*P-+Ni=7Z5kg9o5Rm&hkAXTTKswP8(K&mRB zsv00dAXQ7Ds&XMhAXPz7RZ$Qjkg9s9DtCwwNRAXVj1RrL@dkg6q6RXGqLkg7nasz`_sNL3wFl^a9|q)HpA z$`~R9QWXJJr2r8EsbYny;)Mu-R2e~4{Q{R4-~@30JR~HZLxe!8c%Z7TK!iYM?S!g2 z2oVCQdImZIqVxWXbr2zts>x7QvmrttRR^G|Iv_$IRk=`Ar4S*ID)9M7o%dfPL4-i6 z+@Y%cAwnQkB~Y_$AVMHjicnRW5FwB%Kd34(h!9BC?{g48GDCzwsx+XgK7h*$a7bK* zs=5mi0;ytxsyYP`0-3cQs%kq#2&C!`=n#j_`!AM2gg~k~p{gcAgg~mcK~>d3gg~m2 zp{lYWLLgNWpsFGuLLgPPP*tuFA&{yps463f5J;6cRFynL2&Bpds)`38WC#`d2`(JK z-oAGh5;)HwLLiOYP*s;9LLlRJKvf-p2!T{R1sxOt8vlX_fmBU`s+t860;$>$Rn-m= z0;$S@sw#m9fmF?es!D_ifmFFcRrx`LK&pzNs;nVGAXN%bRT>B(UZ{{LLko1`z_OS`AfI3=smUih!z0fCzz9wL(?-LWDr7jG(HlAVMHj z@laLj5FwB%9;hl2h!9AXB~%q7LDj2&Ae6s;UMe1X8sSswxvA1XAS(RTTyi z0;#Hos&a-1fmCTgRT)5pK&nEas$?NTAXQ9IRa_7ukSg%`O`Z2&dnY zkSbNEs<+_s0vr;TpsH>`gg~nPgAQrvy#L}jL$2!T{N zLRE1>gg~m^9fyR(H*k3YPWRGKRgV!u98jSP5FwDptx%17AwnSI9|=GTg;fwCkg9&D zs_76Rkg7dURV@%9kg80mszQhmNYyl`syK)cNR=~Gl{Z8Pq^ba_$^s$;QY8yjr3w)O zsq%uV5`qYURDC}N@%Ddk;Q;ow3RKk_h!9BCMX0Kq5FwCR|3D{2fX2TdLLgPEp{h1R zgg~lpKvgY(2!T|!LRIxbgg~k`K~+^jgg~m|p{mj$LLgN=P*ouiA&@Fds47Q@5J*)T zRFxh?2&76Fs!AFn1XASyRmA}j0;zg?6cQ3&!G!}jB&49K9zldas*Xcdoreg4%=!X4 z0|GSu1rY+NS_oCO5+Vdrbq=a(8bk=Bsv4@Q86pHywF0WD03rlZ6$(`q3lRdTYJ#fr zf(U_B=|feSLxe!8VxX#2AVMHjoKRJQ5FwB%GpMS6;PL{T-5(!;gv4uz5J;5(RMicL z5Xh{(P*q1ELLgPIK*u$J#=js!AXU?$s^&w4K&p;FRrNrGK&lF%swyEuAXW3As?s1r zAXVN_RlyJ;kg5u(DhG%VNR=v7l`cdGq$&uiN(v$bQuY5Z#EWbE-*vPiNT}0 zUgJdzM0xbf>SO=@ry(?WG`|;keG0(`>3^~PKe#A~e(84@q&N*-{Vjz0P>=?X<~I@^ zosW*QsDReYyvR8C@4v@!W{4Y{!EV?O-eqAAc7(HrN9R3{&f_n@M{YMCk%*2x?9q7? z)BwB(PAczTJUjmHe;U8M3j>2=sAuP2#}LoXFQJ`RgFPDGfY<3BXHkJJW-fq{SO zfqkGOJ@>x`FG+sy}tlKK$q4pL(d}QYoiLw~fjRaC|l%0l5~sq6p%j{fAhb7+zchY3kjg zasagG805wlDD&})-=Hw+hVbEL_IY&g0jqd1=fuDNFKhn)|IaVq01E8=w?XE$LCpiL zUiN^P2Vp*bu^MU~hz~Q5ztsv9!`*vSK%y@^KxS%y&1BgB0c4&T*t`-I1+ZZ*Ao}r( zM6gLNDhdc=KK}z9uTi6-@PY+o#*=>tcgcawdAAP|5e86m3_u|%2{p$6Va{r(IR-EG z9RK(KIbU^0tAej>aa*r6)oCK&j2_SPEq2?qY%(?s*5$%_#tx^AnVPx?NNX5ax74%_(>>2V_nSk~!HR_q2h{*`fkU z5@4fRpv=cFR)bB0@DT=DfeqXPR`tRIWTpn#OosjSAoI+i=7E;cL(PLQAHRr(ng`+| z%zO0*NNWl4x%YDBT}@(aHY*|Lcbyy^!1jQeF-cIS&$nWZRw1BfCMjq1XZCbAxY!ti`^hW zf&ZW*IKky>NT^5WS7;$F;L-W~g%&98yIE9Rx)V5H0SGPBWYFfQBQI|3`1gO`DVVpDB_Qq;g1A!xGHu-7B*du>Ag9)XOE(Oswt|^7tQA;L%-d0FCE^ph^;y`QE?y2FiKRG6S-4(D3B0 z|IAJdFZOJPmmPsyKv9C>w^jQ=M^Hfm1+JGBR0}kK^mc>O;0u*)ST*Nj(<}he>!{-}n9d z|C0STs1bb_w7-oVl)pOfzu*U{2Q77d{=x)ws72@f7k@xjLxdEeLN5_Qd{Cild;a}@ zy~zWj4t%~u=lvH4L4tFkf=@svJb>1}fdo6Cg6E-v(-9`_feN)CgjPa@3itf`|I!Oo zT|n%a2o;Y6i5nrrE1}|!d;a~O0IEF%lVk8XDjP@kpS!N8-tBH%?d$YI^i8XgdVf)`#;0mE+)p&j5h#usp=aMl3t zi-k(80M#nDw}KJ^O#cq>7C%V*!o@(1@)w^$aoFvwv5x^%L4hsX0p8X(3u*xPm|UpI z;LUvpH$hB}h6;i<{=HnY8{9*Jcfe5nvjefDg3>VSL7Qx$ zI=~zDn4l7%BQ*4qLE8{PA+`g&b8p)Qh|@rFLI^qV7QR_Xa^I5R`oMen>Y#G)umx}D zn*q*<&Khu0@Q%Ji8zFYUMZuf;a?sU+H}Qp`i-I@pIY320r-eg(2HvLkV?D%Vs2FH( z-is@s6iQzCt|?i%Zak zyO$4k{`-#>f8fn?Cs5r2-YT~RDh3Mi1&Q!b1#ghkfcgg{*Mg7(@08;~lFLBIfw#U%b?wKFW>I?_kRL%{~pc% z;LUI+K*bj#F2Gygwm`*@-38tN7Y%h6vIKY=oD)<66e@WM@DKyT zG42+UoEbt6yhCmuR1O;F;4N}eP?y2eDR@iV5ok()i-LE>t%D{UxF~pI+zfP4@ZPv4 zbW!m3xEyrR8KA2b!q7#*o8%mzq99+^#KS`Xyj$+e8bkmlU zs2tn};4O4w&_sZgIKcbp`k<;oF1Qs3cL8`qT@jMpF@zj=XI&Un4sHv0bKM4L=p!dJ z@D{u2PzhM>0&TK;*|hE7|Fj9P^aVEwylGAinl_;E2;Map1g_EHg*JGPoE@qdct@NT zR1D-NF@(Fp`{3rSMuh6GSh#<|8{(RfMty8GGDCr2y(?9Sk>v+Y+Li|NU?N!NlK^!py+n(QG^A zf&v2re+%du8PKo-XoEJm@xSjAXqad_$mZTHDj;D{7ybAe&}imSkM1d8p%4GLzyq56 zEn-Xz46ZG2`CF6`L7?H$*#aJT`S72Cf9fG{f1npK6k~Yl#hh25fg6|t$PgxfOB~2m z-PH!rLY)17KnCdQ5yXg83k&$b0T&g-U{}jSQ0nYIKdylMv2Z155UoU|0F-1EK;zm4FV2EXT9mOuCa~Ks^pK_-N6y7oR}26O{jg71UUOavVF4z9`)Y8vTCD-?AK}tJ(I+S#Ww4 z1ErJRJu0B10+7-xJ6QJ?urSE60xv{Y!BZ?qEh5G8FhWzTBq(-3*{<6GoMJ&Eb*L#8 zB(e+CDt__&IV917L=chY4RTsHWT5Ot$;N;GUs{4A4K(t_04_9oAp@S!Obu$kznBAx z|6b_GX)h?$s-VReNE^cN2+(k0H$?vnaZpe-+ulC|3WQegKj6VM&=?2ktv zbUybu-U4QVvvA8gZ~(lF14joa9qj>U$`_|M{QLiM0>lUxPz?nM%@>=y?1->81@fjqRKq82M zTng$I!)7zit^fD`<>cSU;n!^2aT*k?Etfz=SnnPcP}3MGZLJ2Scu@HTb+N;Xoy*}a z2B}537&JHvO6o1w!9@qSLI9^N(5wflt3e{Wm_hx=?xzq}gG3One*X(33K;=@Apvsr z-CyAGZBV`fh0_aWkl>wvV6TAUv3H9~0n~{Cpp*dOfKvh}eK~d>eaZIs|NpcJApIa$ zzc{?^-~X3>|B>~BIt-xfV*t_*;(+yAK??tu1t7a7fTp<|Kq(^tlrs9jMZ_KzFlQq; zq#ztn%1~SiO&K2{DMR5DIGlZ;;S4&D11X%HLD>K_MFsUlz>C0T@NfpHMT9dbBe}M` zEr~`>84nm37*N9)B(jSI6vpaLK%v>90un)laraM<=pL}>i!E#a{eM~c6BNdvj0mbD z3r>RFdkC76AE2h>$>2<}MFk`b3bce53zx#(3lc=Q*8`H0`CI0rrHc<3ZU%|$VgdwWUY$J(ZW6+(cc0E@pts533QYqyj%ti-6SjkRnS{hK*u+Mvm{9HG$?XFRU{*<;JpuW(~}htwE@u7 zoB&e$eknu{!~yx^K8WAlq5|S0Tmb4zg4_nuiVy`)ri1DMkU?P}jlFwRHoz@?0}jAqV1vCbLnDo6iDkpMj(2BsADAfPXm%)u2sAZgU- zF=T;8k1Oby_TCZ|aN+m>6etJhK|&YA0lD}CNKj`PNN|q|sLufL+B=ZfT*0xnMFpe= zq!uLoB47zf?G~_FP+&QL_}wjFJ|ZHd!Q+W7V66yIagb>59u<(~FSaiR8MH?QG%5xf z)h`DJWQa-tsB{1ef)Wf9=>9xV0QPQCNq`p8;PJ8wu;3mQ(CJkWH-84Xc_P>=TU0=5 zKyC&}znBBIY71B`$jv<F)k8s^fkn!CuV66zzgCJ3uOPE0#dm(Oqkp>Q)Jt`BJ zV2Sz%$OZgh7nGj?`{F}5f+(%EP}NC;04|1rJzV>;%|8m zlI-21q5$gEf|hygV`g(=c(E892wT9yAd@$PGI@6kn2#{|1UOCYQ2`zO1ZwX0LhT3f zL5@@a6;z!sJ(2@BJh}@6Uii)h^^se^>Jg@ZPFe#M=pfZER?UYf0dYKfD_(ds{%0sp zV&HET<^VO{P==%{G+w+0xvO`NiUBhNq$|FQoekPEf3bfS$S7wGP_%>O4KG2OraQph z@`rOkvMpep2)9Uqd<2@)Y5iZq=F!dmKR^Lg7=U^za7C^DpCDy6Nc2VKvVZ?y+JZ!y zZFLTT>(EmmZ};v|0gZh_QV_W4^#>*B-YsBZP(fMnB6c3Q$OhQ}QVX}C#R%5ZtN_>A zh_)4I3>~$C0g3Da9Z>p0{|?AmEh-=pxKXW>KY~Q}fJI;IS^Dq)%SNaOD3)GSE%^8U zWgWOOfFyz!GeBz8pd#R8)&>&U1*%rMAtC*u1SE0=ss@xJUL=7;bfId%c_RQM!U`1u z6(uk1Kq7l#EmUy%021+sihzpK7g8XRchL4As7iUk0TOuu4u?G|pi=q8wAQg@vu@|SO zgYwCLP+|u0(dsZz;rQajvw#1=Rn|{X+UW)NAor+j0F^ImXF`kzaX?0Z53!S22ojv4 z0^)!KL1XOu{(&;Mo*tx!0}=scIy+Ea048FxKY#^69Tre5T!U5-4PX!KQJDY| zECdTq0dqjkT)@b{un%0hw(CNi2@(N0b2_->-=hNJzt{yjcLUV51(^XpF9c?b0#q5u z>KDz6{{4Ts1Ju0h-J>D^DuX(oy*LNX%psskWeY?QR4{@3YXWx678TG03dk|w$&vHm z;F+QV;(!D}b0hn}^~+Nohzmg?AQyfGl{=u?8)TLQ)P*2zFSwx`kijqNpvpk*dGT=J zzyB|{f|6bD78THFJ~(}V+EO46I79O-0B7HqL7?6%sP=*SgAMAB0#HbUCPYB41D`OM z19tKj6%Yp`2tH$w9V|FS1;haff=(HPBnVlkKR_ZNf9S#-$jrd-A^>#M2dI<*ah#zX zkijpufr>V$dtOL_{2>L(8X&b`7ao2g0#go(C3YwWTzOW_0Uhu4{>3NI@fqMA`wJ*5 z;l({DE8xWyD9ho+DJaX}#Q`Ww;l(y6O8|Oa$nzIVKq8&@Ux5AJdHD4NkUv3XvPb9P z7wwP#{eRsJ5&@MGAd%9?|6pr%AZ-VbAn3f1m+p{>(wFui8ss5RlI=YF!WpE)2Pz24 zKOh}?AX{NsMiI&ZXPGIp|NVa{3RMmYU6AtsprbQDW`Y6~e11~z9&k*(NCg)YdsIMi z`QpUdb|5z^U^As5*n@mKV+-M}QXKfvko*V#4ctAXk7I ziy*V~Ko;tQECdAtG^8X!f>KaHPyq{4$pR8&1qpT@e)$(#aDYlykmPgFK^ma82`I7L zf^tBu@E5+b{{4S>4o&%vhyVUV!sQgmahE_Y0u}8bqd?~;y_^fx026F~`0xMA4v=8y zVUS{QeF8o&1lBrw3NA;Xts@UmaTf_u{`$_&f+zPJx=BorhoS1WE3KmI$Eg6J*R1kl<1@ z!G4e+Xlx2(A*k>KsjLDW-vKK>bD*_x&&mJ(zx)I$KRXY<6oTpi4Z4AJ zoB`>$3X%j>)1ZNX&ciQ2=O?{902KrcuYgo80;yaL6$DMJfCOtn#n3d6VCUhNr=awb zU;qF6bb{k17o=$gNF3xKsM8}rf{9Q;&>$ShBxjJI4^$8|a0?Oyofq=b94uI)QUDT> z0VxXyi$DfKL4xccL4jYO@iND7$1up8*dOq8SSV;sIB1U2qq9VXXi5xpefKUNSi{@1Ge*S#Jc|XI7qjdK>2Xofz?c||p9pDzgLK2%tEJ$H zF_6d$f!Y85BMgO4jJ@o`Wgb6%^A5~{Y6Ml}&}py@;1wj_rX$HHKspH~BgJxlBR06<5fcw%I7#I)= zeLDZY2$~3WBSILeAH0lZF<5_zN&>R}9F+o}&hIb85n2(pf)}{tf_3Gn6d>v9eE;Iv z1gKq58^G0s6s&*%5FKuz`)Ram=W1l@QNFuDgXXk9)=6^_wEFh7Tr5QlAZTnZ0-i- z1rAUiIp)#%{(qnXs8RqK4La%lX%DEFd;el>A0!Mxg(swAsRHV(f13&t-U8lk0MZ7M ze!(~yA_(Gu1VR3I@n#ap8uX!IGf-6q8fgR#Q_cj{mnz`x3XpjekRx6+!$e{0@HT+f z41vrA6`n7)Oo5CYg1Vm2z?!%b99VE4dvxyrwaZ>qPK5^lOi%%P95NmX)f0=U2i)Xx zh3UBqDg&Esk8A?>vyDI|fZ7P~u?ujs{5i-mpiv#LH0XfYuYLdicYBwTa+|+pF%u%4fTu7(ts6);+p`+?0W~VH z;Z(?!F2rvLRi2ATzW|9W zg^GZJ;KenN2qQF6gM#YC5s(PD%?_Iz+XNEX2-O7&`WFj8BAs9n(3YEtQ~v#*@G=r? zN{x!ai$*XXl2vL{99|TH`NB~7fES5i{s*Z3gcpHeKE$P)#(=S$^uZa1DZv7p$jSxL8Fq$8LIU*sFBva2dwnPDNu>mY&&Tk zCHrm|kYO~B7LCS4GBM{BDm)3&Z-!cyx zg9}h&@GH1(-J${#2DNSsUNCooyaKA8Kw_{^FUe`ST~ZDS<8H`|6{wSk7IPpW$Q<+C z`hAQ9M%F39#5ZWI6gf8FZQY|8`j z#aY;d2dXdhp}qjEX9W4e;e~A{%oiXrxC>f9s~JF<0=#Ux*>>w1aNsNh^|L|49;n9N z040*%Eh-OKK(i+QU%cpm8440X7xTB#K<&ks_n;!64E4fv!oUA7H^Y-VB$FJ z9B5t8xByK;L7Eg`^A`7l+_6OkBn)Z;Zf*ye4@yrU5x7TNK=X>Am^clxrrA~-VyL_b zX#8!D3TVYBlA(T3LqWoz;jB2gp&${2p)**(G0|EEG4$FhuuEg1Y2SerHY);l=}%DG z2vk2qJp!uOUa-JT2B}7v91gAU=P{raV4xm0S{#Ffc5#B@_}URj9D_vQX0`HwMlV5Y zRzSld$$kI+zx)M_q7Bd}0+fQzZs$a1_^@-L{QQ3f~O4@O(0>oTU$Vjs#|WC$idPzXdVdMRDRtJZH>Ky zgmo6g&Qo9?>`?(tdm=?(FQ}CYTFwIvYf$O-Vn!>>PLOJZopRvH0@Y4%1H2q&XBEWG zZ!5t5e8~?I~9YFP(T^A&ifrLR`12;oFTVTNn5{BE_QpgC-6yUXcC_Vs<9HIFDBn0k~y^x0b z03-r8t2OW|#0MbJ7c08|{eNi>5&pFZY8|FKC(pv<^ED zr1KxB><2AM04EvH*2?28Di>fW`Zc()ed+%TwbBFk1oAtfX-|?LksCp=1#a^P!ekfn zF)(;^m#A=nf{1~Qf#C&P8z|iNsDL?|;6Q|MIuE~?)d*_&fCGrX6;u^_Kr1@X*fLr$ zfrKDyGrk-E4P@+50g1f$e&*l*mwI17;~}7CCny?TG!(l-vLb zLQwbO1smw>5YUVyl z7g!OffxH3AGI+5J%2IeS2g(w7F$u)#y#FE!+VTN4F+hV+;PXPD!<8>`L5e^l@}MF% z0m=dAlHk+-{=c*a)nuTdNKn%2Jp97$^uPa*;akwmEXXt+kjMtmG|U8Oe1NpB|+*s55M?y>fisD#UKk%7RlVMgLHI3b0yGD>xxC-jxIcjf}~zF zH>0ePaj6FdDr~_+jfw)&JR^8=GPxQQiQsug5TAeQ0mIwir81zQFb{s$yDt(!=X1r;XHWhUUcPPbZ!=^zd$lYr;1HnxBSr=ZNELFVs{3xW(lOs0Vye5nbfd=Ger z?ZsEn2^yeC0L_=ZfO0^lzla7a3sC_tN&yYj?*p$@DS;XZ5&^jYG*Z4x@0}yVi&NmD z4?3p@5(Y_whQ(hLfMpI1BmyqE;#fE@dx70j6e zJ}&@dDrgoDGLtC{bq7cUBm)j4HK=_c!55wT%T(dw28^Q6t5+<7u>wds1dGJb_NN|eYqVfRjHRuwh6p(YeTflD*bs86Ar5I{Zc3XK=DK@I~24GZRan*4I87EpN#n(0AZP%{DK5UAD{n~#Fj zf`-nJ7Sh1d&@|9FG@#-Il%P7H9PsE)4U_{)MlbTA9B>_#1m%F6f8g_zKm|XjTJnI( zfNI(o)=&<(j?y~{siV}u^!FEXVEX?HF|Z;~9mNA>8N6VEvJ_tY039|2I%?v@yCa}} z*IP)_0OVm%m2wj-4UNY$AQir#t{r4}5fV9&$wg3jyuJ!*L4cy>g<$Q!|1UE^EeMd( zDd6~o&9jxRgDZPg^Y8!b`5-PR!MxyZ`uG3k3s7Sc6nLN{)Oq+t7|7O&|0pY29#udx z320R;D4Br9N02fiNchFS5>P@0XG9PmOGf;2_}_mIP(}m~DS{d!pmYQ(%|Kb@UKzv= z(2`S-9iVx}7oMORv3Cl1nJP#S)Fa#nUd|HF4XI~9A|M%XM$7`GMbNxD$iQBZbs&#{ zI1Nw^$n+PVtN;CfxenA`>74>zx&$%+w3v6F9;m2iff@}G0m*=k=7$;$5`1BF_}~AR z{$K<4K$gOG9)2MUwF2yL0VoG-Uo*%)RZ#4J+CiX_qx0~KcZdG{e<=VG>^%JXxJT#V z39rwAR)h1}Fz?U@@|R*XsWLf5`#Ti#*x<8oc5G zRPKVzKLk4E0hIeeQMnb$0hg&7Rsa6KJOzr0&cmchS%b>AN~ozI!54Et2CM)L9P~~BZ%_fb9<=@hVt_8x0FVes2Al*epay^h zUqpip@PrxwD)B(dKnsT;2E2h**&q>+4A_A0;G$s^3A%rQl#`(GA&}rkkf0G% z5Yz_&3C;lt%7O*AsB8cgXQ1o`s_c)qfcfAi`L-%h7x<;|2Z)Iepw0Vukmd)UA%dVT zImkpWkl<;kAZUacBxni}+y)f{joN?&6+nUup@N`}9!QWIB-jHL1dT$01iyg}m?(z| zg8K9z!G|EhB&Z;$;|vl!0}}Lw3WADU$i5#|RtAQa1N<$n9}(SN@Mr^QW*Ds#3KD{> z-^||x@ft|vMG?s4m7v`+(Ebm^<@qXFs5s3|dTsW->@<7dNPi6a|@#zV5u$ z8)Q0YM;9oWE&>&RmLL&Oa}`wTcOHK6cJIIcFY`caTS3tT6}$lwjD!k;I>(@ZI1CbW z0Sj(Xxd4q=aE1nr2Ee+pcPqdVYx*AK(Jd+l;GXV#P;0k2W36b*u#sOa!~QT zMFqqG34+IX#leD8AnVgXT}~$0%1T{ON(VJv!3{xZ>19z0GGh;Tkvio34p1=*veysf zB2X(C#5q_3Q3kUAg-Ru8c@QYhhH{=Q@|b-&^R?nvIQi`3X+5`SUvnAA0+qzq!My`p?nc!7F-=1etW=EuprIu zAay6e>JGm=3#E5}Xi(sSg0%DS3nh@E#ZW=e5I;yKFVw%_DQ*UkiWl!dNfWY53Z&xo zu7Cd_l@@4`A1DgJy|*i%vob&pP*BJp-}UeR%a@=5w9dn?UxL(t`nMq6YoW@(9oPj> z4!8q58Kh?`R1d6Dg!H~a8cU#R!9DqOCI1*v0V!7ljdCE>&5%ujAk*H0j>iBE|9~oW(D@x8&w=a8U{G9u z;tC|Qtqjyi1(oW^iR1Ns(0K%%zdf4YD0np63QSgDU?_0|P3#DOhm>E~gA;ZM=uEf! zFM{$x-Ix&2`H@`wQxCSBEENLJ2Y0%t@VsCx|M$P!MTN(s`G`XFVSafA&~hXJa4X_P zCn%YM#lc2{oNWejcISO?dlzxmB>235V9;SW&2Kn7y4gHB*}(d|=-YJ>!m5r@DY^5{J0(fRyE2FO93&p-#>)q+e# zI{B!CA9O$u#16=QHPB&}>SbWNB_QIUjr*NPUlf7uzW*W%Ouv6&1UB{P>(|I00-b+w z6>K-uQ5-K`6@xO#JCN=F3&7^0`U!k~N9X$&kBUL(MR;_(b9i(IXzW-Z=)~aBddY*| z_0Zu72rHWZY4W!p2hAye`>*oVfz62lvi{?x@g~p#3=A)CZ-mg!>ml^(bzs_~+liyw z;N@O0&xL{ECG!%n_{-OeA@pS^y&Fm|hSJ#!A@auaA@uJ#5c=>e2;DssLI+QW(9%;O z^yA48di6vIUEB|$t$QIfa}R_*-3g&5w?pXYHVCcU0-;|wLg>Tw5W2e#Ohf(iw-&?$ z?LUS1Z*C1LpBIfUTa6}Ph03q3MCHq_Mdin?LFLa~jmqC!fy(zqO2PS=%CAcw0`sK{Nd60sl;?As3oy~0lO1}Pv?Qp%N+Qp zALE~N(81zdDc5Jjea@ZNd^(T66wL$K=EA^Wc;GO~`8SRso}FhxJv#pecYgM0ek1Tg zy8tvNQ=!;;yHvLMhi1KK=P@79aeD8;`MwskG}lFir}>4J2mBx~xa0ZdG5iBh&k3Lt zdNI>8vVV9O7#Q|5h!Eo+*IXR_d6}J$ay~Fd_`&j*0_cz~BHVL8j2QPkO~d7$-PtJa z@i@*7IUdX%d_3688WiWIO#q!w{PH?@u@`8>gaKTPpz3+y0V3@(L;VEQ-$8mPZ@h|QIpyOX&*5n}v4^ICh z>v`dk2P#oP{?8=nf5&jg&i{^Ko}J%7Co5ld4Dsnz)o4^;2=(aI1<}DinokXHdmQ}B z?9u#&_HlNN{KAqoOI{!QV7rEone3;S0@^$GekLDvBNNb^x&Wrwh z803dH93T~k85kHC8JHM?Q*%<2OBBlUi?S6`GK*4^OY(~<860zR6w)$tQi~NdwDhzz zVX8`s60;yGz_Kvm#FG46g_6pG)MALRPkuU>0oI+9pRUOeoLH8skOLJ~NG#UV(_`>2 zEh#81K`2Z~EP*P_N60|chM-yuHdrg#K-V%>lOe#x31LV58NyLR&Z#KByf~G?GY{rBhLFmFRE7LB1w`O61cdrJ zGPno%`#L%YE0m;GlrZ>}<|d^Ufs_@Oq!tu2IKqMy;!5Ad;%ty4QpglDgyfeb<|rTn zpTQ?ToxwRLHL-{xxFoTtguy*E58_iKt6?T(!W~%55Dd05EwiY&gdr!fxP-wuH77?$ z!I1%MwgH4PgiuBh%9z13uOzi7F}Wl&KaU|OH8;O36*)#3Tv7{4GC)o)PE9OI&R}qa z2RulFZ+=c{a%oN~Lr`K$W@#~lYhGDqQGQ--YF-ILNJdd=D#Tl9rFjqw{PWO7f%2JC;GLsW?V3I{y@i}01@t~aOl3B!10v1Y2%|R8( z%u97m$t*z;EGR9`a4Ib+$}eX8JurHk&Yx-49>>IC5a{Jsd;E=CfDaVu)xJ*uFaS5bgjz=;I;kuyIT##B!^Pv);tO?73 z(DDT}ZqNl`Sp-cS$%SY#P`Bh4AVLZr)+wNB7UVv#Ghi`;DhgK&Dv983gE<3P5XlY5 z!cYgmN-mfYNU9;F7ZwRf36=_~-qFi1V+OD=EbL%q4onb~9nr*KPDT|*at5jd)Y*`t z2-#Q^5tyOKf=EUp3quVA<#4#$LC(Y~5CK(!np#0hVKR{94ibsPsTL-KP#c9)EldXL zOlT@X_Bg5#%;zYgNM1(~hZzcP10b833v0?j1Yt=KO&H?-B1mfwq7pS=P^6G7GlF^- zB@sgm$boqPlvW`^NUlc+LQR7uUksIy#ET&eNxDUeDQV~_*MtEiik@(xVxR;8ONS64 zm@`pCkz9%*4s|Rf*+KLp)w2)*n1LvYK#k0Ja4iUP9mplv1t1kD*f3apffXW&Lm~_; z3a&db6(fY9ZU&`fWV^BPBOnS;;~u0CDgm(;BoK*9B~${TG76VUs07q`(BusE2t+fA z2rN*M1(6~NSr}>{s1`MZ*bT3zKw=Ofh!r4yu>nK`7SzaMNUESlp{Rn2A*nLLVir^k z$ysm_P#OT+XN*N3R1C>d3^rbcj-T*#Z}Vn3tHB4tEWzJCS7&YGJOyR11@V zt3@~lLoq@M>P}F_4^FjkcjiL+x2S@k0uL;LQZ9l;kkT=2sJ1%JqPMga8`lwV1~e?k&J)|K@9+vRY)da;YNU^QR5k;3?dE*4iG;QhdPKj zLR}ONbr5l=v!LY_B7~3yV7@~VL-HV!D9o^e60n`{1PDq+V54Cs!32>=tt*jJ0JbAMRX z0;Q+eyA~DY7eNPLq2p}jka4z*{G!aN{Jav_fLgpU1314hpi3|yk{$!tI0y+Dg!Rv6 zFiOtJOwI-;9K;Z=LP~yWu|i&ci9%{cW^qX|`e>~}CPcP4wFG$#6j>NHB#tcRoS$2e zpO>0f0uxNjFU?B<556iCXI7=cgh9r_$AgO%5{pv7ZUG4+4Z@;IK!#tD+yx3#)S+q& zU!ms@3<^w1C(}{ z4v}YoniBw}A?fF&eLzuua%ypLW?s62dPz~1I%rlQJ-33Ppfop;L7zcEH&cN@LAL}% z6oZIF5RnfeO2C3SAZ8(hOMYG|1F~7roB%dYLAMB`Dj7tiD}cQPCpcb0-1p-Jgnj{~ zZ$Rl2P+&tpmYS34uH}gP}%`XTR>?8D6Ijd6`-^Ploo)}98j78 zO8Jp4^pJxnhmCJ1=HUnmRAtzmke?S1s@G8(g?Q}-tA<&P(@anbK$POJ8IO2G!3|9% zNNT{XKD;VG;ZlrO1;{-pcEHjYl0DFdDylhH)InNU1eIY}35j_^7GkKv;(ZJ?*qnr+ z2*W|(WI)J0=!&peg{}s}CQ#ZSWD%MgEZ#;_k(i!?8VP9f*j$RH1jC_d$rIeZMYRM= zg218*Bk-}PK@T-7O3<8(MFq?`@O+w?SAsX27MCP~%2uSLu)RiT9{xPySI0_F`QXQ8WtRx5A{bPg_@!@$6x#lXP8hb(}DEy%#Y09p?OTH^%5 zprakkv4|yO5$nYw20HKt-Mr^m)QK=++Uvx~z+l73zyNXw2!q@L+Wd`f-V7{y_hZrf z7K=JzCWQGgJIt|&MPd=F#v(Qwi`Zc-Vz01>@iAk%#RQ8O=nMmpTVWU!F11+H&Br2k z1dG@UEMlB2m~H_r%7)nqqCxihV^NonMQjolu}xUSu3!=Sg+)w`71Mo=Sj3W9G1Jf# zEb4Y+5qpG140OF2$nP)=3Ii=ROt;|3UU1hRsWz2VjfH%jD7%>H-NTB1EA(DfYKM@AYIf22@skg6heOpfY1v< zAhbdtgm!@P8Nwm_1yFHV7kB|w{|2c33o#IN4N!hU1cZM9N;|;Bq4WeO%@71p=MW8{ z3xc6Ew5uHer7u9m4?x|e0CiUb)LjWs_XI%AGl23RK<#OO>iYmy-vHIW0IEI#YX62v zi2W0w>L)V^$H@8blU)> zL1G~M0h-PX4N+YLOTQDK>T#vt1yFg0SCD?40+cR*(g~9w;tQbkX!?buzrmJ%VevQt z8czqHG_LduUh5a1S(2IyA6f(@Cpe}w{T_gpm!M_FAVVLBLDH{-ID`g?fp7yfof#UU zx(Jqj1EA^?pye@04>C@G%1?lrvjIvoyoRJ(0VwSNr6)kkh2dKMZh)49gT4HPmAkO` zGl0fV0hGp-Zeei`UZonJT9%quf;9nCEB%6&iG%E1APG&kQcxNs$iTqR0ClgS5vq$| z=~n=%9#{HRfXYvRnzI2)GrWPOUnuPWrAO26;3$7#=@%A%2GIB^fYP|qFQYWGwGT4` zLk0r_!wKVm|7S2WF#K@%_aAgnz!JxQ|1+2w7-l&A`w!YEAK~)vKj>)A43~fZLHA;I zxcvJMIuZ|NXzg!oX1B`tLsjD+9w1*MI*tSQ!{9-2VLs9j8^{{_lSU zD+5D>$G`szSQ!{@c>Mc+f|Y?m!|UIF&`A+1y#D@ieZN0^|NSpuV_?t- z`1gMS8v{c`(7*o|*ccc(g8%*h!N$O_BlO>Y4R!{G7vcZ@N3b(6NJReo-vHVN9{unC z26hI9ir9buAFwkptcd^jUx0&w;YPy0{}vn!3>?Y-{%3G7Fj%Di`#*z&fgvO9-~R&~ z3=A_e{{8>J!N71L>)(F`P6mb_Isg6#a56Axfe7*XIG;3-~Rw^28N8+^^#A_^K9D{C|8L-9V903w|NjDrZu|fL10Ms!iH`sO1^5{lc69##&mh3S z@T2qpe+>Z!29Blw|AWppia7cIzX3l3!;6#u|0nP>Fle0m|9=8V{i*-|FYq%k{5bXh z{|NyG28q-E|33ifKlA_p4-o(C|NjDl3=A1(|NqwzWMJ5F_W%C~K?a5sXaD~%5M*F@ zarXcJ4nYP6i*x_~F94mpbngHE9fAxD5$FE@zaYrKP;u`6{{SHdh7;%h|IZL&V7PJa z|Nj?)3=BWc{r}G(#K6FD{{MdoAqEDE^Z)-_2r)2tod5s7L5P7N;{5;rGlUozDnRnW z3=AjE|Nn0w%)oHt{Qv(Ogculpod5s-1W5md|NkF=^k4Y@pFx;`!Q;aJ{~p2&3_C9T z|35((QUHrUC*>;fQh83qOh6T5%^L1QyeWegy35F1rJ1A__! z0|Q9ChQYu82A~Z>d;)HK5?=h=4 zh&dp$1Z@BPU&+A0!16@jiNTRipqVLi+$g02v6y zHVh05DGUq@1$O`bZ)Id)U|}%;>u+OnfqKjg zVE;V}&(adV&abR~Q)>6deEk2OaFgfaE?VcP>7TKyIcUJ`QmF{$XTb_~H2P|0Oi{ z6>;%#_;E9pfgA|(hYAw|!v-h9?gQPp$>IF(zboi6TNhBc_;K-ZxN$RWh8Yo1bHBmV zf!&P}9-wrx2Bba;sy@I3+1(iGLGHK%QXd0#$10e5kULQ0k%g6kVL>d^+($5VxZPm_ zQXdahZ)1w=4y@sq0#cs{RX>fedeC^|f@G-r5BSxC$~hJ`28IQxsO2L_T!xK-VFng) z6E+5h30TB^Ky4!|;wfwl3=L@FJ`4;DHf#(G6{-LJpWSWj%7&!9({m(-)FPsZh)ntOr z1BH_dI|D;N{=fh7Aazg-a!(99q>bhd5_9AeK-5{)d=ie}5{v;94j}yv`Tzcd&dOzZ zYYq;FK2SLHGQ09A^sqScX|#dDp_$EvuYr;I4i034A5z!jE1LG|$!b_Rw6h5!D$ zK<#a2is0hoaOaNWgOvMQ*cli;6#o0~52}w1EuiVog-@XrlD!r*JSZY^eD6A9Ry1O9;%}?tBV)5dVRj z3840ZBR7Ky0|Ubm4h9B+%76bIwHO#!3M|0k-@_EfC(*|2!l%&8;=&ie+@Zk5r{D;V zHYYv~7jBTh|8OucXe|Es-}D#*1B;adSYIzF-g-d#+CcHv%<9e;z+AYPi%-K5tRIqI zJ-I^|7#M6g85lSU|NZ~T!oa|CFBYsHIsGI2?g&c%UVH}_nV&OZ`re6;!y6_3IT;u( zWc>fH3JMW$yCxo-RzX})di}!5!0;gBKT5j>lx}#q7#MD3{KwfI(t*k&w}(LC$HK+H zFd^^%e|t7i_{D+!(F1CqLBr3T&w$yS6*>Iexk2Tz4Hu}-^Z$PoC>=(}gVP~Aj~G;Q zfkWF761AZ4&f#KUIFa%He-tYN150*1*q&Y{S3U`7csuiHfWmtM6Vp1h@OI}0<;OQ% z3=A42|Nn#L7eQ^%HYPVn8`2;RW)-+yD8kLa;861a{}E7tfy0k!Gb{i>;bg+i!0@5u z|9{YNQ6O`gnV8ozLKT4IL%10jCY1gE{~4kG5mXv%ehD`NLqYlf|8bz}t{W?j@m=~vkG|9=xG+!PYP;Rb3K88CT661WR@FofX<4(BD@ z3=9ps{{OcEsW*YBhljI51iZ-%%J-mfz5;UpuK)j=LFye~>Rq5=RS8$`#_bDdgY<%& z3yN0}9tMU7yZ-;T1L+Te>Gy=_R|rAT1B#ax9*BSO#S5q`%i&>QI8pikKc6%M14~K* zH2$67@$U$Ve}BFOoXjH3XbAw?8(?4n<-09B3=9*d{QvK#!oa|CBN=QCM!xd|)jQyP z=g#+lhq)A2#RKv*1Einf!^^;+vFrbTQK%S*0_C?9UIqq(UH|`I0+nwdL8$r~P#<_V zG`}H5=Wpm1Ho%fMg(6L;bh=wWh!mr-tf26^BD#t~d0g8MypKz;B% z|Nn!M8ORI}2D#@8F9Sos9!z)gfcoMv^FfNC?o{DpV3@Gy|9@7f7>ELyW5dV5(1FGL z5IzQm1}x_1@G&sF*z^BCNH53?5C*YZ_!t;I?D>z;Kbr$puLx2I&L`2ZYykG(9zF(! zAA3;CF_3vz_!t-zu=wK*)PLyyVBu$AIDo|;GN3U7EdDUzXJAm+i|G#^&{)G>On;<6 z)#LI<3qJ#c!Cp*%%;9HXh`{2HE&Q1A0m>g|Kw}$w{{K$}g%`LUbp^GhT=`&aDGyMZ z_5jr-zI+Zj*cwvca1{}N_zyYVfQH&nG_Pf1eb2tbexr%bHJm>K?qBE7-3`!G66;*snA(nWlbi1p9Rs$gd>E zDf47gmRNh+VmtP;Y&Fqe__5g)@IMyb1e4DT6P zcknU%WMsX|$1oX`8ILisZsTXT%OtdspP_-7wTGXfijtgK)78J4iJ&Jk>YOc6OmoK8987tSk8#wy?8y@-dua zXJue$;$U4Yz%Y|TXqy1T9uC&W0u0AEShooOB5r_)c79d{hBYAKB8Zp*x(a0@h`0zM z`UN4?t%JM80~UrJM%Je+40{>nAFwdIWMtjV!Z3r0^#Kd0a{a=>aEPga@c|1%6DZW@ zvVg?bu&_3>GTa6U{Qu9$BgJaNV93hA-~}-gh0nmi@Sj3fx(wGo-vE7grS}l zbkG*4DFSM19Oc&lSNW^l7<}Xz7>Zb@yD@Y#Dl#x^VPu`;#&Cd<^^+^Z2{8L1qdWsc zI}_`DSB3>liVO@VnOJYRf-3x7t_*j<>~Bo+3=DIaS(m#qY-N^bV7Sf9I>nXY3y3+3 zg|*R@VKa+71H(-g)^{!ppFqqRtgN?P7&fxXGcep@Wj*1-@R?Pcfnh5f>tPp$D{P9} zTo`_^vCed1Si&yPz;KqG^^YUNGZ3?%gLRP;!wL?028N3qto=?5uRzSnoUHGh7}jvg zGca7`WWDXg@D9YB&c%AdiD3g5$Yw6qtxgP|K+M_PtZgm~Te#&J818bjes*T~24c?T z5q{vzaD+#mf#EF=>se=pHePuKhV{IxyPO$LfS4b7S(iIAbn(eEFl^>yo#M=J2E_cz z$J*%3(8n*&z_6X4wauI10*LvOpY^jB!z2ND28P`NtPi{xu7H?-1z68|F-#MbXJFVb z$hymm;RcA=D8#zli(!_KJOjgFA=W8g40k}xR$n#t4w;<*;3D)Bt4C^K285nLzux{~S_y}Uol4M=z!LV6U zo`K?hF%TPH1viEn^70G}2jyA!x-r}WF`E@wZ}>CJQIKa~II6&U)SuxVh}o{ly2+nmfucME z!%0Qf`Th)#K+J9>)*gR`B}$-Vqs02tkKq}J*{{s{%#UG(vOELBC1v5uehfcB%tb1! z2mBaztH?7jJW*j?>&NgH#9XGzI?In?zp6X~!wXf`c0YzjHF*YxRcfqXd>Iadm~Yfr zANn%1s>?GltW#$_=gV*$#QdPny4#nbQ$wDCVUq^y1RsXeAm$eh*1z5iy_)h24BIqW zUwJc}2QhzWvR?OQn5d=Az;IcM^}IL3CoRSO-VD>US?@bC9MYC&V0f*~y26*CMMs{2 zVXY49R9}W;Am)1=)+S$u4qZ^N>$1N0VK@b1e%58Z%TyTDF&cmH(-4o$Z!qB{BOW|BamT+At=}lS&s%X+yXJ1 zjaWAYGR!do1-lXJ{6L0#AZEKUYfm7<0%K6H8?*ilV0Z*#cAKz13t(7c0t$8$*2@75 z&p^z6Q`Q3k3@c1Q!EP$NHh|%$sWt<{ZZp;u0Svdy6lVu8{4-llFvAZJbD=fs%3y|F*76JtkF8m!1vC5sF_+q~HU~58vyo?Dcy7b`A&8;D zR-S=jr7i2-AcjLA=4)HlQ$Y+ZcA#LlW8EIaa16wJZ^ybMh@rzC6zuk_6N4B|ftX+H zh1Ym9%yy7xU^wEyI@6osE{NIY$okr!VLoVa^HxWYKaVK zA~t}C!yw`shvVXH$cQ| z5b+O0ObljaU|0eowu6XMAmT2F_y8iBLs%IYrh$l+AYu=Q`2U}AzO{rU14B6L?Ps8_ zDnGdC*Z7=?VH2qFy_b>o-7_YJYmEF14DT3O&pu}YjUj-$th=5wF|1_bXJ9zU#Jc=B z6T@{-%kVK1>y+nA41bu!85rg>vp#*n#IP0AC_Ko_dg%od!!2fh28PeftovUuF|@Fl zGB6xqVO{friQy(_6zCHR>&zES3>~1R;1pKYwiiqcYgxq^7|ye@etyox@DwEek(Kqq zb0&r^Hhu<%#cZroUo$amVKW7{4x3&xF?6!?Gce3!XMO*QiD5mvIJoY=^NNY#8HnA* z!Fuu)6T<>fn{W*W>$X=+3`aR^7#O-aSr@-zVps@j4zA^7o$!i@;TWe4149oN>))45 z42wW5!F61$uU;}S9OsH;U|7b@di^C6!**_Q28OHLtVdolF}wq@C-Jaue96SH0@Nbh z!oxc6B@@G09vcRR$-J!HFPRutf*OEZd0BtFU}8AOYs0`Wg^%^?dnSfepmyIjKGsL? znHbLVMKUm~<7Ykpo{8ZQzc>TKV}8~>@0l3>fY=KJSXaJhV%Q0437!yOo%WuI;h}&l z1H%SE*5>z23@1U2!yAIEAKo!Bd=y;E$iT2#nDy>ECWa%ztPBj7g;`I%V`6wC?8?Bf zTZDD{J0^xJpuwKUBCJc^F){oR0o}j$NsM*kJ0^xUad8HQ<>IXW-ZC*90I{Elv%Y@I z#PC;~m4Ts0g7wB*CWfUFt_%!cBv_BWWn$=+1m$c=)=h7j7`95fGBC7AvCeiG?Rm?@a8xRTfnl>W>(4h#49BI#85mwjvp##n#Ly@s&cLu#hV}9rCWd{W=H^)$ z)&p;t7@o9mvhBGi+mSb&y!^H4hPMm?EL!R}^ zYbJ(;^5P5(N99=`zGh;$C(p{j@K&Dn+-oL=HU(D(hN}v!yI(UgyaU~I@mGO$#cL*p zX^K6J3=C_OShxOUVmPV$ZRtAPvRn}`im>A}%9%W=;c&WyE_y-fiUo~+ChI#6&8-6e`Y**)J zV7Q>pI`;4GOi8C$x&8oYiMt_Kk_*nLfyu`mB?`F){QRxH2$2Fko%?#>DUwbUQ_dA?w?(ObiPRvl$pB z8L{5_%EYkDNSuM;xDo5|uS^UNK52q`7$t^GiROig^A(0IV%IhH*?m`FH8*m7Oo5o4=q@~eP&|#Wx>k8 z&}qr~_%jp3BFkrt3=A`@SucEMV%TWS%D`~Insx7ICWf2Vt_%#TZCF=*W@0#E1IiFK ztkXX;F}$()%*ep-)Q+{~GZVv4J8=evS@x_SKQS?Ewijn$xMk0J?-LWlXM0c|(}DH$ zCnkp34!)p8lB_#EF)>U8Rmck*S(kodV%X{E%D~X=#5(B{6T=cvExg%@_5VjEhBHnl z85tOsy0E_a$i%P@RK=ckVZHg0iQ$=xD+9w0SJq=6nHVmDYS;&^teZbFG5mA|X}ILh zy5J)d!)s8@`OBTP_ahU-WDi#chNm8^zdkTA`~y{&y`HSkKQJ*Y^Ss8$z|iE)dgTKX z!!&Pk28Qk4tOq|ZFS1PB3aYQR__Ox+Ff*L>cV%FhAHe#jo0(w;sJc2H!1}VA znc+deG)4x7<{;K<-OLPgKsC_nAlAd(%nV0@g25HhhHhqty`Z}1Ofc)*Zf1t3!5|GC zp{!lq%nS=dSs55MgtC6`VrDoQ8qC13GK}>}7c;}5FjfYJi(#x6yO11a39Ss^4h+*B?$;_}g26SE6%UITBoy-hPajXms z6XRGXcQP}qiVI_4=#6J>=wxPC7SGDSur;3bZ3i>Mx%g}bhGPk=w>p>^?t`uyewV;{ zyn~scJu!xX;bkK0mJViyzloq?Ac=Kh2Q$O=qBAxHfDyqSz!ze2eMgP+L#$`W`jm! zvROa2GBY&h^fNLr%*|!J*UHSWEti#n;b<=F=~iZjd%0l@3$f#FI%>!em@hPU~w3=DtrS^u{%GfXYWW?*P5WPQ`Z%rL7^oPl9?A?wW+ zW`-+;{0s~q3R#b}Ff()(u`)2sC}Q2*!pyL-2vkmfDP~>J!pzWH0;*z4SbJNT8Mc;` zGca5#W&PF6%<#HYoPnXYjP-dlGsChnP%M?PUTJ1#I9JBc!0@V!^;bVKSFnCz*cNhV50Z3=EystSg(C85UKuGB9kcW}Vi=%y6nYn}K0> z4Qq1~GsF2BQ2AEF`k|4Tp|ciLzSXkcZDeLRSqm!PYFSS;GBbRvb!A{UT*tb-k(uF6 z9V-LF>pIpYjm!)!^{xyI*Xmg(HZn832aUY^t7rY!z|1hcfiatbp`($J^>qU?!<jIIm}>slCDfBt7;INk!1yVkybZ9 z47;Z=g6g4-(->Jd{$XM`H4P+ra~dP-ygy6~pQeE{9+}R_+Wm)#;qG*h+?(l)tUrD; zF|^KLe8kAW@OCC6>(k#%42`ouu30pTk@eDVCWhU!K+W*$vlvmB1p~varHrio&zKlKF9peU zEMsK-^OT8U&N7fGdzUe?zI@8Wa1G4+yNr?b+EXTmY0E)oE?v&ZdiW_5!@lJp|4vxJ z$hzSv6T`|CAh{hY7+L2&Wn#Fv0wlM1B_nIsQznKzD?xInS2D7Gf5OD@WF;siTwTS; z`s4`{!^>45`?^*$vR-_`#ISfZh<9o=BkR5=Obm}#gYk}r1d21P?7#RMoWn}&In2BN1I*=)w*DSD+xt$vrStmbcVz{&cWZ#mFjI0fh znHctN1j(J*$jJKk5fj7Hjo_4bdov^Jtw&4@Up9jzo3}8s9)HBdFlP%$>*541A7`}mdb9XSZzIe#Q zux$rOH$X9RS%dL)*S#z?mfWBI{g6?!?gn-jVlf^vbH>6VmNpZ zBzNH;BkRZeObjm%f{T`;hZ$M#-DhIBc^KryUxyi4Pv2)^n0y4p+jWGIb;o@shRa7l z8Xp~DWLQAXDP_m~*^j)CMJ9AjjCbB~GP=P{66 z$8kp1oA;O)79IyBs7WUnS&!XgVpw(pWW(_jjI5jQF)=(i0ZQC|PB5}AxW~jW^(08& zl9P8w+XtiSFuF>F2sk~?&Yk@fjqCWhOm7z-H~Zk}djy>gd{;nQi5 zT;mx=)`NGM7-pSe1YHog>ntPdy1Psam(PMEADv}noqd;y;rCgP#-HaHSv&4BF-$rS zl3RG5k@f2xCWc+-8Rvo4+h1U0eRPM3q46R}a>7MM*7J9m7*<{cX$E#e3~R4|ym;;kBWv>=CWhx%K&8ODtBkB4ZZk2o zUju2Jc8!ts?rkQ9_18d#uD#C4dg?Y4!?EiixvSS1S-0P2Vt98Q?2W#gjI2v;Gchc` z36k7)laY1eZ6=2EH$fWD-eP3^cZ-SP*)5RV*ISINuWvCi^xXz~W6vE%)*H8&7_Qy{ zNj|y5$a?e^6T{y-AdSE8GO}*E#l$e>9!PHSJx12~x0o3A++zfJ`WcO(uq!k3e!O z9x<}6y~)II@DV6wOn%JBI_oAA!czSFLu9WWIcJEiDAiGP+~mrmXUSabtZ)&fk4D;WEEd2PMk@eLzCWfvLAi0?z7+J4hV`A9!f$=*d1H;ZwjI2kl zF)>{F1d@FCiIH{VH715%pFkSVd}d^wca4eRDR?o-m(Pr>-Pf2HdcQFKXJlZQ^No@9 z$5keVt=~Wzk9=cfeR`FN;qEt(#`WJBSub5>VmR>~BzOHgBkTUFObj2sGxjhsFf{#Q zWLw_yy3^V?KP{q3VFC*)&D@+V~{(|IA|7B!deuatQ$zPDZZT}cq zr(9uTIR6hMckdq~YvUCrhVTEt73+xxCf0YCnHcUgfQH2WHZZZ?zRbihtr0YEwyBYc z^~7Z+hSQCpp|e|!OsrckGckN_WCB&J+nSkJ7hPszINuDCyw}Xc+JBje;d?VvIRnF# zRwmXzmzWsVwt@^j-^#@L@)8rni&l`z@2yO%*Df(JOlSjHv8IiQ_3$Moh68O(77Pqc z?M$p2E-^98ZU@P2Z)akidx?qRLOV#`{dOkSu1ib|KiZk}85q`fFtL8W$i#5417yRa z4kp$o7nvA-gL#WOnOHAgWMbIe3DS3}lZkcTMJ9&FolKw+n=U5S)fbr<&UJz0?shS; z&bY|L@U06ZccPn#we=zs!^3Wn+=p%^)=w9h7&?2HvKbhD^)RvCzre)M*9)?5eJ>O1 znF~w|C&0Y-y-ch-FEBB5^nvtE?_*+Jc7cguLm$Y@rhX>Y$rqRyX7_{SR`oNnHe6t0 zINT4Cn>vAs_3e2khIQZ-1bZhivEDk*#Bgl_$iCwfnOKjXXJWWL5oF(=iA=0p&NDGg zodn|TnZ(4p@H`X4)kz>TpG;z6?K{uJ@OKi(%=43(Sbv{mVt4_b2md~qiS@-fCWZ-9 zKyr_!FtJ`e$Hee^3P@kqR3_F#=a?84PX*aGWf~Lf`g2SSE2e>LI5~}pbC7tS&QTW@5Os1SI!x2@~sr(@YG%mVo5W zEM;QtJE@kSUCTp=Tu%>+DlZ3`c$iDfj zm{`A_WMbH{3M6-Y6%*^DlS~W`RxyFv$Q#!%v7SH4#Bg*C$iio9m{|9mWMcTg24vyv zwM?ulPckuVSqsv5cr6p_w3AE>ch-Wl^8EEotj!=(*MlUFuV-TYaDs{9!Fo_u{=0#R z_3jBKhG`p_+!+|2ZDe9Sb%KfE|3;9?zD-Q5+fOhtEZ@Xr$H4Gu6BFx_6HE-HSK30s)t7#Oy1VPd^;oQdJW7LdOC zTbNjn9%o|sv4u&Qfnmv3Ce}^InHctN1<9S+%EWr&856_PtxQ`585q_cXOduGxC|zL zg30+OKq5!M?dXvIR`u0+S6FK_bh* zcg310XAd#(L@-~=kyb2Oo4kpin$*I;tu9gxU&FnJeDHs1w_tOS$i!Q@vkIr|<+{2-Wo4kml=gG4ri$(vyE zKbTzl03?1IOnwBD(;tFF_JYaBV6yWONMt>jyb30NgUN-DLE^{3HlPI&_l2ogC6CZB`J-cKNr&0z8- znEVeWmwpC`p9Yg3!Q}KWAd$Ub@-dj~{0b6T4<@gI$=_gd;Wv=@aWMH7Oium|64?nR z?|%n{@Fy^P#t)GAJ}~(NOm_VQiEQ`@a{tSpAeDc>B8z^3#7}_9cVKeLZ;;3?F!=yX zw*3K#tO1jkz~m1wIqxq>{0NwQ1tur_1Bq+{lXt*m(|?f23NU#NOnw2Avl^Hs7#I$K z$!B1)rx7Hw2~6GqlmEcvk|vP&DKPl~OipVCiR=NBkHBO{3usPqb_+=SAeej(CVN{! zBAdbFO)&W%OfGE$iJu0OAHn4Gc96(kF!>lvc6NY7)`Q8bVDdMZT-XT`KMp3}g2~BU zAd#J5@;;bs?FNag29p=TvIllz-0EAkb)<4_~N7+GV0CsV*zT{?D2wJ^$oRjq$ zH^V&;vxSTGBNxMLt}q6M|Dd_tNubqxOF_gg5OE$vJOL5kK|~j5`gReB*aad$E9F4* zr#d3;450an|Nj{`Fq*LL=VWkWUCYVP!6>_*lVLlk;eVA8B>I7obv7qMKa=!+PKE0c4FAFGRp3BB z&I%I$#L9YvlcApt#6G~rdX$UdF&oIt3GA#JxEMCGgV+z)S!Z)GG;@I18#q|oxEL;T zfZX#H8eamSxm8WpTn0Bq1_sao^#A{i91^VR45pCfe*(&^bqso}$qXT^bqtjdF&@y2 zvJ9&>gC&Ijo=t+4fkB;hr!jcZU^446V}>S183xc&fyu@U7a1kN3);Jl85S{FpD||m z$i%wF1myDxrVR6##qJn0Tw^xAV$3jwg>{7~!+jRky`~Iptjt%885V$6cphS7J!8yp zpN(~fDMJ%Gh&`2^^^P&aQg+s-#td88SvyP_j)KLnvV#nM%Fa5$l;JBoYqv2&7Y9iF zJPy|9rVP8m>LV* z*e1ey#hBr>2boOPle!vS&D`+5x5#aVCZF}x9H zJ)y_&N1S!09>Z1%nTdJ~_as<<>M^{NV11&;Fk2F&eyt?yb6tkLlB}0>86JT}nx$B~ zwHZ!Hfn@JXv3}8F_$I}=Rhyw(nstFT!)$5RH<}Drq(vv{G5nKe-EY7!S%!75KEo;* z);@iP{W7ep3>ePKuue5#=#T};PL&1OyHA$&qXB3({*D2|4_VcTdJHS%SdSYpoRb6D z@=lJm$B1E~JnI{Mh6D176ZIH=$+P~{VpyoaJW-F~kb?ddV}^eUtY>r>&M30()n<6F z2nvWsCF_ZL3@4R9w%=9)+5Q$RvQ-%r0>_m>A#hU}7TvKN~q|5M3owZGu z;WL=spaBx^)c~oPr2(>QuLj7jt6=tf4c6m23@w_hhjbX`X|nFsVOXch+Ni^@8_Yfd z7Qdtk2Y0_y2*3^O=Xp13eP;$Yq9$}o-7_?RohHBQ!Zt_%yg zSXa6-oaACY=E~3nTE?=Fm$lcCVKXmC;Za`Jsg4ZSd0FQ=GQ8wvz2(U8o0s*83quzl z$W^oWSU)*}*0{WKWZ1>Wy3~>36d&taM}}K`tXmx!-tw_Na%A|=$GX>%VIsf$F;|8i z{H#YE8IJQC9dl)96JR~>!f-`^b+;|UcLDWdt_;E)17NL9&lUStr^uY!qW{bY-|A zCVtG7p+Q{gmLtOs@z7(g3^OEH_uDYsl>n)HE5Z89mSK}5h<#j=wcn0msub%5TZSD{ z<;PqZ_Di$=Q)T!d4GNykGOVj?7@o+0*vn;Euh=l$kp=1MlVe?G%dk<-5fotZtZN+@ zF37Vkv19lwzn$@zE5jy5)?F?P2Ngj|zbmpnwPk2gx(Sl_2wGV3Nfji%Kn+BmP!rkY z!tg_l^`bMwEOmuVE)1vCSvR;dJW*#|?auI1o%N3!Lz@POJy`=JzCc4}lMBN|4c6~& z46ijl`{+pKkCKraK+N@jM88&G*Gj4KWxT3>4*^1$tj`AiK zhLyUkk1QAt>$2XpV7Q^ny3T^(DVY5UEdF0NVv`HQb3N8s#tf76SvR>bY|>|aV#IJ& zpLM4ZLxX|hCKra?2CUPK7)}_7ZgOFGY5)p?PX?e=_TK=M;(820DQl)7D3vWU1f{sm zhM?4Uzz~#z&KiPJ(^W%I%DQU^N@Y(CK`HLNA?qtghM$I@l-O(pN|n7vtPBjdj6hD9 zU<@L6g2}tatmn)b{u_h5vdM&Xjv2!l6V~Zw3=d6MFPk#F1G9gF#XC$@Hn}kDF=cHs zV>oFFGGV`pFf!XiD;(x$uI;}wJ_kzhwR;;hB8SYzw zTr%03wZVpAfi;MI#hP`h4Z}lgkjhqDP!Jxo1Cf91SeqRfI_+gZ`P!a!h6BS-dyx1& z2aRK{3==?WRu+SZtxh1F=bc#BxG+3%VqNaS@Xv{Lkqg6QXVz!V3=5n=?6uAy@mX*18@9YF`6Bs2%Ltr!nMnhmU1PFw{0_eHi4Nw}U9Cl;@I_)40Q2`TQhsM8! z#=i$T*n$DReT(5Yln**vA7s)4e+Ll706O{r#Q5^Y5kxUaf=LF31G$j%#-YYCz|Lut zg36zO%0rEX%YXg%KOdxI1{1`5SPfAi4dKJiGWo#@;d6l$GcYhj$wC;gb5&qx(jlMi z08+sWB0#tR;y&1(`3-32@v(!{FfcHPLumsWh1R;-8Gbrr_rNf|f8k8=B(rr+B8kAlJrME%pV^I1U zlzs-Kzd>m>==thmP+AR2n?Y$eC>;i+)1Y)2lx~C4)1dS+D7_6zAA{1@p!72+{S8X9 z1w;K0rPZLc8I*Q|(qT|K4N8|m={6`m4N5PA(%Yc)F(`cvNv($ApuHz>^pJttobN~=L>Gbrr_rNf|f8k8=B(rr+B z8kAlJrME%pV^I1Ulzs-Kzd>m>=zRfVP+AR2n?Y$eC>;i+)1Y)2lx~C4)1dS+D7_6z zAA{1@p!72+{S8X9ML^>pN~=L>Gbrr_rNf|f8k8=B(rr+B8kAlJrME%pV^I1Ulzs-K zzd>m>=(*-%P+AR2n?Y$eC>;i+)1Y)2lx~C4)1dS+D7_6zAA{1@p!72+{S8X9MM3=! zrPZLc8I*Q|(qT|K4N8|m={6`m4N5PA(%Yc)F(`cvNrVk3s2cQ2H5^{syJlp!Y(EL1{H8Z3d;?pmZ3NPJ_~A zP`V9DPlM9Sp!7B3OAkNu`-NDY}^{40<45Mq+UWgI-EyUU6kEgf1z9 z$dsiP6=&w>p>X1h81#x#a}q%spsa$N5(d4@yvz~?y^_?55(d4r%)Cqny`ub-#F9h? zz0{2Ow4%h^)cA~)A_R{?FFiRqKD8n_wV))vBrz!`6=FtwVo_0ICBzIEJ1e;e?6Ab# z%wz_=^!ySqp$E1XVnyc+K_~`Phssqn0bB-kUM{%${Aqo)gMp|70`w$s67kvJ4`>U-5AEe zzyPuWrXSY+EdT{9QhOI>AIJlT;A({*f46uF(NDhQS zegM%h+=-^20oqPw2!N;npRo;Lf=K}|$-n@kr=aOKfR<+lu@HqvKwD%WOfU)42j(y^ zFw8>J{{`B=`tk-6aj<>{Og*~$7eMvH;*a4iq<_W$y5x+3fx$u_rV~P==cg5D`YmK2 z_eNOAKuiSP0RYhnA<^yMhNizm9-_ZP9-==6&BL(xgP6v^Z~#p|=ooU4+!K9>{-w}# z3=#ujbo(zs@3RBtA&@+*KYAb+q95HpbpAaC1_pj;9t7!!^;b_2ss9z!{V@A4K>J%4 zh}8d{fdQPiVESSGwHr|V3J`CA)qvawb3ZItf1ug_BOlV={Q)h}VCq47K^Vq|(SOnO zGeG;x37tLCdchqzw~rU5E} z#swec4p9kJ0Hq$(Lqr2KAOdoryVjAy4_5wx@;5g74OT$(PXQg|3NZpqqT3G^#6d7K zFfzdEV`L@F3{3EP7FC>?0akyaii6G%g0!1a#aZF?9jZ7R1FRlH6=!FF)laD691O5} z2UVPt0al-&igPi*>IqbFZU$KSk1Ec?058{(B$yd^8DQl#k}v}^10Msd97YxAXMmTl zND|Bp0t~Qn6G@nXnL&^NRvw~?3o*dTIaG0B_;?zsxCjHRTtXEWWq_48sN!M_uyO=d zT$}+`KA?(AFu?OYk_0n@Bm*ozBMCDwGe|MO@+qn~w9$ej2uiOk3?Kg^3Bj4z#6jf> zHgQls#U>7FUotXahJz-!O~K0`fHrOlI{TK1ftSGnO&oL=1V|ixoHZR>K1wm{sDPBK zApd|oPzDyqjF-7kdtu|YAhjS2x?_Wp0W*G2fZI=);d32__;VcM-*Je8+F#hhO_~wZ zX5(cDcn)bVz|O$U0GFry46yqs1EJ-AH&mPfdOu|gw9r}sx=R5|{O*CNhu+%<8$W&k z6^Gpu2yNyu{KH|65EH1Z=4XK2&jvHc3@Q%0uMK7nsNaCiznM_=uzRv#ci{Fx#TP*D z&4QVOE4{4+s~2Q=pbu&1fZ`T}cZ0<-(;-L>n|qFf)nn$<3*cg37$d(wgo?x3Hz0FC z_zTz^%>2v6%mBLD2BZW9%Ywyu8DRG$g6~*iU|=u;i=!w7bCPk0Pk@TU?(GCCW?*30 z2NvgLFqjIdFTiL1GcYjx1dGE|A!uBCxE1~pz1+v zWZVoDZ$L9=5eox@AX0e+Yd;(WtLJ5a-Gd4{)Adr$$ej!fu=^8X;`UH+7#~JQ za569`V5!HGai|B~X9kKd*uAQtemBUh?O^r13=3vL!Ux*DW_ZO3%3p|f5v+gq6RaMj z6BYY%f!xo_@L?&W-T|L2&%nTt&jpHieg*+(z615iKsuYi>KPbd_ws_oKzJiqoRt6R0J|4_D^z_HSiKa30$RCR0upDEWY~aK4mU#0VSwg$@ZA{<3=H$Y z;vkoy;+;6eFXIq@3l)dm3l1|)OaSD57!N_4;1GAkAs!4Bhuy0UGpQ6R4&%e<2~cs^ zedI9ljZkqIA4XrnAVK-FpoyuhxOpV~#Uy0gE#*!0wj^nE}E#gdy!r z*uCnob|$L`#GM!BLE;NmpQ=H{0}>(b1odx0<|IJHC!qOj3Rs+hVF7fW9;6n8cSFTN zY-D@`Dt-V>{ZFVkvRV*ZOB53Cu=|r?<&vu?$o(J{s5l9Sc#9~gypm#YKr4S1z|=$M z`C+CVfQiEdp!5|S;tXOCcV2+@I~=tj8Vtoi_VP0%K>M?>axzp5;(h}(dwZegOn3^3 z7tozRAd|LqrmiUD?iG;G*jNdn|fUWNnEdJS}!8pxz5 zus8$50yKA)fX(4&Xn^*oVBymSRlfmE{c^B4F9Ym8byz>{B-ES((D;IlBj1LqPe4om ze3B4%I@CkL8J4ddz~Uemqv8l0;>9?``*Db`!Xds7hxlEvI4^@iC#pO7q#)@QcCRz6 zou(xPiWhzc*!|_O^2bIBl6%Rl& z|29~hmw}-j)&2a^5ceQVhOqRZ;st2tL`XyYbwLm^4g(t(%7m(KKvUlU6^EFLAQ$5h ze+d@nW!O-O>P{IM?CvxJi}NzT?n8(5oASWo2>W2H1yFI={o63{y-@K7Xzsrc6^E&V z(SO0>ybKPrAnpX+SqGAnlm)qymtjI4L>zSIDM&mBEY85d09_9R5(D8vm^g@ogu9{Q z3TWy#fyH?lHbDD9uzYtFERJLVl=%)U&dcy%KBPQ604?_fNOiVi2DgaEHCUXNVFR>X1as$RsCWQ$d;_#D1f=H`RQv+eoiO!sO4!}$ zfI~bCB+kUkVDJ*+PEc9`nLkGf5w)3uxgG1QkbB&A^ZY7UyMHun>}dz;{?OFfjC}LdHK=p!K_F zg2km64nXIvVCKyOn*-w^=+j_v%<;?@U~z;x80#+%aS=6;zjzrKp!pFt4r8JQiC^^c z$_uO>W-5Zt#UZ`~ERI><9e|2|C`1kauTb%VMu<499@J8Yxbs0Zs(1oeoPogsx?U9K zqFSgpj1Qxi;}AcHL;NmOyaCPp|6p-mh6&Je2A2LMH9+wzg)zRZssRa42WYtg>;GD5 zK>Y=se*xc-%)r1<3KNI+BS3ezgZ!`xEY83%0nI%}!Q#9O4bc1uzPpftf#E7x9HbK! z|AmTgKr=^C6XYILwIH4g4)GKm;J||1 zF%I!>IK+i@LE*#8umL(w3tqUxz`zgy76+M#igUo?ybKL!{ltY}aa6S+-Yu{=FN47{ zNW6gV!Uc){2aAJPs8~u5| zgH)j6bx`pHG;=P2#d#S7p#25#ozDym4DaD&c}`eYp9l{myV;1EBC!`=rt)H54{{Kd;)kcApwW?*rMACbv$usAOR1GIdD zjRW+7#gSD)*ju3D7tq4_3RE1T3PFB=ihn>;uV(^sCqf;J<&8r;5h|{LHqOHU+MA%4 z%#fRynWvXrP{5E}R8m}0nwF-Q%n%>%v#rxMSQ1}cl30?N9G{z7 zl9-&Blj9m-9_XKxm6}}QXJ{Dcn_7|x;h8vtBr^j7%Jd2ni%Rqi7~-RRj4TUFz&hiL zONuh{(m}g3;t}S9l^Da6pi6?>hwiEPC?8`3mT|u6QI2vrI2}}*xP-Izy7CR*txds>-1j2bB#pZ$GnJMY1C5Gm?`K86F zL6E&quAsE)8UQj0Bnsw&R3j%*W6S(Ja1u>V&5KXYNKMXm%CCq|EXmI;HUf*MI%g#2 zrKhI2WU0A`O={gXBL%MuUVdaxR6XvE;7J0ehGv0|NyQ~aiOD6w1(|tH`4xtsl;D_?nVtvQo8@X2=$4b1 zUhD}@N5*h*kf1BrW$<9KD9)@(^~lUCfuu)JqCg}sP)z!!=9PjImqj3y2@VIdKyXaLd%NdjhxDJda|NuXjB zA`k@6T41FnfskYe4KIu0)RM5ooYGX+6p%Em>@_q<&dAJ30owphmdjKAdzNhQk+@>sc%9uOL9_O(P9y~2z53>2@Ft? zfRu#{4L~(3BoU$7VF`{DXc=e_2+x!tr^AEK7*vL3R;32y=VT^Vx*8e=2E%y}g%G0+ z%~CRplk@ZPKoxg>NoHClDD^{BK)qy^oSz5UunEdNu!LnE=!_-^(&B9q7?xO+nV45% zQIZb{Q`a&EP>g{RMNtVz4cvuTODE*;F+`}y$#KQissNdZ5n&}oS;!FvuIrE^%+o)< zxFjVrFTS)m6`X$z4FlaWb5dP06La#@4NcQiOZ*E`^FTs=iMgqWctS*Hut|KdNqj)C zQ9Qh?3XV7PF92sFa1mvQQq+QC8`+(p$uCB#U7X=ukglM$#1k`#dZP+q7F1Z1qc^&B$bk}E z3<_)SXo6XYnfK%c~<)Ex8T)RK_Y ziW0Os9bV_bylM(A?Vvnp-bTc^VL>9Ov6`0-DrCSV0z%FJ)Ru+T*kCER6Ae<4Y67Gd zB+TE2W+0C{7AI$BLQ4jC0H8Fn3=Kfd%>4WuP>UE`{27Koc#cJ>iLL<_flw~U--bq@ zUwX2Bjv0n-(Zt5JLk<>M2T0NdqUJf}8;FWJDf<7zu3z z877w&m*nSyW84*`g>D##a0RFehq(e?>4Q4D2GAB?WkD*WcY@*)Sb1z22(D?I@+;5+ z3^{8D8-lxss6{Nap74Xkwi&cSPJz_Z$Qc^kUPWvEfJ+&)G5{qXgWQ8`2qlGz<)Zb0J;~41jl0K(2;`3rG^iHZ;gVYPBGhBhVraSs&gM4lUMD z(>bhKHVh0yuB!uJwu4-PUa3ObCYgEQwh6c?ZV4V20S!T**A-FVJ^;LTZwl^Nqhwcj z(=xRXG}HplN+_jKYH>+XKB&~d(ab3s5k_+kS{~0&s1Jl0`uY5R|Lo$rgKq$u!V2 zIX@59=z>M2pC)hgwm5UGDuG?ajnQKF3HSGcgZYDO)kkVszexv2+Cj+T>ZEZ zPnee>4n)eq&_*A6n=3P~#4#lWwZMg$0Z#8>nZ=n&IjP{LOGp?>pn&W^s7=eyD}l7X zz!jZaejb*J4$)195A%TxMJX&%$M3=AIa(!wrQ|`59Ai*J5xqPIr5BVMz$DNmv&hg8 z+I$R1EXe>@y`Uy9w5B!4hs+UxdetaR95ZNg0#)dsp$bqyz*8|e)O?|(1Slb=R}RZih%tG1QZY`;PcAL?FNKUif}2lnAQ5o( z1UnD8vjEHaNWRBcH-mB_sBfL02g*7S7RXGv?M7hRJ@de}VOky%j2!kLo$xlVc}i+o z2&mlzP7KHcqK2l$sU^-x9TCU?xS?U7dr@WzWT+nGFpMH1Gn0r?0y#85Lwt~~BT{&v zrv^W7Na8k1Oe)ULDJ@Awq;AyWm-t~Tc<>=|F#drqXo|!UcnIT?!BZR1$Uv&)O~E7J zpeh0D;3QI*fXZf=d7$`0jz42_q$Uqih?VCTWxIg-->3tl(2Q@4b&wG$%UXcuK*0Sg zPzFZ~wirM{QSNU8u0@;1ctu=qDL1`S2RhnZaiKyA39#B{g_$P|=@5TwTgnwSPl zAq9*Hs9ON_Vmy4zAv3Q8_mBh385R|WhR`H!9v=Z_F~rA*_&USpK%@LnLloKrN13@c z2H6j;#^8;f#60YyM1<>kY(*w&Er7__u;l1f79Rv%Jm8#@SX`W13=SgHCL$<+GL!L4 z?P2i-D0zYOp$>MT4vEG}f_>zrbrqLyX}zSU9588?cyy6oqKs@-q*F6pNt2 zDX_~>9R}$iL5&CrLrz&BccVlCjxHi-4ib^wjY^6@qj%7uAdnnrW)jlQL5?$d5UE>K!x#8kU(_4sL0ICOkrlGSkyji;5A`@4@kghDb7y(Jfd^7@C4t1q2kO z78irdV{psQ7iCQbTrDWCxaJ`Z*`kJvA*A*N`v6q^#3RodrshF%7g{NqTH*{^9F>>@ z2^vt_6vBc8J5mP-Jw{PVX;{$)A3QKG$p??5g4_`WnwCW}2~qFC;l|iU8FJXr&>j7)9x{VI(88ei7Do9f~H<+zYr;CEOZ>M3A9zDkLdD zJGbC@I#@OX5AO$Okk(4@Hz#&_Q)7y490{MqM8Lq z8mKBFHY70y!Qyi=lak|;i%Y?)zrYE`6rSTD3m9;eW3ceC1kH)T^0Pr;a7KPPm8su#e z7yuE0nvUomf~%8Ypl%APa?3$SgnWaT(D1(!Fd@gkU5mw!T`#;{GaZt!Sv`GnQ)(O%iLyt?a7s2xi zso<$F@cevgUJ8!cd8DKbZY+VzTjU{n?3vvpG&3Hl5CkP4tg|%n=@k|61*t{F`FV*s znI)C+Wd@iz6p`AAjs5t7l8mC%#FY5#)XI3szzTHm2Qjn=FTKG-zlO$vK8Yond4`Z7 zRA|ZoB~+v(9-ygNkPz8RJU}fhq+nr)j{*(61%gssY7wY*1>1|#(jdG2huT1fHgwTP z9wA*wl+qoRZ(!*dGK^uC3K|qGhSp%nLn`Q{CUUwr0gaS^3wn6h4OFV(?zD zF7`0eBBV)x;v1x%umNHj7ibk1q!ot9%b;=rx)=#F7AzqFRZ^7Y3d?jLMKHD{d@>c( z4g+ULly)y-4T@)oZ#-f-c!;kvXfZf=DImx^A)aaJ2%e>QW(b=#6X_mPQKll59f@Xp18_C%>fFsS=j{ zAtN&MgEk%%}#4zJ6Q;PBnz*Q7@1+fc^2Qmw#vW6}w07W~vG=;@Cq?QMDZozX; z&^8KM0)r_AnTjZz5lJBmQAL^LK%ES2-asvbmgNbOwU1`xj?J1pi9z`*A&AVZXln*8nq1Z zka&e;G|+Yej1n6bpr9$Sl+{3vm!=fA9nubmWfMyDy%b(zV zJ~PnDfXrl9(7+#fu+Sy7EHgRP&>V^5n_5zonGCYW&l}QvMkx`&?E+Y;fZGdNco349 zTFM=to(mZcEh+&m#79mA#i=FGRaZ#Pg!$SmuQWF)wFv5XxE-LT10;?i z(^Z-Id5}dxrs$%eAOX7*+>(JA%McGLl3<%rFbX8}5e$%*TvC%Wa}#rlq2uewO$1PR zkJcIm75K%dDFl?#AT1S8!vISU86^`ETj_&B5>g@=f|l(;nBbxcQOJYB03Pp#rn!(A zB2Z`}R)oVs#w4vMHPto1FF4)=lxIM34{h+nO&~Glz{)9b8_WgTwF7N`067b_*MgCj Ske7bJiZ1g&q=jE#K?VR1+`i%f literal 0 HcmV?d00001 diff --git a/mathmech/mathmech.pro b/mathmech/mathmech.pro new file mode 100644 index 0000000..e02e06c --- /dev/null +++ b/mathmech/mathmech.pro @@ -0,0 +1,20 @@ +###################################################################### +# Automatically generated by qmake (2.01a) ?? ??? 5 17:39:40 2013 +###################################################################### + +TEMPLATE = app +TARGET = +DEPENDPATH += . +INCLUDEPATH += . + +# Input +HEADERS += mainwindow.h \ + errorwindow.h \ + clear_items.h \ + start_events.h +FORMS += mainwindow.ui \ + errorwindow.ui +SOURCES += main.cpp mainwindow.cpp \ + errorwindow.cpp \ + clear_items.cpp \ + start_events.cpp diff --git a/mathmech/mathmech.pro.user b/mathmech/mathmech.pro.user new file mode 100644 index 0000000..0fb0724 --- /dev/null +++ b/mathmech/mathmech.pro.user @@ -0,0 +1,257 @@ + + + + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + true + 1 + true + 0 + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + {a22d6db7-e0a5-452b-9173-b8efacd95ba3} + 0 + 0 + 0 + + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + true + + false + + + true + Сборка + + Qt4ProjectManager.MakeStep + + -w + -r + + false + + + + 2 + Сборка + + ProjectExplorer.BuildSteps.Build + + + + true + Сборка + + Qt4ProjectManager.MakeStep + + -w + -r + + true + clean + + + 1 + Очистка + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Отладка + + Qt4ProjectManager.Qt4BuildConfiguration + 2 + /home/arcanis/build-mathmech-Desktop-Debug + true + + + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + true + + false + + + true + Сборка + + Qt4ProjectManager.MakeStep + + -w + -r + + false + + + + 2 + Сборка + + ProjectExplorer.BuildSteps.Build + + + + true + Сборка + + Qt4ProjectManager.MakeStep + + -w + -r + + true + clean + + + 1 + Очистка + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Выпуск + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + /home/arcanis/build-mathmech-Desktop-Release + true + + 2 + + + 0 + Установка + + ProjectExplorer.BuildSteps.Deploy + + 1 + Локальная установка + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + true + + false + false + false + false + true + 0.01 + 10 + true + 25 + + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + mathmech + + Qt4ProjectManager.Qt4RunConfiguration:/home/arcanis/mathmech/mathmech.pro + + mathmech.pro + false + false + + 3768 + true + false + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.EnvironmentId + {ab3ec085-9c1a-4bfc-af86-f7898da68a64} + + + ProjectExplorer.Project.Updater.FileVersion + 14 + + diff --git a/mathmech/moc_clear_items.cpp b/mathmech/moc_clear_items.cpp new file mode 100644 index 0000000..677f6c9 --- /dev/null +++ b/mathmech/moc_clear_items.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'clear_items.h' +** +** Created by: The Qt Meta Object Compiler version 63 (Qt 4.8.5) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "clear_items.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'clear_items.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.5. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_Clear_items[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +static const char qt_meta_stringdata_Clear_items[] = { + "Clear_items\0" +}; + +void Clear_items::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + Q_UNUSED(_o); + Q_UNUSED(_id); + Q_UNUSED(_c); + Q_UNUSED(_a); +} + +const QMetaObjectExtraData Clear_items::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject Clear_items::staticMetaObject = { + { &QWidget::staticMetaObject, qt_meta_stringdata_Clear_items, + qt_meta_data_Clear_items, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &Clear_items::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *Clear_items::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *Clear_items::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_Clear_items)) + return static_cast(const_cast< Clear_items*>(this)); + return QWidget::qt_metacast(_clname); +} + +int Clear_items::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QWidget::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/mathmech/moc_errorwindow.cpp b/mathmech/moc_errorwindow.cpp new file mode 100644 index 0000000..aa21ed5 --- /dev/null +++ b/mathmech/moc_errorwindow.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'errorwindow.h' +** +** Created by: The Qt Meta Object Compiler version 63 (Qt 4.8.5) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "errorwindow.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'errorwindow.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.5. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_ErrorWindow[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +static const char qt_meta_stringdata_ErrorWindow[] = { + "ErrorWindow\0" +}; + +void ErrorWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + Q_UNUSED(_o); + Q_UNUSED(_id); + Q_UNUSED(_c); + Q_UNUSED(_a); +} + +const QMetaObjectExtraData ErrorWindow::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject ErrorWindow::staticMetaObject = { + { &QMainWindow::staticMetaObject, qt_meta_stringdata_ErrorWindow, + qt_meta_data_ErrorWindow, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &ErrorWindow::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *ErrorWindow::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *ErrorWindow::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_ErrorWindow)) + return static_cast(const_cast< ErrorWindow*>(this)); + return QMainWindow::qt_metacast(_clname); +} + +int ErrorWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/mathmech/moc_mainwindow.cpp b/mathmech/moc_mainwindow.cpp new file mode 100644 index 0000000..93fa8e6 --- /dev/null +++ b/mathmech/moc_mainwindow.cpp @@ -0,0 +1,215 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'mainwindow.h' +** +** Created by: The Qt Meta Object Compiler version 63 (Qt 4.8.5) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "mainwindow.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'mainwindow.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.5. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_MainWindow[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 42, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 17, 12, 11, 11, 0x08, + 55, 12, 11, 11, 0x08, + 99, 12, 11, 11, 0x08, + 141, 12, 11, 11, 0x08, + 186, 12, 11, 11, 0x08, + 231, 12, 11, 11, 0x08, + 276, 12, 11, 11, 0x08, + 322, 316, 11, 11, 0x08, + 369, 12, 11, 11, 0x08, + 408, 12, 11, 11, 0x08, + 447, 316, 11, 11, 0x08, + 493, 12, 11, 11, 0x08, + 531, 11, 11, 11, 0x08, + 567, 11, 11, 11, 0x08, + 601, 11, 11, 11, 0x08, + 635, 11, 11, 11, 0x08, + 667, 11, 11, 11, 0x08, + 707, 11, 11, 11, 0x08, + 746, 11, 11, 11, 0x08, + 782, 11, 11, 11, 0x08, + 820, 11, 11, 11, 0x08, + 856, 11, 11, 11, 0x08, + 893, 11, 11, 11, 0x08, + 927, 11, 11, 11, 0x08, + 964, 11, 11, 11, 0x08, + 1000, 11, 11, 11, 0x08, + 1033, 11, 11, 11, 0x08, + 1069, 11, 11, 11, 0x08, + 1103, 11, 11, 11, 0x08, + 1135, 11, 11, 11, 0x08, + 1170, 11, 11, 11, 0x08, + 1202, 11, 11, 11, 0x08, + 1236, 11, 11, 11, 0x08, + 1274, 11, 11, 11, 0x08, + 1310, 11, 11, 11, 0x08, + 1345, 11, 11, 11, 0x08, + 1379, 316, 11, 11, 0x08, + 1428, 11, 11, 11, 0x08, + 1467, 11, 11, 11, 0x08, + 1506, 11, 11, 11, 0x08, + 1544, 11, 11, 11, 0x08, + 1578, 11, 11, 11, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_MainWindow[] = { + "MainWindow\0\0arg1\0on_trj_checkBox_log_stateChanged(int)\0" + "on_statgen_checkBox_depth_stateChanged(int)\0" + "on_statgen_checkBox_log_stateChanged(int)\0" + "on_statgen_checkBox_atoms1_stateChanged(int)\0" + "on_statgen_checkBox_atoms2_stateChanged(int)\0" + "on_statgen_checkBox_atoms3_stateChanged(int)\0" + "on_envir_checkBox_log_stateChanged(int)\0" + "index\0on_radf_comboBox_atom_currentIndexChanged(int)\0" + "on_radf_checkBox_ang_stateChanged(int)\0" + "on_radf_checkBox_log_stateChanged(int)\0" + "on_pdb_comboBox_mode_currentIndexChanged(int)\0" + "on_pdb_checkBox_log_stateChanged(int)\0" + "on_trj_pushButton_workDir_clicked()\0" + "on_trj_pushButton_input_clicked()\0" + "on_trj_pushButton_atoms_clicked()\0" + "on_trj_pushButton_log_clicked()\0" + "on_statgen_pushButton_workDir_clicked()\0" + "on_statgen_pushButton_output_clicked()\0" + "on_statgen_pushButton_log_clicked()\0" + "on_envir_pushButton_workDir_clicked()\0" + "on_envir_pushButton_input_clicked()\0" + "on_envir_pushButton_output_clicked()\0" + "on_envir_pushButton_log_clicked()\0" + "on_radf_pushButton_workDir_clicked()\0" + "on_radf_pushButton_output_clicked()\0" + "on_radf_pushButton_log_clicked()\0" + "on_pdb_pushButton_workDir_clicked()\0" + "on_pdb_pushButton_input_clicked()\0" + "on_pdb_pushButton_agl_clicked()\0" + "on_pdb_pushButton_output_clicked()\0" + "on_pdb_pushButton_log_clicked()\0" + "on_trj_pushButton_clear_clicked()\0" + "on_statgen_pushButton_clear_clicked()\0" + "on_envir_pushButton_clear_clicked()\0" + "on_radf_pushButton_clear_clicked()\0" + "on_pdb_pushButton_clear_clicked()\0" + "on_statgen_comboBox_int_currentIndexChanged(int)\0" + "on_stagen_pushButton_intSave_clicked()\0" + "on_statgen_pushButton_intAdd_clicked()\0" + "on_stagen_pushButton_intRem_clicked()\0" + "on_trj_pushButton_start_clicked()\0" + "on_statgen_pushButton_start_clicked()\0" +}; + +void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + Q_ASSERT(staticMetaObject.cast(_o)); + MainWindow *_t = static_cast(_o); + switch (_id) { + case 0: _t->on_trj_checkBox_log_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 1: _t->on_statgen_checkBox_depth_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 2: _t->on_statgen_checkBox_log_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 3: _t->on_statgen_checkBox_atoms1_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 4: _t->on_statgen_checkBox_atoms2_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 5: _t->on_statgen_checkBox_atoms3_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 6: _t->on_envir_checkBox_log_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 7: _t->on_radf_comboBox_atom_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 8: _t->on_radf_checkBox_ang_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 9: _t->on_radf_checkBox_log_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 10: _t->on_pdb_comboBox_mode_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 11: _t->on_pdb_checkBox_log_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 12: _t->on_trj_pushButton_workDir_clicked(); break; + case 13: _t->on_trj_pushButton_input_clicked(); break; + case 14: _t->on_trj_pushButton_atoms_clicked(); break; + case 15: _t->on_trj_pushButton_log_clicked(); break; + case 16: _t->on_statgen_pushButton_workDir_clicked(); break; + case 17: _t->on_statgen_pushButton_output_clicked(); break; + case 18: _t->on_statgen_pushButton_log_clicked(); break; + case 19: _t->on_envir_pushButton_workDir_clicked(); break; + case 20: _t->on_envir_pushButton_input_clicked(); break; + case 21: _t->on_envir_pushButton_output_clicked(); break; + case 22: _t->on_envir_pushButton_log_clicked(); break; + case 23: _t->on_radf_pushButton_workDir_clicked(); break; + case 24: _t->on_radf_pushButton_output_clicked(); break; + case 25: _t->on_radf_pushButton_log_clicked(); break; + case 26: _t->on_pdb_pushButton_workDir_clicked(); break; + case 27: _t->on_pdb_pushButton_input_clicked(); break; + case 28: _t->on_pdb_pushButton_agl_clicked(); break; + case 29: _t->on_pdb_pushButton_output_clicked(); break; + case 30: _t->on_pdb_pushButton_log_clicked(); break; + case 31: _t->on_trj_pushButton_clear_clicked(); break; + case 32: _t->on_statgen_pushButton_clear_clicked(); break; + case 33: _t->on_envir_pushButton_clear_clicked(); break; + case 34: _t->on_radf_pushButton_clear_clicked(); break; + case 35: _t->on_pdb_pushButton_clear_clicked(); break; + case 36: _t->on_statgen_comboBox_int_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break; + case 37: _t->on_stagen_pushButton_intSave_clicked(); break; + case 38: _t->on_statgen_pushButton_intAdd_clicked(); break; + case 39: _t->on_stagen_pushButton_intRem_clicked(); break; + case 40: _t->on_trj_pushButton_start_clicked(); break; + case 41: _t->on_statgen_pushButton_start_clicked(); break; + default: ; + } + } +} + +const QMetaObjectExtraData MainWindow::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject MainWindow::staticMetaObject = { + { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow, + qt_meta_data_MainWindow, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &MainWindow::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *MainWindow::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *MainWindow::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_MainWindow)) + return static_cast(const_cast< MainWindow*>(this)); + return QMainWindow::qt_metacast(_clname); +} + +int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 42) + qt_static_metacall(this, _c, _id, _a); + _id -= 42; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/mathmech/moc_start_events.cpp b/mathmech/moc_start_events.cpp new file mode 100644 index 0000000..cf96002 --- /dev/null +++ b/mathmech/moc_start_events.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'start_events.h' +** +** Created by: The Qt Meta Object Compiler version 63 (Qt 4.8.5) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "start_events.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'start_events.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 63 +#error "This file was generated using the moc from 4.8.5. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_Start_events[] = { + + // content: + 6, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +static const char qt_meta_stringdata_Start_events[] = { + "Start_events\0" +}; + +void Start_events::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + Q_UNUSED(_o); + Q_UNUSED(_id); + Q_UNUSED(_c); + Q_UNUSED(_a); +} + +const QMetaObjectExtraData Start_events::staticMetaObjectExtraData = { + 0, qt_static_metacall +}; + +const QMetaObject Start_events::staticMetaObject = { + { &QWidget::staticMetaObject, qt_meta_stringdata_Start_events, + qt_meta_data_Start_events, &staticMetaObjectExtraData } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &Start_events::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *Start_events::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *Start_events::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_Start_events)) + return static_cast(const_cast< Start_events*>(this)); + return QWidget::qt_metacast(_clname); +} + +int Start_events::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QWidget::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/mathmech/start_events.cpp b/mathmech/start_events.cpp new file mode 100644 index 0000000..73f7758 --- /dev/null +++ b/mathmech/start_events.cpp @@ -0,0 +1,296 @@ +#include + +#include "start_events.h" + +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include "errorwindow.h" +#include "ui_errorwindow.h" + +#include +#include + +Start_events::Start_events(MainWindow *wid) : + parent(wid) +{ + +} + +void Start_events::start_trj(QString mm_trj_path) +{ + errorwin = new ErrorWindow(parent); + parent->ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'trj'...")); + parent->ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'trj'...")); + +// read variables + QString workDir = parent->ui->trj_lineEdit_workDir->text(); + QString input = parent->ui->trj_lineEdit_input->text(); + QString type; + switch (parent->ui->trj_comboBox_type->currentIndex()) + { + case 0: + type = QString("gmx"); + break; + case 1: + type = QString("puma"); + break; + } + QString steps = QString::number(parent->ui->trj_spinBox_steps->value()); + QString atomType = parent->ui->trj_lineEdit_atoms->text(); + QString mask = parent->ui->trj_lineEdit_output->text(); + QString totalTypes = QString::number(parent->ui->trj_spinBox_totalTypes->value()); + QString log; + if (parent->ui->trj_checkBox_log->checkState() == 2) + log = parent->ui->trj_lineEdit_log->text(); + +// error check + if ((workDir == "") || (!QDir(workDir).exists())) + { + errorwin->set_message(parent->language, 0); + errorwin->show(); + return; + } + if ((input == "") || (!QFile(input).exists())) + { + errorwin->set_message(parent->language, 1); + errorwin->show(); + return; + } + if (steps == "") + { + errorwin->set_message(parent->language, 2); + errorwin->show(); + return; + } + if ((atomType == "") || (!QFile(atomType).exists())) + { + errorwin->set_message(parent->language, 3); + errorwin->show(); + return; + } + if (mask == "") + { + errorwin->set_message(parent->language, 4); + errorwin->show(); + return; + } + if (totalTypes == "") + { + errorwin->set_message(parent->language, 5); + errorwin->show(); + return; + } + if ((parent->ui->trj_checkBox_log->checkState() == 2) && (log == "")) + { + errorwin->set_message(parent->language, 6); + errorwin->show(); + return; + } + if (!QFile(mm_trj_path).exists()) + { + errorwin->set_message(parent->language, 7); + errorwin->show(); + return; + } + +// exec + parent->ui->tabWidget->setDisabled(true); + QString command; + command.append(mm_trj_path); +#ifdef _WIN32 + if (input.contains("\\")) +#elif __linux + if (input.contains("/")) +#else + return; +#endif + command.append(" -i " + QFileInfo(input).absoluteFilePath()); + else + command.append(" -i " + QFileInfo(QDir(workDir), input).absoluteFilePath()); + command.append(" -t " + type); + command.append(" -s " + steps); +#ifdef _WIN32 + if (atomType.contains("\\")) +#elif __linux + if (atomType.contains("/")) +#else + return; +#endif + command.append(" -a " + QFileInfo(atomType).absoluteFilePath()); + else + command.append(" -a " + QFileInfo(QDir(workDir), atomType).absoluteFilePath()); + command.append(" -o " + QFileInfo(QDir(workDir), mask).absoluteFilePath()); + command.append(" -tt " + totalTypes); + if (parent->ui->trj_checkBox_log->checkState() == 2) +#ifdef _WIN32 + if (log.contains("\\")) +#elif __linux + if (log.contains("/")) +#else + return; +#endif + command.append(" -l " + QFileInfo(log).absoluteFilePath()); + else + command.append(" -l " + QFileInfo(QDir(workDir), log).absoluteFilePath()); + command.append(" -q"); + + system(command.toStdString().c_str()); + parent->ui->tabWidget->setEnabled(true); + parent->ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done")); + delete errorwin; +} + +void Start_events::start_statgen(QString mm_statgen_path) +{ + errorwin = new ErrorWindow(parent); + parent->ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'statgen'...")); + parent->ui->statusBar->showMessage(QApplication::translate("MainWindow", "Processing 'statgen'...")); + +// read variables + QString workDir = parent->ui->statgen_lineEdit_workDir->text(); + QString mask = parent->ui->statgen_lineEdit_input->text(); + QString firstStep = QString::number(parent->ui->statgen_spinBox_stepsFirst->value()); + QString lastStep = QString::number(parent->ui->statgen_spinBox_stepsLast->value()); + QString cellX, cellY, cellZ; + cellX.setNum(parent->ui->statgen_doubleSpinBox_cellX->value(), 'f', 4); + cellY.setNum(parent->ui->statgen_doubleSpinBox_cellY->value(), 'f', 4); + cellZ.setNum(parent->ui->statgen_doubleSpinBox_cellZ->value(), 'f', 4); + QString atom0 = QString::number(parent->ui->statgen_spinBox_atoms0->value()); + QString atom1, atom2, atom3; + if (parent->ui->statgen_checkBox_atoms1->checkState() == 2) + atom1.setNum(parent->ui->statgen_spinBox_atoms1->value()); + if (parent->ui->statgen_checkBox_atoms2->checkState() == 2) + atom2.setNum(parent->ui->statgen_spinBox_atoms2->value()); + if (parent->ui->statgen_checkBox_atoms3->checkState() == 2) + atom3.setNum(parent->ui->statgen_spinBox_atoms3->value()); + QString inter; + for (int i=0; iui->statgen_listWidget_int->count(); i++) + inter.append(" -r " + parent->ui->statgen_listWidget_int->item(i)->text()); + QString output = parent->ui->statgen_lineEdit_output->text(); + QString depth; + if (parent->ui->statgen_checkBox_depth->checkState() == 2) + depth.setNum(parent->ui->statgen_spinBox_depth->value()); + QString log; + if (parent->ui->statgen_checkBox_log->checkState() == 2) + log = parent->ui->statgen_lineEdit_log->text(); + +// error check + if ((workDir == "") || (!QDir(workDir).exists())) + { + errorwin->set_message(parent->language, 0); + errorwin->show(); + return; + } + if (mask == "") + { + errorwin->set_message(parent->language, 1); + errorwin->show(); + return; + } + if ((firstStep == "") || (lastStep == "")) + { + errorwin->set_message(parent->language, 2); + errorwin->show(); + return; + } + if ((cellX == "") || (cellY == "") || (cellZ == "")) + { + errorwin->set_message(parent->language, 8); + errorwin->show(); + return; + } + if ((atom0 == "") || + ((atom1 == "") && (parent->ui->statgen_checkBox_atoms1->checkState() == 2)) || + ((atom2 == "") && (parent->ui->statgen_checkBox_atoms2->checkState() == 2)) || + ((atom3 == "") && (parent->ui->statgen_checkBox_atoms3->checkState() == 2))) + { + errorwin->set_message(parent->language, 9); + errorwin->show(); + return; + } + if (parent->ui->statgen_listWidget_int->count() == 0) + { + errorwin->set_message(parent->language, 10); + errorwin->show(); + return; + } + if (output == "") + { + errorwin->set_message(parent->language, 4); + errorwin->show(); + return; + } + if ((parent->ui->statgen_checkBox_depth->checkState() == 2) && (depth == "")) + { + errorwin->set_message(parent->language, 11); + errorwin->show(); + return; + } + if ((parent->ui->statgen_checkBox_log->checkState() == 2) && (log == "")) + { + errorwin->set_message(parent->language, 6); + errorwin->show(); + return; + } + if (!QFile(mm_statgen_path).exists()) + { + errorwin->set_message(parent->language, 7); + errorwin->show(); + return; + } + +// exec + parent->ui->tabWidget->setDisabled(true); + QString command; + command.append(mm_statgen_path); +#ifdef _WIN32 + if (mask.contains("\\")) +#elif __linux + if (mask.contains("/")) +#else + return; +#endif + command.append(" -i " + QFileInfo(mask).absoluteFilePath()); + else + command.append(" -i " + QFileInfo(QDir(workDir), mask).absoluteFilePath()); + command.append(" -s " + firstStep + "," + lastStep); + command.append(" -c " + cellX + "," + cellY + "," + cellZ); + command.append(" -a " + atom0); + if (parent->ui->statgen_checkBox_atoms1->checkState() == 2) + command.append("," + atom1); + if (parent->ui->statgen_checkBox_atoms2->checkState() == 2) + command.append("," + atom2); + if (parent->ui->statgen_checkBox_atoms3->checkState() == 2) + command.append("," + atom3); + command.append(inter); +#ifdef _WIN32 + if (output.contains("\\")) +#elif __linux + if (output.contains("/")) +#else + return; +#endif + command.append(" -o " + QFileInfo(output).absoluteFilePath()); + else + command.append(" -o " + QFileInfo(QDir(workDir), output).absoluteFilePath()); + if (parent->ui->statgen_checkBox_depth->checkState() == 2) + command.append(" -g " + depth); + if (parent->ui->statgen_checkBox_log->checkState() == 2) +#ifdef _WIN32 + if (log.contains("\\")) +#elif __linux + if (log.contains("/")) +#else + return; +#endif + command.append(" -l " + QFileInfo(log).absoluteFilePath()); + else + command.append(" -l " + QFileInfo(QDir(workDir), log).absoluteFilePath()); + command.append(" -q"); + + system(command.toStdString().c_str()); +// execv(command.toStdString().c_str(), NULL); + parent->ui->tabWidget->setEnabled(true); + parent->ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done")); + delete errorwin; +} diff --git a/mathmech/start_events.h b/mathmech/start_events.h new file mode 100644 index 0000000..4155ee1 --- /dev/null +++ b/mathmech/start_events.h @@ -0,0 +1,28 @@ +#ifndef START_EVENTS_H +#define START_EVENTS_H + +#include + +class MainWindow; +class ErrorWindow; + +class Start_events : public QWidget +{ + Q_OBJECT +public: + explicit Start_events(MainWindow *wid = 0); + void start_trj(QString mm_trj_path); + void start_statgen(QString mm_statgen_path); + +signals: + +public slots: + +private slots: + +private: + MainWindow *parent; + ErrorWindow *errorwin; +}; + +#endif /* START_EVENTS_H */ diff --git a/mathmech/ui_errorwindow.h b/mathmech/ui_errorwindow.h new file mode 100644 index 0000000..83a8103 --- /dev/null +++ b/mathmech/ui_errorwindow.h @@ -0,0 +1,112 @@ +/******************************************************************************** +** Form generated from reading UI file 'errorwindow.ui' +** +** Created by: Qt User Interface Compiler version 4.8.5 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_ERRORWINDOW_H +#define UI_ERRORWINDOW_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_ErrorWindow +{ +public: + QWidget *centralwidget; + QVBoxLayout *verticalLayout; + QSpacerItem *verticalSpacer_2; + QHBoxLayout *horizontalLayout_3; + QLabel *label; + QSpacerItem *verticalSpacer; + QHBoxLayout *horizontalLayout; + QSpacerItem *horizontalSpacer; + QPushButton *pushButton; + QSpacerItem *horizontalSpacer_2; + + void setupUi(QMainWindow *ErrorWindow) + { + if (ErrorWindow->objectName().isEmpty()) + ErrorWindow->setObjectName(QString::fromUtf8("ErrorWindow")); + ErrorWindow->resize(287, 101); + centralwidget = new QWidget(ErrorWindow); + centralwidget->setObjectName(QString::fromUtf8("centralwidget")); + verticalLayout = new QVBoxLayout(centralwidget); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + verticalSpacer_2 = new QSpacerItem(20, 10, QSizePolicy::Minimum, QSizePolicy::Expanding); + + verticalLayout->addItem(verticalSpacer_2); + + horizontalLayout_3 = new QHBoxLayout(); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + label = new QLabel(centralwidget); + label->setObjectName(QString::fromUtf8("label")); + label->setMinimumSize(QSize(0, 30)); + label->setAlignment(Qt::AlignCenter); + + horizontalLayout_3->addWidget(label); + + + verticalLayout->addLayout(horizontalLayout_3); + + verticalSpacer = new QSpacerItem(20, 10, QSizePolicy::Minimum, QSizePolicy::Expanding); + + verticalLayout->addItem(verticalSpacer); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer); + + pushButton = new QPushButton(centralwidget); + pushButton->setObjectName(QString::fromUtf8("pushButton")); + pushButton->setMinimumSize(QSize(80, 23)); + + horizontalLayout->addWidget(pushButton); + + horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout->addItem(horizontalSpacer_2); + + + verticalLayout->addLayout(horizontalLayout); + + ErrorWindow->setCentralWidget(centralwidget); + + retranslateUi(ErrorWindow); + QObject::connect(pushButton, SIGNAL(clicked()), ErrorWindow, SLOT(close())); + + QMetaObject::connectSlotsByName(ErrorWindow); + } // setupUi + + void retranslateUi(QMainWindow *ErrorWindow) + { + ErrorWindow->setWindowTitle(QApplication::translate("ErrorWindow", "Error", 0, QApplication::UnicodeUTF8)); + label->setText(QApplication::translate("ErrorWindow", "Error text", 0, QApplication::UnicodeUTF8)); + pushButton->setText(QApplication::translate("ErrorWindow", "Ok", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class ErrorWindow: public Ui_ErrorWindow {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_ERRORWINDOW_H diff --git a/mathmech/ui_mainwindow.h b/mathmech/ui_mainwindow.h new file mode 100644 index 0000000..7f3e891 --- /dev/null +++ b/mathmech/ui_mainwindow.h @@ -0,0 +1,2223 @@ +/******************************************************************************** +** Form generated from reading UI file 'mainwindow.ui' +** +** Created by: Qt User Interface Compiler version 4.8.5 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_MAINWINDOW_H +#define UI_MAINWINDOW_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_MainWindow +{ +public: + QAction *actionExit; + QAction *actionHelp; + QAction *actionAbout; + QWidget *centralWidget; + QGridLayout *gridLayout; + QTabWidget *tabWidget; + QWidget *trj; + QVBoxLayout *verticalLayout; + QHBoxLayout *trj_layout_workDir; + QLabel *trj_label_workDir; + QLineEdit *trj_lineEdit_workDir; + QPushButton *trj_pushButton_workDir; + QHBoxLayout *trj_layout_input; + QLabel *trj_label_input; + QLineEdit *trj_lineEdit_input; + QPushButton *trj_pushButton_input; + QHBoxLayout *trj_layout_opt_1; + QLabel *trj_label_type; + QComboBox *trj_comboBox_type; + QSpacerItem *horizontalSpacer_2; + QLabel *trj_label_steps; + QSpinBox *trj_spinBox_steps; + QSpacerItem *horizontalSpacer_7; + QHBoxLayout *trj_layout_atoms; + QLabel *trj_label_atoms; + QLineEdit *trj_lineEdit_atoms; + QPushButton *trj_pushButton_atoms; + QHBoxLayout *trj_layout_output; + QLabel *trj_label_output; + QLineEdit *trj_lineEdit_output; + QHBoxLayout *trj_layout_opt_2; + QLabel *trj_label_totalTypes; + QSpinBox *trj_spinBox_totalTypes; + QCheckBox *trj_checkBox_log; + QLineEdit *trj_lineEdit_log; + QPushButton *trj_pushButton_log; + QSpacerItem *verticalSpacer; + QHBoxLayout *trj_layout_buttons; + QPushButton *trj_pushButton_clear; + QSpacerItem *horizontalSpacer; + QPushButton *trj_pushButton_start; + QWidget *statgen; + QVBoxLayout *verticalLayout_2; + QHBoxLayout *statgen_layout_workDir; + QLabel *statgen_label_workDir; + QLineEdit *statgen_lineEdit_workDir; + QPushButton *statgen_pushButton_workDir; + QHBoxLayout *statgen_layout_input; + QLabel *statgen_label_input; + QLineEdit *statgen_lineEdit_input; + QHBoxLayout *statgen_layout_steps; + QLabel *statgen_label_steps; + QLabel *statgen_label_stepsFirst; + QSpinBox *statgen_spinBox_stepsFirst; + QSpacerItem *horizontalSpacer_4; + QLabel *statgen_label_stepsLast; + QSpinBox *statgen_spinBox_stepsLast; + QSpacerItem *horizontalSpacer_6; + QHBoxLayout *statgen_layout_cell; + QLabel *statgen_label_cell; + QLabel *statgen_label_cellX; + QDoubleSpinBox *statgen_doubleSpinBox_cellX; + QLabel *statgen_label_cellY; + QDoubleSpinBox *statgen_doubleSpinBox_cellY; + QLabel *statgen_label_cellZ; + QDoubleSpinBox *statgen_doubleSpinBox_cellZ; + QHBoxLayout *statgen_layout_atoms; + QLabel *statgen_label_atoms0; + QSpinBox *statgen_spinBox_atoms0; + QCheckBox *statgen_checkBox_atoms1; + QSpinBox *statgen_spinBox_atoms1; + QCheckBox *statgen_checkBox_atoms2; + QSpinBox *statgen_spinBox_atoms2; + QCheckBox *statgen_checkBox_atoms3; + QSpinBox *statgen_spinBox_atoms3; + QHBoxLayout *statgen_layout_int; + QLabel *statgen_label_int; + QComboBox *statgen_comboBox_int; + QDoubleSpinBox *statgen_doubleSpinBox_int; + QPushButton *stagen_pushButton_intSave; + QPushButton *statgen_pushButton_intAdd; + QListWidget *statgen_listWidget_int; + QHBoxLayout *stagen_layout_intRem; + QSpacerItem *horizontalSpacer_5; + QPushButton *stagen_pushButton_intRem; + QHBoxLayout *statgen_layout_output; + QLabel *statgen_label_output; + QLineEdit *statgen_lineEdit_output; + QPushButton *statgen_pushButton_output; + QHBoxLayout *statgen_layout_opt; + QCheckBox *statgen_checkBox_depth; + QSpinBox *statgen_spinBox_depth; + QCheckBox *statgen_checkBox_log; + QLineEdit *statgen_lineEdit_log; + QPushButton *statgen_pushButton_log; + QHBoxLayout *statgen_layout_buttons; + QPushButton *statgen_pushButton_clear; + QSpacerItem *horizontalSpacer_3; + QPushButton *statgen_pushButton_start; + QWidget *envir; + QVBoxLayout *verticalLayout_3; + QHBoxLayout *envir_layout_workDir; + QLabel *envir_label_workDir; + QLineEdit *envir_lineEdit_workDir; + QPushButton *envir_pushButton_workDir; + QHBoxLayout *envir_layout_input; + QLabel *envir_label_input; + QLineEdit *envir_lineEdit_input; + QPushButton *envir_pushButton_input; + QHBoxLayout *envir_layout_cell; + QLabel *envir_label_cell; + QLabel *envir_label_cellX; + QDoubleSpinBox *envir_doubleSpinBox_cellX; + QLabel *envir_label_cellY; + QDoubleSpinBox *envir_doubleSpinBox_cellY; + QLabel *envir_label_cellZ; + QDoubleSpinBox *envir_doubleSpinBox_cellZ; + QHBoxLayout *envir_layout_output; + QLabel *envir_label_output; + QLineEdit *envir_lineEdit_output; + QPushButton *envir_pushButton_output; + QHBoxLayout *envir_layout_opt_1; + QLabel *envir_label_molecule; + QSpinBox *envir_spinBox_molecule; + QSpacerItem *horizontalSpacer_8; + QLabel *envir_label_radius; + QDoubleSpinBox *envir_doubleSpinBox_radius; + QSpacerItem *horizontalSpacer_9; + QHBoxLayout *envir_layout_opt_2; + QCheckBox *envir_checkBox_log; + QLineEdit *envir_lineEdit_log; + QPushButton *envir_pushButton_log; + QSpacerItem *verticalSpacer_2; + QHBoxLayout *envir_layout_buttons; + QPushButton *envir_pushButton_clear; + QSpacerItem *horizontalSpacer_10; + QPushButton *envir_pushButton_start; + QWidget *radf; + QVBoxLayout *verticalLayout_4; + QHBoxLayout *radf_layout_workDir; + QLabel *radf_label_workDir; + QLineEdit *radf_lineEdit_workDir; + QPushButton *radf_pushButton_workDir; + QHBoxLayout *radf_layout_input; + QLabel *radf_label_input; + QLineEdit *radf_lineEdit_input; + QHBoxLayout *radf_layout_steps; + QLabel *radf_label_steps; + QLabel *radf_label_stepsFirst; + QSpinBox *radf_spinBox_stepsFirst; + QSpacerItem *horizontalSpacer_11; + QLabel *radf_label_stepsLast; + QSpinBox *radf_spinBox_stepsLast; + QSpacerItem *horizontalSpacer_12; + QHBoxLayout *radf_layout_cell; + QLabel *radf_label_cell; + QLabel *radf_label_cellX; + QDoubleSpinBox *radf_doubleSpinBox_cellX; + QLabel *radf_label_cellY; + QDoubleSpinBox *radf_doubleSpinBox_cellY; + QLabel *radf_label_cellZ; + QDoubleSpinBox *radf_doubleSpinBox_cellZ; + QHBoxLayout *radf_layout_output; + QLabel *radf_label_output; + QLineEdit *radf_lineEdit_output; + QPushButton *radf_pushButton_output; + QHBoxLayout *radf_layout_atom1; + QComboBox *radf_comboBox_atom; + QLabel *radf_label_atoms0; + QSpinBox *radf_spinBox_atoms0; + QLabel *radf_label_atoms1; + QSpinBox *radf_spinBox_atoms1; + QLabel *radf_label_atoms2; + QSpinBox *radf_spinBox_atoms2; + QHBoxLayout *radf_layout_atom2; + QSpacerItem *horizontalSpacer_14; + QLabel *radf_label_atoms3; + QSpinBox *radf_spinBox_atoms3; + QLabel *radf_label_atoms4; + QSpinBox *radf_spinBox_atoms4; + QLabel *radf_label_atoms5; + QSpinBox *radf_spinBox_atoms5; + QHBoxLayout *radf_layout_rad; + QLabel *radf_label_rad; + QLabel *radf_label_radMin; + QDoubleSpinBox *radf_doubleSpinBox_radMin; + QLabel *radf_label_radMax; + QDoubleSpinBox *radf_doubleSpinBox_radMax; + QLabel *radf_label_radStep; + QDoubleSpinBox *radf_doubleSpinBox_radStep; + QHBoxLayout *radf_layout_ang; + QCheckBox *radf_checkBox_ang; + QLabel *radf_label_angMin; + QDoubleSpinBox *radf_doubleSpinBox_angMin; + QLabel *radf_label_angMax; + QDoubleSpinBox *radf_doubleSpinBox_angMax; + QLabel *radf_label_angStep; + QDoubleSpinBox *radf_doubleSpinBox_angStep; + QHBoxLayout *radf_layout_opt; + QCheckBox *radf_checkBox_matrix; + QCheckBox *radf_checkBox_log; + QLineEdit *radf_lineEdit_log; + QPushButton *radf_pushButton_log; + QSpacerItem *verticalSpacer_3; + QHBoxLayout *radf_layout_buttons; + QPushButton *radf_pushButton_clear; + QSpacerItem *horizontalSpacer_13; + QPushButton *radf_pushButton_start; + QWidget *pdb; + QVBoxLayout *verticalLayout_5; + QComboBox *pdb_comboBox_mode; + QHBoxLayout *pdb_layout_workDir; + QLabel *pdb_label_workDir; + QLineEdit *pdb_lineEdit_workDir; + QPushButton *pdb_pushButton_workDir; + QHBoxLayout *pdb_layout_input; + QLabel *pdb_label_input; + QLineEdit *pdb_lineEdit_input; + QPushButton *pdb_pushButton_input; + QHBoxLayout *pdb_layout_agl; + QLabel *pdb_label_agl; + QLineEdit *pdb_lineEdit_agl; + QPushButton *pdb_pushButton_agl; + QHBoxLayout *pdb_layout_cell; + QLabel *pdb_label_cell; + QLabel *pdb_label_cellX; + QDoubleSpinBox *pdb_doubleSpinBox_cellX; + QLabel *pdb_label_cellY; + QDoubleSpinBox *pdb_doubleSpinBox_cellY; + QLabel *pdb_label_cellZ; + QDoubleSpinBox *pdb_doubleSpinBox_cellZ; + QHBoxLayout *pdb_layout_output; + QLabel *pdb_label_output; + QLineEdit *pdb_lineEdit_output; + QPushButton *pdb_pushButton_output; + QHBoxLayout *pdb_layout_opt; + QCheckBox *pdb_checkBox_log; + QLineEdit *pdb_lineEdit_log; + QPushButton *pdb_pushButton_log; + QSpacerItem *verticalSpacer_4; + QHBoxLayout *pdb_layout_buttons; + QPushButton *pdb_pushButton_clear; + QSpacerItem *horizontalSpacer_15; + QPushButton *pdb_pushButton_start; + QMenuBar *menuBar; + QMenu *menuMenu; + QMenu *menuHelp; + QToolBar *mainToolBar; + QStatusBar *statusBar; + + void setupUi(QMainWindow *MainWindow) + { + if (MainWindow->objectName().isEmpty()) + MainWindow->setObjectName(QString::fromUtf8("MainWindow")); + MainWindow->resize(564, 554); + actionExit = new QAction(MainWindow); + actionExit->setObjectName(QString::fromUtf8("actionExit")); + actionHelp = new QAction(MainWindow); + actionHelp->setObjectName(QString::fromUtf8("actionHelp")); + actionAbout = new QAction(MainWindow); + actionAbout->setObjectName(QString::fromUtf8("actionAbout")); + centralWidget = new QWidget(MainWindow); + centralWidget->setObjectName(QString::fromUtf8("centralWidget")); + gridLayout = new QGridLayout(centralWidget); + gridLayout->setSpacing(6); + gridLayout->setContentsMargins(11, 11, 11, 11); + gridLayout->setObjectName(QString::fromUtf8("gridLayout")); + tabWidget = new QTabWidget(centralWidget); + tabWidget->setObjectName(QString::fromUtf8("tabWidget")); + trj = new QWidget(); + trj->setObjectName(QString::fromUtf8("trj")); + verticalLayout = new QVBoxLayout(trj); + verticalLayout->setSpacing(6); + verticalLayout->setContentsMargins(11, 11, 11, 11); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + trj_layout_workDir = new QHBoxLayout(); + trj_layout_workDir->setSpacing(6); + trj_layout_workDir->setObjectName(QString::fromUtf8("trj_layout_workDir")); + trj_label_workDir = new QLabel(trj); + trj_label_workDir->setObjectName(QString::fromUtf8("trj_label_workDir")); + trj_label_workDir->setMinimumSize(QSize(110, 23)); + + trj_layout_workDir->addWidget(trj_label_workDir); + + trj_lineEdit_workDir = new QLineEdit(trj); + trj_lineEdit_workDir->setObjectName(QString::fromUtf8("trj_lineEdit_workDir")); + trj_lineEdit_workDir->setMinimumSize(QSize(280, 23)); + + trj_layout_workDir->addWidget(trj_lineEdit_workDir); + + trj_pushButton_workDir = new QPushButton(trj); + trj_pushButton_workDir->setObjectName(QString::fromUtf8("trj_pushButton_workDir")); + trj_pushButton_workDir->setMinimumSize(QSize(80, 23)); + trj_pushButton_workDir->setAutoDefault(true); + + trj_layout_workDir->addWidget(trj_pushButton_workDir); + + + verticalLayout->addLayout(trj_layout_workDir); + + trj_layout_input = new QHBoxLayout(); + trj_layout_input->setSpacing(6); + trj_layout_input->setObjectName(QString::fromUtf8("trj_layout_input")); + trj_label_input = new QLabel(trj); + trj_label_input->setObjectName(QString::fromUtf8("trj_label_input")); + trj_label_input->setMinimumSize(QSize(110, 23)); + + trj_layout_input->addWidget(trj_label_input); + + trj_lineEdit_input = new QLineEdit(trj); + trj_lineEdit_input->setObjectName(QString::fromUtf8("trj_lineEdit_input")); + trj_lineEdit_input->setMinimumSize(QSize(280, 23)); + + trj_layout_input->addWidget(trj_lineEdit_input); + + trj_pushButton_input = new QPushButton(trj); + trj_pushButton_input->setObjectName(QString::fromUtf8("trj_pushButton_input")); + trj_pushButton_input->setMinimumSize(QSize(80, 23)); + trj_pushButton_input->setAutoDefault(true); + + trj_layout_input->addWidget(trj_pushButton_input); + + + verticalLayout->addLayout(trj_layout_input); + + trj_layout_opt_1 = new QHBoxLayout(); + trj_layout_opt_1->setSpacing(6); + trj_layout_opt_1->setObjectName(QString::fromUtf8("trj_layout_opt_1")); + trj_label_type = new QLabel(trj); + trj_label_type->setObjectName(QString::fromUtf8("trj_label_type")); + trj_label_type->setMinimumSize(QSize(110, 23)); + + trj_layout_opt_1->addWidget(trj_label_type); + + trj_comboBox_type = new QComboBox(trj); + trj_comboBox_type->setObjectName(QString::fromUtf8("trj_comboBox_type")); + trj_comboBox_type->setMinimumSize(QSize(130, 23)); + + trj_layout_opt_1->addWidget(trj_comboBox_type); + + horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + trj_layout_opt_1->addItem(horizontalSpacer_2); + + trj_label_steps = new QLabel(trj); + trj_label_steps->setObjectName(QString::fromUtf8("trj_label_steps")); + trj_label_steps->setMinimumSize(QSize(110, 23)); + + trj_layout_opt_1->addWidget(trj_label_steps); + + trj_spinBox_steps = new QSpinBox(trj); + trj_spinBox_steps->setObjectName(QString::fromUtf8("trj_spinBox_steps")); + trj_spinBox_steps->setMinimumSize(QSize(75, 23)); + trj_spinBox_steps->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + trj_spinBox_steps->setMinimum(1); + trj_spinBox_steps->setMaximum(999); + + trj_layout_opt_1->addWidget(trj_spinBox_steps); + + horizontalSpacer_7 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + trj_layout_opt_1->addItem(horizontalSpacer_7); + + + verticalLayout->addLayout(trj_layout_opt_1); + + trj_layout_atoms = new QHBoxLayout(); + trj_layout_atoms->setSpacing(6); + trj_layout_atoms->setObjectName(QString::fromUtf8("trj_layout_atoms")); + trj_label_atoms = new QLabel(trj); + trj_label_atoms->setObjectName(QString::fromUtf8("trj_label_atoms")); + trj_label_atoms->setMinimumSize(QSize(110, 23)); + + trj_layout_atoms->addWidget(trj_label_atoms); + + trj_lineEdit_atoms = new QLineEdit(trj); + trj_lineEdit_atoms->setObjectName(QString::fromUtf8("trj_lineEdit_atoms")); + trj_lineEdit_atoms->setMinimumSize(QSize(280, 23)); + + trj_layout_atoms->addWidget(trj_lineEdit_atoms); + + trj_pushButton_atoms = new QPushButton(trj); + trj_pushButton_atoms->setObjectName(QString::fromUtf8("trj_pushButton_atoms")); + trj_pushButton_atoms->setMinimumSize(QSize(80, 23)); + trj_pushButton_atoms->setAutoDefault(true); + + trj_layout_atoms->addWidget(trj_pushButton_atoms); + + + verticalLayout->addLayout(trj_layout_atoms); + + trj_layout_output = new QHBoxLayout(); + trj_layout_output->setSpacing(6); + trj_layout_output->setObjectName(QString::fromUtf8("trj_layout_output")); + trj_label_output = new QLabel(trj); + trj_label_output->setObjectName(QString::fromUtf8("trj_label_output")); + trj_label_output->setMinimumSize(QSize(110, 23)); + + trj_layout_output->addWidget(trj_label_output); + + trj_lineEdit_output = new QLineEdit(trj); + trj_lineEdit_output->setObjectName(QString::fromUtf8("trj_lineEdit_output")); + trj_lineEdit_output->setMinimumSize(QSize(365, 23)); + + trj_layout_output->addWidget(trj_lineEdit_output); + + + verticalLayout->addLayout(trj_layout_output); + + trj_layout_opt_2 = new QHBoxLayout(); + trj_layout_opt_2->setSpacing(6); + trj_layout_opt_2->setObjectName(QString::fromUtf8("trj_layout_opt_2")); + trj_label_totalTypes = new QLabel(trj); + trj_label_totalTypes->setObjectName(QString::fromUtf8("trj_label_totalTypes")); + trj_label_totalTypes->setMinimumSize(QSize(110, 23)); + + trj_layout_opt_2->addWidget(trj_label_totalTypes); + + trj_spinBox_totalTypes = new QSpinBox(trj); + trj_spinBox_totalTypes->setObjectName(QString::fromUtf8("trj_spinBox_totalTypes")); + trj_spinBox_totalTypes->setMinimumSize(QSize(80, 23)); + trj_spinBox_totalTypes->setLayoutDirection(Qt::LeftToRight); + trj_spinBox_totalTypes->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + trj_spinBox_totalTypes->setMinimum(1024); + trj_spinBox_totalTypes->setMaximum(999999); + + trj_layout_opt_2->addWidget(trj_spinBox_totalTypes); + + trj_checkBox_log = new QCheckBox(trj); + trj_checkBox_log->setObjectName(QString::fromUtf8("trj_checkBox_log")); + trj_checkBox_log->setMinimumSize(QSize(110, 23)); + trj_checkBox_log->setChecked(true); + + trj_layout_opt_2->addWidget(trj_checkBox_log); + + trj_lineEdit_log = new QLineEdit(trj); + trj_lineEdit_log->setObjectName(QString::fromUtf8("trj_lineEdit_log")); + trj_lineEdit_log->setMinimumSize(QSize(80, 23)); + + trj_layout_opt_2->addWidget(trj_lineEdit_log); + + trj_pushButton_log = new QPushButton(trj); + trj_pushButton_log->setObjectName(QString::fromUtf8("trj_pushButton_log")); + trj_pushButton_log->setMinimumSize(QSize(80, 23)); + trj_pushButton_log->setAutoDefault(true); + + trj_layout_opt_2->addWidget(trj_pushButton_log); + + + verticalLayout->addLayout(trj_layout_opt_2); + + verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); + + verticalLayout->addItem(verticalSpacer); + + trj_layout_buttons = new QHBoxLayout(); + trj_layout_buttons->setSpacing(6); + trj_layout_buttons->setObjectName(QString::fromUtf8("trj_layout_buttons")); + trj_pushButton_clear = new QPushButton(trj); + trj_pushButton_clear->setObjectName(QString::fromUtf8("trj_pushButton_clear")); + trj_pushButton_clear->setMinimumSize(QSize(80, 23)); + trj_pushButton_clear->setAutoDefault(true); + + trj_layout_buttons->addWidget(trj_pushButton_clear); + + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + trj_layout_buttons->addItem(horizontalSpacer); + + trj_pushButton_start = new QPushButton(trj); + trj_pushButton_start->setObjectName(QString::fromUtf8("trj_pushButton_start")); + trj_pushButton_start->setMinimumSize(QSize(80, 23)); + trj_pushButton_start->setMaximumSize(QSize(16777215, 16777215)); + trj_pushButton_start->setAutoDefault(true); + + trj_layout_buttons->addWidget(trj_pushButton_start); + + + verticalLayout->addLayout(trj_layout_buttons); + + tabWidget->addTab(trj, QString()); + statgen = new QWidget(); + statgen->setObjectName(QString::fromUtf8("statgen")); + verticalLayout_2 = new QVBoxLayout(statgen); + verticalLayout_2->setSpacing(6); + verticalLayout_2->setContentsMargins(11, 11, 11, 11); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + statgen_layout_workDir = new QHBoxLayout(); + statgen_layout_workDir->setSpacing(6); + statgen_layout_workDir->setObjectName(QString::fromUtf8("statgen_layout_workDir")); + statgen_label_workDir = new QLabel(statgen); + statgen_label_workDir->setObjectName(QString::fromUtf8("statgen_label_workDir")); + statgen_label_workDir->setMinimumSize(QSize(110, 23)); + + statgen_layout_workDir->addWidget(statgen_label_workDir); + + statgen_lineEdit_workDir = new QLineEdit(statgen); + statgen_lineEdit_workDir->setObjectName(QString::fromUtf8("statgen_lineEdit_workDir")); + statgen_lineEdit_workDir->setMinimumSize(QSize(280, 23)); + + statgen_layout_workDir->addWidget(statgen_lineEdit_workDir); + + statgen_pushButton_workDir = new QPushButton(statgen); + statgen_pushButton_workDir->setObjectName(QString::fromUtf8("statgen_pushButton_workDir")); + statgen_pushButton_workDir->setMinimumSize(QSize(80, 23)); + statgen_pushButton_workDir->setAutoDefault(true); + + statgen_layout_workDir->addWidget(statgen_pushButton_workDir); + + + verticalLayout_2->addLayout(statgen_layout_workDir); + + statgen_layout_input = new QHBoxLayout(); + statgen_layout_input->setSpacing(6); + statgen_layout_input->setObjectName(QString::fromUtf8("statgen_layout_input")); + statgen_label_input = new QLabel(statgen); + statgen_label_input->setObjectName(QString::fromUtf8("statgen_label_input")); + statgen_label_input->setMinimumSize(QSize(110, 23)); + + statgen_layout_input->addWidget(statgen_label_input); + + statgen_lineEdit_input = new QLineEdit(statgen); + statgen_lineEdit_input->setObjectName(QString::fromUtf8("statgen_lineEdit_input")); + statgen_lineEdit_input->setMinimumSize(QSize(280, 23)); + + statgen_layout_input->addWidget(statgen_lineEdit_input); + + + verticalLayout_2->addLayout(statgen_layout_input); + + statgen_layout_steps = new QHBoxLayout(); + statgen_layout_steps->setSpacing(6); + statgen_layout_steps->setObjectName(QString::fromUtf8("statgen_layout_steps")); + statgen_label_steps = new QLabel(statgen); + statgen_label_steps->setObjectName(QString::fromUtf8("statgen_label_steps")); + statgen_label_steps->setMinimumSize(QSize(110, 23)); + + statgen_layout_steps->addWidget(statgen_label_steps); + + statgen_label_stepsFirst = new QLabel(statgen); + statgen_label_stepsFirst->setObjectName(QString::fromUtf8("statgen_label_stepsFirst")); + statgen_label_stepsFirst->setMinimumSize(QSize(75, 23)); + + statgen_layout_steps->addWidget(statgen_label_stepsFirst); + + statgen_spinBox_stepsFirst = new QSpinBox(statgen); + statgen_spinBox_stepsFirst->setObjectName(QString::fromUtf8("statgen_spinBox_stepsFirst")); + statgen_spinBox_stepsFirst->setMinimumSize(QSize(75, 23)); + statgen_spinBox_stepsFirst->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + statgen_spinBox_stepsFirst->setMinimum(1); + statgen_spinBox_stepsFirst->setMaximum(999); + + statgen_layout_steps->addWidget(statgen_spinBox_stepsFirst); + + horizontalSpacer_4 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + statgen_layout_steps->addItem(horizontalSpacer_4); + + statgen_label_stepsLast = new QLabel(statgen); + statgen_label_stepsLast->setObjectName(QString::fromUtf8("statgen_label_stepsLast")); + statgen_label_stepsLast->setMinimumSize(QSize(75, 23)); + + statgen_layout_steps->addWidget(statgen_label_stepsLast); + + statgen_spinBox_stepsLast = new QSpinBox(statgen); + statgen_spinBox_stepsLast->setObjectName(QString::fromUtf8("statgen_spinBox_stepsLast")); + statgen_spinBox_stepsLast->setMinimumSize(QSize(75, 23)); + statgen_spinBox_stepsLast->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + statgen_spinBox_stepsLast->setMinimum(1); + statgen_spinBox_stepsLast->setMaximum(999); + + statgen_layout_steps->addWidget(statgen_spinBox_stepsLast); + + horizontalSpacer_6 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + statgen_layout_steps->addItem(horizontalSpacer_6); + + + verticalLayout_2->addLayout(statgen_layout_steps); + + statgen_layout_cell = new QHBoxLayout(); + statgen_layout_cell->setSpacing(6); + statgen_layout_cell->setObjectName(QString::fromUtf8("statgen_layout_cell")); + statgen_label_cell = new QLabel(statgen); + statgen_label_cell->setObjectName(QString::fromUtf8("statgen_label_cell")); + statgen_label_cell->setMinimumSize(QSize(110, 23)); + + statgen_layout_cell->addWidget(statgen_label_cell); + + statgen_label_cellX = new QLabel(statgen); + statgen_label_cellX->setObjectName(QString::fromUtf8("statgen_label_cellX")); + statgen_label_cellX->setMinimumSize(QSize(50, 23)); + + statgen_layout_cell->addWidget(statgen_label_cellX); + + statgen_doubleSpinBox_cellX = new QDoubleSpinBox(statgen); + statgen_doubleSpinBox_cellX->setObjectName(QString::fromUtf8("statgen_doubleSpinBox_cellX")); + QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(statgen_doubleSpinBox_cellX->sizePolicy().hasHeightForWidth()); + statgen_doubleSpinBox_cellX->setSizePolicy(sizePolicy); + statgen_doubleSpinBox_cellX->setMinimumSize(QSize(55, 23)); + statgen_doubleSpinBox_cellX->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + statgen_doubleSpinBox_cellX->setDecimals(4); + statgen_doubleSpinBox_cellX->setMinimum(0.1); + statgen_doubleSpinBox_cellX->setMaximum(999.99); + + statgen_layout_cell->addWidget(statgen_doubleSpinBox_cellX); + + statgen_label_cellY = new QLabel(statgen); + statgen_label_cellY->setObjectName(QString::fromUtf8("statgen_label_cellY")); + statgen_label_cellY->setMinimumSize(QSize(50, 23)); + + statgen_layout_cell->addWidget(statgen_label_cellY); + + statgen_doubleSpinBox_cellY = new QDoubleSpinBox(statgen); + statgen_doubleSpinBox_cellY->setObjectName(QString::fromUtf8("statgen_doubleSpinBox_cellY")); + sizePolicy.setHeightForWidth(statgen_doubleSpinBox_cellY->sizePolicy().hasHeightForWidth()); + statgen_doubleSpinBox_cellY->setSizePolicy(sizePolicy); + statgen_doubleSpinBox_cellY->setMinimumSize(QSize(55, 23)); + statgen_doubleSpinBox_cellY->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + statgen_doubleSpinBox_cellY->setDecimals(4); + statgen_doubleSpinBox_cellY->setMinimum(0.1); + statgen_doubleSpinBox_cellY->setMaximum(999.99); + + statgen_layout_cell->addWidget(statgen_doubleSpinBox_cellY); + + statgen_label_cellZ = new QLabel(statgen); + statgen_label_cellZ->setObjectName(QString::fromUtf8("statgen_label_cellZ")); + statgen_label_cellZ->setMinimumSize(QSize(50, 23)); + + statgen_layout_cell->addWidget(statgen_label_cellZ); + + statgen_doubleSpinBox_cellZ = new QDoubleSpinBox(statgen); + statgen_doubleSpinBox_cellZ->setObjectName(QString::fromUtf8("statgen_doubleSpinBox_cellZ")); + sizePolicy.setHeightForWidth(statgen_doubleSpinBox_cellZ->sizePolicy().hasHeightForWidth()); + statgen_doubleSpinBox_cellZ->setSizePolicy(sizePolicy); + statgen_doubleSpinBox_cellZ->setMinimumSize(QSize(55, 23)); + statgen_doubleSpinBox_cellZ->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + statgen_doubleSpinBox_cellZ->setDecimals(4); + statgen_doubleSpinBox_cellZ->setMinimum(0.1); + statgen_doubleSpinBox_cellZ->setMaximum(999.99); + + statgen_layout_cell->addWidget(statgen_doubleSpinBox_cellZ); + + + verticalLayout_2->addLayout(statgen_layout_cell); + + statgen_layout_atoms = new QHBoxLayout(); + statgen_layout_atoms->setSpacing(6); + statgen_layout_atoms->setObjectName(QString::fromUtf8("statgen_layout_atoms")); + statgen_label_atoms0 = new QLabel(statgen); + statgen_label_atoms0->setObjectName(QString::fromUtf8("statgen_label_atoms0")); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Fixed); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(statgen_label_atoms0->sizePolicy().hasHeightForWidth()); + statgen_label_atoms0->setSizePolicy(sizePolicy1); + statgen_label_atoms0->setMinimumSize(QSize(45, 23)); + + statgen_layout_atoms->addWidget(statgen_label_atoms0); + + statgen_spinBox_atoms0 = new QSpinBox(statgen); + statgen_spinBox_atoms0->setObjectName(QString::fromUtf8("statgen_spinBox_atoms0")); + sizePolicy.setHeightForWidth(statgen_spinBox_atoms0->sizePolicy().hasHeightForWidth()); + statgen_spinBox_atoms0->setSizePolicy(sizePolicy); + statgen_spinBox_atoms0->setMinimumSize(QSize(50, 23)); + statgen_spinBox_atoms0->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + statgen_layout_atoms->addWidget(statgen_spinBox_atoms0); + + statgen_checkBox_atoms1 = new QCheckBox(statgen); + statgen_checkBox_atoms1->setObjectName(QString::fromUtf8("statgen_checkBox_atoms1")); + statgen_checkBox_atoms1->setMinimumSize(QSize(65, 23)); + + statgen_layout_atoms->addWidget(statgen_checkBox_atoms1); + + statgen_spinBox_atoms1 = new QSpinBox(statgen); + statgen_spinBox_atoms1->setObjectName(QString::fromUtf8("statgen_spinBox_atoms1")); + statgen_spinBox_atoms1->setEnabled(false); + sizePolicy.setHeightForWidth(statgen_spinBox_atoms1->sizePolicy().hasHeightForWidth()); + statgen_spinBox_atoms1->setSizePolicy(sizePolicy); + statgen_spinBox_atoms1->setMinimumSize(QSize(50, 23)); + statgen_spinBox_atoms1->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + statgen_layout_atoms->addWidget(statgen_spinBox_atoms1); + + statgen_checkBox_atoms2 = new QCheckBox(statgen); + statgen_checkBox_atoms2->setObjectName(QString::fromUtf8("statgen_checkBox_atoms2")); + statgen_checkBox_atoms2->setEnabled(false); + statgen_checkBox_atoms2->setMinimumSize(QSize(65, 23)); + + statgen_layout_atoms->addWidget(statgen_checkBox_atoms2); + + statgen_spinBox_atoms2 = new QSpinBox(statgen); + statgen_spinBox_atoms2->setObjectName(QString::fromUtf8("statgen_spinBox_atoms2")); + statgen_spinBox_atoms2->setEnabled(false); + sizePolicy.setHeightForWidth(statgen_spinBox_atoms2->sizePolicy().hasHeightForWidth()); + statgen_spinBox_atoms2->setSizePolicy(sizePolicy); + statgen_spinBox_atoms2->setMinimumSize(QSize(50, 23)); + statgen_spinBox_atoms2->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + statgen_layout_atoms->addWidget(statgen_spinBox_atoms2); + + statgen_checkBox_atoms3 = new QCheckBox(statgen); + statgen_checkBox_atoms3->setObjectName(QString::fromUtf8("statgen_checkBox_atoms3")); + statgen_checkBox_atoms3->setEnabled(false); + statgen_checkBox_atoms3->setMinimumSize(QSize(65, 23)); + + statgen_layout_atoms->addWidget(statgen_checkBox_atoms3); + + statgen_spinBox_atoms3 = new QSpinBox(statgen); + statgen_spinBox_atoms3->setObjectName(QString::fromUtf8("statgen_spinBox_atoms3")); + statgen_spinBox_atoms3->setEnabled(false); + sizePolicy.setHeightForWidth(statgen_spinBox_atoms3->sizePolicy().hasHeightForWidth()); + statgen_spinBox_atoms3->setSizePolicy(sizePolicy); + statgen_spinBox_atoms3->setMinimumSize(QSize(50, 23)); + statgen_spinBox_atoms3->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + statgen_layout_atoms->addWidget(statgen_spinBox_atoms3); + + + verticalLayout_2->addLayout(statgen_layout_atoms); + + statgen_layout_int = new QHBoxLayout(); + statgen_layout_int->setSpacing(6); + statgen_layout_int->setObjectName(QString::fromUtf8("statgen_layout_int")); + statgen_label_int = new QLabel(statgen); + statgen_label_int->setObjectName(QString::fromUtf8("statgen_label_int")); + statgen_label_int->setMinimumSize(QSize(110, 23)); + + statgen_layout_int->addWidget(statgen_label_int); + + statgen_comboBox_int = new QComboBox(statgen); + statgen_comboBox_int->setObjectName(QString::fromUtf8("statgen_comboBox_int")); + sizePolicy.setHeightForWidth(statgen_comboBox_int->sizePolicy().hasHeightForWidth()); + statgen_comboBox_int->setSizePolicy(sizePolicy); + statgen_comboBox_int->setMinimumSize(QSize(90, 23)); + + statgen_layout_int->addWidget(statgen_comboBox_int); + + statgen_doubleSpinBox_int = new QDoubleSpinBox(statgen); + statgen_doubleSpinBox_int->setObjectName(QString::fromUtf8("statgen_doubleSpinBox_int")); + sizePolicy.setHeightForWidth(statgen_doubleSpinBox_int->sizePolicy().hasHeightForWidth()); + statgen_doubleSpinBox_int->setSizePolicy(sizePolicy); + statgen_doubleSpinBox_int->setMinimumSize(QSize(90, 23)); + statgen_doubleSpinBox_int->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + statgen_doubleSpinBox_int->setDecimals(3); + statgen_doubleSpinBox_int->setMinimum(0); + statgen_doubleSpinBox_int->setValue(0); + + statgen_layout_int->addWidget(statgen_doubleSpinBox_int); + + stagen_pushButton_intSave = new QPushButton(statgen); + stagen_pushButton_intSave->setObjectName(QString::fromUtf8("stagen_pushButton_intSave")); + stagen_pushButton_intSave->setMinimumSize(QSize(80, 23)); + stagen_pushButton_intSave->setAutoDefault(true); + + statgen_layout_int->addWidget(stagen_pushButton_intSave); + + statgen_pushButton_intAdd = new QPushButton(statgen); + statgen_pushButton_intAdd->setObjectName(QString::fromUtf8("statgen_pushButton_intAdd")); + statgen_pushButton_intAdd->setMinimumSize(QSize(80, 23)); + statgen_pushButton_intAdd->setAutoDefault(true); + + statgen_layout_int->addWidget(statgen_pushButton_intAdd); + + + verticalLayout_2->addLayout(statgen_layout_int); + + statgen_listWidget_int = new QListWidget(statgen); + statgen_listWidget_int->setObjectName(QString::fromUtf8("statgen_listWidget_int")); + statgen_listWidget_int->setMinimumSize(QSize(484, 85)); + statgen_listWidget_int->setEditTriggers(QAbstractItemView::NoEditTriggers); + + verticalLayout_2->addWidget(statgen_listWidget_int); + + stagen_layout_intRem = new QHBoxLayout(); + stagen_layout_intRem->setSpacing(6); + stagen_layout_intRem->setObjectName(QString::fromUtf8("stagen_layout_intRem")); + horizontalSpacer_5 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + stagen_layout_intRem->addItem(horizontalSpacer_5); + + stagen_pushButton_intRem = new QPushButton(statgen); + stagen_pushButton_intRem->setObjectName(QString::fromUtf8("stagen_pushButton_intRem")); + stagen_pushButton_intRem->setMinimumSize(QSize(80, 23)); + stagen_pushButton_intRem->setAutoDefault(true); + + stagen_layout_intRem->addWidget(stagen_pushButton_intRem); + + + verticalLayout_2->addLayout(stagen_layout_intRem); + + statgen_layout_output = new QHBoxLayout(); + statgen_layout_output->setSpacing(6); + statgen_layout_output->setObjectName(QString::fromUtf8("statgen_layout_output")); + statgen_label_output = new QLabel(statgen); + statgen_label_output->setObjectName(QString::fromUtf8("statgen_label_output")); + statgen_label_output->setMinimumSize(QSize(110, 23)); + + statgen_layout_output->addWidget(statgen_label_output); + + statgen_lineEdit_output = new QLineEdit(statgen); + statgen_lineEdit_output->setObjectName(QString::fromUtf8("statgen_lineEdit_output")); + statgen_lineEdit_output->setMinimumSize(QSize(280, 23)); + + statgen_layout_output->addWidget(statgen_lineEdit_output); + + statgen_pushButton_output = new QPushButton(statgen); + statgen_pushButton_output->setObjectName(QString::fromUtf8("statgen_pushButton_output")); + statgen_pushButton_output->setMinimumSize(QSize(80, 23)); + statgen_pushButton_output->setAutoDefault(true); + + statgen_layout_output->addWidget(statgen_pushButton_output); + + + verticalLayout_2->addLayout(statgen_layout_output); + + statgen_layout_opt = new QHBoxLayout(); + statgen_layout_opt->setSpacing(6); + statgen_layout_opt->setObjectName(QString::fromUtf8("statgen_layout_opt")); + statgen_checkBox_depth = new QCheckBox(statgen); + statgen_checkBox_depth->setObjectName(QString::fromUtf8("statgen_checkBox_depth")); + statgen_checkBox_depth->setMinimumSize(QSize(110, 23)); + statgen_checkBox_depth->setChecked(true); + + statgen_layout_opt->addWidget(statgen_checkBox_depth); + + statgen_spinBox_depth = new QSpinBox(statgen); + statgen_spinBox_depth->setObjectName(QString::fromUtf8("statgen_spinBox_depth")); + statgen_spinBox_depth->setMinimumSize(QSize(80, 23)); + statgen_spinBox_depth->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + statgen_spinBox_depth->setMinimum(3); + statgen_spinBox_depth->setMaximum(1000); + statgen_spinBox_depth->setValue(10); + + statgen_layout_opt->addWidget(statgen_spinBox_depth); + + statgen_checkBox_log = new QCheckBox(statgen); + statgen_checkBox_log->setObjectName(QString::fromUtf8("statgen_checkBox_log")); + statgen_checkBox_log->setMinimumSize(QSize(110, 23)); + statgen_checkBox_log->setChecked(true); + + statgen_layout_opt->addWidget(statgen_checkBox_log); + + statgen_lineEdit_log = new QLineEdit(statgen); + statgen_lineEdit_log->setObjectName(QString::fromUtf8("statgen_lineEdit_log")); + statgen_lineEdit_log->setMinimumSize(QSize(80, 23)); + + statgen_layout_opt->addWidget(statgen_lineEdit_log); + + statgen_pushButton_log = new QPushButton(statgen); + statgen_pushButton_log->setObjectName(QString::fromUtf8("statgen_pushButton_log")); + statgen_pushButton_log->setMinimumSize(QSize(80, 23)); + statgen_pushButton_log->setAutoDefault(true); + + statgen_layout_opt->addWidget(statgen_pushButton_log); + + + verticalLayout_2->addLayout(statgen_layout_opt); + + statgen_layout_buttons = new QHBoxLayout(); + statgen_layout_buttons->setSpacing(6); + statgen_layout_buttons->setObjectName(QString::fromUtf8("statgen_layout_buttons")); + statgen_pushButton_clear = new QPushButton(statgen); + statgen_pushButton_clear->setObjectName(QString::fromUtf8("statgen_pushButton_clear")); + statgen_pushButton_clear->setMinimumSize(QSize(80, 23)); + statgen_pushButton_clear->setAutoDefault(true); + + statgen_layout_buttons->addWidget(statgen_pushButton_clear); + + horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + statgen_layout_buttons->addItem(horizontalSpacer_3); + + statgen_pushButton_start = new QPushButton(statgen); + statgen_pushButton_start->setObjectName(QString::fromUtf8("statgen_pushButton_start")); + statgen_pushButton_start->setMinimumSize(QSize(80, 23)); + statgen_pushButton_start->setMaximumSize(QSize(16777215, 16777215)); + statgen_pushButton_start->setAutoDefault(true); + + statgen_layout_buttons->addWidget(statgen_pushButton_start); + + + verticalLayout_2->addLayout(statgen_layout_buttons); + + tabWidget->addTab(statgen, QString()); + envir = new QWidget(); + envir->setObjectName(QString::fromUtf8("envir")); + verticalLayout_3 = new QVBoxLayout(envir); + verticalLayout_3->setSpacing(6); + verticalLayout_3->setContentsMargins(11, 11, 11, 11); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + envir_layout_workDir = new QHBoxLayout(); + envir_layout_workDir->setSpacing(6); + envir_layout_workDir->setObjectName(QString::fromUtf8("envir_layout_workDir")); + envir_label_workDir = new QLabel(envir); + envir_label_workDir->setObjectName(QString::fromUtf8("envir_label_workDir")); + envir_label_workDir->setMinimumSize(QSize(110, 23)); + + envir_layout_workDir->addWidget(envir_label_workDir); + + envir_lineEdit_workDir = new QLineEdit(envir); + envir_lineEdit_workDir->setObjectName(QString::fromUtf8("envir_lineEdit_workDir")); + envir_lineEdit_workDir->setMinimumSize(QSize(280, 23)); + + envir_layout_workDir->addWidget(envir_lineEdit_workDir); + + envir_pushButton_workDir = new QPushButton(envir); + envir_pushButton_workDir->setObjectName(QString::fromUtf8("envir_pushButton_workDir")); + envir_pushButton_workDir->setMinimumSize(QSize(80, 23)); + envir_pushButton_workDir->setAutoDefault(true); + + envir_layout_workDir->addWidget(envir_pushButton_workDir); + + + verticalLayout_3->addLayout(envir_layout_workDir); + + envir_layout_input = new QHBoxLayout(); + envir_layout_input->setSpacing(6); + envir_layout_input->setObjectName(QString::fromUtf8("envir_layout_input")); + envir_label_input = new QLabel(envir); + envir_label_input->setObjectName(QString::fromUtf8("envir_label_input")); + envir_label_input->setMinimumSize(QSize(110, 23)); + + envir_layout_input->addWidget(envir_label_input); + + envir_lineEdit_input = new QLineEdit(envir); + envir_lineEdit_input->setObjectName(QString::fromUtf8("envir_lineEdit_input")); + envir_lineEdit_input->setMinimumSize(QSize(280, 23)); + + envir_layout_input->addWidget(envir_lineEdit_input); + + envir_pushButton_input = new QPushButton(envir); + envir_pushButton_input->setObjectName(QString::fromUtf8("envir_pushButton_input")); + envir_pushButton_input->setMinimumSize(QSize(80, 23)); + envir_pushButton_input->setAutoDefault(true); + + envir_layout_input->addWidget(envir_pushButton_input); + + + verticalLayout_3->addLayout(envir_layout_input); + + envir_layout_cell = new QHBoxLayout(); + envir_layout_cell->setSpacing(6); + envir_layout_cell->setObjectName(QString::fromUtf8("envir_layout_cell")); + envir_label_cell = new QLabel(envir); + envir_label_cell->setObjectName(QString::fromUtf8("envir_label_cell")); + envir_label_cell->setMinimumSize(QSize(110, 23)); + + envir_layout_cell->addWidget(envir_label_cell); + + envir_label_cellX = new QLabel(envir); + envir_label_cellX->setObjectName(QString::fromUtf8("envir_label_cellX")); + envir_label_cellX->setMinimumSize(QSize(50, 23)); + + envir_layout_cell->addWidget(envir_label_cellX); + + envir_doubleSpinBox_cellX = new QDoubleSpinBox(envir); + envir_doubleSpinBox_cellX->setObjectName(QString::fromUtf8("envir_doubleSpinBox_cellX")); + sizePolicy.setHeightForWidth(envir_doubleSpinBox_cellX->sizePolicy().hasHeightForWidth()); + envir_doubleSpinBox_cellX->setSizePolicy(sizePolicy); + envir_doubleSpinBox_cellX->setMinimumSize(QSize(55, 23)); + envir_doubleSpinBox_cellX->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + envir_doubleSpinBox_cellX->setDecimals(4); + envir_doubleSpinBox_cellX->setMinimum(0.1); + envir_doubleSpinBox_cellX->setMaximum(999.99); + + envir_layout_cell->addWidget(envir_doubleSpinBox_cellX); + + envir_label_cellY = new QLabel(envir); + envir_label_cellY->setObjectName(QString::fromUtf8("envir_label_cellY")); + envir_label_cellY->setMinimumSize(QSize(50, 23)); + + envir_layout_cell->addWidget(envir_label_cellY); + + envir_doubleSpinBox_cellY = new QDoubleSpinBox(envir); + envir_doubleSpinBox_cellY->setObjectName(QString::fromUtf8("envir_doubleSpinBox_cellY")); + sizePolicy.setHeightForWidth(envir_doubleSpinBox_cellY->sizePolicy().hasHeightForWidth()); + envir_doubleSpinBox_cellY->setSizePolicy(sizePolicy); + envir_doubleSpinBox_cellY->setMinimumSize(QSize(55, 23)); + envir_doubleSpinBox_cellY->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + envir_doubleSpinBox_cellY->setDecimals(4); + envir_doubleSpinBox_cellY->setMinimum(0.1); + envir_doubleSpinBox_cellY->setMaximum(999.99); + + envir_layout_cell->addWidget(envir_doubleSpinBox_cellY); + + envir_label_cellZ = new QLabel(envir); + envir_label_cellZ->setObjectName(QString::fromUtf8("envir_label_cellZ")); + envir_label_cellZ->setMinimumSize(QSize(50, 23)); + + envir_layout_cell->addWidget(envir_label_cellZ); + + envir_doubleSpinBox_cellZ = new QDoubleSpinBox(envir); + envir_doubleSpinBox_cellZ->setObjectName(QString::fromUtf8("envir_doubleSpinBox_cellZ")); + sizePolicy.setHeightForWidth(envir_doubleSpinBox_cellZ->sizePolicy().hasHeightForWidth()); + envir_doubleSpinBox_cellZ->setSizePolicy(sizePolicy); + envir_doubleSpinBox_cellZ->setMinimumSize(QSize(55, 23)); + envir_doubleSpinBox_cellZ->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + envir_doubleSpinBox_cellZ->setDecimals(4); + envir_doubleSpinBox_cellZ->setMinimum(0.1); + envir_doubleSpinBox_cellZ->setMaximum(999.99); + + envir_layout_cell->addWidget(envir_doubleSpinBox_cellZ); + + + verticalLayout_3->addLayout(envir_layout_cell); + + envir_layout_output = new QHBoxLayout(); + envir_layout_output->setSpacing(6); + envir_layout_output->setObjectName(QString::fromUtf8("envir_layout_output")); + envir_label_output = new QLabel(envir); + envir_label_output->setObjectName(QString::fromUtf8("envir_label_output")); + envir_label_output->setMinimumSize(QSize(110, 23)); + + envir_layout_output->addWidget(envir_label_output); + + envir_lineEdit_output = new QLineEdit(envir); + envir_lineEdit_output->setObjectName(QString::fromUtf8("envir_lineEdit_output")); + envir_lineEdit_output->setMinimumSize(QSize(280, 23)); + + envir_layout_output->addWidget(envir_lineEdit_output); + + envir_pushButton_output = new QPushButton(envir); + envir_pushButton_output->setObjectName(QString::fromUtf8("envir_pushButton_output")); + envir_pushButton_output->setMinimumSize(QSize(80, 23)); + envir_pushButton_output->setAutoDefault(true); + + envir_layout_output->addWidget(envir_pushButton_output); + + + verticalLayout_3->addLayout(envir_layout_output); + + envir_layout_opt_1 = new QHBoxLayout(); + envir_layout_opt_1->setSpacing(6); + envir_layout_opt_1->setObjectName(QString::fromUtf8("envir_layout_opt_1")); + envir_label_molecule = new QLabel(envir); + envir_label_molecule->setObjectName(QString::fromUtf8("envir_label_molecule")); + envir_label_molecule->setMinimumSize(QSize(110, 23)); + + envir_layout_opt_1->addWidget(envir_label_molecule); + + envir_spinBox_molecule = new QSpinBox(envir); + envir_spinBox_molecule->setObjectName(QString::fromUtf8("envir_spinBox_molecule")); + envir_spinBox_molecule->setMinimumSize(QSize(75, 23)); + envir_spinBox_molecule->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + envir_spinBox_molecule->setMinimum(1); + envir_spinBox_molecule->setMaximum(9999); + + envir_layout_opt_1->addWidget(envir_spinBox_molecule); + + horizontalSpacer_8 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + envir_layout_opt_1->addItem(horizontalSpacer_8); + + envir_label_radius = new QLabel(envir); + envir_label_radius->setObjectName(QString::fromUtf8("envir_label_radius")); + envir_label_radius->setMinimumSize(QSize(110, 23)); + + envir_layout_opt_1->addWidget(envir_label_radius); + + envir_doubleSpinBox_radius = new QDoubleSpinBox(envir); + envir_doubleSpinBox_radius->setObjectName(QString::fromUtf8("envir_doubleSpinBox_radius")); + envir_doubleSpinBox_radius->setMinimumSize(QSize(75, 23)); + envir_doubleSpinBox_radius->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + envir_doubleSpinBox_radius->setDecimals(3); + + envir_layout_opt_1->addWidget(envir_doubleSpinBox_radius); + + horizontalSpacer_9 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + envir_layout_opt_1->addItem(horizontalSpacer_9); + + + verticalLayout_3->addLayout(envir_layout_opt_1); + + envir_layout_opt_2 = new QHBoxLayout(); + envir_layout_opt_2->setSpacing(6); + envir_layout_opt_2->setObjectName(QString::fromUtf8("envir_layout_opt_2")); + envir_checkBox_log = new QCheckBox(envir); + envir_checkBox_log->setObjectName(QString::fromUtf8("envir_checkBox_log")); + envir_checkBox_log->setMinimumSize(QSize(110, 23)); + envir_checkBox_log->setChecked(true); + + envir_layout_opt_2->addWidget(envir_checkBox_log); + + envir_lineEdit_log = new QLineEdit(envir); + envir_lineEdit_log->setObjectName(QString::fromUtf8("envir_lineEdit_log")); + envir_lineEdit_log->setMinimumSize(QSize(173, 23)); + + envir_layout_opt_2->addWidget(envir_lineEdit_log); + + envir_pushButton_log = new QPushButton(envir); + envir_pushButton_log->setObjectName(QString::fromUtf8("envir_pushButton_log")); + envir_pushButton_log->setMinimumSize(QSize(80, 23)); + envir_pushButton_log->setAutoDefault(true); + + envir_layout_opt_2->addWidget(envir_pushButton_log); + + + verticalLayout_3->addLayout(envir_layout_opt_2); + + verticalSpacer_2 = new QSpacerItem(20, 177, QSizePolicy::Minimum, QSizePolicy::Expanding); + + verticalLayout_3->addItem(verticalSpacer_2); + + envir_layout_buttons = new QHBoxLayout(); + envir_layout_buttons->setSpacing(6); + envir_layout_buttons->setObjectName(QString::fromUtf8("envir_layout_buttons")); + envir_pushButton_clear = new QPushButton(envir); + envir_pushButton_clear->setObjectName(QString::fromUtf8("envir_pushButton_clear")); + envir_pushButton_clear->setMinimumSize(QSize(80, 23)); + envir_pushButton_clear->setAutoDefault(true); + + envir_layout_buttons->addWidget(envir_pushButton_clear); + + horizontalSpacer_10 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + envir_layout_buttons->addItem(horizontalSpacer_10); + + envir_pushButton_start = new QPushButton(envir); + envir_pushButton_start->setObjectName(QString::fromUtf8("envir_pushButton_start")); + envir_pushButton_start->setMinimumSize(QSize(80, 23)); + envir_pushButton_start->setMaximumSize(QSize(16777215, 16777215)); + envir_pushButton_start->setAutoDefault(true); + + envir_layout_buttons->addWidget(envir_pushButton_start); + + + verticalLayout_3->addLayout(envir_layout_buttons); + + tabWidget->addTab(envir, QString()); + radf = new QWidget(); + radf->setObjectName(QString::fromUtf8("radf")); + verticalLayout_4 = new QVBoxLayout(radf); + verticalLayout_4->setSpacing(6); + verticalLayout_4->setContentsMargins(11, 11, 11, 11); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + radf_layout_workDir = new QHBoxLayout(); + radf_layout_workDir->setSpacing(6); + radf_layout_workDir->setObjectName(QString::fromUtf8("radf_layout_workDir")); + radf_label_workDir = new QLabel(radf); + radf_label_workDir->setObjectName(QString::fromUtf8("radf_label_workDir")); + radf_label_workDir->setMinimumSize(QSize(110, 23)); + + radf_layout_workDir->addWidget(radf_label_workDir); + + radf_lineEdit_workDir = new QLineEdit(radf); + radf_lineEdit_workDir->setObjectName(QString::fromUtf8("radf_lineEdit_workDir")); + radf_lineEdit_workDir->setMinimumSize(QSize(280, 23)); + + radf_layout_workDir->addWidget(radf_lineEdit_workDir); + + radf_pushButton_workDir = new QPushButton(radf); + radf_pushButton_workDir->setObjectName(QString::fromUtf8("radf_pushButton_workDir")); + radf_pushButton_workDir->setMinimumSize(QSize(80, 23)); + radf_pushButton_workDir->setAutoDefault(true); + + radf_layout_workDir->addWidget(radf_pushButton_workDir); + + + verticalLayout_4->addLayout(radf_layout_workDir); + + radf_layout_input = new QHBoxLayout(); + radf_layout_input->setSpacing(6); + radf_layout_input->setObjectName(QString::fromUtf8("radf_layout_input")); + radf_label_input = new QLabel(radf); + radf_label_input->setObjectName(QString::fromUtf8("radf_label_input")); + radf_label_input->setMinimumSize(QSize(110, 23)); + + radf_layout_input->addWidget(radf_label_input); + + radf_lineEdit_input = new QLineEdit(radf); + radf_lineEdit_input->setObjectName(QString::fromUtf8("radf_lineEdit_input")); + radf_lineEdit_input->setMinimumSize(QSize(280, 23)); + + radf_layout_input->addWidget(radf_lineEdit_input); + + + verticalLayout_4->addLayout(radf_layout_input); + + radf_layout_steps = new QHBoxLayout(); + radf_layout_steps->setSpacing(6); + radf_layout_steps->setObjectName(QString::fromUtf8("radf_layout_steps")); + radf_label_steps = new QLabel(radf); + radf_label_steps->setObjectName(QString::fromUtf8("radf_label_steps")); + radf_label_steps->setMinimumSize(QSize(110, 23)); + + radf_layout_steps->addWidget(radf_label_steps); + + radf_label_stepsFirst = new QLabel(radf); + radf_label_stepsFirst->setObjectName(QString::fromUtf8("radf_label_stepsFirst")); + radf_label_stepsFirst->setMinimumSize(QSize(75, 23)); + + radf_layout_steps->addWidget(radf_label_stepsFirst); + + radf_spinBox_stepsFirst = new QSpinBox(radf); + radf_spinBox_stepsFirst->setObjectName(QString::fromUtf8("radf_spinBox_stepsFirst")); + radf_spinBox_stepsFirst->setMinimumSize(QSize(75, 23)); + radf_spinBox_stepsFirst->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_spinBox_stepsFirst->setMinimum(1); + radf_spinBox_stepsFirst->setMaximum(999); + + radf_layout_steps->addWidget(radf_spinBox_stepsFirst); + + horizontalSpacer_11 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + radf_layout_steps->addItem(horizontalSpacer_11); + + radf_label_stepsLast = new QLabel(radf); + radf_label_stepsLast->setObjectName(QString::fromUtf8("radf_label_stepsLast")); + radf_label_stepsLast->setMinimumSize(QSize(75, 23)); + + radf_layout_steps->addWidget(radf_label_stepsLast); + + radf_spinBox_stepsLast = new QSpinBox(radf); + radf_spinBox_stepsLast->setObjectName(QString::fromUtf8("radf_spinBox_stepsLast")); + radf_spinBox_stepsLast->setMinimumSize(QSize(75, 23)); + radf_spinBox_stepsLast->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_spinBox_stepsLast->setMinimum(1); + radf_spinBox_stepsLast->setMaximum(999); + + radf_layout_steps->addWidget(radf_spinBox_stepsLast); + + horizontalSpacer_12 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + radf_layout_steps->addItem(horizontalSpacer_12); + + + verticalLayout_4->addLayout(radf_layout_steps); + + radf_layout_cell = new QHBoxLayout(); + radf_layout_cell->setSpacing(6); + radf_layout_cell->setObjectName(QString::fromUtf8("radf_layout_cell")); + radf_label_cell = new QLabel(radf); + radf_label_cell->setObjectName(QString::fromUtf8("radf_label_cell")); + radf_label_cell->setMinimumSize(QSize(110, 23)); + + radf_layout_cell->addWidget(radf_label_cell); + + radf_label_cellX = new QLabel(radf); + radf_label_cellX->setObjectName(QString::fromUtf8("radf_label_cellX")); + radf_label_cellX->setMinimumSize(QSize(50, 23)); + + radf_layout_cell->addWidget(radf_label_cellX); + + radf_doubleSpinBox_cellX = new QDoubleSpinBox(radf); + radf_doubleSpinBox_cellX->setObjectName(QString::fromUtf8("radf_doubleSpinBox_cellX")); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_cellX->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_cellX->setSizePolicy(sizePolicy); + radf_doubleSpinBox_cellX->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_cellX->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_cellX->setDecimals(4); + radf_doubleSpinBox_cellX->setMinimum(0.1); + radf_doubleSpinBox_cellX->setMaximum(999.99); + + radf_layout_cell->addWidget(radf_doubleSpinBox_cellX); + + radf_label_cellY = new QLabel(radf); + radf_label_cellY->setObjectName(QString::fromUtf8("radf_label_cellY")); + radf_label_cellY->setMinimumSize(QSize(50, 23)); + + radf_layout_cell->addWidget(radf_label_cellY); + + radf_doubleSpinBox_cellY = new QDoubleSpinBox(radf); + radf_doubleSpinBox_cellY->setObjectName(QString::fromUtf8("radf_doubleSpinBox_cellY")); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_cellY->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_cellY->setSizePolicy(sizePolicy); + radf_doubleSpinBox_cellY->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_cellY->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_cellY->setDecimals(4); + radf_doubleSpinBox_cellY->setMinimum(0.1); + radf_doubleSpinBox_cellY->setMaximum(999.99); + + radf_layout_cell->addWidget(radf_doubleSpinBox_cellY); + + radf_label_cellZ = new QLabel(radf); + radf_label_cellZ->setObjectName(QString::fromUtf8("radf_label_cellZ")); + radf_label_cellZ->setMinimumSize(QSize(50, 23)); + + radf_layout_cell->addWidget(radf_label_cellZ); + + radf_doubleSpinBox_cellZ = new QDoubleSpinBox(radf); + radf_doubleSpinBox_cellZ->setObjectName(QString::fromUtf8("radf_doubleSpinBox_cellZ")); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_cellZ->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_cellZ->setSizePolicy(sizePolicy); + radf_doubleSpinBox_cellZ->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_cellZ->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_cellZ->setDecimals(4); + radf_doubleSpinBox_cellZ->setMinimum(0.1); + radf_doubleSpinBox_cellZ->setMaximum(999.99); + + radf_layout_cell->addWidget(radf_doubleSpinBox_cellZ); + + + verticalLayout_4->addLayout(radf_layout_cell); + + radf_layout_output = new QHBoxLayout(); + radf_layout_output->setSpacing(6); + radf_layout_output->setObjectName(QString::fromUtf8("radf_layout_output")); + radf_label_output = new QLabel(radf); + radf_label_output->setObjectName(QString::fromUtf8("radf_label_output")); + radf_label_output->setMinimumSize(QSize(110, 23)); + + radf_layout_output->addWidget(radf_label_output); + + radf_lineEdit_output = new QLineEdit(radf); + radf_lineEdit_output->setObjectName(QString::fromUtf8("radf_lineEdit_output")); + radf_lineEdit_output->setMinimumSize(QSize(280, 23)); + + radf_layout_output->addWidget(radf_lineEdit_output); + + radf_pushButton_output = new QPushButton(radf); + radf_pushButton_output->setObjectName(QString::fromUtf8("radf_pushButton_output")); + radf_pushButton_output->setMinimumSize(QSize(80, 23)); + radf_pushButton_output->setAutoDefault(true); + + radf_layout_output->addWidget(radf_pushButton_output); + + + verticalLayout_4->addLayout(radf_layout_output); + + radf_layout_atom1 = new QHBoxLayout(); + radf_layout_atom1->setSpacing(6); + radf_layout_atom1->setObjectName(QString::fromUtf8("radf_layout_atom1")); + radf_comboBox_atom = new QComboBox(radf); + radf_comboBox_atom->setObjectName(QString::fromUtf8("radf_comboBox_atom")); + radf_comboBox_atom->setMinimumSize(QSize(150, 23)); + + radf_layout_atom1->addWidget(radf_comboBox_atom); + + radf_label_atoms0 = new QLabel(radf); + radf_label_atoms0->setObjectName(QString::fromUtf8("radf_label_atoms0")); + sizePolicy1.setHeightForWidth(radf_label_atoms0->sizePolicy().hasHeightForWidth()); + radf_label_atoms0->setSizePolicy(sizePolicy1); + radf_label_atoms0->setMinimumSize(QSize(45, 23)); + + radf_layout_atom1->addWidget(radf_label_atoms0); + + radf_spinBox_atoms0 = new QSpinBox(radf); + radf_spinBox_atoms0->setObjectName(QString::fromUtf8("radf_spinBox_atoms0")); + sizePolicy.setHeightForWidth(radf_spinBox_atoms0->sizePolicy().hasHeightForWidth()); + radf_spinBox_atoms0->setSizePolicy(sizePolicy); + radf_spinBox_atoms0->setMinimumSize(QSize(50, 23)); + radf_spinBox_atoms0->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + radf_layout_atom1->addWidget(radf_spinBox_atoms0); + + radf_label_atoms1 = new QLabel(radf); + radf_label_atoms1->setObjectName(QString::fromUtf8("radf_label_atoms1")); + sizePolicy1.setHeightForWidth(radf_label_atoms1->sizePolicy().hasHeightForWidth()); + radf_label_atoms1->setSizePolicy(sizePolicy1); + radf_label_atoms1->setMinimumSize(QSize(45, 23)); + + radf_layout_atom1->addWidget(radf_label_atoms1); + + radf_spinBox_atoms1 = new QSpinBox(radf); + radf_spinBox_atoms1->setObjectName(QString::fromUtf8("radf_spinBox_atoms1")); + radf_spinBox_atoms1->setEnabled(false); + sizePolicy.setHeightForWidth(radf_spinBox_atoms1->sizePolicy().hasHeightForWidth()); + radf_spinBox_atoms1->setSizePolicy(sizePolicy); + radf_spinBox_atoms1->setMinimumSize(QSize(50, 23)); + radf_spinBox_atoms1->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + radf_layout_atom1->addWidget(radf_spinBox_atoms1); + + radf_label_atoms2 = new QLabel(radf); + radf_label_atoms2->setObjectName(QString::fromUtf8("radf_label_atoms2")); + sizePolicy1.setHeightForWidth(radf_label_atoms2->sizePolicy().hasHeightForWidth()); + radf_label_atoms2->setSizePolicy(sizePolicy1); + radf_label_atoms2->setMinimumSize(QSize(45, 23)); + + radf_layout_atom1->addWidget(radf_label_atoms2); + + radf_spinBox_atoms2 = new QSpinBox(radf); + radf_spinBox_atoms2->setObjectName(QString::fromUtf8("radf_spinBox_atoms2")); + radf_spinBox_atoms2->setEnabled(false); + sizePolicy.setHeightForWidth(radf_spinBox_atoms2->sizePolicy().hasHeightForWidth()); + radf_spinBox_atoms2->setSizePolicy(sizePolicy); + radf_spinBox_atoms2->setMinimumSize(QSize(50, 23)); + radf_spinBox_atoms2->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + radf_layout_atom1->addWidget(radf_spinBox_atoms2); + + + verticalLayout_4->addLayout(radf_layout_atom1); + + radf_layout_atom2 = new QHBoxLayout(); + radf_layout_atom2->setSpacing(6); + radf_layout_atom2->setObjectName(QString::fromUtf8("radf_layout_atom2")); + horizontalSpacer_14 = new QSpacerItem(155, 23, QSizePolicy::Fixed, QSizePolicy::Minimum); + + radf_layout_atom2->addItem(horizontalSpacer_14); + + radf_label_atoms3 = new QLabel(radf); + radf_label_atoms3->setObjectName(QString::fromUtf8("radf_label_atoms3")); + sizePolicy1.setHeightForWidth(radf_label_atoms3->sizePolicy().hasHeightForWidth()); + radf_label_atoms3->setSizePolicy(sizePolicy1); + radf_label_atoms3->setMinimumSize(QSize(45, 23)); + + radf_layout_atom2->addWidget(radf_label_atoms3); + + radf_spinBox_atoms3 = new QSpinBox(radf); + radf_spinBox_atoms3->setObjectName(QString::fromUtf8("radf_spinBox_atoms3")); + sizePolicy.setHeightForWidth(radf_spinBox_atoms3->sizePolicy().hasHeightForWidth()); + radf_spinBox_atoms3->setSizePolicy(sizePolicy); + radf_spinBox_atoms3->setMinimumSize(QSize(50, 23)); + radf_spinBox_atoms3->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + radf_layout_atom2->addWidget(radf_spinBox_atoms3); + + radf_label_atoms4 = new QLabel(radf); + radf_label_atoms4->setObjectName(QString::fromUtf8("radf_label_atoms4")); + sizePolicy1.setHeightForWidth(radf_label_atoms4->sizePolicy().hasHeightForWidth()); + radf_label_atoms4->setSizePolicy(sizePolicy1); + radf_label_atoms4->setMinimumSize(QSize(45, 23)); + + radf_layout_atom2->addWidget(radf_label_atoms4); + + radf_spinBox_atoms4 = new QSpinBox(radf); + radf_spinBox_atoms4->setObjectName(QString::fromUtf8("radf_spinBox_atoms4")); + radf_spinBox_atoms4->setEnabled(false); + sizePolicy.setHeightForWidth(radf_spinBox_atoms4->sizePolicy().hasHeightForWidth()); + radf_spinBox_atoms4->setSizePolicy(sizePolicy); + radf_spinBox_atoms4->setMinimumSize(QSize(50, 23)); + radf_spinBox_atoms4->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + radf_layout_atom2->addWidget(radf_spinBox_atoms4); + + radf_label_atoms5 = new QLabel(radf); + radf_label_atoms5->setObjectName(QString::fromUtf8("radf_label_atoms5")); + sizePolicy1.setHeightForWidth(radf_label_atoms5->sizePolicy().hasHeightForWidth()); + radf_label_atoms5->setSizePolicy(sizePolicy1); + radf_label_atoms5->setMinimumSize(QSize(45, 23)); + + radf_layout_atom2->addWidget(radf_label_atoms5); + + radf_spinBox_atoms5 = new QSpinBox(radf); + radf_spinBox_atoms5->setObjectName(QString::fromUtf8("radf_spinBox_atoms5")); + radf_spinBox_atoms5->setEnabled(false); + sizePolicy.setHeightForWidth(radf_spinBox_atoms5->sizePolicy().hasHeightForWidth()); + radf_spinBox_atoms5->setSizePolicy(sizePolicy); + radf_spinBox_atoms5->setMinimumSize(QSize(50, 23)); + radf_spinBox_atoms5->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + + radf_layout_atom2->addWidget(radf_spinBox_atoms5); + + + verticalLayout_4->addLayout(radf_layout_atom2); + + radf_layout_rad = new QHBoxLayout(); + radf_layout_rad->setSpacing(6); + radf_layout_rad->setObjectName(QString::fromUtf8("radf_layout_rad")); + radf_label_rad = new QLabel(radf); + radf_label_rad->setObjectName(QString::fromUtf8("radf_label_rad")); + radf_label_rad->setMinimumSize(QSize(110, 23)); + + radf_layout_rad->addWidget(radf_label_rad); + + radf_label_radMin = new QLabel(radf); + radf_label_radMin->setObjectName(QString::fromUtf8("radf_label_radMin")); + radf_label_radMin->setMinimumSize(QSize(50, 23)); + + radf_layout_rad->addWidget(radf_label_radMin); + + radf_doubleSpinBox_radMin = new QDoubleSpinBox(radf); + radf_doubleSpinBox_radMin->setObjectName(QString::fromUtf8("radf_doubleSpinBox_radMin")); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_radMin->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_radMin->setSizePolicy(sizePolicy); + radf_doubleSpinBox_radMin->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_radMin->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_radMin->setDecimals(3); + radf_doubleSpinBox_radMin->setMinimum(0); + radf_doubleSpinBox_radMin->setMaximum(999.99); + radf_doubleSpinBox_radMin->setValue(2); + + radf_layout_rad->addWidget(radf_doubleSpinBox_radMin); + + radf_label_radMax = new QLabel(radf); + radf_label_radMax->setObjectName(QString::fromUtf8("radf_label_radMax")); + radf_label_radMax->setMinimumSize(QSize(50, 23)); + + radf_layout_rad->addWidget(radf_label_radMax); + + radf_doubleSpinBox_radMax = new QDoubleSpinBox(radf); + radf_doubleSpinBox_radMax->setObjectName(QString::fromUtf8("radf_doubleSpinBox_radMax")); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_radMax->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_radMax->setSizePolicy(sizePolicy); + radf_doubleSpinBox_radMax->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_radMax->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_radMax->setDecimals(3); + radf_doubleSpinBox_radMax->setMinimum(0.1); + radf_doubleSpinBox_radMax->setMaximum(999.99); + radf_doubleSpinBox_radMax->setValue(15); + + radf_layout_rad->addWidget(radf_doubleSpinBox_radMax); + + radf_label_radStep = new QLabel(radf); + radf_label_radStep->setObjectName(QString::fromUtf8("radf_label_radStep")); + radf_label_radStep->setMinimumSize(QSize(50, 23)); + + radf_layout_rad->addWidget(radf_label_radStep); + + radf_doubleSpinBox_radStep = new QDoubleSpinBox(radf); + radf_doubleSpinBox_radStep->setObjectName(QString::fromUtf8("radf_doubleSpinBox_radStep")); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_radStep->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_radStep->setSizePolicy(sizePolicy); + radf_doubleSpinBox_radStep->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_radStep->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_radStep->setDecimals(3); + radf_doubleSpinBox_radStep->setMinimum(0.001); + radf_doubleSpinBox_radStep->setMaximum(1); + radf_doubleSpinBox_radStep->setSingleStep(0.01); + radf_doubleSpinBox_radStep->setValue(0.02); + + radf_layout_rad->addWidget(radf_doubleSpinBox_radStep); + + + verticalLayout_4->addLayout(radf_layout_rad); + + radf_layout_ang = new QHBoxLayout(); + radf_layout_ang->setSpacing(6); + radf_layout_ang->setObjectName(QString::fromUtf8("radf_layout_ang")); + radf_checkBox_ang = new QCheckBox(radf); + radf_checkBox_ang->setObjectName(QString::fromUtf8("radf_checkBox_ang")); + radf_checkBox_ang->setMinimumSize(QSize(110, 23)); + + radf_layout_ang->addWidget(radf_checkBox_ang); + + radf_label_angMin = new QLabel(radf); + radf_label_angMin->setObjectName(QString::fromUtf8("radf_label_angMin")); + radf_label_angMin->setMinimumSize(QSize(50, 23)); + + radf_layout_ang->addWidget(radf_label_angMin); + + radf_doubleSpinBox_angMin = new QDoubleSpinBox(radf); + radf_doubleSpinBox_angMin->setObjectName(QString::fromUtf8("radf_doubleSpinBox_angMin")); + radf_doubleSpinBox_angMin->setEnabled(false); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_angMin->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_angMin->setSizePolicy(sizePolicy); + radf_doubleSpinBox_angMin->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_angMin->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_angMin->setDecimals(2); + radf_doubleSpinBox_angMin->setMinimum(0); + radf_doubleSpinBox_angMin->setMaximum(90); + radf_doubleSpinBox_angMin->setSingleStep(15); + radf_doubleSpinBox_angMin->setValue(0); + + radf_layout_ang->addWidget(radf_doubleSpinBox_angMin); + + radf_label_angMax = new QLabel(radf); + radf_label_angMax->setObjectName(QString::fromUtf8("radf_label_angMax")); + radf_label_angMax->setMinimumSize(QSize(50, 23)); + + radf_layout_ang->addWidget(radf_label_angMax); + + radf_doubleSpinBox_angMax = new QDoubleSpinBox(radf); + radf_doubleSpinBox_angMax->setObjectName(QString::fromUtf8("radf_doubleSpinBox_angMax")); + radf_doubleSpinBox_angMax->setEnabled(false); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_angMax->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_angMax->setSizePolicy(sizePolicy); + radf_doubleSpinBox_angMax->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_angMax->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_angMax->setDecimals(2); + radf_doubleSpinBox_angMax->setMinimum(0.1); + radf_doubleSpinBox_angMax->setMaximum(90); + radf_doubleSpinBox_angMax->setSingleStep(15); + radf_doubleSpinBox_angMax->setValue(90); + + radf_layout_ang->addWidget(radf_doubleSpinBox_angMax); + + radf_label_angStep = new QLabel(radf); + radf_label_angStep->setObjectName(QString::fromUtf8("radf_label_angStep")); + radf_label_angStep->setMinimumSize(QSize(50, 23)); + + radf_layout_ang->addWidget(radf_label_angStep); + + radf_doubleSpinBox_angStep = new QDoubleSpinBox(radf); + radf_doubleSpinBox_angStep->setObjectName(QString::fromUtf8("radf_doubleSpinBox_angStep")); + radf_doubleSpinBox_angStep->setEnabled(false); + sizePolicy.setHeightForWidth(radf_doubleSpinBox_angStep->sizePolicy().hasHeightForWidth()); + radf_doubleSpinBox_angStep->setSizePolicy(sizePolicy); + radf_doubleSpinBox_angStep->setMinimumSize(QSize(55, 23)); + radf_doubleSpinBox_angStep->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + radf_doubleSpinBox_angStep->setDecimals(2); + radf_doubleSpinBox_angStep->setMinimum(0.1); + radf_doubleSpinBox_angStep->setMaximum(90); + radf_doubleSpinBox_angStep->setSingleStep(15); + radf_doubleSpinBox_angStep->setValue(15); + + radf_layout_ang->addWidget(radf_doubleSpinBox_angStep); + + + verticalLayout_4->addLayout(radf_layout_ang); + + radf_layout_opt = new QHBoxLayout(); + radf_layout_opt->setSpacing(6); + radf_layout_opt->setObjectName(QString::fromUtf8("radf_layout_opt")); + radf_checkBox_matrix = new QCheckBox(radf); + radf_checkBox_matrix->setObjectName(QString::fromUtf8("radf_checkBox_matrix")); + radf_checkBox_matrix->setMinimumSize(QSize(110, 23)); + + radf_layout_opt->addWidget(radf_checkBox_matrix); + + radf_checkBox_log = new QCheckBox(radf); + radf_checkBox_log->setObjectName(QString::fromUtf8("radf_checkBox_log")); + radf_checkBox_log->setMinimumSize(QSize(110, 23)); + radf_checkBox_log->setChecked(true); + + radf_layout_opt->addWidget(radf_checkBox_log); + + radf_lineEdit_log = new QLineEdit(radf); + radf_lineEdit_log->setObjectName(QString::fromUtf8("radf_lineEdit_log")); + radf_lineEdit_log->setMinimumSize(QSize(150, 23)); + + radf_layout_opt->addWidget(radf_lineEdit_log); + + radf_pushButton_log = new QPushButton(radf); + radf_pushButton_log->setObjectName(QString::fromUtf8("radf_pushButton_log")); + radf_pushButton_log->setMinimumSize(QSize(80, 23)); + radf_pushButton_log->setAutoDefault(true); + + radf_layout_opt->addWidget(radf_pushButton_log); + + + verticalLayout_4->addLayout(radf_layout_opt); + + verticalSpacer_3 = new QSpacerItem(20, 47, QSizePolicy::Minimum, QSizePolicy::Expanding); + + verticalLayout_4->addItem(verticalSpacer_3); + + radf_layout_buttons = new QHBoxLayout(); + radf_layout_buttons->setSpacing(6); + radf_layout_buttons->setObjectName(QString::fromUtf8("radf_layout_buttons")); + radf_pushButton_clear = new QPushButton(radf); + radf_pushButton_clear->setObjectName(QString::fromUtf8("radf_pushButton_clear")); + radf_pushButton_clear->setMinimumSize(QSize(80, 23)); + radf_pushButton_clear->setAutoDefault(true); + + radf_layout_buttons->addWidget(radf_pushButton_clear); + + horizontalSpacer_13 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + radf_layout_buttons->addItem(horizontalSpacer_13); + + radf_pushButton_start = new QPushButton(radf); + radf_pushButton_start->setObjectName(QString::fromUtf8("radf_pushButton_start")); + radf_pushButton_start->setMinimumSize(QSize(80, 23)); + radf_pushButton_start->setMaximumSize(QSize(16777215, 16777215)); + radf_pushButton_start->setAutoDefault(true); + + radf_layout_buttons->addWidget(radf_pushButton_start); + + + verticalLayout_4->addLayout(radf_layout_buttons); + + tabWidget->addTab(radf, QString()); + pdb = new QWidget(); + pdb->setObjectName(QString::fromUtf8("pdb")); + verticalLayout_5 = new QVBoxLayout(pdb); + verticalLayout_5->setSpacing(6); + verticalLayout_5->setContentsMargins(11, 11, 11, 11); + verticalLayout_5->setObjectName(QString::fromUtf8("verticalLayout_5")); + pdb_comboBox_mode = new QComboBox(pdb); + pdb_comboBox_mode->setObjectName(QString::fromUtf8("pdb_comboBox_mode")); + + verticalLayout_5->addWidget(pdb_comboBox_mode); + + pdb_layout_workDir = new QHBoxLayout(); + pdb_layout_workDir->setSpacing(6); + pdb_layout_workDir->setObjectName(QString::fromUtf8("pdb_layout_workDir")); + pdb_label_workDir = new QLabel(pdb); + pdb_label_workDir->setObjectName(QString::fromUtf8("pdb_label_workDir")); + pdb_label_workDir->setMinimumSize(QSize(110, 23)); + + pdb_layout_workDir->addWidget(pdb_label_workDir); + + pdb_lineEdit_workDir = new QLineEdit(pdb); + pdb_lineEdit_workDir->setObjectName(QString::fromUtf8("pdb_lineEdit_workDir")); + pdb_lineEdit_workDir->setMinimumSize(QSize(280, 23)); + + pdb_layout_workDir->addWidget(pdb_lineEdit_workDir); + + pdb_pushButton_workDir = new QPushButton(pdb); + pdb_pushButton_workDir->setObjectName(QString::fromUtf8("pdb_pushButton_workDir")); + pdb_pushButton_workDir->setMinimumSize(QSize(80, 23)); + pdb_pushButton_workDir->setAutoDefault(true); + + pdb_layout_workDir->addWidget(pdb_pushButton_workDir); + + + verticalLayout_5->addLayout(pdb_layout_workDir); + + pdb_layout_input = new QHBoxLayout(); + pdb_layout_input->setSpacing(6); + pdb_layout_input->setObjectName(QString::fromUtf8("pdb_layout_input")); + pdb_label_input = new QLabel(pdb); + pdb_label_input->setObjectName(QString::fromUtf8("pdb_label_input")); + pdb_label_input->setMinimumSize(QSize(110, 23)); + + pdb_layout_input->addWidget(pdb_label_input); + + pdb_lineEdit_input = new QLineEdit(pdb); + pdb_lineEdit_input->setObjectName(QString::fromUtf8("pdb_lineEdit_input")); + pdb_lineEdit_input->setMinimumSize(QSize(280, 23)); + + pdb_layout_input->addWidget(pdb_lineEdit_input); + + pdb_pushButton_input = new QPushButton(pdb); + pdb_pushButton_input->setObjectName(QString::fromUtf8("pdb_pushButton_input")); + pdb_pushButton_input->setMinimumSize(QSize(80, 23)); + pdb_pushButton_input->setAutoDefault(true); + + pdb_layout_input->addWidget(pdb_pushButton_input); + + + verticalLayout_5->addLayout(pdb_layout_input); + + pdb_layout_agl = new QHBoxLayout(); + pdb_layout_agl->setSpacing(6); + pdb_layout_agl->setObjectName(QString::fromUtf8("pdb_layout_agl")); + pdb_label_agl = new QLabel(pdb); + pdb_label_agl->setObjectName(QString::fromUtf8("pdb_label_agl")); + pdb_label_agl->setMinimumSize(QSize(150, 23)); + + pdb_layout_agl->addWidget(pdb_label_agl); + + pdb_lineEdit_agl = new QLineEdit(pdb); + pdb_lineEdit_agl->setObjectName(QString::fromUtf8("pdb_lineEdit_agl")); + pdb_lineEdit_agl->setMinimumSize(QSize(280, 23)); + + pdb_layout_agl->addWidget(pdb_lineEdit_agl); + + pdb_pushButton_agl = new QPushButton(pdb); + pdb_pushButton_agl->setObjectName(QString::fromUtf8("pdb_pushButton_agl")); + pdb_pushButton_agl->setMinimumSize(QSize(80, 23)); + pdb_pushButton_agl->setAutoDefault(true); + + pdb_layout_agl->addWidget(pdb_pushButton_agl); + + + verticalLayout_5->addLayout(pdb_layout_agl); + + pdb_layout_cell = new QHBoxLayout(); + pdb_layout_cell->setSpacing(6); + pdb_layout_cell->setObjectName(QString::fromUtf8("pdb_layout_cell")); + pdb_label_cell = new QLabel(pdb); + pdb_label_cell->setObjectName(QString::fromUtf8("pdb_label_cell")); + pdb_label_cell->setMinimumSize(QSize(110, 23)); + + pdb_layout_cell->addWidget(pdb_label_cell); + + pdb_label_cellX = new QLabel(pdb); + pdb_label_cellX->setObjectName(QString::fromUtf8("pdb_label_cellX")); + pdb_label_cellX->setMinimumSize(QSize(50, 23)); + + pdb_layout_cell->addWidget(pdb_label_cellX); + + pdb_doubleSpinBox_cellX = new QDoubleSpinBox(pdb); + pdb_doubleSpinBox_cellX->setObjectName(QString::fromUtf8("pdb_doubleSpinBox_cellX")); + sizePolicy.setHeightForWidth(pdb_doubleSpinBox_cellX->sizePolicy().hasHeightForWidth()); + pdb_doubleSpinBox_cellX->setSizePolicy(sizePolicy); + pdb_doubleSpinBox_cellX->setMinimumSize(QSize(55, 23)); + pdb_doubleSpinBox_cellX->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + pdb_doubleSpinBox_cellX->setDecimals(4); + pdb_doubleSpinBox_cellX->setMinimum(0.1); + pdb_doubleSpinBox_cellX->setMaximum(999.99); + + pdb_layout_cell->addWidget(pdb_doubleSpinBox_cellX); + + pdb_label_cellY = new QLabel(pdb); + pdb_label_cellY->setObjectName(QString::fromUtf8("pdb_label_cellY")); + pdb_label_cellY->setMinimumSize(QSize(50, 23)); + + pdb_layout_cell->addWidget(pdb_label_cellY); + + pdb_doubleSpinBox_cellY = new QDoubleSpinBox(pdb); + pdb_doubleSpinBox_cellY->setObjectName(QString::fromUtf8("pdb_doubleSpinBox_cellY")); + sizePolicy.setHeightForWidth(pdb_doubleSpinBox_cellY->sizePolicy().hasHeightForWidth()); + pdb_doubleSpinBox_cellY->setSizePolicy(sizePolicy); + pdb_doubleSpinBox_cellY->setMinimumSize(QSize(55, 23)); + pdb_doubleSpinBox_cellY->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + pdb_doubleSpinBox_cellY->setDecimals(4); + pdb_doubleSpinBox_cellY->setMinimum(0.1); + pdb_doubleSpinBox_cellY->setMaximum(999.99); + + pdb_layout_cell->addWidget(pdb_doubleSpinBox_cellY); + + pdb_label_cellZ = new QLabel(pdb); + pdb_label_cellZ->setObjectName(QString::fromUtf8("pdb_label_cellZ")); + pdb_label_cellZ->setMinimumSize(QSize(50, 23)); + + pdb_layout_cell->addWidget(pdb_label_cellZ); + + pdb_doubleSpinBox_cellZ = new QDoubleSpinBox(pdb); + pdb_doubleSpinBox_cellZ->setObjectName(QString::fromUtf8("pdb_doubleSpinBox_cellZ")); + sizePolicy.setHeightForWidth(pdb_doubleSpinBox_cellZ->sizePolicy().hasHeightForWidth()); + pdb_doubleSpinBox_cellZ->setSizePolicy(sizePolicy); + pdb_doubleSpinBox_cellZ->setMinimumSize(QSize(55, 23)); + pdb_doubleSpinBox_cellZ->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + pdb_doubleSpinBox_cellZ->setDecimals(4); + pdb_doubleSpinBox_cellZ->setMinimum(0.1); + pdb_doubleSpinBox_cellZ->setMaximum(999.99); + + pdb_layout_cell->addWidget(pdb_doubleSpinBox_cellZ); + + + verticalLayout_5->addLayout(pdb_layout_cell); + + pdb_layout_output = new QHBoxLayout(); + pdb_layout_output->setSpacing(6); + pdb_layout_output->setObjectName(QString::fromUtf8("pdb_layout_output")); + pdb_label_output = new QLabel(pdb); + pdb_label_output->setObjectName(QString::fromUtf8("pdb_label_output")); + pdb_label_output->setMinimumSize(QSize(110, 23)); + + pdb_layout_output->addWidget(pdb_label_output); + + pdb_lineEdit_output = new QLineEdit(pdb); + pdb_lineEdit_output->setObjectName(QString::fromUtf8("pdb_lineEdit_output")); + pdb_lineEdit_output->setMinimumSize(QSize(280, 23)); + + pdb_layout_output->addWidget(pdb_lineEdit_output); + + pdb_pushButton_output = new QPushButton(pdb); + pdb_pushButton_output->setObjectName(QString::fromUtf8("pdb_pushButton_output")); + pdb_pushButton_output->setMinimumSize(QSize(80, 23)); + pdb_pushButton_output->setAutoDefault(true); + + pdb_layout_output->addWidget(pdb_pushButton_output); + + + verticalLayout_5->addLayout(pdb_layout_output); + + pdb_layout_opt = new QHBoxLayout(); + pdb_layout_opt->setSpacing(6); + pdb_layout_opt->setObjectName(QString::fromUtf8("pdb_layout_opt")); + pdb_checkBox_log = new QCheckBox(pdb); + pdb_checkBox_log->setObjectName(QString::fromUtf8("pdb_checkBox_log")); + pdb_checkBox_log->setMinimumSize(QSize(110, 23)); + pdb_checkBox_log->setChecked(true); + + pdb_layout_opt->addWidget(pdb_checkBox_log); + + pdb_lineEdit_log = new QLineEdit(pdb); + pdb_lineEdit_log->setObjectName(QString::fromUtf8("pdb_lineEdit_log")); + pdb_lineEdit_log->setMinimumSize(QSize(173, 23)); + + pdb_layout_opt->addWidget(pdb_lineEdit_log); + + pdb_pushButton_log = new QPushButton(pdb); + pdb_pushButton_log->setObjectName(QString::fromUtf8("pdb_pushButton_log")); + pdb_pushButton_log->setMinimumSize(QSize(80, 23)); + pdb_pushButton_log->setAutoDefault(true); + + pdb_layout_opt->addWidget(pdb_pushButton_log); + + + verticalLayout_5->addLayout(pdb_layout_opt); + + verticalSpacer_4 = new QSpacerItem(20, 147, QSizePolicy::Minimum, QSizePolicy::Expanding); + + verticalLayout_5->addItem(verticalSpacer_4); + + pdb_layout_buttons = new QHBoxLayout(); + pdb_layout_buttons->setSpacing(6); + pdb_layout_buttons->setObjectName(QString::fromUtf8("pdb_layout_buttons")); + pdb_pushButton_clear = new QPushButton(pdb); + pdb_pushButton_clear->setObjectName(QString::fromUtf8("pdb_pushButton_clear")); + pdb_pushButton_clear->setMinimumSize(QSize(80, 23)); + pdb_pushButton_clear->setAutoDefault(true); + + pdb_layout_buttons->addWidget(pdb_pushButton_clear); + + horizontalSpacer_15 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + pdb_layout_buttons->addItem(horizontalSpacer_15); + + pdb_pushButton_start = new QPushButton(pdb); + pdb_pushButton_start->setObjectName(QString::fromUtf8("pdb_pushButton_start")); + pdb_pushButton_start->setMinimumSize(QSize(80, 23)); + pdb_pushButton_start->setMaximumSize(QSize(16777215, 16777215)); + pdb_pushButton_start->setAutoDefault(true); + + pdb_layout_buttons->addWidget(pdb_pushButton_start); + + + verticalLayout_5->addLayout(pdb_layout_buttons); + + tabWidget->addTab(pdb, QString()); + + gridLayout->addWidget(tabWidget, 0, 1, 1, 1); + + MainWindow->setCentralWidget(centralWidget); + menuBar = new QMenuBar(MainWindow); + menuBar->setObjectName(QString::fromUtf8("menuBar")); + menuBar->setGeometry(QRect(0, 0, 564, 20)); + menuMenu = new QMenu(menuBar); + menuMenu->setObjectName(QString::fromUtf8("menuMenu")); + menuHelp = new QMenu(menuBar); + menuHelp->setObjectName(QString::fromUtf8("menuHelp")); + MainWindow->setMenuBar(menuBar); + mainToolBar = new QToolBar(MainWindow); + mainToolBar->setObjectName(QString::fromUtf8("mainToolBar")); + MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar); + statusBar = new QStatusBar(MainWindow); + statusBar->setObjectName(QString::fromUtf8("statusBar")); + MainWindow->setStatusBar(statusBar); + QWidget::setTabOrder(tabWidget, trj_lineEdit_workDir); + QWidget::setTabOrder(trj_lineEdit_workDir, trj_pushButton_workDir); + QWidget::setTabOrder(trj_pushButton_workDir, trj_lineEdit_input); + QWidget::setTabOrder(trj_lineEdit_input, trj_pushButton_input); + QWidget::setTabOrder(trj_pushButton_input, trj_comboBox_type); + QWidget::setTabOrder(trj_comboBox_type, trj_spinBox_steps); + QWidget::setTabOrder(trj_spinBox_steps, trj_lineEdit_atoms); + QWidget::setTabOrder(trj_lineEdit_atoms, trj_pushButton_atoms); + QWidget::setTabOrder(trj_pushButton_atoms, trj_lineEdit_output); + QWidget::setTabOrder(trj_lineEdit_output, trj_spinBox_totalTypes); + QWidget::setTabOrder(trj_spinBox_totalTypes, trj_checkBox_log); + QWidget::setTabOrder(trj_checkBox_log, trj_lineEdit_log); + QWidget::setTabOrder(trj_lineEdit_log, trj_pushButton_log); + QWidget::setTabOrder(trj_pushButton_log, trj_pushButton_clear); + QWidget::setTabOrder(trj_pushButton_clear, trj_pushButton_start); + QWidget::setTabOrder(trj_pushButton_start, statgen_lineEdit_workDir); + QWidget::setTabOrder(statgen_lineEdit_workDir, statgen_pushButton_workDir); + QWidget::setTabOrder(statgen_pushButton_workDir, statgen_lineEdit_input); + QWidget::setTabOrder(statgen_lineEdit_input, statgen_spinBox_stepsFirst); + QWidget::setTabOrder(statgen_spinBox_stepsFirst, statgen_spinBox_stepsLast); + QWidget::setTabOrder(statgen_spinBox_stepsLast, statgen_doubleSpinBox_cellX); + QWidget::setTabOrder(statgen_doubleSpinBox_cellX, statgen_doubleSpinBox_cellY); + QWidget::setTabOrder(statgen_doubleSpinBox_cellY, statgen_doubleSpinBox_cellZ); + QWidget::setTabOrder(statgen_doubleSpinBox_cellZ, statgen_spinBox_atoms0); + QWidget::setTabOrder(statgen_spinBox_atoms0, statgen_checkBox_atoms1); + QWidget::setTabOrder(statgen_checkBox_atoms1, statgen_spinBox_atoms1); + QWidget::setTabOrder(statgen_spinBox_atoms1, statgen_checkBox_atoms2); + QWidget::setTabOrder(statgen_checkBox_atoms2, statgen_spinBox_atoms2); + QWidget::setTabOrder(statgen_spinBox_atoms2, statgen_checkBox_atoms3); + QWidget::setTabOrder(statgen_checkBox_atoms3, statgen_spinBox_atoms3); + QWidget::setTabOrder(statgen_spinBox_atoms3, statgen_comboBox_int); + QWidget::setTabOrder(statgen_comboBox_int, statgen_doubleSpinBox_int); + QWidget::setTabOrder(statgen_doubleSpinBox_int, stagen_pushButton_intSave); + QWidget::setTabOrder(stagen_pushButton_intSave, statgen_pushButton_intAdd); + QWidget::setTabOrder(statgen_pushButton_intAdd, statgen_listWidget_int); + QWidget::setTabOrder(statgen_listWidget_int, stagen_pushButton_intRem); + QWidget::setTabOrder(stagen_pushButton_intRem, statgen_lineEdit_output); + QWidget::setTabOrder(statgen_lineEdit_output, statgen_pushButton_output); + QWidget::setTabOrder(statgen_pushButton_output, statgen_checkBox_depth); + QWidget::setTabOrder(statgen_checkBox_depth, statgen_spinBox_depth); + QWidget::setTabOrder(statgen_spinBox_depth, statgen_checkBox_log); + QWidget::setTabOrder(statgen_checkBox_log, statgen_lineEdit_log); + QWidget::setTabOrder(statgen_lineEdit_log, statgen_pushButton_log); + QWidget::setTabOrder(statgen_pushButton_log, statgen_pushButton_clear); + QWidget::setTabOrder(statgen_pushButton_clear, statgen_pushButton_start); + QWidget::setTabOrder(statgen_pushButton_start, envir_lineEdit_workDir); + QWidget::setTabOrder(envir_lineEdit_workDir, envir_pushButton_workDir); + QWidget::setTabOrder(envir_pushButton_workDir, envir_lineEdit_input); + QWidget::setTabOrder(envir_lineEdit_input, envir_pushButton_input); + QWidget::setTabOrder(envir_pushButton_input, envir_doubleSpinBox_cellX); + QWidget::setTabOrder(envir_doubleSpinBox_cellX, envir_doubleSpinBox_cellY); + QWidget::setTabOrder(envir_doubleSpinBox_cellY, envir_doubleSpinBox_cellZ); + QWidget::setTabOrder(envir_doubleSpinBox_cellZ, envir_lineEdit_output); + QWidget::setTabOrder(envir_lineEdit_output, envir_pushButton_output); + QWidget::setTabOrder(envir_pushButton_output, envir_spinBox_molecule); + QWidget::setTabOrder(envir_spinBox_molecule, envir_doubleSpinBox_radius); + QWidget::setTabOrder(envir_doubleSpinBox_radius, envir_checkBox_log); + QWidget::setTabOrder(envir_checkBox_log, envir_lineEdit_log); + QWidget::setTabOrder(envir_lineEdit_log, envir_pushButton_log); + QWidget::setTabOrder(envir_pushButton_log, envir_pushButton_clear); + QWidget::setTabOrder(envir_pushButton_clear, envir_pushButton_start); + QWidget::setTabOrder(envir_pushButton_start, radf_lineEdit_workDir); + QWidget::setTabOrder(radf_lineEdit_workDir, radf_pushButton_workDir); + QWidget::setTabOrder(radf_pushButton_workDir, radf_lineEdit_input); + QWidget::setTabOrder(radf_lineEdit_input, radf_spinBox_stepsFirst); + QWidget::setTabOrder(radf_spinBox_stepsFirst, radf_spinBox_stepsLast); + QWidget::setTabOrder(radf_spinBox_stepsLast, radf_doubleSpinBox_cellX); + QWidget::setTabOrder(radf_doubleSpinBox_cellX, radf_doubleSpinBox_cellY); + QWidget::setTabOrder(radf_doubleSpinBox_cellY, radf_doubleSpinBox_cellZ); + QWidget::setTabOrder(radf_doubleSpinBox_cellZ, radf_lineEdit_output); + QWidget::setTabOrder(radf_lineEdit_output, radf_pushButton_output); + QWidget::setTabOrder(radf_pushButton_output, radf_comboBox_atom); + QWidget::setTabOrder(radf_comboBox_atom, radf_spinBox_atoms0); + QWidget::setTabOrder(radf_spinBox_atoms0, radf_spinBox_atoms1); + QWidget::setTabOrder(radf_spinBox_atoms1, radf_spinBox_atoms2); + QWidget::setTabOrder(radf_spinBox_atoms2, radf_spinBox_atoms3); + QWidget::setTabOrder(radf_spinBox_atoms3, radf_spinBox_atoms4); + QWidget::setTabOrder(radf_spinBox_atoms4, radf_spinBox_atoms5); + QWidget::setTabOrder(radf_spinBox_atoms5, radf_doubleSpinBox_radMin); + QWidget::setTabOrder(radf_doubleSpinBox_radMin, radf_doubleSpinBox_radMax); + QWidget::setTabOrder(radf_doubleSpinBox_radMax, radf_doubleSpinBox_radStep); + QWidget::setTabOrder(radf_doubleSpinBox_radStep, radf_checkBox_ang); + QWidget::setTabOrder(radf_checkBox_ang, radf_doubleSpinBox_angMin); + QWidget::setTabOrder(radf_doubleSpinBox_angMin, radf_doubleSpinBox_angMax); + QWidget::setTabOrder(radf_doubleSpinBox_angMax, radf_doubleSpinBox_angStep); + QWidget::setTabOrder(radf_doubleSpinBox_angStep, radf_checkBox_matrix); + QWidget::setTabOrder(radf_checkBox_matrix, radf_checkBox_log); + QWidget::setTabOrder(radf_checkBox_log, radf_lineEdit_log); + QWidget::setTabOrder(radf_lineEdit_log, radf_pushButton_log); + QWidget::setTabOrder(radf_pushButton_log, radf_pushButton_clear); + QWidget::setTabOrder(radf_pushButton_clear, radf_pushButton_start); + QWidget::setTabOrder(radf_pushButton_start, pdb_comboBox_mode); + QWidget::setTabOrder(pdb_comboBox_mode, pdb_lineEdit_workDir); + QWidget::setTabOrder(pdb_lineEdit_workDir, pdb_pushButton_workDir); + QWidget::setTabOrder(pdb_pushButton_workDir, pdb_lineEdit_input); + QWidget::setTabOrder(pdb_lineEdit_input, pdb_pushButton_input); + QWidget::setTabOrder(pdb_pushButton_input, pdb_lineEdit_agl); + QWidget::setTabOrder(pdb_lineEdit_agl, pdb_pushButton_agl); + QWidget::setTabOrder(pdb_pushButton_agl, pdb_doubleSpinBox_cellX); + QWidget::setTabOrder(pdb_doubleSpinBox_cellX, pdb_doubleSpinBox_cellY); + QWidget::setTabOrder(pdb_doubleSpinBox_cellY, pdb_doubleSpinBox_cellZ); + QWidget::setTabOrder(pdb_doubleSpinBox_cellZ, pdb_lineEdit_output); + QWidget::setTabOrder(pdb_lineEdit_output, pdb_pushButton_output); + QWidget::setTabOrder(pdb_pushButton_output, pdb_checkBox_log); + QWidget::setTabOrder(pdb_checkBox_log, pdb_lineEdit_log); + QWidget::setTabOrder(pdb_lineEdit_log, pdb_pushButton_log); + QWidget::setTabOrder(pdb_pushButton_log, pdb_pushButton_clear); + QWidget::setTabOrder(pdb_pushButton_clear, pdb_pushButton_start); + + menuBar->addAction(menuMenu->menuAction()); + menuBar->addAction(menuHelp->menuAction()); + menuMenu->addAction(actionExit); + menuHelp->addAction(actionHelp); + menuHelp->addAction(actionAbout); + + retranslateUi(MainWindow); + QObject::connect(actionExit, SIGNAL(triggered()), MainWindow, SLOT(close())); + + tabWidget->setCurrentIndex(0); + + + QMetaObject::connectSlotsByName(MainWindow); + } // setupUi + + void retranslateUi(QMainWindow *MainWindow) + { + MainWindow->setWindowTitle(QApplication::translate("MainWindow", "Mathematical Molecular Mechanics", 0, QApplication::UnicodeUTF8)); + actionExit->setText(QApplication::translate("MainWindow", "Exit", 0, QApplication::UnicodeUTF8)); + actionExit->setShortcut(QApplication::translate("MainWindow", "Ctrl+Q", 0, QApplication::UnicodeUTF8)); + actionHelp->setText(QApplication::translate("MainWindow", "Help", 0, QApplication::UnicodeUTF8)); + actionHelp->setShortcut(QApplication::translate("MainWindow", "F1", 0, QApplication::UnicodeUTF8)); + actionAbout->setText(QApplication::translate("MainWindow", "About", 0, QApplication::UnicodeUTF8)); + trj_label_workDir->setText(QApplication::translate("MainWindow", "Work directory", 0, QApplication::UnicodeUTF8)); + trj_pushButton_workDir->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + trj_label_input->setText(QApplication::translate("MainWindow", "Input file", 0, QApplication::UnicodeUTF8)); + trj_pushButton_input->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + trj_label_type->setText(QApplication::translate("MainWindow", "Type of trajectory", 0, QApplication::UnicodeUTF8)); + trj_comboBox_type->clear(); + trj_comboBox_type->insertItems(0, QStringList() + << QApplication::translate("MainWindow", "GROMACS text", 0, QApplication::UnicodeUTF8) + << QApplication::translate("MainWindow", "PUMA", 0, QApplication::UnicodeUTF8) + ); + trj_label_steps->setText(QApplication::translate("MainWindow", "Number of steps", 0, QApplication::UnicodeUTF8)); + trj_label_atoms->setText(QApplication::translate("MainWindow", "Atom type file", 0, QApplication::UnicodeUTF8)); + trj_pushButton_atoms->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + trj_label_output->setText(QApplication::translate("MainWindow", "Mask of output files", 0, QApplication::UnicodeUTF8)); + trj_label_totalTypes->setText(QApplication::translate("MainWindow", "Total atom types", 0, QApplication::UnicodeUTF8)); + trj_checkBox_log->setText(QApplication::translate("MainWindow", "Log", 0, QApplication::UnicodeUTF8)); + trj_pushButton_log->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + trj_pushButton_clear->setText(QApplication::translate("MainWindow", "Clear", 0, QApplication::UnicodeUTF8)); + trj_pushButton_start->setText(QApplication::translate("MainWindow", "Start", 0, QApplication::UnicodeUTF8)); + tabWidget->setTabText(tabWidget->indexOf(trj), QApplication::translate("MainWindow", "Generate trajectory", 0, QApplication::UnicodeUTF8)); + statgen_label_workDir->setText(QApplication::translate("MainWindow", "Work directory", 0, QApplication::UnicodeUTF8)); + statgen_pushButton_workDir->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + statgen_label_input->setText(QApplication::translate("MainWindow", "Mask of input files", 0, QApplication::UnicodeUTF8)); + statgen_label_steps->setText(QApplication::translate("MainWindow", "Steps", 0, QApplication::UnicodeUTF8)); + statgen_label_stepsFirst->setText(QApplication::translate("MainWindow", "first", 0, QApplication::UnicodeUTF8)); + statgen_label_stepsLast->setText(QApplication::translate("MainWindow", "last", 0, QApplication::UnicodeUTF8)); + statgen_label_cell->setText(QApplication::translate("MainWindow", "Cell, A", 0, QApplication::UnicodeUTF8)); + statgen_label_cellX->setText(QApplication::translate("MainWindow", "X", 0, QApplication::UnicodeUTF8)); + statgen_label_cellY->setText(QApplication::translate("MainWindow", "Y", 0, QApplication::UnicodeUTF8)); + statgen_label_cellZ->setText(QApplication::translate("MainWindow", "Z", 0, QApplication::UnicodeUTF8)); + statgen_label_atoms0->setText(QApplication::translate("MainWindow", "atom 0", 0, QApplication::UnicodeUTF8)); + statgen_checkBox_atoms1->setText(QApplication::translate("MainWindow", "atom 1", 0, QApplication::UnicodeUTF8)); + statgen_checkBox_atoms2->setText(QApplication::translate("MainWindow", "atom 2", 0, QApplication::UnicodeUTF8)); + statgen_checkBox_atoms3->setText(QApplication::translate("MainWindow", "atom 3", 0, QApplication::UnicodeUTF8)); + statgen_label_int->setText(QApplication::translate("MainWindow", "Interaction", 0, QApplication::UnicodeUTF8)); + statgen_comboBox_int->clear(); + statgen_comboBox_int->insertItems(0, QStringList() + << QApplication::translate("MainWindow", "0-0", 0, QApplication::UnicodeUTF8) + ); + stagen_pushButton_intSave->setText(QApplication::translate("MainWindow", "Save", 0, QApplication::UnicodeUTF8)); + statgen_pushButton_intAdd->setText(QApplication::translate("MainWindow", "Add", 0, QApplication::UnicodeUTF8)); + stagen_pushButton_intRem->setText(QApplication::translate("MainWindow", "Remove", 0, QApplication::UnicodeUTF8)); + statgen_label_output->setText(QApplication::translate("MainWindow", "Output file", 0, QApplication::UnicodeUTF8)); + statgen_pushButton_output->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + statgen_checkBox_depth->setText(QApplication::translate("MainWindow", "Depth of search", 0, QApplication::UnicodeUTF8)); + statgen_checkBox_log->setText(QApplication::translate("MainWindow", "Log", 0, QApplication::UnicodeUTF8)); + statgen_pushButton_log->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + statgen_pushButton_clear->setText(QApplication::translate("MainWindow", "Clear", 0, QApplication::UnicodeUTF8)); + statgen_pushButton_start->setText(QApplication::translate("MainWindow", "Start", 0, QApplication::UnicodeUTF8)); + tabWidget->setTabText(tabWidget->indexOf(statgen), QApplication::translate("MainWindow", "Agglomeration", 0, QApplication::UnicodeUTF8)); + envir_label_workDir->setText(QApplication::translate("MainWindow", "Work directory", 0, QApplication::UnicodeUTF8)); + envir_pushButton_workDir->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + envir_label_input->setText(QApplication::translate("MainWindow", "Input file", 0, QApplication::UnicodeUTF8)); + envir_pushButton_input->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + envir_label_cell->setText(QApplication::translate("MainWindow", "Cell, A", 0, QApplication::UnicodeUTF8)); + envir_label_cellX->setText(QApplication::translate("MainWindow", "X", 0, QApplication::UnicodeUTF8)); + envir_label_cellY->setText(QApplication::translate("MainWindow", "Y", 0, QApplication::UnicodeUTF8)); + envir_label_cellZ->setText(QApplication::translate("MainWindow", "Z", 0, QApplication::UnicodeUTF8)); + envir_label_output->setText(QApplication::translate("MainWindow", "Output file", 0, QApplication::UnicodeUTF8)); + envir_pushButton_output->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + envir_label_molecule->setText(QApplication::translate("MainWindow", "Molecule", 0, QApplication::UnicodeUTF8)); + envir_label_radius->setText(QApplication::translate("MainWindow", "Radius", 0, QApplication::UnicodeUTF8)); + envir_checkBox_log->setText(QApplication::translate("MainWindow", "Log", 0, QApplication::UnicodeUTF8)); + envir_pushButton_log->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + envir_pushButton_clear->setText(QApplication::translate("MainWindow", "Clear", 0, QApplication::UnicodeUTF8)); + envir_pushButton_start->setText(QApplication::translate("MainWindow", "Start", 0, QApplication::UnicodeUTF8)); + tabWidget->setTabText(tabWidget->indexOf(envir), QApplication::translate("MainWindow", "Environment", 0, QApplication::UnicodeUTF8)); + radf_label_workDir->setText(QApplication::translate("MainWindow", "Work directory", 0, QApplication::UnicodeUTF8)); + radf_pushButton_workDir->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + radf_label_input->setText(QApplication::translate("MainWindow", "Mask of input files", 0, QApplication::UnicodeUTF8)); + radf_label_steps->setText(QApplication::translate("MainWindow", "Steps", 0, QApplication::UnicodeUTF8)); + radf_label_stepsFirst->setText(QApplication::translate("MainWindow", "first", 0, QApplication::UnicodeUTF8)); + radf_label_stepsLast->setText(QApplication::translate("MainWindow", "last", 0, QApplication::UnicodeUTF8)); + radf_label_cell->setText(QApplication::translate("MainWindow", "Cell, A", 0, QApplication::UnicodeUTF8)); + radf_label_cellX->setText(QApplication::translate("MainWindow", "X", 0, QApplication::UnicodeUTF8)); + radf_label_cellY->setText(QApplication::translate("MainWindow", "Y", 0, QApplication::UnicodeUTF8)); + radf_label_cellZ->setText(QApplication::translate("MainWindow", "Z", 0, QApplication::UnicodeUTF8)); + radf_label_output->setText(QApplication::translate("MainWindow", "Output file", 0, QApplication::UnicodeUTF8)); + radf_pushButton_output->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + radf_comboBox_atom->clear(); + radf_comboBox_atom->insertItems(0, QStringList() + << QApplication::translate("MainWindow", "One atom function", 0, QApplication::UnicodeUTF8) + << QApplication::translate("MainWindow", "Three atom function", 0, QApplication::UnicodeUTF8) + ); + radf_label_atoms0->setText(QApplication::translate("MainWindow", "atom 1", 0, QApplication::UnicodeUTF8)); + radf_label_atoms1->setText(QApplication::translate("MainWindow", "atom 2", 0, QApplication::UnicodeUTF8)); + radf_label_atoms2->setText(QApplication::translate("MainWindow", "atom 3", 0, QApplication::UnicodeUTF8)); + radf_label_atoms3->setText(QApplication::translate("MainWindow", "atom 1", 0, QApplication::UnicodeUTF8)); + radf_label_atoms4->setText(QApplication::translate("MainWindow", "atom 2", 0, QApplication::UnicodeUTF8)); + radf_label_atoms5->setText(QApplication::translate("MainWindow", "atom 3", 0, QApplication::UnicodeUTF8)); + radf_label_rad->setText(QApplication::translate("MainWindow", "R, A", 0, QApplication::UnicodeUTF8)); + radf_label_radMin->setText(QApplication::translate("MainWindow", "min", 0, QApplication::UnicodeUTF8)); + radf_label_radMax->setText(QApplication::translate("MainWindow", "max", 0, QApplication::UnicodeUTF8)); + radf_label_radStep->setText(QApplication::translate("MainWindow", "step", 0, QApplication::UnicodeUTF8)); + radf_checkBox_ang->setText(QApplication::translate("MainWindow", "Angle, deg", 0, QApplication::UnicodeUTF8)); + radf_label_angMin->setText(QApplication::translate("MainWindow", "min", 0, QApplication::UnicodeUTF8)); + radf_label_angMax->setText(QApplication::translate("MainWindow", "max", 0, QApplication::UnicodeUTF8)); + radf_label_angStep->setText(QApplication::translate("MainWindow", "step", 0, QApplication::UnicodeUTF8)); + radf_checkBox_matrix->setText(QApplication::translate("MainWindow", "Matrix", 0, QApplication::UnicodeUTF8)); + radf_checkBox_log->setText(QApplication::translate("MainWindow", "Log", 0, QApplication::UnicodeUTF8)); + radf_pushButton_log->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + radf_pushButton_clear->setText(QApplication::translate("MainWindow", "Clear", 0, QApplication::UnicodeUTF8)); + radf_pushButton_start->setText(QApplication::translate("MainWindow", "Start", 0, QApplication::UnicodeUTF8)); + tabWidget->setTabText(tabWidget->indexOf(radf), QApplication::translate("MainWindow", "RADF", 0, QApplication::UnicodeUTF8)); + pdb_comboBox_mode->clear(); + pdb_comboBox_mode->insertItems(0, QStringList() + << QApplication::translate("MainWindow", "From agglomerate", 0, QApplication::UnicodeUTF8) + << QApplication::translate("MainWindow", "From trajectory snapshot", 0, QApplication::UnicodeUTF8) + ); + pdb_label_workDir->setText(QApplication::translate("MainWindow", "Work directory", 0, QApplication::UnicodeUTF8)); + pdb_pushButton_workDir->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + pdb_label_input->setText(QApplication::translate("MainWindow", "Input file", 0, QApplication::UnicodeUTF8)); + pdb_pushButton_input->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + pdb_label_agl->setText(QApplication::translate("MainWindow", "File with agglomerate", 0, QApplication::UnicodeUTF8)); + pdb_pushButton_agl->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + pdb_label_cell->setText(QApplication::translate("MainWindow", "Cell, A", 0, QApplication::UnicodeUTF8)); + pdb_label_cellX->setText(QApplication::translate("MainWindow", "X", 0, QApplication::UnicodeUTF8)); + pdb_label_cellY->setText(QApplication::translate("MainWindow", "Y", 0, QApplication::UnicodeUTF8)); + pdb_label_cellZ->setText(QApplication::translate("MainWindow", "Z", 0, QApplication::UnicodeUTF8)); + pdb_label_output->setText(QApplication::translate("MainWindow", "Output file", 0, QApplication::UnicodeUTF8)); + pdb_pushButton_output->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + pdb_checkBox_log->setText(QApplication::translate("MainWindow", "Log", 0, QApplication::UnicodeUTF8)); + pdb_pushButton_log->setText(QApplication::translate("MainWindow", "Browse", 0, QApplication::UnicodeUTF8)); + pdb_pushButton_clear->setText(QApplication::translate("MainWindow", "Clear", 0, QApplication::UnicodeUTF8)); + pdb_pushButton_start->setText(QApplication::translate("MainWindow", "Start", 0, QApplication::UnicodeUTF8)); + tabWidget->setTabText(tabWidget->indexOf(pdb), QApplication::translate("MainWindow", "Generate PDB", 0, QApplication::UnicodeUTF8)); + menuMenu->setTitle(QApplication::translate("MainWindow", "Menu", 0, QApplication::UnicodeUTF8)); + menuHelp->setTitle(QApplication::translate("MainWindow", "Help", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class MainWindow: public Ui_MainWindow {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_MAINWINDOW_H diff --git a/mm_trj/src/main.c b/mm_trj/src/main.c index aab5a38..3e3642d 100644 --- a/mm_trj/src/main.c +++ b/mm_trj/src/main.c @@ -183,7 +183,7 @@ int main(int argc, char *argv[]) strcpy (output, argv[i+1]); i++; } - else if ((argv[i][0] == '-') && (argv[i][1] == 't') && (argv[i][1] == 't') && (argv[i][2] == '\0')) + else if ((argv[i][0] == '-') && (argv[i][1] == 't') && (argv[i][2] == 't') && (argv[i][3] == '\0')) // number of atom types { sscanf (argv[i+1], "%i", &total_types);