From a465599cb6d9bb067c2505930b92c2a40bd77f94 Mon Sep 17 00:00:00 2001 From: Jamie Gilbert Date: Mon, 18 Dec 2023 08:17:02 -0800 Subject: [PATCH 1/2] java.parameter linux workaround added to PooledConnectionHandler jdbc driver use --- NEWS.md | 8 ++++++++ R/PooledConnectionHandler.R | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/NEWS.md b/NEWS.md index 0284292..b79f504 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,11 @@ + +# ResultModelManager 0.5.6 + +Changes: + +1. For PooledConnectionHandler, added check to see if java stack size is set on unix systems before connecting +stop overflow errors on rconnect platforms. Note that this solution will fail if RJava is called before the connection + # ResultModelManager 0.5.5 Bug Fixes: diff --git a/R/PooledConnectionHandler.R b/R/PooledConnectionHandler.R index d0b110a..c204330 100644 --- a/R/PooledConnectionHandler.R +++ b/R/PooledConnectionHandler.R @@ -55,6 +55,12 @@ requiredPackage <- function(packageName) { }, "jdbc" = function(cd) { ParallelLogger::logInfo("Using DatabaseConnector jdbc driver.") + # Set java stack size on linux to workaround overflow problem + if (is.null(getOption("java.parameters")) & .Platform$OS.type == "linux") { + ParallelLogger::logInfo("Unix system detected and no java.parameters option set. Fixing stack with -Xss5m") + options(java.parameters = "-Xss5m") + } + list( drv = DatabaseConnector::DatabaseConnectorDriver(), dbms = cd$dbms, From 9be6037c77d75feb8db72dc58fef89347dc09d0f Mon Sep 17 00:00:00 2001 From: Jamie Gilbert Date: Mon, 18 Dec 2023 09:04:02 -0800 Subject: [PATCH 2/2] Package maintenance --- DESCRIPTION | 2 +- docs/404.html | 2 +- docs/LICENSE-text.html | 2 +- docs/articles/CreatingMigrations.html | 4 ++-- docs/articles/ExampleProject.html | 6 +++--- docs/articles/PackageDesign.html | 4 ++-- docs/articles/UploadFunctionality.html | 4 ++-- docs/articles/UsingAnExportManager.html | 4 ++-- docs/articles/UsingConnectionHandlers.html | 4 ++-- docs/articles/UsingQueryNamespaces.html | 6 +++--- docs/articles/index.html | 2 +- docs/authors.html | 6 +++--- docs/index.html | 2 +- docs/news/index.html | 7 ++++++- docs/pkgdown.yml | 2 +- docs/pull_request_template.html | 2 +- docs/reference/ConnectionHandler.html | 2 +- docs/reference/DataMigrationManager.html | 2 +- docs/reference/PooledConnectionHandler.html | 2 +- docs/reference/QueryNamespace.html | 2 +- docs/reference/ResultExportManager.html | 2 +- .../reference/ResultModelManager-package.html | 2 +- docs/reference/createQueryNamespace.html | 2 +- docs/reference/createResultExportManager.html | 2 +- .../reference/deleteAllRowsForDatabaseId.html | 2 +- .../reference/deleteAllRowsForPrimaryKey.html | 2 +- docs/reference/generateSqlSchema.html | 2 +- docs/reference/grantTablePermissions.html | 2 +- docs/reference/index.html | 2 +- .../loadResultsDataModelSpecifications.html | 2 +- docs/reference/unzipResults.html | 2 +- docs/reference/uploadResults.html | 2 +- extras/ResultModelManager.pdf | Bin 133714 -> 133815 bytes 33 files changed, 48 insertions(+), 43 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 94fd1a8..5e0ab06 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: ResultModelManager Title: Result Model Manager (RMM) for OHDSI packages -Version: 0.5.5 +Version: 0.5.6 Authors@R: person("Jamie", "Gilbert", , "gilbert@ohdsi.org", role = c("aut", "cre")) Description: Database data model management utilities for OHDSI packages. diff --git a/docs/404.html b/docs/404.html index 0cef6b8..96e4e04 100644 --- a/docs/404.html +++ b/docs/404.html @@ -32,7 +32,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index aa4fdfa..85cf394 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/articles/CreatingMigrations.html b/docs/articles/CreatingMigrations.html index b554fc4..eb192e9 100644 --- a/docs/articles/CreatingMigrations.html +++ b/docs/articles/CreatingMigrations.html @@ -33,7 +33,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -97,7 +97,7 @@

Creating Migrations

James P. Gilbert

-

2023-12-14

+

2023-12-18

diff --git a/docs/articles/ExampleProject.html b/docs/articles/ExampleProject.html index 2e7a97f..a87109b 100644 --- a/docs/articles/ExampleProject.html +++ b/docs/articles/ExampleProject.html @@ -33,7 +33,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -97,7 +97,7 @@

Example package results spec

James P. Gilbert

-

2023-12-14

+

2023-12-18

@@ -260,7 +260,7 @@

Creating a results database schema -
## Executing SQL took 0.0267 secs
+
## Executing SQL took 0.0192 secs

Alternatively, we can just use DatabaseConnector functions directly.

@@ -97,7 +97,7 @@

Package Design

James P. Gilbert

-

2023-12-14

+

2023-12-18

diff --git a/docs/articles/UploadFunctionality.html b/docs/articles/UploadFunctionality.html index 6b4cf68..f3308b6 100644 --- a/docs/articles/UploadFunctionality.html +++ b/docs/articles/UploadFunctionality.html @@ -33,7 +33,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -97,7 +97,7 @@

Upload Functionality

James P. Gilbert

-

2023-12-14

+

2023-12-18

diff --git a/docs/articles/UsingAnExportManager.html b/docs/articles/UsingAnExportManager.html index 4b0d9ed..832bfc0 100644 --- a/docs/articles/UsingAnExportManager.html +++ b/docs/articles/UsingAnExportManager.html @@ -33,7 +33,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -97,7 +97,7 @@

Using An Export Manager

James P. Gilbert

-

2023-12-14

+

2023-12-18

diff --git a/docs/articles/UsingConnectionHandlers.html b/docs/articles/UsingConnectionHandlers.html index c0596c4..e867d1a 100644 --- a/docs/articles/UsingConnectionHandlers.html +++ b/docs/articles/UsingConnectionHandlers.html @@ -33,7 +33,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -97,7 +97,7 @@

Using Connection Handlers

James P. Gilbert

-

2023-12-14

+

2023-12-18

diff --git a/docs/articles/UsingQueryNamespaces.html b/docs/articles/UsingQueryNamespaces.html index 0d1d7d9..23e50f4 100644 --- a/docs/articles/UsingQueryNamespaces.html +++ b/docs/articles/UsingQueryNamespaces.html @@ -33,7 +33,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -97,7 +97,7 @@

Using Query Namespaces

James P. Gilbert

-

2023-12-14

+

2023-12-18

@@ -164,7 +164,7 @@

Basic usage## Executing SQL took 0.0243 secs +
## Executing SQL took 0.0151 secs

We can then query the table with sql that automatically replaces the table names:

diff --git a/docs/authors.html b/docs/authors.html index e3bac42..96c0844 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -88,13 +88,13 @@

Citation

Gilbert J (2023). ResultModelManager: Result Model Manager (RMM) for OHDSI packages. -R package version 0.5.5. +R package version 0.5.6.

@Manual{,
   title = {ResultModelManager: Result Model Manager (RMM) for OHDSI packages},
   author = {Jamie Gilbert},
   year = {2023},
-  note = {R package version 0.5.5},
+  note = {R package version 0.5.6},
 }
diff --git a/docs/index.html b/docs/index.html index abd1f6f..d473049 100644 --- a/docs/index.html +++ b/docs/index.html @@ -33,7 +33,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/news/index.html b/docs/news/index.html index c95afa4..e76bb6f 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 @@ -72,6 +72,11 @@

Changelog

+
+ +

Changes:

+
  1. For PooledConnectionHandler, added check to see if java stack size is set on unix systems before connecting stop overflow errors on rconnect platforms. Note that this solution will fail if RJava is called before the connection
  2. +

Bug Fixes: 1. Removal of comment in DataMigrationManager sql that caused translation error for spark/databricks platforms

diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index 8065169..52ff4d4 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -9,5 +9,5 @@ articles: UsingAnExportManager: UsingAnExportManager.html UsingConnectionHandlers: UsingConnectionHandlers.html UsingQueryNamespaces: UsingQueryNamespaces.html -last_built: 2023-12-15T00:28Z +last_built: 2023-12-18T17:00Z diff --git a/docs/pull_request_template.html b/docs/pull_request_template.html index e093780..757e92c 100644 --- a/docs/pull_request_template.html +++ b/docs/pull_request_template.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6
diff --git a/docs/reference/ConnectionHandler.html b/docs/reference/ConnectionHandler.html index df41437..4aff9cf 100644 --- a/docs/reference/ConnectionHandler.html +++ b/docs/reference/ConnectionHandler.html @@ -18,7 +18,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/DataMigrationManager.html b/docs/reference/DataMigrationManager.html index 981331c..40b427f 100644 --- a/docs/reference/DataMigrationManager.html +++ b/docs/reference/DataMigrationManager.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/PooledConnectionHandler.html b/docs/reference/PooledConnectionHandler.html index 7d0d097..c4ab971 100644 --- a/docs/reference/PooledConnectionHandler.html +++ b/docs/reference/PooledConnectionHandler.html @@ -18,7 +18,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/QueryNamespace.html b/docs/reference/QueryNamespace.html index b02ce54..a103595 100644 --- a/docs/reference/QueryNamespace.html +++ b/docs/reference/QueryNamespace.html @@ -19,7 +19,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/ResultExportManager.html b/docs/reference/ResultExportManager.html index ea4453e..8a2aa77 100644 --- a/docs/reference/ResultExportManager.html +++ b/docs/reference/ResultExportManager.html @@ -22,7 +22,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/ResultModelManager-package.html b/docs/reference/ResultModelManager-package.html index 0e6a3c8..7d7cb96 100644 --- a/docs/reference/ResultModelManager-package.html +++ b/docs/reference/ResultModelManager-package.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/createQueryNamespace.html b/docs/reference/createQueryNamespace.html index 8202a8c..3cfa8ba 100644 --- a/docs/reference/createQueryNamespace.html +++ b/docs/reference/createQueryNamespace.html @@ -19,7 +19,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/createResultExportManager.html b/docs/reference/createResultExportManager.html index cef0fc6..0c874c5 100644 --- a/docs/reference/createResultExportManager.html +++ b/docs/reference/createResultExportManager.html @@ -23,7 +23,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/deleteAllRowsForDatabaseId.html b/docs/reference/deleteAllRowsForDatabaseId.html index 447eba8..21be55d 100644 --- a/docs/reference/deleteAllRowsForDatabaseId.html +++ b/docs/reference/deleteAllRowsForDatabaseId.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/deleteAllRowsForPrimaryKey.html b/docs/reference/deleteAllRowsForPrimaryKey.html index d9501c5..c998203 100644 --- a/docs/reference/deleteAllRowsForPrimaryKey.html +++ b/docs/reference/deleteAllRowsForPrimaryKey.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/generateSqlSchema.html b/docs/reference/generateSqlSchema.html index c029b4a..3cda85b 100644 --- a/docs/reference/generateSqlSchema.html +++ b/docs/reference/generateSqlSchema.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/grantTablePermissions.html b/docs/reference/grantTablePermissions.html index 4e728ea..a9f4b4d 100644 --- a/docs/reference/grantTablePermissions.html +++ b/docs/reference/grantTablePermissions.html @@ -19,7 +19,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/index.html b/docs/reference/index.html index 05a09f1..0121632 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/loadResultsDataModelSpecifications.html b/docs/reference/loadResultsDataModelSpecifications.html index 79a306d..d5615fc 100644 --- a/docs/reference/loadResultsDataModelSpecifications.html +++ b/docs/reference/loadResultsDataModelSpecifications.html @@ -17,7 +17,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/unzipResults.html b/docs/reference/unzipResults.html index 9f54c81..6b291b0 100644 --- a/docs/reference/unzipResults.html +++ b/docs/reference/unzipResults.html @@ -21,7 +21,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/docs/reference/uploadResults.html b/docs/reference/uploadResults.html index 7acca31..f55007e 100644 --- a/docs/reference/uploadResults.html +++ b/docs/reference/uploadResults.html @@ -20,7 +20,7 @@ ResultModelManager - 0.5.5 + 0.5.6 diff --git a/extras/ResultModelManager.pdf b/extras/ResultModelManager.pdf index 884605730696ea84a019396ed51047ed6abf8c31..8b7da07ecf6b7ee3bde1fc6d28ae958e63f32ce6 100644 GIT binary patch delta 8671 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 Ratt9LKL#VC+(&tg{{ya3qh0_2 delta 8569 zcmai(RZ|>LlRz1qf#5E|3GQKVcPGI$*x(jiCs=TI2`)hfcelYUxQ3v?-F5SA)$YT- zY;{-Hxu^RF+$KM+x!iF&Snp8c0;3VUE)BZw6wjzV`Ma^^3$D{tl0|J zySB}vVQEfVjSB7U&HzswDTE%?R5gv!XyTZ1MM|U~0Chtt8~|x9YHk^FM)PA7Y*Y~w zfEZ!ggME;o+PcT`TV75(J;j&hHiSig6R4-p)sSRYp;gt8hy%=m5Mg_HyEnUb#J6vU z>W|f3Xv5Wp@(og8gE z5hMp{fsI)ai6eX~k9HvydRs$ZZ)w@Y$|{rf$C99u9mf@$dO-u?@GRiIM#Q~7T{SUM{j zK+UcgxcsP`D8%<+I#yz*BPvX`TB4>R4|^h)*TJMVq{y!07I*=UY{?C^jY)KLx0}G zL*=Mb$fCsmB%`BxKClDzLFx`Rt4y?H#23SvtZjzWw!@VCi`GUKL)jceIZY0{*^vMSHpxlIOzlmK z7w)K--Evs(HzGU*FH?Y1N5IvywfYo|AF}o>%Eija>ByQ|-OGIMe~$*T{Q%U{U~mlr7_435kQP+C`({YicK=e}atObbZ1`H8GoGF>iL$RQ$ z0g|{MD&WE0FpsEI-`T^|c7uo$lkN?GJY0txsCayQR+a%N2&Jbt%(Wjtkng5JBv~t2 zF1g?KMRFU&(Ngo%1F4z3``w{#Z!t@V2GZv`>;-~KkI+h_-y@Rf?$iy;4Ff_@^pk0b z4jX#^p(M99|D4j`F9=iv8)-HbSpJ6`NxRV3mZcSzK3MRr*H+6!9)K)Rc&d*5M-Hg^ zjEZmVtokuP(}>?03S}+=K+XS5eX$+SGe_V?tKwz;;X$MrA?Z?6%}HTN>NG1=HyfJeq+S z{2v5>(coip#h@>r5EJRd0jLOS(Js@bxY0O$81-P~`QxBjQm&W;0Fq)33Pv1mNsN~G z$jtaRCRaFP4J8Z{`S>e+Tp(kfNhJjVD;q!1a2XwLtOYJBJKXY}0F@cqGd~1}1x=9# zSs4k+Q0iV%5a@?pCS!i`RKKr_9!y~M$;f(3TRssRFoJ_zR}=xzOS+baqX~Y_(<%Fv zm73mME+O?5kWo=4J!3`ENw3NuBCZsj-`GdYD|5nn6U~J&Qis%ez?)w^+Qu{6wKXKL!_5;Vz1_I5N?8_TxTM{x7mQt z*NMe%K5Eal@gDqC=JlDVNTNK%9$&j|rmdOSp;n5>*ejxgA{1P4#B1>P*&+s~xM6R} z;tFjKFIS`&RBqQL*Z~oFNY2aKrqE9v*S%53t(E#yz>*~G4@pR%;Z0upH z8l!2!OsGC0AD%;?@*TLq`W_a26s)n$hZ1vzO8QVCYQ58noR@$Vm3J^>w>TGvP46e$ z;^}Uf@`*B^vU|3YckSqtLRWAawokE=#I~JYpQI=L=8*g$b<<_Ce)3N85v~tzi-Ye` zNsXi(PaVoVvcbIX z?9*mA$`l*K+HB8ArEH(rtY1RCXm0F!W4gti1lR+Wwj?3e34>p)|8hj{k~dUT9SrUd z9x&`P9LQ2j*$&%ErM!XNrA9g9Yz^*L>OefshfJ;ebeGA@TKBj773B(5&k0nwf+R5sMjr+^e~TX zP90?(l9y^xONLMVqlRJ;e|jYrK^NOp2$L1fY6ze$wG@jWx3%OV&Q)^4FOKoSekd?b z9U7%ZyfA+e@mZQQm$PR30*zJ(CzrD!=>pAMh#;4mQr5tnwlh~Ps=AkwwclQZT|u8!?c@0mQb z79qHQd^_6knZW!qutc_~y+29jx!VO|uu@(nwvX5e?yNoZHU}qy_B{4uTFJc46Lu8# zKaJ3eo@|PZrY>1iQ9(P;uJ;C>?(BK@&C9%%inMInkh>5fza3zv02_IpmzP))IEG&! z5)!9W%K;yEvDcEx7>CiNGykA)TgBUp4yGx8@C`e01E0~=XLKfwTWTv`3f5~T){lQu znB-BSZyjbMNNfGL#oR1w_;(>Z%XctKQcS$hUmTSZO!?kHKWC(QB1ok-Y>RC`x5EfXv9;$^rlCfDFn z6UXkp`eFuS`vB=rMo+a=8DtbT(Mw6!aHuyi?TCMS@L*_eib|t~>`I)&`@t+XM7XcJ!$(Y=ME$yFjn z>}Op}6JMkr>0LEF7Rfj4_{x*l-ja8wqeX2j_y2I`FC?4P{;6Dxh+(wm#u&cx^$`%t9{)WOF&S0J)8t=4deb3*GF^C*7S^C$+GnH-mgE?(|UnF(^G33 z-XI{RSamKYDP-C`i~Z=N`G2SAV&QZ%E+b@2T?~yLKom7FV}-b2S`>6je89^m8s8Ct zU+}Xf&227Fg*tN7Bk?1}9GE&%QApui;f!jcs_U#O?)lG#Bt%i>6FNZrKTlQEG7>}r zb08dNJgxg88zG1ePX40DS%^3lL_!ad{-+bpY*U6k8x?oj_34#U%|G{n^J8$?(H%6S zS(q9$xN3^Xvl5@Xe9dpaiHC*p551ztnavohwQ6K<54yxExx@zHY1QKj&Lo2~6KVOe zJ4yS;obv*$Clixk4B4M8bVxHU#f5i5lJoZm=IL3#ClrGUP}Mu6No3IqdLTs$(sFXy zf*715#U4;aIveFT9tg*mZ7!_K9JRNQN)zab_1(JJmgG7f!4HKVq0gi*2k z6h-DVm6pe5$E?fUMaE~3e3DBSms_!J6Wp7#`flfb7T(Q%7tZ#43moq%+6EJAo59vM`$M;7})}!RJ{C7|9rZVT{ z6&op!CxS$9F&EexS>?A@)lVBP>RDGEvGOi*m0wfh?U-hd_4B7uh8+ruVNZ9`${TGM zpxpDPRJR3ZXudyy^QS{$k+r>7XTv@nwn;gagcTtfwWQlfDE4;;mVP`m@lu5`@}g02 z$LkMz+&Mcim~gEU zEqm{;JzRHP4b~gfDLujW&n%oNQ5a$)E-t;CCNyT3kk=e}KziM<{P zgqYWFR1t;2(o+1c%Uin)IKrJfTYeL9FYc0_jynZYq?$;iP@bh-yX2SD?|g__J~2rov@xAu-r(f7K9ETIYP@th&>pNs;iuZC9o+!fA(fK# z1}6|GVc4P3jbpR!>k9e8#FLcH?_a3%b^4BrtM5)hps2(0wv{Tbsq(VSIL|2en=YU3 zM`&491=f7nR5N9!N@MwJ^JAmF&Jnn~+Ob@vQO_aM*46W>YWYNGG0WD#LBqvheda@I zfVc^;e?6%5M9aOsYgLD`BF=LaBISDHXmnEU@BZ_&ynTYeN6*ny<;LK~_onR8(7&vU zxBbKt?s*v~Z^LDpAIDU$9Bd){T`w_K?JG&`l^?S8%0U=fJPLi2b@>h-8r^^&03D0* zS^nGbwyt{Ld3-e`g^4K|6Ni@@f$7v`C`p92Dih-R&t-K_Sw3nVaG(GcKGe{McAX>VLvGbflaMcXmMbM`)(z zp1S%pk#wWFYTq~X{FnVweE(SpN4lQ;%ckeObXsW4*lJjGPai{|Xs072Ow>DE4*0&( zuou=p^r!rUbyAWVZmXl5a0QQ5yFgNPx2N$T8P8$-zjLFL zV@6j7`Hy?lyacs2{slH^D=!IM6WTs&YH6qbhHej=2LTqprx3-AAmt=4=bvBZ^u%UV zulw5q+K$&O#EkSgu4#u}!cn38NDgV*7%y{pFVfjCrfl!n`t+U*x$KAkgFLzavCB-^ zda?gOng4^X>C1@YIJ-%G*`D0R1_>z#s($_NOYm)a?foD(ZtZ^8k2Oma>{0PIOkF-V z0iQ*e9r-3MYgQb)4D72GCQcIzcJR)WJoLh^UzyfsqULWLCFnQ^$%xqwY3Q6{lhiqS z(U3CJR!`bmGrxRCc_&$P*MA6hCm!FiSZ$UBV-)yd`HLtEy!_!=jsH)$qj>qr7Zp-zW@gc8Qbb^lIlNk!X3-1)3Qv;7@ z-a@}vc(&RRhB3HbGzhS2AH5X6wf6$%vGoZ%23&B>e0dk>MwMGh+>CFR@Eu*gS_!2O zAUpGg?Opi1*gieIE_=uYyG0zBae%9g9LX{7TrZa6Y98 zCrurJXT^!K7AY62(r;ylsDaN`{bT7LogRiUGHr!9M?PSJwO#N?-VzpSZyg(~a# zz+w%}c-JgvDO)<^oZ~pdTx0&%+Y!dMkmRH5+hxSiQzfeQJ82W&USFibX6tl!>pT#$ zGNN~a&G`QGIeIREKp=Eu{P$TSFU$Cs2bRczWFfJLtg1fWXeTk~Es7YWOP7s0|7uzw zZLcZFvTDxovTOHmK7XJqf9P)uGh$bNK*8 zKmg^9if~gdH2`etzraLMJI~P=ESj(o3K?PvO z&biVhY6&NC;&UKuJfVs|hcmxJ3k=x*Huk*_NzCaQi4KH!3u^aPmkXKn^ud5!l@Z23 zXp-*iQEbiRf9#6zUSfPg@NWV z^=u1YhCvs!;j|T8=_&G*)(wbr33ZT*^-V4cYnB)cchXqG?8%&S#X*|(j@ z^My%x^2u46D<-KUnwR$bZExl)6RMi;VbXjeoDE+kJ@w(ad?TV_+O#sHk=MXHtdZA} zhdWWk(P!=h@rRn@a2KhJN)2f73eI+{Ei5k;5%%uLwjgCs>IsQLnkhS-Xi{M!R6agT`G zh){Aa)#*{{KSlO8@tU{|v;@hbZ-U9r3XIE-{2RA*YW~?yXx1=!q++@$keP*W=JMyVamx@aBscl0$2V$|dxzBxiDb75W&OI(AMEcG zx|$H0GfNGOW}&G23n_;lum)bNafO_feK+BTq?8kjRfkr`z(uwN{fMW*Hz|~L%%wr< zwiJf-(KyGrkp^3Gl25MwHdS>e#L&e>XzpTf{nT_p>iQdk@RyqHG-_V}UUSbY00fW1 z%f-hH;^a+vg(v?XZl(snBg22<h&D=W<{ zN+taNju-(slr0^t+^ng%Kp?&(iF8H?{i3(C_B_eZ#Z|{9Za*%(G%ABQEVuB2{X zPE81XB@QY8Ug5f7!M}fj=I1tdEWRzYj{HEE#bHRl(Ke&px^zJhI#)JdrY{Fw=wv5= z8dOYg++E~Ot+}3de)ya7SKzNVo+Rpruhct1q0}ZwRp3Lx$-kpiCmny?|10ageue9pQYZEa_f3Mlh;6OQUN+;3@YG}(19NAupjXpz#u`P{M{!VUQ{8s zGi+$P2~HT8LUo7vf{2fAVvI; z9+xRWK0;cNPK73GMjai}IQ4M8V?k4mTb5YPHg|STMyEs5itC*+T(JX*=}?GThf40F$V^ir_lTd*hP_LDhk(@8xE4l= zA=QIL()S|;fFd)Pkf7Cv`V)RK(H=iK)I}Yk(6lAA2`b86sx~N*#k59I>P;D@p^c7b ziaXb9@iUBxlYk!*&odbwy-mHXKD^hDh`#PF`kOT!fgHFjY#qX&i%7n>Y^DpZWQtT7 zqV)#_#;yBhGulY>Qd0L_e0;%_lXK}+f-wfQ@(QtiXxlD6C*~h zj-sr>1{pCs2Iw7E5I#-epyc2mAh?_>Ulc;Z4TA44CbpXH22Sb+@*OW`O(JqdSOQ*) zTWC$5&GK7ZJMVXQx2nQm>y%Nxs^PvwQBPhwuLiK{T*5FDf^H@vEZzu|wD7RDfrMFD ze>;rUGZM1V#S);y`rhG6jlP~XgJR@(-?DwU@2vSKVTcq)Sw$EpM*FG@ue=>W>f#o8 zf3>`&uy>dCx>d$anQVl!Oi;VjXHwBQ1)-}UGK&Z;t)A|m5~h3QlNVlP$XTV$=~jAv z@xJK8+kz2Z%mi=k5)H6eh3lN*RTD%m%0+@wBOxHq@aFV`RjhDN)SmW!nC}(r$sC3< zezs9L7Iw0=^srT!8y=_E{r0TjcNuw~obr53aRFnz*dWXmF#tU(7=bq-h`UM)*A;ZJ z5VdS|VbOY9d#aV3VN8gcM7BE7wErA{HMCiU#;P28(!)!IYvxr@O z{9NIXwKa9%bu9}pj22)YOo=4@UhROrtrLMJ%&lQ#mvkS}#>k+Cd*gSVtbd=DKKfiD zLSNENM=FZT^91i{#r168WsVs)u2lqefqb+6#JBvcS}QKm6uLSd zUOXg?j>TcZpiO>x?z}U&sqWa62-AZ}R(8o$F0<%w5Za*+2)+*be0N%9;^WlxO;{R6 zacncO?~-z}j#}03YW{2kHsX=K1GuboZe7dC(B*BY&n$t&@HakvUCx*t&=cUNflO)} zFAI#n8X60oak+>}w0`SCzl(?pKZBV-P(rCbp_-*E^POn5hk&{!OB4 z0+)UezK>5F|fl;KFRln zzdq#z;V=;={41EXNFB)PVl+3jpTuY^X{rE+k~?XVMJ3XTlGhuTbD{D^;s0G;gMYs% z