From 427bd79a138bc13f53e071c8485d8726aa19d1dd Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sat, 18 Jul 2020 21:01:17 -0700 Subject: [PATCH 01/30] pbi connector --- sql-odbc/.gitignore | 2 + .../PowerBIConnector/PowerBIConnector.mproj | 118 ++++++++++++++++ .../src/PowerBIConnector/PowerBIConnector.pq | 68 +++++++++ .../PowerBIConnector.query.pq | 5 + .../PowerBIConnector/PowerBIConnector16.png | Bin 0 -> 689 bytes .../PowerBIConnector/PowerBIConnector20.png | Bin 0 -> 914 bytes .../PowerBIConnector/PowerBIConnector24.png | Bin 0 -> 1163 bytes .../PowerBIConnector/PowerBIConnector32.png | Bin 0 -> 1688 bytes .../PowerBIConnector/PowerBIConnector40.png | Bin 0 -> 2139 bytes .../PowerBIConnector/PowerBIConnector48.png | Bin 0 -> 2430 bytes .../PowerBIConnector/PowerBIConnector64.png | Bin 0 -> 3252 bytes .../PowerBIConnector/PowerBIConnector80.png | Bin 0 -> 3618 bytes sql-odbc/src/PowerBIConnector/resources.resx | 129 ++++++++++++++++++ 13 files changed, 322 insertions(+) create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector.mproj create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector.pq create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector.query.pq create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector16.png create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector20.png create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector24.png create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector32.png create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector40.png create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector48.png create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector64.png create mode 100644 sql-odbc/src/PowerBIConnector/PowerBIConnector80.png create mode 100644 sql-odbc/src/PowerBIConnector/resources.resx diff --git a/sql-odbc/.gitignore b/sql-odbc/.gitignore index 3dd5ca542e..577f2c8f74 100644 --- a/sql-odbc/.gitignore +++ b/sql-odbc/.gitignore @@ -56,3 +56,5 @@ CPackSourceConfig.cmake CTestTestfile.cmake /sdk-build64/ /cmake-build64/ +/src/PowerBIConnector/bin/ +/src/PowerBIConnector/obj/ \ No newline at end of file diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.mproj b/sql-odbc/src/PowerBIConnector/PowerBIConnector.mproj new file mode 100644 index 0000000000..2679eca602 --- /dev/null +++ b/sql-odbc/src/PowerBIConnector/PowerBIConnector.mproj @@ -0,0 +1,118 @@ + + + Debug + 2.0 + + + Exe + MyRootNamespace + MyAssemblyName + False + False + False + False + False + False + False + False + False + False + 1000 + Yes + PowerBIConnector + + + false + + bin\Debug\ + + + false + bin\Release\ + + + + + + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq b/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq new file mode 100644 index 0000000000..45bb2ace90 --- /dev/null +++ b/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq @@ -0,0 +1,68 @@ +// This file contains your Data Connector logic +section #"Open Distro For Elasticsearch"; + +[DataSource.Kind="PowerBIConnector", Publish="PowerBIConnector.Publish"] +shared PowerBIConnector.Contents = Value.ReplaceType(PowerBIConnectorImpl, PowerBIConnectorType); + +// Wrapper function to provide additional UI customization. +PowerBIConnectorType = type function ( + Host as (type text meta [ + Documentation.FieldCaption = "Host", + Documentation.FieldDescription = "The hostname of the Open Distro For Elasticsearc server.", + Documentation.SampleValues = { "localhost" } + ]), + Port as (type number meta [ + Documentation.FieldCaption = "Port", + Documentation.FieldDescription = "The port the Open Distro For Elasticsearc server is running on.", + Documentation.SampleValues = { 9200 } + ]) + ) + as table meta [ + Documentation.Name = "Open Distro For Elasticsearch" + ]; + +PowerBIConnectorImpl = (Host as text, Port as number) as table => + let + Credential = Extension.CurrentCredential(), + AuthenticationMode = Credential[AuthenticationKind], + + // Sets connection string properties for authentication. + CredentialConnectionString = + [ + AuthenticationType = "No Authentication" + ], + + ConnectionString = [ + Driver = "ODFE SQL ODBC Driver", + Host = Host, + Port = Port + ], + + OdbcDatasource = Odbc.DataSource(ConnectionString & CredentialConnectionString) + in + OdbcDatasource; + + + +// Data Source Kind description +PowerBIConnector = [ + Authentication = [ + Implicit = [] + ], + Label = Extension.LoadString("DataSourceLabel") +]; + +// Data Source UI publishing description +PowerBIConnector.Publish = [ + Beta = true, + Category = "Other", + ButtonText = { "Open Distro For Elasticsearch" }, + LearnMoreUrl = "https://opendistro.github.io/for-elasticsearch/", + SourceImage = PowerBIConnector.Icons, + SourceTypeImage = PowerBIConnector.Icons +]; + +PowerBIConnector.Icons = [ + Icon16 = { Extension.Contents("PowerBIConnector16.png"), Extension.Contents("PowerBIConnector20.png"), Extension.Contents("PowerBIConnector24.png"), Extension.Contents("PowerBIConnector32.png") }, + Icon32 = { Extension.Contents("PowerBIConnector32.png"), Extension.Contents("PowerBIConnector40.png"), Extension.Contents("PowerBIConnector48.png"), Extension.Contents("PowerBIConnector64.png") } +]; diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.query.pq b/sql-odbc/src/PowerBIConnector/PowerBIConnector.query.pq new file mode 100644 index 0000000000..c0821957ad --- /dev/null +++ b/sql-odbc/src/PowerBIConnector/PowerBIConnector.query.pq @@ -0,0 +1,5 @@ +// Use this file to write queries to test your data connector +let + result = PowerBIConnector.Contents() +in + result \ No newline at end of file diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector16.png b/sql-odbc/src/PowerBIConnector/PowerBIConnector16.png new file mode 100644 index 0000000000000000000000000000000000000000..95578aba5146c75e75329e8a278fe08a3b5ba14d GIT binary patch literal 689 zcmV;i0#5yjP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L0!B$hK~y+TWBmXB zKLZl@^Xcc`Pe0jZ_@2J{eD=aqT@5iY5gu+XHmEcZ05!nD?~gy8R2;tPy88doXKRk$ zVc;lNGV3?@ntk`~>%ag0LDVoo^#Q@FkN=pMf4%tn`^|TT$Di2w*%;WFIk?$Ae);7c zv3Ta9Ge9jMWguNIKKw6P_FpUo$ozWi{p&S1|9|=Y?%VfCb5F4ImWZmh>bXo;GU>l@ z`xQ_D*bm2VGi1(T5aeZ$4@ck#l z>$WV{l0kp z71QhIU)OeCUDJKz)=QM|MFyJ6BK+KJK*v9R`k9I0AJF4W%>V!X{|RJa2TaUNj7&`b z85#cn`@F0|Q=WMs^lvb0q-=DIPmz z!8hN2GXO*8*B>QW{>>}nAgVzCXah2M_x0D!S6_gP*Ka-_IC}5-%a1>P{DDY;!2kaM XM=duv8ux>J00000NkvXXu0mjfG~rBm literal 0 HcmV?d00001 diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector20.png b/sql-odbc/src/PowerBIConnector/PowerBIConnector20.png new file mode 100644 index 0000000000000000000000000000000000000000..cdcca25637e7e55351322655ea1d02f77aed9bd7 GIT binary patch literal 914 zcmV;D18w|?P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L11CvDK~y+TeUwQ| z6Hyq)-^{c#bfcv}OIZRaLQ#pRY(Yh1ToOS&sEsQ}m!L78G=_LEK@&U>aEYb{iQ54T z9>8eO1f!sW0Ynr?DS@&TD6~+f%XBs$bQ+XWf0xO7@Bhnt^S*Be;dvee!H^V!p_oKW zy6K<2lkqVMtwv7ZB4IheN*NBw=26Eh6GC7KH}X3s?K}1xwOU1nK00S}Lg|$PA-4o7 zJOgkZX1>Y7JAG8Y!`Ez)N6T~?gyX>S#>Iqp|DIYPy?@m`o?6^_pmV0dXzrpS{%=Bx4V#q;g6DXbhk^Hxl1}Qwi(zw{ zy}8;nZk`uXArNC|v|7f}9EKsbSvLyXf@e`ggupe1@n=GVB2eRC76Ba8f7g@9q$iKzv#2xS>g6D3=GXMJw;!Ha3WJaygpff|E7Yz_ZF2&Q< zMhc~>9e3UMHFvw;`EADIp9zLxxm(xY#OcB*FS8~oA|*K>cQ|}3hvr5~D+b7=uVW>o z*Oy;p+^}mML15#P&Mg@_nUoOZ{Kzl`%C+0w54J>*UZ(QXNX>UE2LMIUZC#^BPd`^k zE_;2PDqPavJAHUh%H6U9&{}Si2{$uMbD2u9p{Bd8WehO@iK1oXosm zUgS3+D}M%%`XAP7jpm3jQA0`A?1+8);hI>TJUb&cCp+Q%nJgi+#40kx;h}L1mEoAz o>l?Jp!IG*~5)4~D<{|+60dZGd2@Q*MRR91007*qoM6N<$f(!7I9RL6T literal 0 HcmV?d00001 diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector24.png b/sql-odbc/src/PowerBIConnector/PowerBIConnector24.png new file mode 100644 index 0000000000000000000000000000000000000000..81e49796f4dd4530e3e534584edc39725815ba84 GIT binary patch literal 1163 zcmV;61a$j}P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L1RzO7K~y+Tjg?(c z6IU39&)Kt^-OV2fkPt{22bqu|v|zCyGS*s)wJCOn+EMAKopGkU=!H{nonG~(z3JGC zUUYh)pdAWr$Dhv7saEUs0;NjT7G!EbRFIGa@1(?SU+V{MzScGbi8s&e=EL z_XTR22G&9Y8qO++XUJzchsVa_Jc~-57M7*+1uIzFNEPJS^MUMW(pcvxJmejpnr%DU zoyq2EYh3j&xmsJiwZ0O)bP-B_J_9ipexDGoP2y-ad0|8voZ-xz$;i?)y8mFNqv!9I zL+1wm3F_60tYJhhDTmS!0c0{@1>#8oLrql`0HNK+*=(|~nolHx*W|>i1 z1V8=>y84K~va1}Gn50mO^%U^i+)%}q0$vnz!LVR3(6XG{zS|Rw&b@iytgc;_(Uy~- z%m$uD!KtHQPpvX5Wgo`*N;_@mNbtcafn!l~>zUEPsjWLJ5d{&V`frb4=sftYzlNw6 zje-f_IRTFB0GS+!CBS#bL9uoId=
  • HWugELM(!kmJz3p-9g+@3ro!T6{IP9Uusv z#=y`x*ipTn3!%pAyx7@(=jIcJrX>lxoaWxE0gUl88C^LEHao!9O7Q7^{bU_{RZhR( z`*TI9C(dgaS`BQ

    CaG%xM&nsZ5|vxOP9?&kl+^|>&49OEo9V+8{^ zZyHZzsQE_55Kt6_$aDeHcmE3r5DkeAlG{OmHB7NQ{mNdK$wmPRzWhdsqm0)}HzbqE zg(4{$A(8|IL6P04hn-4DtO^aqhJ4*~5z^w$wlicf@?l@>SO}Y7v9kk6{bVrq(Vgl1 z$;Q08?{q9KlcdN>c+uyq^*NXN=tzGwCWEm#{MATuVFj$q^&5`{hr*l6tt!@JS@C%s zCKIb0MMXt}sDwk+R`ymb7njxi`D%Kv1&*Egxv^;zu^>w>G9$G4ePmpghSuK~DKt=% zqVk2$)?CaFN77eE5_`Qx)lMUsfCr;d15bH8U$O;kU1PbXY9#6YzOn02!rEh-S~a~XSwXAXA_2?^Qm;BOpnC`H=aA9RmCin&UxwgQf{9?hU|Sg7_me);}z zUcQtOhp4wojl@O4TG#EMAYtIPBxW+*cSAfw1{##PtY))8l2o2&`g`v;)VnX8YuCkV zZb+Jf+be7!r-GCS7;0Blp`^}VTa?szY%ZD11Rh6I!skDHdw`*lt|2P@xt#Z#+?tF# zhNnNSFWp^X4~CLtVOuP8L!EoumKXdjRc6b|`CiIsHG-sA7yf)yRSi$iF${7P8OiUH d|8^Mw{09}<)nzU7go*$F002ovPDHLkV1kk@B&YxY literal 0 HcmV?d00001 diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector32.png b/sql-odbc/src/PowerBIConnector/PowerBIConnector32.png new file mode 100644 index 0000000000000000000000000000000000000000..9896675643c59e59da1a663458c3b9edf4b59e13 GIT binary patch literal 1688 zcmV;J250$+P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L1}#ZMK~zXfomOdV zR855E+Hxq1AV| z1Q!)lq^8j%MG?B_-nb8eDk<^CK%zBFXPAu@EjSGWVC5va1t9`c6kT2%}oNi|nyxmJ`*vb=g--A_mVvsh?JQb>|0FLf_jP`0$X zTvtm4u7B?ap*zC;<-=%#vKnv`89mj>cW@X%Fbr)r)8MtkZZsOH#^%7Pb#9uNq958&95TOD+xK4gx_! zUHym`VMu40$qcg;5|o4_hj_|uq$b)GMTsONmgBjIfMFU3+_5N1B_-~>BIl~Lb;nL# zPg+VMmEdLoZ8(J1?nkS4BUL5GG0x?anQ7^YqEh)*=PPA|gCQ_9XGZSaC-OWQ=BAba z1dt#wfFvQS*&wUf!kRsagyvrosX;D$7Zs%=hC;nzG`9?GssR}!lF%0;tp>tKC3gWI zFGw^+e6aD4t+gj|OEWzg77)S`9LU!hdaiQf&Mno+&BIR6;6>m@h65QWl;=iguA$S- zAjU}CkYOIQ4gf1@3`G$5mJRb1?(;d1XLt34KnP2cB6W8^UT^jWV8bv1hY3}dqLv;l z$QN4C!s%#ImcBG9OeT8owrYPb7f(n@32h)kk@)Ge?J!Oa^1ipxJ5^|Q5n8htt$bD& zJ`k{No9DN-2O(rIA>bewe!j6=fuIitSyfa8!yri>4zi*yee>X@re2$cfoVK0fZ^jm zysV#~vn5=Ap#9jcmZr0}BvDBU#{>*hON(5J47!@f6h($30vk$b1l>2dU$$Sre5$wQ zB75wc8;z%X2UNxexRdnpkQ5l?hc+d!SX}G}0-*C=3<^=vY@eYhc$LyX$%iNmWDV6C1 z`^N?-7401?RIuAmS~aH8P|t_bRF)J72nM_l1+Y`S;=AUS;82<(bo}7$GzCC-BbfSq zN95zi;EvXiE`4A?@u~m2!*11kXH1Zuc{1PaG^P0a#<{+4eKBuT-qjY{*~*R5O-FzY zCpOofDk^X!RUm&9NvU`w1JY)QAjnG>I62=$xede=yWvEi;EfEG^-*xs$G-5|{-RkK_2fiLEC`w5J5*=HbFg9k*t+SEFr3_aQ|%W_J^0fb*R-Ba*i{?6N7#SzX4s{ zp(P8;3MY(%4MPOrH6*8>mv~8OiwU!x^2u!gQIrFHQ7#s*c=~Hk z&gTBG;Bpw@T3`vf#5Hg4@?}%ktelhFoYK+!acN(Bv`0{&&u^OS0LhP60&9olNaQF3@9cda5E<2W@>u2)s}j6{a`3x2bPlu6@P?EBr}73T@r-&!wyWY>#>7w49QBXGx(GTBNRU2kt{~SHKT8 igb1FMR^LYlLjMCN+S7onos{YT0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L2k=QmK~z{rtyl|i zROJ=^?`!Yf-RvXT>~1!1Ah8K1puq|iMW!gFj`7th)2h(U_?S+oWongn21==nT6DB& z9cOgx=qL^#wT7Ys1t~g&I#eSp377zRk@sWYclYjn_uRdAH(5-~hWO29XaDm*zW<#6 z{O6oMn5wF19#9ljQB{(_jdsqM1F^yi;sl4ADavC(m?1pY(!FPYdquIMq{wz{jdx*% z)9tbvecy;&iP_JF*(1GTh{q`0T&8v{ zw>|$KeZWk}i8$^bR|T0YWN;G!ijw(E;`0$PoYeX-TsJ$0VI~t<;53()I5SA~2+%34D{doDkJ8pK2&pa44*a?`shpa{{K+ds4mD`Sxi?Kh+$r01u4SAB>UP5B2RNJML~>XoA(WERZz^em( z$TA{u!c%B{bD#g$TMro>X?)GATf0%yAv6*;rZ#Ov_2nQI14;J8K=NDw4%l*o$9khr zA3i)5JASffU@&^AFW7vj)8n#&qsg+dCajI)NLJ7nr+N?mW8)9kRO@oU*NAJML{(m7 zF=<}Ia>z=frVYrKuXoBx2`rDz5H8+7*s=qP?qko?dR{-V9BS z1-M6kdw>^YU7o#)iPXGBcTLTl!XM;}`D+?LxWLfn+|2D_rdd`qi;_}%^O zx-gq~RSk+KP+TyYuxoIhx-z4gGk$V!{j@) zBV0qh@9mfGoiueKDqi?9*xoWaHjpqx^TzdcMHGQ6plKQq&xb~0948vYeP2cX+0^mz zuHH}I8)*Jp=Vu=bD(N6FA1o}-H=9kFcmf~@d@PWN#RZKxnGjDl4~+IDXog@cq$H@V zM~C}5!urtpAkRu$ER-ZoYD^FqmlWAVO5@>fHWuWaZW;sk$1t;1^M%0+tU5LCToqhS zv)5(ic`4)Dz#xb+mq=->Wj1y4!a;fgdRf#G+&lrn5+ZL_;?%>Fs%XUC1$kB{#fF5G zhpPgl8A&Z(ln2vNBd;F82saT*K)lRc9iX5{oMtGE*lMG0YAm+7Ok7+{u#zGx^|!by z>z(@0`2a3YG|E#Dm(q|G)k2dtD?NFSBNNHK^ISM{hU}_v`1r-$@11klv~ zDqCamWWbvfuDR)DcwyM>bcO-c1&4j@`8&URT}hV4f};Mli*-vCvBH9!Q)H zr?X_v5G85rpN|DXoWn863Rg53O4L@nmoD}~GmH3CAn7m>41p<-wGamT#WDP1Y;MG$ z)-z2lZ|(D6v&c0iNFzy-Azt3!SPS7An%QRzWeRK%I8${ie2cOkv$KxloAJxveF&^x zcOFzcx&%%W)EysZZ(dPx&$?P&m_>X`Ap^rgP{D(NR5c>XE*e|w1)=8T@O-%(Nd`Eh zn92awg`mib;-)Q!F!#2jC;Gf@D=3%g1;araUa%c~q`YI~C-op;@N=j+< znZ?ekJPPD3eUaym_x^W~Eo6wFHTX8)S`O7F$UD0N`wp~s_Xd0V!{<9ED$ATu;y_uP z4$hz}o=l2<|FHkWFP796=~BQng#arm{-`J_>UZ)epIHk!C%eOUy>m7g5fDQnNHvnO zc}>O6JG3HsZ*$v|JC0fyil#}6S=%D4H>J!&@Q#Yd`CmPj*7L%a+jnmJfj)g& zE`}Ve zPn-$466-iU%2qhd1@OK~qxHmYV9qQlH)Em<@9y{?>rd{{h+6j9a=P R$~yo6002ovPDHLkV1gaZ2;=|& literal 0 HcmV?d00001 diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector48.png b/sql-odbc/src/PowerBIConnector/PowerBIConnector48.png new file mode 100644 index 0000000000000000000000000000000000000000..6c763dd4081caca864d57f7d6fc7033b8e9ffbe0 GIT binary patch literal 2430 zcmV-^34!*BP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L2@^>~K~z{r&6o>t zR96|t&%Jl=-DmcdO*Rh*J0U=Ll%{nksY;Yb3ly!|R%!=Q%5*AqTEW2X2Uw;Z!(iT-#L5F z|DN-G-}%mBvMi(jCq^v@zJ;kDhw%Ah`wm^Ul<2CQrYdL2*lKHuiBkJU%xDBfK5#P~ zL5$KECfkio)v6VtPLF@_ig#nNxIs@*6joVYGG$Wvb4%`XjkT#GMnGYLI8XT2`csG# zaVv#niTBcmnUxhkn1K;E^tyWj&#XKcp?M8~OOhPtg;h{li(Dm9Ya~^1@(rU@% zbMAohppi4U>k>xcJF&ZbP5mz-b2+`g+WGb z1F$1uPB+Ct=rl@8M!XA&;Qzw^7Sc^vG7UY7aVk zK{X;Y=8akUX%2xFgjigpc_A9NJX&l0`uJooMG}rugDA)>CxoLM7Z;ND3_z{LtnKO! zl}+8Ino`IW_QzY%jz1zcj;toc@@OE0R?I`s&Q5xdEJ(~HAN#2vH)trA+0am){8AFg zjqaY{EpMc?{r3LDZ44vWZF;pY9URAQ+zfqVe*Ifp7UC&8ol8*TdQ@dYI#P8CaK$i# zUj7Q2Jyji`yd}ib9sLEN)~o&7cAh+Nxb2?FTN#<=V^hlk)ev2M#>dip}DDTkma z2f+a9)n;;Hl0dwyh%1~imFC00ermkS9;4%`DFvgR42HQ)+fS(N9D?ecC_<|`h7km0 zq>u)Lj)uD0(w5B&;t+sYuLSR1QD*wpZ_lgk9D*7rpfPsjk0OXkSY*gL42Lut^!UtC z3j$mGt!y_+LSSAbzmB^W8VE9p2gT&i3~9bAxI} zQJGX*T5dOr*@7_qW`86ePZ6}?v6CGa10pBFVH6(Z4!qv>uVY@duXyNnq{CqpgiObU z74rG$C=*u&eYD@>s4|$$6iz_$#7UB0*IU5>HaVb(R9BQRiGnT_a3hu%IVg^y z!9;m)XVg%lN%b{I52AnuZY09Ks7#$$M$>#o>V@+aY6Onu6+yCuB&9#&c!H)3+o!gQ z2V4P!;VL)-SyluY%%r2zz%oL*Y8j4bM|JMv;cmF*@xu`|d|D=f7D?iyR-^jRoFz2_ zo){AY_g5-DNtC?qXx)7_N3|h2ponz2{U$w?vGOpZjwE!{kRb5lm-akRUZVr45CWu@ zn77n5=c#eY-Xao-vbP2zuo!B42tkq^rACuUn|5@-^7wigj+N|At z+wFUJDVfhTT zoh|4grw-&Wl9Zesx)bG{{N*x=N(sqGTx9YWagf{K9=&_tg$a!kwHtMb%YO!N zA`m3LW5YuZyHPcPmt@z}5b!%Yqai_pVuTaqfFP|HXMAD|oFR(H>wb3U*}k)VQ4@(z za~ihJA3rP;%B#!m{hwU*dU}HGoxW4&`m7eMUQg!SYJ$L8+XgnSZCd^9&#R^cxr_Xp zjQ9^9`}aYv)~IQ;Yrjwmp`kE9$LroW6NZR`+z(%jiw{pJ`~9+Mro;`&-4keD`JUg; zz*QHDDjkGF-fhO*-TsDY7032BtA-)++&c1reeXEZYY?2(!vxqRGb{IgOS$%Yx`WND z4#LG5PR3+sP9S{Y#zbKmh2!mrz?Ca@DuO)8u63FcP6l)4S|2b$d3xIyo#3)w{PXiIo9C+?xhO!82FGSL zI8ivBSO-|D#8gcD@##(zm2{efeF*4;L;(stH-dV-X8Ds1`*uBX&*ZcpxUwnCslCzo ztX=1?xAvn_gR*_Sk=4tmZ(mfG?Dg~nmVQ@pYRI8*%Zt*y-_M4;!C&lLyl`G^b%iB4 z?9LP>C`o6K`{4<9wMqB-T$gG}(A6Die(_*j5DhxgX4Oug?3~wB+tipg<}(?MpnOCk w+^O@u&N8FbtTUJBY?j<^duNI%s0bkRANW}Qg(0BQod5s;07*qoM6N<$g1MfLW&i*H literal 0 HcmV?d00001 diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector64.png b/sql-odbc/src/PowerBIConnector/PowerBIConnector64.png new file mode 100644 index 0000000000000000000000000000000000000000..4450a97f3de7dbd88017f61c0b87a592c37d8dfb GIT binary patch literal 3252 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Connect to PowerBIConnector + + + PowerBIConnector + + + PowerBIConnector + + \ No newline at end of file From 401a05360a74b165b372f274e1c01b61a5c06ebd Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sat, 18 Jul 2020 21:21:22 -0700 Subject: [PATCH 02/30] update names --- sql-odbc/src/PowerBIConnector/PowerBIConnector.pq | 13 ++----------- sql-odbc/src/PowerBIConnector/resources.resx | 6 +++--- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq b/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq index 45bb2ace90..a4a9b4e26d 100644 --- a/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq @@ -23,22 +23,13 @@ PowerBIConnectorType = type function ( PowerBIConnectorImpl = (Host as text, Port as number) as table => let - Credential = Extension.CurrentCredential(), - AuthenticationMode = Credential[AuthenticationKind], - - // Sets connection string properties for authentication. - CredentialConnectionString = - [ - AuthenticationType = "No Authentication" - ], - ConnectionString = [ Driver = "ODFE SQL ODBC Driver", Host = Host, Port = Port ], - OdbcDatasource = Odbc.DataSource(ConnectionString & CredentialConnectionString) + OdbcDatasource = Odbc.DataSource(ConnectionString) in OdbcDatasource; @@ -56,7 +47,7 @@ PowerBIConnector = [ PowerBIConnector.Publish = [ Beta = true, Category = "Other", - ButtonText = { "Open Distro For Elasticsearch" }, + ButtonText = { Extension.LoadString("ButtonTitle"), Extension.LoadString("ButtonHelp") }, LearnMoreUrl = "https://opendistro.github.io/for-elasticsearch/", SourceImage = PowerBIConnector.Icons, SourceTypeImage = PowerBIConnector.Icons diff --git a/sql-odbc/src/PowerBIConnector/resources.resx b/sql-odbc/src/PowerBIConnector/resources.resx index aadc0c45ec..8fe822c55c 100644 --- a/sql-odbc/src/PowerBIConnector/resources.resx +++ b/sql-odbc/src/PowerBIConnector/resources.resx @@ -118,12 +118,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Connect to PowerBIConnector + Connect to Open Distro For Elasticsearch - PowerBIConnector + Open Distro For Elasticsearch - PowerBIConnector + Open Distro For Elasticsearch \ No newline at end of file From 11856cdce473256a3048d967b447b43197181604 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sun, 19 Jul 2020 19:42:45 -0700 Subject: [PATCH 03/30] - add mez file - add docs --- sql-odbc/.gitignore | 2 +- sql-odbc/docs/user/img/pbi_auth.png | Bin 0 -> 12324 bytes .../img/pbi_connection_string_options.png | Bin 0 -> 11071 bytes sql-odbc/docs/user/img/pbi_data_preview.png | Bin 0 -> 102916 bytes .../docs/user/img/pbi_select_connector.png | Bin 0 -> 48760 bytes sql-odbc/docs/user/img/pbi_settings.png | Bin 0 -> 39406 bytes .../docs/user/img/pbi_third_party_warning.png | Bin 0 -> 29390 bytes sql-odbc/docs/user/power_bi_support.md | 48 ++++++++++++++++++ .../bin/Release/PowerBIConnector.mez | Bin 0 -> 19463 bytes 9 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 sql-odbc/docs/user/img/pbi_auth.png create mode 100644 sql-odbc/docs/user/img/pbi_connection_string_options.png create mode 100644 sql-odbc/docs/user/img/pbi_data_preview.png create mode 100644 sql-odbc/docs/user/img/pbi_select_connector.png create mode 100644 sql-odbc/docs/user/img/pbi_settings.png create mode 100644 sql-odbc/docs/user/img/pbi_third_party_warning.png create mode 100644 sql-odbc/docs/user/power_bi_support.md create mode 100644 sql-odbc/src/PowerBIConnector/bin/Release/PowerBIConnector.mez diff --git a/sql-odbc/.gitignore b/sql-odbc/.gitignore index 577f2c8f74..849c3e99b7 100644 --- a/sql-odbc/.gitignore +++ b/sql-odbc/.gitignore @@ -56,5 +56,5 @@ CPackSourceConfig.cmake CTestTestfile.cmake /sdk-build64/ /cmake-build64/ -/src/PowerBIConnector/bin/ +/src/PowerBIConnector/bin/Debug/ /src/PowerBIConnector/obj/ \ No newline at end of file diff --git a/sql-odbc/docs/user/img/pbi_auth.png b/sql-odbc/docs/user/img/pbi_auth.png new file mode 100644 index 0000000000000000000000000000000000000000..12e1af8ed6edd18d0c6f8ca760fc632a1972ce57 GIT binary patch literal 12324 zcmeHtcU05aw{IL2MnSOAh0NF$1wvI?Mp01d(v)7LE1?Jh0z_p1>Ej>}KwtprkVuyj zid5+cp(g=ChY(r_A?*g7dH4SD)_V7?_uhSPt@ryQ>zkY;=j{DCpS{oCXYUAoUComx zL{0zzfRm3N-hToB9K8Sl90~dPC-#VE_mw5~i+{aFwJNDDu-HAn? zJ!jy?kt6CyyFSEV3y<*=uFg6sm9-sxt3PBSB6|)FYWo6$XO#^6nmT}!F8x+!P=I)U ze_YF8@YcDD?YaD27cLrCNfw_stNNs*864JQcr%Xaq(h*0nS<(Q&!)xDL-B9S= zY#_tg*SG4Sh#lvvsILIPFPRU|vSsw22^Ea|w8{Qol<>f<6C8lozhBT%*iBP_c?|tU{TQ-!Dtxej0r`WR+v`Izr~kLkr#ZYd_|D z-jfbiLwj$BiJG7aiyLfP7O;FOv;~W3D+LEssf%lGEjhJnP1S4RYf~=T({9m=656i= zzf@J~Leq|JIMa@rz2Wou>R&E`>OD50OVMYOl0hfzI6vLD1#l-T!}h8wAHaQFdwb2- zCtyosnP})sEIm`kqZn5~8g4_l`Wt}=iLhAX$deLPH_HYlCVA77V+sUjdeG(yj0Mb+ ztf{aKV+1vlszh2Qbu3BP(r+NOxoCxz{rwS$=B~jL{7D)AtVgi?IBxYkdPbKv6&mha zoN6Xtx!L5kJ6?zwRJ$Zi`%Zu<=FQ^{~);?WOPi(5HK*@)VYfLH> zyfgcoX(QMdvm&bSQhDq)@rHmjbY^ZRQFK%rW4IRld_yVf$VGdN_iuQEi#vtu(u>7= zAZ7^IW+ryq$uwbd4|B4A;G zRaK+Ssw+bzMRUFH5=;kIYy@L0>UmcSO(awOoxFXtoHJY-CYrKf<#A74g|?AGjRn~v zxtR3SU{-6<{LtWuwy`vH^-|)pgBqC+c>%gHH682$yZl zc8Os80#d~TbTjPL7jOAY2x0>41@XJV3xZk!$cX;|wX z@70+Vsov7p8aISLqSb5OWZP-*zfrPl-{w-N+AZ9xiiTGz5pn{u)qFpDmikr#iP{Fx zmt47Sg@UrzOg=obsLba6$f4lKAKI*{3?(&W$JqZQ7&m32ZNb%*Q_)Y?($6Rw2|TtK zW3}>@6gik`w&aZ1w`f@JG}Td)UY{M*6S!+1?BKz0eh?+`r(7$~!-%hd_G`)xQPIMy zl#fX9o%(>ik*A%an&3Ms%r)l85N_uZ2>nPx;ppuPjz$u(lAh&K78%E@JmHHm`5LdX zxfBW~;$kJ?^7HK+{T(fLeF!`_&O){Gf0(f)CB#bbYoM~^>Ya2j_2i|T3OzaERL^d~ zXItuBYu~@Q+@GczNUPm4N|slIq^haytpYFB4z@7H zsN7Fdx{??Be{mB<0}I*`SmMCF_L8h&T={sCF8Fp3)Sqjbyh^AI7efEO8<8tkBN1w# zRkE-=Y~H`5Lv%%KC1-wCMiq&5FKVD8rp@H8=vp{_KlQ_NWGnq5y^(1tC(PK|S8pOan9{>zA!d|M0x1tTogY{$?KA&Eno7@JYSm4G=8H^JAl%)3tH!fY0VQZFmzt(# zjx%DS{G-CJEXq|I^IF>1G#x!Hv4pD7)EgSSma&%BF2HQ5yr7k&y497{K`k-bfzJz_ z2`k83s^visU}ERJiHfH!Laf*)bf8~;yaq^1rSJ6N=05FgGo*D5nV6I?2Np`8dU)ts z!*X4I*!v!eS&b6%1mj&x)z;-^cr7Zc&W7 zm3*B^me7|4@RPP=oe*&Kpv6|ra?Jev5i+My>e!bI7x|gtcFVRg@HiAwGlGn9#e?M6 ze^btKGZ(G{a!VnLU{fX~Sw6@8W|ox-%q@zKi-Q6{_$Tkd8SXb_^KDj%GNqyKeUHdtI?DJT(!4L9wB2-yTxLeze ze^j}WPp&GyOjW}%kA*LJ^rcfXCJTp1MR*%Gma`?f+=UDw^-3+F7V@0QPbDzk#8_KB zjQU!tS-E@5LRyQt!sj`~bb9szY5L{(s5#taeQjpnX)kx=1vP3bj%X=rT)UTcQ8~5o zZZ)kFs^J*@b&v7X<8Yf?`CIHJxe}!*v+A4MuN(rVXq}9tr8sRwzZ-&ym^A-}EU5ti+~hjc z`APz!`LU<_{>36SnIK8=&28E8AWR`qb`xM@dx(_w4NyqJy`HC%cATFd{un7N;+J)_ zRtkDf8tD}sDM>an{+kd(eCajPfSLX!G?5)zv!{6y&W`_iL2WF=`qgdaN=Yg@c(7-gbjpXM^n7foOYQ6&+I!X?+gX ziyHsr5G_2q5fyy-op95ILq>sY7lL=!Lr39WbaN^AOap|q$l4u4!DseZG*RaqGj?c= zN}zS6eXR8ywHGARgw-fo!-%~PNc5ts!SEqS@XKd<)a$UQv%VvPb_&ajr)B#BeYRsV zz^D0A5_hw#ueS2oygy_V;u5LeT)bn9H88Hn*d$a3Zq5+lzFXUr^affdo{59AQuUaF z_Q1x)nF}vecA+TdniEM<#>wI^uCAN}noU1#TT5n$=0z?$D(z2?hHZkfWnhj0Lo3FH zqIoF&k7n(SZT)9u1wN@`9~1$i*cs5{bM2REHum)#8^~LU;NTaN8R;t0+t{;CR%$-$ zm5o76AalP?Fji%gj%95_6iNQi@r?dJ3JqnQ0=v5K$j{!9mh!5)_VFdd43&Tw&Y1f> z*Lu=$+cU;RYV{;-m4=&k8iF8#*C>7NhL1|vw=byo+r-S?Jkkc#`#mwronshs+x`4%M3mGLXx;kA2~@6Ep*l=z{_+n1E*I0 z?(FXij#YXkW{r!lRBp;Ey)Bng4fa@E5G80B7eU58`%~TzDi);Fd6Xdn)P2Z4>>N*r zoiLqGuWh7{Z+GNXzl@~W=#63$u%lhB*Ue?yJ{_FmEKKU`VLEj(G)*n9+U0jcrDOs0ceiM zZ~HWZ(VkAIk5`_zl$NE=syzq6CzwtHRn=^Bz{>W+)@6<%J|GNoqvL`r_VoH}WFFYw ztj67Pi<)U^gt0V9>Ek{mJhPVyY+VW)#qTdSYxePj2w)t!2}SQ4g?Yy`juOWiq5{b> z?A?vY&akL-CA?WA*#4^Y*4v2>-{9UGu0T?IHM_Hos^99`&I5kL`5F$&FV}knu76cm z?y3t74h-IMO8xv7flM9j-sDh6 z)B_dxey27|+5q#>u!x<}yxeb~a;h508H~GGz$Rztl^5qD%YydXkgqb+gls{n!~C*V zs#PWRCU9&AR2Oe5AH2CxAc+Syc;zegqoy*rXr!{#(HF&nw`nc21z&?2D_t=VtSPH* zr-f?89Eh??R`uSfs+?be0+mck8qC)E;!sg-iS5YhyoPi6uItRyCBl5{lxIcSLxIvE z?uMJ*g5u*o_B0>KpL%pQcT0w~*crUd& z_@b4cgKYz7wW83I_$>v=^LS6YX`WAtx@%9(kN!SW)K`QXPa(?o7Ie=;#%hBIwQQaX z(t{^Ni#h*)z>4inowRs`eR0 zX1PraS{7Z<9voHqzUf5VZ?K_CJn!Pq+27H6x;&O9bPN3`6e*wro!;%|fjD%)7Gr26 z1pB^(L5xXFO%wCWWlZe8iq0RJZ&$U1_h+O=Eqbl0LTw1cD>_3Ziay15%gX5K?kByn zvp(tgkb5;BCaa(cKIk_<VPvH8+SeH&=?W}9j^CMc^Z5u!}80(g` z3e%bo%oz4YwH;8q_La>-T?US|7na5+@aB`^=oq5(ojbH;z+(Qap<$8cE-W0mh=6&G zP87s&)z&3@#|63f+6Wez&FDWl?f`+iYL50k48LUuFFLC5nZHDQk)1m_CK@Bl>eMYI zQA5c0|EZ|{V+uU|wC zgffq!~t3R-&o{$EpL)SFp%(lN_o+mvFXH@UQ6hXBhg9l?F5L* zWa_H26jS=j%I6;-Va^gHxgq37U0^bjeJOLX?#}$Ni`C-6^5Shj`sfSe_-8## zUh?nes(q$>_z9({!2$~h%7}5=7d>$?{G`7c2xtU3k*K=h_ghV_d|i69ru|9NrY}i3Qx#LH z=eu&E12v8A1kO;vpR=^@^}G`ga`>XIhW7^|vaokaVB}TOE!(LnOe5C_W{IZR2-X-a zmq&`ZNah)#@)|!kmxx#ydK+`FB!MS&zde8V6>$k4MAd}LY-7zE{OIW@c-_x@f>x|= zakzaKP(5=bXB$P|dt->FwW@Z&DQoNU0J9n14Ai%X`3?n7V}Gp!Jw~Z{(n7h z7GJQ5k2OR(59_&uv8xM`FLSb?cEwXyFdEf1;k&J#8@8Dlzq>S6sg|6^D9d_B+s+(- zqwwy7=P#obEw|(r9IgwdzUcG1o_+DT|N8TNpCcw=$KMG%T&=^Gim$w{R^ACgZ+WdX zb>4%~muk3Z6!q+sNdr}PNoO0})?JD7a?t0_d7O@<39c);?688`k-=PBqgdmaPI`>? zbWP?qP_>rAbmCR>T8FDJDewS#oicCQMEzpxL4?TK9K#D15YpE8c1}`qWV^uWyssXf z6>Bc*kO4osL;Wg}R(C8BTo!lxlbN^s_m$bbH{PXTriNDWR#qBy+nviv8lf?RlWGCw z-5_qL^bn)XaWbx|A|VzRQR@A z*ap&G`9*j?Y|gzx<7QS|!$3gyWvP5`%ZM~_Mw!v&jKDSxsho=6jDM0CEbEBQ6!)V= z%;@^rN3M(Sk4e&-wltkWeLaK_CBq*pRXuYmlS__IltXX6jyMwvdV~uip%sI-b|Yk^ z;LB2t-W^F9*TVFO@L5Ca;MpM>kX0fD-W*4z-H>T#N1jXAg>fV9>vcNcWMu;iW4oGw zcg~8%{(!-MdqE2uph$b>K_$S{b>`oC#q*M$Q(PA$KYqk*Wnzj7CwYCaVXt{fHTes@B}!zHmPr?BXNjoY=yrlY@dau9Wb$r4R@j)UUL7p* z!7!TVL~mb!HDSEeTTmoEk+lXTa{()zBq~f~q>kf_tQ$9#;X3i6InL^_i-jSF#IQ_9bRTa3`8kT)N=-!gT$pB}*>Rh>sT|zV z5{ps<0wm{|bEjkDXzw_!&|fLtiTc1+JDr^uL3Z=Nv^o-FgJ2!FXId4+Fb!T@W$pH5 zTQl3os~s2F*~tZUjm+BHFi<1Z(pPdqG2?oMC>-tPpKi=riD~m45m*|CCY_W|;C`&F z1P$m94_`lByWu*UjtYs94VcuFl7c7ScdhQ`zcmH4n0UPX68uZ`qe@@ySaiqWS3w>N zmCC$&H`27~ADZhLZue{UHcfwx8McDdm{VUjb{~R`+`A@j|PZk{h{|m{E`)Kq9zjSz}xC@i~Qk56xP2D1txKF&3>I_(UdM;K8@c zmZubormJMW=-Db$4C?X`?B>6`AEIUE(m>?8q*(CXz1b5gAVDJ5ZoK7Ehq$oqRr71CU01G!T}m7U{WT5*t_@c!tzkNw z!wCzLM)5ohfPY;zSkB!3EH`GUeQy_e(%pfaUm6bGHC6rc^ok~1uiCeu>?Nu5W49|^ zXJA(_rYcaZN8<`QZr?Jh^9qO9pM`ZPOapYNlH7r5V!~q6DwxI#eZvW6I(G(}-lUY7 zjxsb?J-f}9@=g{KZjE!^H2tv5C+Uzwtpfgm{q)4NXGzW1-e&6ynokGh=!sqrm6A_5Iv?H$b-s-E) zYM_r?g>5~ektcd%ZYB;Pf;_gv9iPkGx799`5RvWb^Py^C4Oi8?m$WHjx1Fp50@*+ zwi#4ia*I+*Q}|SZsSnsUT0P3La{^A(<^~~h>tT?^_o=0+s;rPHV${!%$={xhbLf*J zpD>y)7t7&yIliYFIXCWO$oE@dVA#U+%T;$Qxu!XyKh4!r!f<__nNc(E6H6LQOg2HZhen+@wq?UWfM`M=_KtHE(I zjH9h15l48QjbsbQXNg_6d3wOkO}*fNojFz^{549boylq4Hx(ir&{;6}|3 zy}gWOy(vX>dF>zjxnRFCf1A0k_Jdms%Ty@)BGJ51bnl#~tQRoc#89%xxdVc|R%+i;4{?T3!#+lQ0 zrYR8Gk@*+d!HU_^8$-e^s9=naB!u6*(KFpYYoZAwO8Hnjmj30b0pXU3&a?W<;j~rE z`;Vf~^VfZA{P62_lmfp7Zf(%yo7Dz^{nlVpsgtd^nM z$jfVX9SC69wH@X2<%_^Ew7+@}dOz%BDikQ}8TiSlc>N)KYfCbXU9==3Y~S$q-U}*h z@VcuWiAk*UTZ$M27wNm8a>qv51x8GxnLcT)uP-&naz|4xw5)oQSw%dLhTe1nI2HIuujxMe@YwbP|npMz1l*PzY}6~iVGo= z(*Ye)4hJsr0?2-E?&{L1(7R#0T!3Ofi93$1mFHwQg$;zBzY_+0p1qTDP}2VK{_xW2 zZW!VSfDPGyZumb{6#pNW&HpEU5gjEAJi73}76AC;m&3XkyUpOoHS50y{)NXm&VSM2 zU)I2`NdC(i{L2~qUv~yKi&*A#j$6K>aFYx zV%L=UZ=A4ycA!!-f?Yw)b?k8#R~Dyl+ycigY8q!ma{%9y$BH&QRShyS0ZG}I{yrW} zI3tOPL9w<+;yKiPiZ6zVvTsBeGFT&3);EE>9lPaS2m_EpI`H=ITO;4#%w_6g_p{w| z)I5sEb=!+<3L@DoT3v-a^r>j1mY7D=?B@abG(wr%G2VX`*E zGV%0o>)R7ROx(5keCnyPrhF@t>wKSjQ0RTAlvbeIq?C~aIx)`i1Kxtr7nf2~PDv`4 zG3$XtOjzsi`2=`sYTQ{&KF)N-+j`te6}+K3xmSBm)+RLa>r)d`Qh7GDI&s0;WMW@4 zzB_Jk=G*MWvi*Vc6t2u}*?$-3L64Ak`>@B)%V0x?h^(oHwc& zvDer=6?pNC+(pd-a3Sqn@ho?R4^gv6(y{3Te`skj66d73?W{q$>InXQI3pCB(T35S z3oA+ioj6MtKH+hP&5>5=U1tqpJ`tBpkw_JN3XLmP>zulT3_iK;~}2?$Qc%@n_~8&M<{4xPD#b3kg0Hfa1i3~ zy1nH+D4QWBq7f$iADEz#E+_ACwB`igb_QZTZw8^&gmV0j$nV#G-OYA0SHsJqz!|4j zGCPkmZVn0=>)y!#CZ3aB@gW=b(sOWRImZ1#Snz%N!$W%vZ4fDhG&R3C)tEZi!$W=_ zbIe`?U18;gXgpf4v|ZR3i7PQ_<$0Q!C7p=D(AM(Rw)WL&1ex?kZ^sQj*%$**ca!FG z#&wlF+n@*9!%o+l=AFsqf*?7PnK@6)ANrSLsEeYi%$&ApyZk>jI(}OHbh@A7m;v`X z-XX_!qjM*M<>eZ&UA9bEG0W0_$kcHk54E?`$n3jC9%$UKpLVMjwBmHM$cosHJa^FD zVgF2L*r`M2J8zQ@+XSs<)aAPV+;h#>F;YJ4jx8+?3>&H7@W8T#_~En~L|o5ecz^hK ziHuBnBEUkCO&5N(``I@mP+=4ID?<(wvFXB}n0Xp9LM7Rtx=RI^2y3I@c(1gO1i zOW17azj(<)urd$%RLoBvx7_~GrG)hEP;SM;UXMiMRrTiwq5?+C{t^27e(ci&OuYV& zw8H%FXs7xAVvgTEK`nnbxU(OL3a>h%6Sa~g(Yq6F2c76UgPM)hUWmXpyCpvQ$Am+Vg7n@INK`sV5D<_q0zo=RuTc>Qy-06a zKxhF1p+g`!UtD{gd+*+7@3Ze1cibQ6M@GIcndNQsect)Z8L6qRKz@bc3J3%uS5lPK z27%6VfIw$nUOEf>QYQ%^2fogDYAZ;CO8b~rftT~P&(xlQKozl9Pb@D0@0Z;ajXXi1 zTlYwxGfLX*TObhku#)UET|e`U8R8oAUIzab;VSK|q|gh{@n*!POWgL2vlo+$Bap`B zqx^Qp>)a1&Z+@xajZ*uL#?nlEFf*$hUJ4$KsdXwJDHWayu~T~sCyytGSIFi@!|TkAkTn6yNYN) z%vZYan97)>>;&kpT@3#I9QaBgw=YG0iC|hq0Dm`J7XyJ_-;QJgfu6?7Qh-386j;eX zpn;tGYJpqd$ykDR2RETaeDpIREz)SC3LiN7(#3YLjhm&##q0%asrNmApV!!wsXAcH z0Xw~-Im5U?1s2kH-(E!x{nUUS|GMv;F6OxuOeytyu086!$gC4ICzyEDkMdv6NK8xw zpUhDX%Ep}ofecx+QV;uyCmN)el~9rzS2ub^QL4ld>HJVCl4!i8_oV~(iY#KbpNh}k zH|902bHtDaex7~r*$XF(UA=el;UqLV<(L(dGo*a3|ri}rQr(6sT$`gPhMs#4zWm3PiTE4Q_(U?{M8?! z`7F_;{RJJFkhuYzC(r7MT!jaAgMqn`)xi!XQPz?c)|YOfMw@w-YGbpdgoSw6QHxdS zfVW|e1a(HLbzHGoLoAES$+L!tTKWbqO)BN#>vCm2CD*(GoqzrO*P zqbGC%#$+4I>pDRl9+Ri$yWw{{fLq6J^DNIwK~`3oEgB#)rm<$82itL#tLgQ(xIe66 zp_tImhZhGVeVvpmCx+UmYQYvPKW8UAeGReEC@5#fqm+@v#MMA>V@;a8x%fjlcgN4C z&F@AWHX@zfnK~!YABCuEu_w{(x)1r|>nK>I3Y`aTIwCsssXu6P?Jn`)A6y#3D>p; z*u$$-Mj?4}cfF;=U37o=9&3mAO|e^v$TQzeKXxMBotE<#&K9fu5mC}Y@YB8eAP9#? zD0BAYxKyuV=E7xs)^en%#YW?h6<>gLvGn7bJZvPH=)TYa*oegfOBg)~AmXYIzL=FaXvcaoSf;~i)%eJcEsRB3KL7|UzW%crZo&7=9Dn7iH0;~hxH`sG>MW-C znEuMPt(~aw>>i~P`?_3@KT?j(?S8mREhdgIujCnKK6oVytKn?yC0MKN+K$#IYp=eF zVeG0gtG8Zdx1q2sfnET)b@rH}?N}JO+1(c#6kza$NYfaveMIJj`Ku-DN3th!`l!jq zh0?9v;$reKRAu9KH%E$EX(j|$F_c=(1N&7kqDEzkyDaU!h{3EH4CRNseBj)$R)7u( zIaic0QKp3-#BD0J^xpn(5VV+#_nl36;>T-yqEs+epQc@uAFJ2&gmv(;2_$c6YCk2R z*~7`V=D-*cAUQ}F&1hW_=*#khbR@gnXYL3~tKAGLf=4hv3A^js+DplNNkiB%VBQnz z^b)sLv}C>6MeK~7$ogEV;FC|OhKw+t!M)fJyeWR59Zu{0l{iwCTf%P*yW@G2XUtCg zB}hQnhTnq;QpYM(Rnu@lSb5ZZ6sfc7Cs6!W-vT-hBOjDId9!#LOonaW<<8o|GL>ijuC0xLxg5(o*KY~(NYM$4PKY)(j=_uYHS&y&tGKaW zI9c!dU+%=*?iSzqJT&t-ZDs?pVcyeBu-~1zils#(UWksE zIa3fEKxxag+rdKOnr%+C%ePBXwa%t%iy&MM^3Ow+Coe8X?$;hO5pc0(1W!LP*Cxr`)h%y`KxaH7 zc2eMUypib1OAB zWSxg{zK3DJptVT+;wwD&F|f7gQf zfK!O+G(~TwkM1NxFOa`DfIp8}YDq4`Mevp0*fdQy5w0|}v`v+kTu7v?^l-8r&Zdz# z2l{2b#M&WSZJ=*=he+j{eWd|AYLX+Jo$VvpctD8Sd|!M!h`khYTguerd5EhWE%?$c zk$UO^q(EfuTwkpx$7)ugcf2yEL21juw87_~*@iN#;?-21{s97Q%T{PuCVu1qVW>lH zle=f)EIPU}sn%)4tI*Mud+UMZ8Q$HWYJ(N(1oT@ab;l90Yh5@u_M_=}gUoK4as`(9 z($>*5jljL>@AiT48qI#pSFmjsUU}F}rawH{NUn3XKH0eW3t3s5D~mn7q)gf%@jiw~ z5g#jGx@RD9=957sy%-iX1s5pL*J=vozR!KX7V8Mf-!f=KXa<5G`Y#}k9<-Mm&voBi zT;i`9 zFSk?Rsj%Tfh{qgU6GgAMX3E+T7<5bsUu>TGq*LGqJ4=jdH<9|xCs#o9h9oVc>^Fg( z2_HfpxZG#I@De`Yw~V)N(o$|A9ICagzjyLbO%d#@(Ely2u9L(Eqs3aEH6eq{>{B?! zCDeqy@12?15X$&oQKT@fx@RL^La+91e1h3=7=(6aUsTVX!sHTj7Pvb**aYR~D23DW zY^_>r3CeZuorXYvd>6WiS3G=c&_U^_zpEWh>wS{~3xT&js2^DRIA-n{d+r;x;Xor3 z%^tKUo{gFzCozFPCl;0Fv5`z|WEBP1G*Z(*D}vRB_S2|(y*2F++2^EHc_8`CeQ(H$ zq?U%*od|FRb8?G?(s)Ros9iv6@K*1~lQ*H6D>YELg!Iua&&Q*fiVUrOS`iv7O;u3( zvz^GYk7?%*_#%rp2vvbJ!kg}iUFHn<&*}u?;08q5&U2a@C!Mj+0^+Nfc*o>e*TCUA zvbPjo8ugFmn#)7=V71V3yY5GusmWm-I2-|~#Hj&{|YNMUIu!7u%(1=Vng_j&f!h3NG>n&uh z{3_Fd{Z=_y2s-=esYIew9sUh^d1YSWS|TOCi`4Y?vHf-bUw|l~#acmDXIhtBHB6AL37wq4&oU0t)FyM8lwlVx-^_`mg14U!iEA*5W zy)GnIBTbpJ@E{%~=Xg@x>Q(jJ6koz!@&>z{tt0B~*wVB-<6D;di$I~fXSp4jdu%~# zUtQ~tR)rijVr+L)8NYm-S~WE&n8{Ky$t(v1afzpuE|U4n6qU4M7cE}gChiV@MVsX3 zDNKebf9h2zmU+<`*zX;$FvD(4!(y2YyP)$$bJBpN8eu%pV5kCxm7RqA0z5ZH$U8jt zn{qKuE{iQIVO{q#rlJX&p3m;f7Myb8KH6wa&AMCQ{OJXj-IZYQWjt$(8*`k#+8JO! z9o>L&w^?{c@`-T(+1aO18v&2p{u+zP6WIjk*;C~i2lj=@-tJidIs{uje3_cA-;J~R#yyJZ7*Qz(+caEMV z-2&?+pR8NW?G0e8Mc3*Okx^0<2@KdVcK4Q3c%ix#AZKsJ$`}(5%>k!UE3*X?)q%F2 zD_W1BYn_90mY)x8Xb}hfp`F@`ykWNc>%98`)@m;n$;1$Nm=ABF&>PUskpL!EMniaWpDMGIX^=QNo2db8gbh?asLxTZvvxEwpAJ7u@oDX;Nr%-}d zYN1iR!YnR((*o7M0xl(X;S*kHx2U7(0zt7pM9mKdv(3Up=cHMjZq_H zO9!v_E73vWJoJzG0NxxU zIi>{>S16_4(zn|-wa%&g%U(Y6MIsBKqx)yiy@vFhU z5j+AQI7ZgA`nRM5ynm@q@Y>#NMZZTQ-`C8*T&;;p9+^T-Mk(DT$S z!`4JXZ6oDHOraV&%2&C$GyHr%LuPTi*$bTy+r#Uiwt*K#rg5%|GD@4*rkeu=(i6Y1 zW%*ei;tur_bxq|UU4^0`H_ANGKLFBO^CoLU^?lFs-4@Hdx)a)^K3 zeS)emrGXh|tlN0!3olzxq7md;6CFxkQCZF>CtE_9K&5>s#KDh?YK~zrp7g_?>kbA- zqdzWyqx00Jy4}lgKgWFKUmn1r@`EfMHW{V(glTjSBI1WQ_;yo7&3fnN0DH6Uueq0r z{Fv{A=@xgcG3o!!sy^t5dx$ab)=%kuS3{Lr%aZOrT5QFb1k`fI9`#2=f5M7r2F z&9=KamNM><=7~PWdfArQI2u*;FPhv=hiLDy8TbC$B&eI+dVd%hO``g=sQa5FT5lXI zRg{pUSQn^Z6PhPMC~-tbwADr`FSFkyo}E_d&Ck;xKRGXFJmXJ+h(5H4@f{r1y)l|G znm*5gIX+yELr=8R;|TdAwMz`|-rR$pZsbo=p~mUepzq-@;Gu8P<@4iR=1R|9Ch=LgU}H<&nA`l-vI>lv z+IGk2UfWc2aswBW%o@?^%(vo{EM&#SwJkm&5J*!A9YG?52595hSOJFTsf8@;H}@2D zL+m#nwJZ0J4Uhma27d-fs^l~hiS%!hL;!yl_y4(hYBjO~iboMPGBh$(JLEC& zgU!TdHtGA4TbgwKioXw z6c5HlYE1h~Ig?Q^9rn6HJh9XDg0_7pD+=I-xiH4krtL17a0QX3%qqE*pIfG6C?&IFw9jUi6=r&j$E zsW{b5gZ4(qD33X=0ZklXYzj~8zX)ui6MW%Ox>S8oooSPCS|d}y z{(AkvYyiJ$-Fp~WV%!2?72?S<7~zU)@d6^^Ru8W{OuRMXhHcafzE11-Mtx5II}8HKOoVgc2+kw zJ*?R~tv)`Ql!x^PVLcItZTv%VXGkP$7pW7UZtV-ctg09$lNzU^IZEh9*tKCfSjX*v z^)%FpjW|G=U$x<5Q+Sk0Pl=jEo{!clzT_E}b5!w4YxZzE8F4Zf&H`U}_7d%PFyrgm zgljjj2oh!{1HHZ=m>bG}tmL?PtKqYoN%t^P6J*{d<~!SS320=a`pWG5#~VQPICKMK_=GR?8!tfjKDVi( zK3fUU_ODasv@i9rk{X7o+!crhy!4U&zik9lS^lFmU^8fCLT7cHU0o7C(0qW!Y+9qI zHUk_%ULtGB($63E8lf-gdCX2mop@JK(40)ls8j~xgIvj9_ZgdBIRo!YmxI}t#xDe! zn9N7WsAMT5yFzDbM-Q;)cwgU2mVR9zXc1?{?83flvtj>bGpD;2fi+26N;oIL({2HD z?+=uNakX?-P+agu{n=Hdjg#!T%{v73S=FriC?;dO5E0-10TXs=7Wm3Dbz;{I zQnjAWyZ)S^R|l}0yLx?HAI;BB!x{=0CwdtsPsVs(mF^vfpkT~P#(vlPjmE`~&ADnd z?K>(fy9KH8R&gPg2}c>1x|e(k-Or_@9QlMfaGV?HtOEoWO3guP8Q615`!gdPvkC%K zUb?kJ&aVs93f(np5)w25XQVlEBjN;#>TE)%jq{lM`^rAje}FHi_H63W6`9nzuXTbI z9^`HJo)gG^Nb-yjIL^vRi_rnUes*z4Of*lZ(OtT};sw3bxL1?4KBPo^V!w#O`!P7v zXvEr|%u{E(GVPYj^s!s9+jCs*4{?y!SRmK=kLo*AVqJP3`XBL{rTToyec8IVRk?ay z(ytRG5PR#>>n(|?_V;S_+p=LxW4ki`mE;O0&2Ezp3!~vba_6d2GtPd>Spu~4N=-v* zY3)&vFE4VV<{6Gy>rL-Hok(m6wHZu@CdtORP8PnW zeQ7}UUnGIlW&qc(^8I}-p(dRdrI5~){?*yhzgre`u+Kt?r!$Sd&?UjF`uQjxsr`yr zIbt&aoCnw$#=Yka=Ru(BJ;vy9#Hs5JHgMZod@a82{~o`8q_rXAl;}CLngpYmrw;OS zs3J`47)|(0>$WmB1DAEOj)w+~zW}d(yArb?U7!t?SMi8!0^q`tF%M7 zPmesBhy;8VfZ_)mQ^_!(5ILK6guJocddHC6@&&cve4b!*IPwNpDJor98$iv-SKQ3> z5jT+mo6X6)#-j%<2hGk?HF<0REPu0k;t`_y@Esk_aL$o=QC1sCTf){+Qak%<+u9uf zB3m$i!gIMVZ{Zvn}-den=eb+VAqy3C60>*vLes0DE9kbFvi)+ani^bF+8l6G}R!vRD`Cuo=hh|b@< zt1W&RsH8HHgALn2GZ2)a=0cVZ^f~HsA z7y(DR-+J7*&fAcR1Hsn3>mTKSBj}!M|E!VwD$}(0W;3N^05|iw*L^mp+Lw6YV$n?b znL#VFZwt7#TU$1atu)#zUVfU^_i<@^V{7A^e)*f1ojZ`)#653`!H?vnn_L~0nUpda zgl@1(*EHMtEDc0gwsr*{W!Rh*ko*(w0UvnR#|KVJuSxx>6Rwfi4uzBYgCnMMo(C5I-@-Wq?+aqprXAH5Xm3<#c~?_HOs?28u%`;Q*C=z zzJz>z^CRTD-6O$YhBdg8u&+gJQ41qKE`D|Xc?5q^ZLJU{sN6xv=v3j(0n)MkvjEUS zf8osvpRb>T$-zJJjg0no-syRurbx@*t2(N&Y?IdI%HG3WYQ$+I62XA1%DSRP%V8rb zDKH&M5+>t+L3ADyW)FbqR}z0gbPvVi{sZ$zJP3WqwgvJ98cEIBik`w4!2II9fC{Ss zu;+Y!)pyC0rHkg*;-q-Uo9`cn*4r=R5ROy|E-2+*RSsxf_8>;T`!s$c`1fpoLGYk1 zHzk0;>+=kjfkN53F@Fcam(f!I9OnpCLi$U%zPO3SiD z3ejg_YCi=%HxfnOXS~m%XXw-24%J&2>^b~y)`_TW)bYYhm{ph1rtx!O?VQ{1_nv>= z^(TBc$-;6e`lGp5HDzs!Rszky#ypuHN?Kaeo%UuPTMnxiYS!lOgionO;oms1<;Zz> zbkinv_A++zB~Bo=FOp(QFO?67KL;1AhpE2%h=n3OsGI;l(7vRpfi@(Ym|_DBWEGIW z^San5U*MxoH44zNXbE654%UvzBSRWcGO`LNBvOIA_untWUUL9*FC_onYBq`@U1jOH z@lP*f{JVe(><y*M4n_3n|lSAhSck)fo;p{?lMhJ{=@e^ zU9wk%58hJR=bO3!iSOH@!Iyg4Kt+j{tU7uQ7V@O)IAWox0pG)`bU0W&*h$+`kH2+L zl|?I(fD29SfW5#nq@EIij3Zt6L2?aGUzN(ucyuFM02?456W^ji|XnaO`#~N^*;{m8(qBO-@P+&8qM*pbc??cXQb!$zoKdEm4Xm9>W(^ z=MbA~^@9YG?!^e{-kIg=9g$A6is6sLuWfo;vno6}jbDnf`#qzM!zTXtUSqx%2VjVD z!WCg(s7zq@d;)ae*#6bFR?#zRdRZ8hSczy1$;xM-u+LYumQ>ylO>!j^nIxeUJG#`d z4KEMvi?l=($0iTgicZHq~qL{ znV~BBA&Oj+iXQnz3gpqeVVLWSVd~S+Cj&sHgq9bIkN>BWHV1INVqM(_l0aa_d2?5{ z(h6>i-90sfIYAV$e(z$KlpI^B9|EU7hhC$0RGi6(%)nHY|1@v-R%F4P=E)a5oVsGX z65j-8@o&YFCf!%TCrNTkt-3k<9@9;Z7E%VovM|MX%XrIOxwvUx>9A+=q(No?AN^h< zNZrKAWKym1???Ur^JN#WJ@x+DKQ8#cEptB6|Dnn7zqn2L&+@(lqu5`!GA{;Oezgol z-#`2#m=d^Q>A5~$kww_e2Oo86eBJ|CUySVcyHS){5fPt%0(EeX>O&5Xz}-QG%@#a1 z&9#NTHHJ9r%yFfC2EpP94X&9I!F76jxT)&F${RL>z_wxn*=i23cS5uvw4F@ zxJqJpm=Asf{@&-IW#-MrB_O`@Zqh?8E3AkOJBNVpK|Pp5lF7Gw z#+-U?+uuz#OpY9__Q_E;PPr?Z5PJTJ=CRDF@2i)UU3b|YJo#Mo^s_JPq}X4_JU{&+ zd{8H%#m(&dLu zo@xk<5Cp?H47{Wm@6VgQCu)ko*Ya}H=`#@aOcE5nJ>4Af&lE@3+Zy@cL~kTx9M2jD zdO+9{RJ7(l%aMt>#++C;`UdFJO4X%-! zI>DIR|K;wT#T$ey86s$52(5pv-TY@3eR93m_@OcnvO9K(I{qB`cz18nImOXvhxCA) z6Vp^UiE2}mpEqP=t#Co_??G;r-hC4=DoVJuR~{Ux12&Vn`7f8;MF}kp9vdU%#XbKr zs>q8hp@jDv693)`2U>@}ZM^vR)(N0hf~!8@TFv!;8MhaBp5P0jb<n`p!%zF7x@Y=$|CZ0il!OmmQpO_t|DM3x@IPB_ywp_Uto+w8ytPK2XK;t>@c+xW zu3E}Mk0-AE+p3YG1f9iz#*gxUk9)iuSeW3RG^KyP*+MI@9T34Ej{h{wMwZAJqQ;K{Nk;ZD{cJD4y2BBWUAv z72Ta5^`id(XEh1j^6O6pIOPX)g7_}+YDS+5=@*7Z5bS7*nr?Lv3D|O;!70c{7Y&JE zmc0GT2*XAP)UiNcRrpePHpc&&lNMc9670>7p4H%MjeKoYb#bV&`Df=Zsn%LGo-^> zN>KIUM1A^cnveVRWW_>eSiSh=r`V)157LqAfWQy`y*WYmpNbMptOM9=A+QB84A|c2 zzs3E1cl-fu%z8)jh7!gt`Tgc)Q9=Y5!61hb_lX2DN5NoLEkC#CRA_E5q#_8nZR>-<+1YPptNl4qns%xXx{$u=vG|ry)P(OEKVcD7&+f97 zeQR;>3>e~x*VG=NhN9AI=jb?*h`IXABxciBt86^>d+)}yHzs6#3GGX6_$l5~=JCAR zN@%~e5A)CL{{i2stSEa$rgV#XP5zJ^`E=h<`z zXcu~E(Wgrt@BwCWrM4!Zu?aZeFakr{dR7o4d^NCHj|zeA*G63?qgd9=q77Bf){Xwr zaD`%!8aF2@$4aHmr1IB0W-}Rtf&g#$lOkd6y3C>K{kW8 zfUU1yX$kV~|G8a{hsrdtA=2e*8rgt&7LZ^>rSh-u@$h@k{lIYYv!qj3y}D0Ox^0>@ zv!Jj}+e?I54J>#ZVcS2r?4|}ih*v|9c=Zy1=e_ec;?)jArDCRL20>lI@Vh!E*;G}i zceer${P~VE-uc{yh^?w;gJ9d+kDacHSy8aVm7uF$n>pMz*r1g}+;D8^Y=mB$vQXUC zF~Ju1kjFukN)c!n4H8$PXK0UR{aGy3qLbvPV>(t=A+BihczMmuc zd+*g&N{2AETxs#XFq;H*~U%k~;>Hy!xJm!yC^sh<+|SnL)P8)w}iD2=~nFGl|MWSj>aJOdb3 z^}<#Ry8&#;X~EUa8@HwiSRWatKm;^czchZ~>|MAGmk?XsU8OWuyXf#xULY(h3F%*0 zIp;8N&gu_htI1zBuaFwMDTS)r{G!+HuKcOInl@&Oyt+M)^LsLunPf>$!C|&vKxxf} z$od5nw>GvvFDOVK&AWPbuo}7edXEQqB1l8-uIdeuglBEex9i4IkxVZ+r{IlfrQwme zfWMUFQYP?_RlWrHc=y8Sd!Lf-4JzK}rXl6~AP%v)6(+*j!B6;`J@L=R3>McQy=M)T zaGlf6i$~S#o%QREU+MWZS?V9CY5Js&wYpQo$iQwZW(?Vpt}$E)t;TQ8)F$I?7ZJ-- z3JwFkJmHt?r9of12Q3lPbDk#q&%68F{JBpD>ytyXgnIEojpCZomR^nZvgguV<2huZ zR~!ZSaBLax_1cGdsM}mP&9WH8G~umuC+qhpUJ2`ir});FdH4NAWK3I_>ez92Wgm!< z@~FM1=@t3Tu&hSDrI!%p5zgtDF0kSO00a*?T2EK*qHCulyI&;hOn#@Pa8fFL+4Gx{ z#(#Uq;}?iv%%_`qxZFHZ>oo)Ql6 z-CiWmBrCEtjgRhbFPbaC)yuM!J$gA@QMziI#T*zD?V~R%CVY|#SygTgO^gw7bxPiu zywfDj8CKU`IG88tbe(XBgkI6$OV#4719D{*DUJX53R$n}beevjx) z4_UC&#QU@gdVifw=b+b|+1;4x3^qUb^PlcyWi&NhSd~p~m2EmjXt2$l@LyRZ8@%gy z9*9HI`jJc>c{NA7^)85gTXUA>2-l z;6v6;FTOsz<0zKN?wFP7T0v`nI&-|TZuM2BCW`(|5DES*UPVnJr0frt)w5>n23S?h zsru<$1Nc0%A56Qr1^_RaR&7YCr+w~9eD1~A8DFyw60S*zgb zgMvP8HE>d%cMRfem-g-aCOmCk?FY9cA47wx&US_f1&n54Tg_OaHk1 zA=Zc4;6)Y`+EZ>Vt47tj{Nzwpw4q1FM5dDJq?GQmK6BceIw3YHtU^mO#a6Ek)*ggU zA5qE8S#m~U=6EtVNB?%ux~X@x0(r(vB0*KHL5pNs^JH2LZM_nNICuMf@^#vT_Zk3~ zCQqlA^{-X*Yn<@Xr(XL84;T7r6^gJb4Qx;s=R#v8vXE(d=x6iWlj>Lo!P%iGkEN{s zSKAqNY*0H#YY|WwkJ~?O{EPIVxCw|L@`^8W@hQG&@6W#cH?#s5&;jh%s5gk}$xsx0 zJ}pTYfNWZx`Jvl6mNQ?jl)bQxT?7S#%(ujEm!Lsr^e zpZ#;!__lwJd=UsyV8rQ8X!Y`JDyn97@%2ETE_}M)K_noWr1=xx-ioVZGpm0{VKF_L z*6~+B(#8L`*uF#``irJ=t?d2(n|H+f|E^4KpB7_XkRqo)PpJ@MB!v+A+w_J}yE)VSbD=Ip51VEkpAsWJWexlD8(Vf6%Na_DXmk&G$ zwjhT7B_79$!E7v1+4dW`0exbrU8e8k{>%7Zw%1F+%-Jv!V@il9k4WjtId@OzfbZ{r zg;Qa_0@~z1H-)+;_{%pEjiwR9%yq9{TSqvu<-sWr+uScS<&WIq{>y?rv;al)_#U#* zfaEN4t8p5Y#J3qBB0fiLYNE8JGc z8p_wlZYqIjCJ@iUs<4X5DLyN&%`_ygZ~m|bHip%a3Jofzo7<)Tv9qiz(t!3{S+U+g zm+mYJ&jL4pyJI+DRJD{-Yh!+V>G4Trv2lN3J*e1SC;%Y#sbg({NNS|pe@@6%+yF7{ zuiT(q2^-ewM6=C@|4mc{ZZ!oWap<)LM4u6@k1tp)CluHcndezDz#MOADJKX&i2D;l zOh5XRkjM`HQH}xG%2ROcs$-NAEC0ArmL1q= z(TSN@Lj)G*UCe;GzfA}qwhAUr2!T~Dz`Y(9_G`||22;lJsA#frYxI>?YYJTnS+`su z7%aTnU;?UP&89*T&ElFG%}Qu$SLT*URe7dmF!8km6qg zgK6^hmahxm#YDYGB%AM-Ny<_b^_lY%6|ygMFG_XN@%!A>{fD7YM)2~5Er}|2B3NE! z;lhGN=jx`AjC)X}RyZ2z<4C%KneVOG$viv;m<*ILg3CFQAR)#(SsX;DMX)nLG$tS3 zV*$e`l(b3w_E7PrUTBVa*AYNFTJ~x~5SR!}1oP5ivz}IptXj~PDk@}k)UBGq?8mQ( zKwzDtMOOkhU!@XpyPDl6wkvEk!Q0`_MnQqsjDqQ34fUEk-3BPkb3m>qT*=z2dDQKy zV1XJO_jR!KGA5R&iwSP-vqjZgA0S@nxI(`>Mv7Aj9JXLg^`r%o2A5!18Kqe0>!8$X z%+k`c-sdR>NKTiYiLmO{5T0f(*CFg)zw%v(qjyT&8eN@J+|~;Tj9AWu=5HW9c|2C4 zkXo(%uLmQ#7h9vPDMUk7`PlkUXY_Yt>y`~D^N!p`0e;l?n0=oQC0R_Y-oqP=X1XS^ zvVl#Vr6?iVO&sgKO<3zroKh%1yk6;c`&T$D+M3)iIn%P85HxzMH5yq%of(eZ+=!V7 zX2!W8XKqEPOgHeTaY{+bUb9w63RnmazxsyWx}2YSVV{gvz$4i%z=NDr`WpZkA}A*>@-b}$H56tQdba9$gZpoJYq_#0I74M2PKao=4LPzSso%fG0c2O~hoDaRfwsqzG{&wn79=6Tcv1+(z-F)s z08KXy?37evGAeg|IuHmnyd{JPbu=KnluFPBr-d+H&mjGkb56=Wht2vbAuGx4hcbd$ zt#Wwd${sv31)zV2_;uTE@+R4EuS>5dD6&0MX;$A|mtrkHvFXG8q22 z?g)v1sb0>Rd)+6N9*;cG8sX5Mb|u-SSz4mjeIE*@1@#MWlVW%jA1+`+?TcFN&SVta zVp?K!Z}b}aolb&xcQ4rLRQZ#5HE(~s97xkh5=(-z?TaJ&tk*M$iC#05C{|^KdmTjR z7JLo}l%e)YX9UlKQSUJ+c8X_)$BZi_95JST&vQTtxq>~e>T|c?(=#Xo3qgSqnJ5ue z*gm)r4`=vC{${Ay>1A^4X3mROG_J=Fru&AW?xp}kC@+mIW9;JFS~y1a@>CUu8(R9v z@+0fl8u}MNRSTuLaI&DA|Hd+uA6}n&U|1pZ4SITIPgjWJ)^sNx&ddlRR&^?JnFT9#sAagzx^Q%YS?`}`GtK7Yf&%BX-JNZcQ>G`U)N1&0RDBt8kpLbD- z4##qZj!ITP@)jJI;~51f3TGr2cl7ft+)eNZ!P>5#iOX&;O5h;&$_6bse8&9x!$;q{ zr4@+#u?C+`s~Gp=F>V0ESd|cCr6|=?@-xdpd6qHD*)A7}4Yo))$-vTU6M*$PcDE9< z0h~@>QRRDw7~#;B%sQjbWMzDb=w)qb;+Z41n$h)33hs4mLHJZ=CEmMNBZh(ZFj>l+ zY_N5h@N4b^A}2U0nH!TH&M&KUC*bBQ6T4I+S$v=Fd!brNQD?7Af^3;RtfFLWJ~7Dp zGs|Z9@JfCTkI4yf!XK4Gap?VNN=gImK&s0VV?ZuKHQ@t(1O&@x#Oj?jZU%F`m(#jd za|zguOm}Tgs-cp#-)25vNXe!JZppLW$PmM^F5<8}O~&86z`L~dM4$Qo{XK^_*j+WD zDK`H2w3jTJnNX`wui6;ohUJk^vMT?~&~s21ALl2vUDONDoDLPoym3Z#eh#YGoEHeR zM*rXD>68Yg(Vsa4pJu6*l8qHS4})c!oD4=#UD=Mcy=p3bkIEPJYT6ywQ)dgIRZ;`PAOP7<-QuhpE-1xlDgmz4Paw|C+A?^0!1F}R zF)z=0FWLa>MIBKWI|of#Xn1nr=Tg`6!wPJQZVy+VJj==o<=LyXgwg-77}5{+)l=AX_UX7 zn&ZCEdLaT(5gkFoPE3*LjyA4z$!n??PR@ejKrF2)+h zGo}II&!$x(HdheAi$Y*Ffy!Azr63ehsqYTONQl)(XPi;vx>yB}N8vCa8HFHgmL~bF zmA+M~e45xmXmzi8P!4tXpL)u=E-p)B)L4k{g#W#0`D0N0Cr5gtVFRCWK)>+i+b%*3 z&RY+&8c-4CtOLk&PNhnABAxNMZgd2}uEFK0TEM-5q|}pCth*Nq3l|NEzXA9TnRgLz z2e{V@i%ltOY7K6{LbqG1W(7cM1N0W0-0)jz5fL)=ku$QRkX!}lLbH&pe)mxSO*w=O z2R0^=8==$s>7R{c#QMx^1Bt6Yln+mIwNfnWZA~!Lf$G*q)VClY!{T0hW}ibVaUxLn z)7Iv8?a#xHWT^Xkk=79_r?&JwU29UmAVH2 zd;1t^AglV9o|?EQtHD=ZA=QQtE}ATx(hDTzW>gUzJ(E+aew44Pe9bIc%M9N*d_6Z+ zIDo2}4dRYl;FLD?6-R;Q}!uBAufvnwRZlC*i|UFjZCq5BORLn`dEM;+pT0 ze`)QwfC9DO0^G?dKD8q=Q=Ri-tO7nfCt40vy-)&fE~8pN;qo^=)Iv(`y8{v8V+ybD z?@>p76iI;88X(cil3^Q5QiBOed3(M<_G)03=ZY~3vC&?OPT6L?+<}R%AUrMKwq%Hs zD?;vb6Kd@27SqX$vYFk<@U}d==%IMQY$_-qA2npZ$b(t;4gyhQ6T ze*2v2o&>>o^dh$9#zUls#*FVl=C9(F+q!7erBo5-^X2mDa<@&6)oIJsV-LhC50X?V zp$@p=(>t=*t0PKSV;q1oi7=ZQyARk)u)hVcdRi<>^}(~;WDgS8!z&Ou(u)*+kz!ug2=Ua$8~r5ilj~8 z-yGQYuE1osXNTB!{MV)unr5Q|CT z5S2JxAu~BYeF9>p5BxkO$nF;)V12t2qwaj(&(^$?fHb9%0#!%T=6@=VYSL8(T4oVDz>_FA}~s!52JV0eiQtwb488OKaJL@8oi3&i*Xn z9|VGIu8V3vpE4PH`u`Ib52BV6*Ah^{;zJV>|2nnFwHjj0@^rz|oQ7W3SnulTzsuG? za!;qMJD+D^w#re!1yv)hnyVduRt!Je(C)kJc-WomsR-gfx4Bpx07XW{miZAUvAPED z;Foi_x<+?mh>A>X;#5U1Y>oB_&<17&yFK{_S8T5I^6NK7LY^aN<6B*X^UNxaY-YrA-w* z$5bL#r-&zU131VFz81xd*s|!Ot%p#NZA73P|LZ_}UeT3U=S*_|RTRs2*s}Zu(_k+C zX0n2)%aC+Qp?7nSO;A;BivoobGxe-QPf=`@_I9Os*X)!AwppA0J7xdjIWaNb`-ac6 zE}a$teYxQothYB+LDyy3vZVC82(idhFN9?a$Rz%tw!7%ly8eSELN0t7ScrvyGZ!N& zR(?;@^zOIkqEY)El-h^8rb+n;j5dxd6y>21fVfARep9_Om(-k+T-wPTFN0s=fv+r)iw?#s$*6&DRg@4 z+Sl*%C*%Bh>1!^%xJ#<-JrTPVZXlIkILFu9Tt6Kl*xhAvXD)xE>o>`{{HN00^45Bh zxAMqFrKIWOjnZt3;8z~4Oc&^A*?5^r8RX=t=h8?i-2(*Rc$06>f?0|cVCL?Gxa z4833;*}W_w*_63YyYWBjBqg>ivMis=tuZ0sgWVCF>-RQS6A|S*?XsdL=jbkZiu+71 zIJi4^BxfJ%I$HBeI9V!ef7gH|R?0x|ZQ5Ne`VKa})P!tE;v>xp|D+e9D{5k_u-qb7 z5n3l7F^XXKToJ{dWL@I5+ivE5T>rU)>`VGO*RArkJonz!)!@`lyjP&4Hdwhp=0}qdg)ZLWRm8y!Y zs9(xAM#UnNJG*^;>oWWgPJgcjk2c1K+N$5a3j2eL7TL z4taO(v#ANMk+rg(99;4Q_gmCmEoG)!qacQn_SP-=qfeJ`!;m^Q8S@P|M8LLfXuv=R zAVXRB+Jo*-(`o)HqkJFQrum!~dr zsO@@<587dBawJQA3DX3*QKjT_!=IWv%e!iul{ut=-v@sC_~<*;TA7L}iu`RneW@V1 z(@%0#d0Ni&;L|E{C3)Dk+2a0i!~{=r8jD`d2ZHgq8OKzKg98cW0R(T-#xwMCziZPc zPK?F0+Eq>o(&@4+XS>!JpY>5!pEkTB-0Ip$I(|Iya~Ixjdew&lR;6L7*36+w5lUru zwh5l;aZaGOsw&AQQ_t-=U<_D#SV2A03%0=Nl0?3$UjCTgqN}=EF8*rAhbV}xHWnuA zC00LEV_(?NQ0e8to zeWj?({L7dzJaIGHRYfcfeYkMraQ1|ROqBamTn$Nw%1Q9A0NsdhCUMSg8{_bS#Pig- zq$D&Y!CR@76zxvKckjA?E_p`k)L`;%M4DXPgv5CTk|mf;MpSK_zTqK@z~u_=$#!5! z@QbIG4||mlZ5v&Ty|Ot7oF{Y}I`fiTzo5ntNg50`_dfPHNI7X$zoNXp%rpJ#$19;v zTzz;}svkOxqMk$H%*h@=kt2E(dRKBM_-)|IA{gV|cVy=gL_DPuGWHv%_KNSPf!0D? z?1a_w*w;2~Vo}q)B;zh3>5{v~YWG0MKFEZYJ|{R#XFUMAqp1&AAl71xQfVMg60$9; zRNHNXP4hLF`3X2jy1NzevAP$F3KA1JRkQf}C}*%@gW04AVc0-yAk*+B|gY zp!PCYvwpKn(2W;z@Y6!4O)52H+8Y!c!9i47vtGdP^!E%#5iRR54L*}P+1f+n!>_iw zP==19mHQAP_n_Hp{WZ+Vem?j*3$mI!(;C#GN8*LkKp~y&-nty$pyjyc7?8GX{W>(w z5Gw1)S*TdshpF%ImK?uH2W^$l!WW(3gra)N*n+^ZtopyQnXSJGa zyF-%Y>R9wq0NmuzDx1M(E*rYYS7BxdweZs~7Z~03-XW}h(t7TFs?r!r$(`4;c)oj* zh1_(%6`e9^2t(EpbLkuvHq94ACY|hMr*QDEnmLgoJD`pXcI)$84m^hq7tG#_q(wsQ& zjPU|-Y;S43NG%A8oDs&cgo~?431`pmzmBms4PZ zC8kxh$@2c41ddTaR_2)FC%#Z-kh^R64*BKZr_Cp^2X5KeAXW~_D6jnQs7)EuV7JUe^7ooJJ zK(Vl0XXo!PoeAaev_H{Bo?Kg|=mHuGo(`fDx5E)1hi>{HP(`)n4Gq>Hxrh_@i2WEQ1zyUFgy5`QNq|xt1mc6^zDy>EDrP) zlyk?qu8O4kXFRR3Pd-lkTMgDh121ZS^OCy1(z~MvOK0D|hse<*mISed6?KcDD#ADk z3}p4HVD6D$dLA&H-Bf2tVaFv8D2!C!^Sj7QKi=G`-_|76hqi4b@Y9+n3 z+Sk)9r5NbN#5HOUj>Hat!K{5*$?JT#PFdQs zMia<_Cr~A-(Ib`kEspY`<^)aUR|TJlboRPXD0O1}h^nsy;3|RC^zP}PmQ*0fTd`IZ zV-Z!Z%hs2o=3ny_HW5Ug`u(G{&H+ zXiNRiGWQP{qc;oP>mMb0O~IRpGk0GM1`v`}8l5P3mtBwJW@$^&M@8A=TEhL84@YNh zp_0&9tR7=l@Lg49vIqZF{go!+05ZuFH@03&L>w)%gMWLa;c4Qe^fjAk%mDa4(2f1@O`!fyJP2K<~xo3zWTnAaaw2jvoOX84|} zsjeAinKZNT?8c<_B6c%aUTLxtPL0PwQ6|p8?G=6&=T-n^v61pLc}u}ns#BhgJg$7K zKL~d9@pG8*iHH#1KX9|2CR6!v{evLUXT_Riu-<-kPox!u?EDE}jsEiV-n6N*M+G>) zwQ7z(zMfB&-AerGoK8n9@IBc&G8lQy*Vn%DfgXyqb)lQ0lZ(HQ_iBO_0o$6S9W@3}G3KjtemkghrQ zR~TXbc)_7BqtD5B$5Ty=9|akO`q9YZ5g^VqKIF^db3PNY4%XMg9n!UQU`<7X>y$t{ zc`&V~;e&@MZ8U)yXTZSs3cNGODN`A{p?{X$-Gd1W#dJtCIDV|z;MBTPIp?`E%$Y%% zd?Dd&IJT~$^OP3>7Lf~IrLTpwbfTC9Dn5{!6mqB?oq1)hywrDY)YFtr1Wy)@B)0SH zwU}x+I%T}5wVEelb+p{Q<^?#2P-(z6efzZl?=jwP5JE@}8C`m4F{&HyM?G-MbN{%$ ziW6(K@V;^!tYv4nlP^(MXJW>Os}8Q3@G6sEM>#vncDy$0B$kbXHrlVYh+1`B4ZiFP zGPONdGW_^rHW4yt+-t?*SFJ&gO_i4#pt3*PmFHfmyb$)TzIKGNjMKvZQh+%tONE`F z?A5$fQ2UxG15*FY62>WhTwxrkyuq9gUccjN^_jh@?8kE$luLx{ZnpEjL^%HX;Me7j zv%;aes~~$#wZl`s>k}51XDW*>1z%KD$2zZlU2J&|@c}Xl#X-0^`EAms=R%MOQ&9`kYcrVur>csFe(>w)ujm8S+M1h*JdEt z7E1;@KjpiKFCuwYYl1YKfp5@zdlqh2$BIQ(A4n))fxjKp#&X?>6M?o9#{O`KxD7;U zw%y5_OH!jC>N&WzJ1h8e_Ue>`S4!p`w#V$ZhF1_XBcG&gPM6TCLi0CVtr}}|iiBT< zo}gNOHseX^MEBNh7UD4*XE|q>kA`)-WAqml>ni*zif)I^8L-VQM=$&CxRP&opM`UuACQwadUAj8&pj{c`GWFr)W#{3v3Wja}rGsok5aS*A&O&po zT1X}5s1W+w@LnJ}&n*Wr%Rq(%$|!1P%}m}3e$}6TP$dXfzKlb?9$PO5+&sPZwzAvV zTTnb~VPRTnEwzpYyhG^{X$a%GFZccQ+l_8U3iK^*f-IQTPjHT=B zSa=>R0#ZexFT1NQaJUy8+^8ib-!2XjCK{ccB^jjzS_OQt7f;|UOl@gC8>o<0j1fGI zSn?JsH&lugu@VS%_uTOU2=Q$QouqaJ?vaZ)3n%bk7Ber8uTV8U7p`X8N#rMLi0uj9 zlNpQ3eLsYs*l&N_?AoNvdqev!G1bpNSkYO_97%0_w#asF*TheAEZXOAY3)`h$Xx}m{QCoZjN0QD7t0NYzg}F7K{C_atIsY{4Ys9R965|zPukp0kcsFXWn{1f96`|oKen#kXM$6FTZUO2ai`FMgIw$rA06qgwwRALKlnFu zb9etuF7kp1QQ+HoIr}&fvzpRj#z6Jb!l7yC$xY}`{ope1ONI+bA ze*#|>x@HwdgY8P*%UOs$%qHfH$ls=CZ#YbZjB)rhQSe61F}z3PXu&B)_C{_4^>=F) z8Xw64P2xaxlyNpE(-$(h9<2#kU>o|o*tGI+lIxbi!AwF#YoauKZ90i`6jHf52%#I| zLe}Dmm0e{k#)?BDe5K0TC%JSkx0+n}A}9Gt+2Y{`#-RP(moV8YNHm-{Yr*V24d?=l z6X;!)%%Kdja<6!MDEcyEn%+RF<%5p5<;x>&(Tu`Q(sJ46Q9~wbvJRSx~ezah&j5O#a4VD;%rvNF?%E(5T!@b`alm7ku4z z>7g|7ebASN-e0^R-jng5An3;D)DSP2%=gdO9}Ha<2BQR#mz3%lL*Q%v&ZP^hi6};N z)gtNgYT6tp5F5egWq1hj`fY zDYM;b#q^yAz|!|8<%?J|Zal;XIqM$%+xE=00_~ShQ_%T>n!W=3 z#&8HjF@J!)@{yRk`}S9^)KHe(mkRy$6Yns){Dy3D5Az1W^wxzvjWh~5rZGN0swVPW zk?sg}>^!1lgJVI;W$y-gC0+b7?NAKjs&I>)(d8h^iMeOT0+Dp>my88AUri}x5XTvL z!)B|t*+0M^_*}>zyl25ZHm&@-qkrRsReZ4KsX>orNY7c}za^9zD?ilyA1VVtv4Sfy zCU*0{f2z~`0J^jPOIjZ|oBD;eSG$)hg75x^D`<)5-6`S~zD3{7T=-zPsvI=?PYU&; zSoR-_75|5)1RS~j^U!?O&nnjaV4#$>Qxp7Bv6I;TF>jz#>#u$h&DQnX0Y~FH8fLeN@mtL zS5JD_Z{88^VA1L^y={dqDxqa!Lwvcs@;1D|^MoKYie$eU5gmWAv)T;#MQk=2{IERC zxc3y_RGm)G0lX~Cw6iiCeN8xL*=s3v4tzz`aPU|`=w0#9#w$fOqq3#J`fe;CFCG_8 z!e@%TrIP~1weX~0uQOvX&NmQUu~dtT!3?Dr>@wE&bFlL@7BaoLMQr%?icjr_a03K6 z8>QfD%&$E7VEG&i1bG}1z@Fj*UYR}cFi6yqlUEr+-E_}mEjXJbGO|D$w_Ov4?3@lI zcpS4;NF&is#V@EtU$v3tg?^ACCHat7#a*6Qg1Zx3F8Wl@6s|Rv36OY+1m9JP2i_E}(p&S1GA{^!ZYbXv-h2M@QTE?4HK9zw}%8LkBg< zqDv{~aY;eXGCGCbZyqQ5xZN@FncgH6x}zVzebC{a^u40Ox8Tn7PufzK63mAK<%%j&mMZR* zn~;i(+`j}$nU2Pv91feRb*cSG!E8nv$3#7JNO~t$z8m!U&=2)%5yFSxK352T=Lq-sgFV&7MAj);R`AgKO1p7Sr|CiKcPK>QisK z@Ds-;=IfU6I_}jO3^(jSt7ugHQl#x*mgZn@Q)PLF)uZi>ddj_Ge0++IxT;Gw=a{`q zn66*NHIT}#WIt5uEp&%4ZAkX}RW;$x=qK8`MA-vQeb0L7eAC}Tvp7o(1ey5^ zb02t3ogE$`Q$f*y@*cuRtJ}!4RP2;bkoA*;q>2;@1^v+UWfF_@l**=?+|=o}18u9j z9Efyq2i_^;%gM~jmUc%DF*PO>y=BIn2NQJP+#-+XU#CV|1#3dpdr?W|XOsG~gGDF0PF{gu>8M{u{FSikYRK#P_5Vg1@Eo&Ln_xv6+3{ZAvl z33De~)a63Wkr@ z7;6V@btM|np@A*-9r`t;8T$6~etRyjqBJCH^IgL{O|L4*>BTnImA)V>WlxtYG>YL(?kUq>G7+;1x973%Bk(Ze z%8f1k9=Qo->fYtn z@oOCfvu}i&qs{FXmyF(S0kSkqioZ(v%>BUhXo=3}dyY>+;8^2Ufm&G&<^Bgr<@a0A z)>(mT_0+2w)=BAGfIOv)c`7FM`w4yPe0ajXPaJQ0J9CKh^aPCQA)$mRMK8Yx^>3Z; zFTbqfn|#l%;!KV#0`}naR-W^sG~m)od9{(sz8BEgz1pa*sFJZDle>m?*8+&|-lf6~ z%DfFG)FMJhp2n8(XcgF~W54qQMQNq6XWz+~`ofU(fqh5p)|qD=mP5x9IrZuU+Y`&1 zu8drhQ+(sPDiybDaRjj~9Y?ZvX^)7lleUm+fU6ZV8$&HLqQLXP)vUv7^aHcQ63h!lqa=9{<9@1)aJUA)-7 zHOM$gS&ET7A*{pcw&CeM0b70r8W2zwg7`(>sEKBnX6e`Q9JNhY2c{ z(RM)mQg7^Lo?&iL-FnB{Z-0tvAk}2v$=TJ8;Y|a;n@x4x%QDAozkXzL|M*Md|vr@tuEi5yMQmk_>(LX96Uii1zh`P~@r zN_y+riW_A4SSCM`C%6_a-76}e*gv!-hH_6`OS7B5vxp!^YJ?4c6LY{A=Kxkzk~7>mzD9%mc?D9hUiTFOnCRDhn4RuW~s8W?5;^>|-5!g!mB_r6QF z){6{Wl?q= zPF6CtVKrYWvG_VcVdEFQC_ST-*OEwd#|@_t#kfyuXA5P#A7TnE|J0*<^V?Lf?aQbE z{UZ)NAC?R!K5dT7K3GmR{FVe(J|-ub3v%qsmugRJ7r8n0;RH{Dwpdh7U7@j;)iVJ4 zD2yfBFsGiXjO-1 z)%yFKwRg0Ak;SqamyE9j8^VdF6Vp@Z6o58Sb<9? zHk`)|8p0?p<+3RAN5JnHwDYZc?A;NSgjiuOpZC)no%8#av|-`!z0fyT1y6o%w6t!F zF4!{yscr_#q+yPh%NE(E^5ZgPD%0A^R@z{F#$|;MyRSUfsmLsM32KkYVqEaC3v7>` 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 literal 0 HcmV?d00001 diff --git a/sql-odbc/docs/user/img/pbi_select_connector.png b/sql-odbc/docs/user/img/pbi_select_connector.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d3ec8c4dd484e33b17ff777d940aeafbff1c77 GIT binary patch literal 48760 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

    -k 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 literal 0 HcmV?d00001 diff --git a/sql-odbc/docs/user/img/pbi_settings.png b/sql-odbc/docs/user/img/pbi_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..0f1dcac98b905f434130c7d966bb6cba87247c6a GIT binary patch literal 39406 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 literal 0 HcmV?d00001 diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md new file mode 100644 index 0000000000..ee89757e58 --- /dev/null +++ b/sql-odbc/docs/user/power_bi_support.md @@ -0,0 +1,48 @@ +# Microsoft Power BI Desktop + + +**NOTE**: **The connector is under development. All connection options are not available yet. There could be issues while loading data** + +## Prerequisites +* Microsoft Power BI Desktop +* [Open Distro for Elasticsearch](https://opendistro.github.io/for-elasticsearch-docs/docs/install/) +* [Open Distro for Elasticsearch SQL ODBC driver](https://opendistro.github.io/for-elasticsearch-docs/docs/sql/odbc/) +* [PowerBIConnector.mez](../../src/PowerBIConnector/bin/Release/) + +## Setup +* Copy `PowerBIConnector.mez` file in the [Documents]\Power BI Desktop\Custom Connectors folder. This will let Power BI access custom connector. +* Open Power BI Desktop. +* Change the security settings. Click on **Files** > **Options and settings** > **Options** > **Security** > Select **Allow any extension to load without validation or warning** for Data Extensions. This will allow the custom connector to load data into Power BI + + + +* Restart Power BI Desktop. + +## Load Data + +* Open Power BI Desktop. +* Click on **Home** > **Get Data** > **More** > **Other**. Select **Open Distro For Elasticsearch (Beta)**. Click on **Connect**. + + + +* You will get a warning for using third-party service. Click on **Continue**. + + + +* Enter host and port values. Click on **OK**. + + + +* Select authentication option and click on **Connect**. + + + +* Select required table. Data preview will be loaded. + + + +* Click on **Load**. + + + + diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/PowerBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/PowerBIConnector.mez new file mode 100644 index 0000000000000000000000000000000000000000..5b397196c0c0119ed5856c1a8bd1095d52bb7079 GIT binary patch literal 19463 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 aY&^H1EQHqnHy Date: Sun, 19 Jul 2020 19:46:49 -0700 Subject: [PATCH 04/30] nit --- sql-odbc/docs/user/power_bi_support.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index ee89757e58..61f620f44e 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -10,9 +10,9 @@ * [PowerBIConnector.mez](../../src/PowerBIConnector/bin/Release/) ## Setup -* Copy `PowerBIConnector.mez` file in the [Documents]\Power BI Desktop\Custom Connectors folder. This will let Power BI access custom connector. +* Copy `PowerBIConnector.mez` file in the `\Documents\Power BI Desktop\Custom Connectors` folder. This will let Power BI access custom connector. * Open Power BI Desktop. -* Change the security settings. Click on **Files** > **Options and settings** > **Options** > **Security** > Select **Allow any extension to load without validation or warning** for Data Extensions. This will allow the custom connector to load data into Power BI +* Change the security settings. Click on **Files** > **Options and settings** > **Options** > **Security** > Select **Allow any extension to load without validation or warning** for Data Extensions. This will allow the custom connector to load data into Power BI. From 4158974559d9fc35e6ea0a610aaf0063ad0397fe Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sun, 19 Jul 2020 19:49:26 -0700 Subject: [PATCH 05/30] nit --- sql-odbc/docs/user/power_bi_support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index 61f620f44e..fa994a9a56 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -10,7 +10,7 @@ * [PowerBIConnector.mez](../../src/PowerBIConnector/bin/Release/) ## Setup -* Copy `PowerBIConnector.mez` file in the `\Documents\Power BI Desktop\Custom Connectors` folder. This will let Power BI access custom connector. +* Copy `PowerBIConnector.mez` file in the `\Documents\Power BI Desktop\Custom Connectors\` folder. This will let Power BI access custom connector. * Open Power BI Desktop. * Change the security settings. Click on **Files** > **Options and settings** > **Options** > **Security** > Select **Allow any extension to load without validation or warning** for Data Extensions. This will allow the custom connector to load data into Power BI. From 586793f0d70894c6042fd9177e83c88f24cf4164 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sun, 19 Jul 2020 20:13:33 -0700 Subject: [PATCH 06/30] image resize --- sql-odbc/docs/user/power_bi_support.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index fa994a9a56..42163505eb 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -27,19 +27,19 @@ * You will get a warning for using third-party service. Click on **Continue**. - + * Enter host and port values. Click on **OK**. - + * Select authentication option and click on **Connect**. - + * Select required table. Data preview will be loaded. - + * Click on **Load**. From 9cb48a4fffa2aa88b59917da2961cba7e4849580 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sun, 19 Jul 2020 20:17:21 -0700 Subject: [PATCH 07/30] resize image --- sql-odbc/docs/user/power_bi_support.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index 42163505eb..9476eee5fe 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -23,15 +23,15 @@ * Open Power BI Desktop. * Click on **Home** > **Get Data** > **More** > **Other**. Select **Open Distro For Elasticsearch (Beta)**. Click on **Connect**. - + * You will get a warning for using third-party service. Click on **Continue**. - + * Enter host and port values. Click on **OK**. - + * Select authentication option and click on **Connect**. From c234b8829b0f5b1864bfe500f2b9053c79c7b12d Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sun, 19 Jul 2020 20:32:00 -0700 Subject: [PATCH 08/30] remove extra lines --- sql-odbc/docs/user/power_bi_support.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index 9476eee5fe..98bc4a2c56 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -1,6 +1,5 @@ # Microsoft Power BI Desktop - **NOTE**: **The connector is under development. All connection options are not available yet. There could be issues while loading data** ## Prerequisites @@ -41,8 +40,4 @@ -* Click on **Load**. - - - - +* Click on **Load**. \ No newline at end of file From 0d0c0509eea739936f4ee4b81307d0566cb39dad Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sun, 19 Jul 2020 20:45:54 -0700 Subject: [PATCH 09/30] nit --- sql-odbc/src/PowerBIConnector/PowerBIConnector.pq | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq b/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq index a4a9b4e26d..f4836f7fed 100644 --- a/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq @@ -1,4 +1,4 @@ -// This file contains your Data Connector logic +// This file contains Data Connector logic section #"Open Distro For Elasticsearch"; [DataSource.Kind="PowerBIConnector", Publish="PowerBIConnector.Publish"] @@ -28,13 +28,10 @@ PowerBIConnectorImpl = (Host as text, Port as number) as table => Host = Host, Port = Port ], - OdbcDatasource = Odbc.DataSource(ConnectionString) in OdbcDatasource; - - // Data Source Kind description PowerBIConnector = [ Authentication = [ From 50d4ccf583d527b263bd8465d29b80f32a9f0a62 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Sun, 19 Jul 2020 20:46:55 -0700 Subject: [PATCH 10/30] update mez file --- .../bin/Release/PowerBIConnector.mez | Bin 19463 -> 19456 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/PowerBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/PowerBIConnector.mez index 5b397196c0c0119ed5856c1a8bd1095d52bb7079..4d3f794eef542c28d1be8e922fdf567242eaee5f 100644 GIT binary patch delta 958 zcmV;v13~<9n=5|e;Q6@Q&o+iu!G z5Pe7DA4cvANYo@0MQtN06-X4+v`GtTA0i$Wdw`Y9uC=>PlUDh%KJ=6N3!U)=a|;di z%i6nVXV087JO1bT~ww)`@Z6=SCT^D`KJzJ#lOx0lavN|$o! zq{GHa%BzzOE7GliuEI&cea5DJhM+v*mz}4!$u-wos;6R{=6}5)?SNSj;PwS!Sw7pc zmJ+;AsGby=A@V|7k%q;Wf#j5K$GJ;+GM8e4Y|Pm`wKU6KUuqF%oNHd0P>S;?i}5a^ z)S2R}Z?Y|W85a$qn>3F%t`fx!Vy_O5g?|`S$Lgatcw<--Z|+=d-!_|?%05i1-k(V~PbR+9&8apoakc)N1L!9D&RonX89iRBInyst!G`e+k5W0N` z`c*4KFTLPQUbUW`NwNQVr?n5tr2YC3^hvwOBs1+VPz*~01QY-O00;ohrSr2r10+Tb ztEKZ$TnA5@`2qj{?2~RuGat>R^H4va@Ikf$006N9000&M000000000000000DU-lS zLjn^9lK~17lNd@b0^SLe0SXwCVM;0iqLYkDLjiM>&`LuB2Og8rN)wYPOD_VxCzIhP g7?W{JDgvuClg>04leJ4K0S1%cOCbhMNdN!<04g)I)&Kwi delta 949 zcmV;m14{gWm;r~F0e?_S0|XQR000O8e5&$LaXF&u00RI3_Xq$05&!@IP;Yl-azaT% zZ*Fd7V{~tFE^VDv!EV|>5WOSu4gG?0+nPD)H zLSSH|f>$TuIoyA;7+wc7RjW@O1MoeJ{TM+xtpfDPG@Rh|W`d=`KS%8y=1RGWK zXqm*VEe?V=3^_exG2DzGNVSnm{)5pYzh2wL zYh@X_tk@d$8sxtVsSPj<4TmszZ(xbm^4k(Zzo87$r7bbr=A2_34p`#Idf*X>*ZSv* zA?iT!)v8H^5ZRT2EfM4#jJ@9%Cumf6sQmpqjhXcqU4IOe$4~HL8L*f(^5C&tIc=`d zTuZg)f=HJ$YyROr5Y7MjkdT098UXgBs8k3p7GNn4wBt?Z=xEc2?0?~TIaO%+@FT-5nsqHIthl=hX8}zb?Iw){(*wVpJ&mf` z+;J|R;&8s@6T!{Fj0k9mL0C4?wz;Jd?^D}V!bZaKc3U%uBH#h1!fvN|R(ai*Y=#ui z*}WZXni9X1EX;H_ys{{V^K2zq$Q7Y>J|)@oq{l4AawT-^s7#WUS&a*yy`r=l4AYycIzHgN%!?3=#y?y zNfz2)P)h>@6aWAK2mp4W@v}AqBt{K XLjkgrl}keb4U^eRAqG`R000005EQv( From 023fb674a86c080f802c32fcd46f11c5bfeadba8 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 21 Jul 2020 10:39:34 -0700 Subject: [PATCH 11/30] rename connector --- sql-odbc/docs/user/power_bi_support.md | 2 +- ...or.mproj => OdfeSqlOdbcPBIConnector.mproj} | 25 ++++++++--------- ...onnector.pq => OdfeSqlOdbcPBIConnector.pq} | 26 +++++++++--------- ...ry.pq => OdfeSqlOdbcPBIConnector.query.pq} | 2 +- ...or16.png => OdfeSqlOdbcPBIConnector16.png} | Bin ...or20.png => OdfeSqlOdbcPBIConnector20.png} | Bin ...or24.png => OdfeSqlOdbcPBIConnector24.png} | Bin ...or32.png => OdfeSqlOdbcPBIConnector32.png} | Bin ...or40.png => OdfeSqlOdbcPBIConnector40.png} | Bin ...or48.png => OdfeSqlOdbcPBIConnector48.png} | Bin ...or64.png => OdfeSqlOdbcPBIConnector64.png} | Bin ...or80.png => OdfeSqlOdbcPBIConnector80.png} | Bin ...nector.mez => OdfeSqlOdbcPBIConnector.mez} | Bin 19456 -> 19589 bytes 13 files changed, 27 insertions(+), 28 deletions(-) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector.mproj => OdfeSqlOdbcPBIConnector.mproj} (86%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector.pq => OdfeSqlOdbcPBIConnector.pq} (54%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector.query.pq => OdfeSqlOdbcPBIConnector.query.pq} (63%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector16.png => OdfeSqlOdbcPBIConnector16.png} (100%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector20.png => OdfeSqlOdbcPBIConnector20.png} (100%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector24.png => OdfeSqlOdbcPBIConnector24.png} (100%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector32.png => OdfeSqlOdbcPBIConnector32.png} (100%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector40.png => OdfeSqlOdbcPBIConnector40.png} (100%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector48.png => OdfeSqlOdbcPBIConnector48.png} (100%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector64.png => OdfeSqlOdbcPBIConnector64.png} (100%) rename sql-odbc/src/PowerBIConnector/{PowerBIConnector80.png => OdfeSqlOdbcPBIConnector80.png} (100%) rename sql-odbc/src/PowerBIConnector/bin/Release/{PowerBIConnector.mez => OdfeSqlOdbcPBIConnector.mez} (87%) diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index 98bc4a2c56..cfd8df7c5f 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -9,7 +9,7 @@ * [PowerBIConnector.mez](../../src/PowerBIConnector/bin/Release/) ## Setup -* Copy `PowerBIConnector.mez` file in the `\Documents\Power BI Desktop\Custom Connectors\` folder. This will let Power BI access custom connector. +* Copy `OdfeSqlOdbcPBIConnector.mez` file in the `\Documents\Power BI Desktop\Custom Connectors\` folder. This will let Power BI access custom connector. * Open Power BI Desktop. * Change the security settings. Click on **Files** > **Options and settings** > **Options** > **Security** > Select **Allow any extension to load without validation or warning** for Data Extensions. This will allow the custom connector to load data into Power BI. diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.mproj b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.mproj similarity index 86% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector.mproj rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.mproj index 2679eca602..0987401eb4 100644 --- a/sql-odbc/src/PowerBIConnector/PowerBIConnector.mproj +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.mproj @@ -2,8 +2,7 @@ Debug 2.0 - - + {75a2dabe-6c5b-498e-8df1-e85d4483a7dc} Exe MyRootNamespace MyAssemblyName @@ -19,7 +18,7 @@ False 1000 Yes - PowerBIConnector + OdfeSqlOdbcPBIConnector false @@ -37,37 +36,37 @@ - + Code - + Code - + Code - + Code - + Code - + Code - + Code - + Code - + Code Code - + Code diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq similarity index 54% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector.pq rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index f4836f7fed..6b9abdba5b 100644 --- a/sql-odbc/src/PowerBIConnector/PowerBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -1,11 +1,11 @@ -// This file contains Data Connector logic -section #"Open Distro For Elasticsearch"; +// This file contains your Data Connector logic +section OdfeSqlOdbcPBIConnector; -[DataSource.Kind="PowerBIConnector", Publish="PowerBIConnector.Publish"] -shared PowerBIConnector.Contents = Value.ReplaceType(PowerBIConnectorImpl, PowerBIConnectorType); +[DataSource.Kind="OdfeSqlOdbcPBIConnector", Publish="OdfeSqlOdbcPBIConnector.Publish"] +shared OdfeSqlOdbcPBIConnector.Contents = Value.ReplaceType(OdfeSqlOdbcPBIConnectorImpl, OdfeSqlOdbcPBIConnectorType); // Wrapper function to provide additional UI customization. -PowerBIConnectorType = type function ( +OdfeSqlOdbcPBIConnectorType = type function ( Host as (type text meta [ Documentation.FieldCaption = "Host", Documentation.FieldDescription = "The hostname of the Open Distro For Elasticsearc server.", @@ -21,7 +21,7 @@ PowerBIConnectorType = type function ( Documentation.Name = "Open Distro For Elasticsearch" ]; -PowerBIConnectorImpl = (Host as text, Port as number) as table => +OdfeSqlOdbcPBIConnectorImpl = (Host as text, Port as number) as table => let ConnectionString = [ Driver = "ODFE SQL ODBC Driver", @@ -33,7 +33,7 @@ PowerBIConnectorImpl = (Host as text, Port as number) as table => OdbcDatasource; // Data Source Kind description -PowerBIConnector = [ +OdfeSqlOdbcPBIConnector = [ Authentication = [ Implicit = [] ], @@ -41,16 +41,16 @@ PowerBIConnector = [ ]; // Data Source UI publishing description -PowerBIConnector.Publish = [ +OdfeSqlOdbcPBIConnector.Publish = [ Beta = true, Category = "Other", ButtonText = { Extension.LoadString("ButtonTitle"), Extension.LoadString("ButtonHelp") }, LearnMoreUrl = "https://opendistro.github.io/for-elasticsearch/", - SourceImage = PowerBIConnector.Icons, - SourceTypeImage = PowerBIConnector.Icons + SourceImage = OdfeSqlOdbcPBIConnector.Icons, + SourceTypeImage = OdfeSqlOdbcPBIConnector.Icons ]; -PowerBIConnector.Icons = [ - Icon16 = { Extension.Contents("PowerBIConnector16.png"), Extension.Contents("PowerBIConnector20.png"), Extension.Contents("PowerBIConnector24.png"), Extension.Contents("PowerBIConnector32.png") }, - Icon32 = { Extension.Contents("PowerBIConnector32.png"), Extension.Contents("PowerBIConnector40.png"), Extension.Contents("PowerBIConnector48.png"), Extension.Contents("PowerBIConnector64.png") } +OdfeSqlOdbcPBIConnector.Icons = [ + Icon16 = { Extension.Contents("OdfeSqlOdbcPBIConnector16.png"), Extension.Contents("OdfeSqlOdbcPBIConnector20.png"), Extension.Contents("OdfeSqlOdbcPBIConnector24.png"), Extension.Contents("OdfeSqlOdbcPBIConnector32.png") }, + Icon32 = { Extension.Contents("OdfeSqlOdbcPBIConnector32.png"), Extension.Contents("OdfeSqlOdbcPBIConnector40.png"), Extension.Contents("OdfeSqlOdbcPBIConnector48.png"), Extension.Contents("OdfeSqlOdbcPBIConnector64.png") } ]; diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector.query.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.query.pq similarity index 63% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector.query.pq rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.query.pq index c0821957ad..7b2a564376 100644 --- a/sql-odbc/src/PowerBIConnector/PowerBIConnector.query.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.query.pq @@ -1,5 +1,5 @@ // Use this file to write queries to test your data connector let - result = PowerBIConnector.Contents() + result = OdfeSqlOdbcPBIConnector.Contents() in result \ No newline at end of file diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector16.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector16.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector16.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector16.png diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector20.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector20.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector20.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector20.png diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector24.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector24.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector24.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector24.png diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector32.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector32.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector32.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector32.png diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector40.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector40.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector40.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector40.png diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector48.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector48.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector48.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector48.png diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector64.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector64.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector64.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector64.png diff --git a/sql-odbc/src/PowerBIConnector/PowerBIConnector80.png b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector80.png similarity index 100% rename from sql-odbc/src/PowerBIConnector/PowerBIConnector80.png rename to sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector80.png diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/PowerBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez similarity index 87% rename from sql-odbc/src/PowerBIConnector/bin/Release/PowerBIConnector.mez rename to sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index 4d3f794eef542c28d1be8e922fdf567242eaee5f..02d8c023aeae94935c8962caf72a1921977033ca 100644 GIT binary patch delta 1702 zcmZpe!Pq*Ju|B|?nMH(wfq{cTAmnR+n9uxL24)6^5>5sNNua2IN?K}gVUB-FQgVQk zr*nQ@UTShlevw}8+)&^ATMhzyl|Rb6*)_WOIxSw2>#~%ovuW0}Efc;86h^#ZUBBhc zuHCOSGN;C0bFL5i@09+hvGJJ7fz-FD&)&}do_4&x{(t87`a~g4?qWqtmMBZLDXr{t zB_s@vFIYeIQR8K{C2<`K;x_+K+tL(h@%*uTk;u8G*Y^rU%fi-Q&E7u6%B`p2w|pzt z?l{*i*PC9asI~TLIsdUaF#FL>L1UXWR=19;AD_DULTkQ{+MWNWl20<(Rd!S^R?6Jb zle(H~qR{Mg2i1js_j&8Plk*bht?*%5u4wkluSF(8g6meYP+psW%C(nEf1J!Xz5aUH z0p)P_(_C8u*E{~(edQYC<_jLmGW*LnJb7_4SJG*JBi|&|Yjfw8DemC;t>bra*8{s4mS2XYgRXk`l(b{GV2RAskiZ-2jdhPDL9>z+35oQ~p?YlIu0o?%JYS-ABeY#Yje z9`eY!>F&}CQq#8Io#phTk%J|)%=)bD>Fixe#(w|i+<$y!^OHYQ(-PhGKAc**v`|jW zxVB5buYR?~>UePjA?;{}%4(Y2S_?n_KM);*{D?e4PZ$FUrjS3l5i>7F!GzodHI zS?zswnzvX_`^#cu>MILxl`t77*=)66a3NODbSz+|~k31st zlmvbauwU@OaT^l@!$u&MMaw*!eV8vYDS%W}Y981z9hk)?0WpRuGqz34U{&)zMeHgJPm%zcm5Dml_s-}rnbAVN) ztXX=c8JO+sfEYuSmfSo}uqtumlXG_RFfeQZVhmLe)vxe?RS9i7o~+Ktz@P-g7^=>h zIPo#>4*t4X*x8*;4_m1N3_B!%Tn0^U^pw=Y7S;&$=D=`8(Q?pJwjNu+BeZA$gAZ8? zQb}iIpjVKW9^lQ$B*FkGCP7A_#}2}%U%=4AG-|THmpItj=n;m{coY~^$Qmd2ddY&d zpvN9U%Un@3Ef>8YK1Gj8gcb`qR4qt8HL<|vQ}p;o81+pZn^BYFy&*nDPXY*yuS`%i fPM+&63rY`@_j*e+`b@s*Ez5Nqn1iNxg0uht=DT}% delta 1603 zcmZpj$=EQ1u|B|?nMH(wfq{cz_0rD)G3@@celjsIyy0MA5CVz@%wIe9wg=jEj) zm*f}e<<1Sgop;MYpw|77yxTi&k1Hx7uDQxuq8=hwws>-9$}7oiQn++r|Qu-<9GRN3l(rX}uWi&3BKaqH)|S@YLdBwLl~@w9DVU1;8ZD)PmFa6#1<^#?7482jXs z*5oc?@3zRwIhv61S7e5MJ?F=>9TslPmt9gjt#~(HEH`oyNYtqGb15)xP}u0F|AhZw zaNX8T+Ikm@Y;+c1T_t*AK6kDx2lrNyhac`8Wb*uUTj-E~Jp0L}pfi1z(*@{cJbma zzMIu{6FB^QUa;k*?U(x|TK?-qMocduh~T_MVPV(Ik=sfm#R`Y%iFr5;o& zQC)5$At+^axTs{?AEQa4$;*s|KT1vU?-&t1Olr0MnORm+p+Jlm`AwjomB!8g{#NW0scrU~uwUolT)rs5~3 z=!tDdr#C*Cl6QQkccszvq^6uRH*L3?oQ{jn5=@(u9XB(e>$67pN4-T?W3XhjsGi`Z{)vVJ;g3!weusNWbUX!6q3Bl-B*LwJrgeO{0MrA$?r5nnThLD4nuq>6K7r-z;0^rhP@;Oh*Y;1vrP^bwEAM}#O&`hr&FFnAUkx7IBQa)h| zQG^-7z)*tNm*6F0dL9X|O^)-C<(dOb?0%jgVE~6iO%4D6 From 0b857c003716461562dbce6fa10df6090eeaad3d Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 21 Jul 2020 10:40:37 -0700 Subject: [PATCH 12/30] rename mez file --- sql-odbc/docs/user/power_bi_support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index cfd8df7c5f..38b8259a42 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -6,7 +6,7 @@ * Microsoft Power BI Desktop * [Open Distro for Elasticsearch](https://opendistro.github.io/for-elasticsearch-docs/docs/install/) * [Open Distro for Elasticsearch SQL ODBC driver](https://opendistro.github.io/for-elasticsearch-docs/docs/sql/odbc/) -* [PowerBIConnector.mez](../../src/PowerBIConnector/bin/Release/) +* [OdfeSqlOdbcPBIConnector.mez](../../src/PowerBIConnector/bin/Release/) ## Setup * Copy `OdfeSqlOdbcPBIConnector.mez` file in the `\Documents\Power BI Desktop\Custom Connectors\` folder. This will let Power BI access custom connector. From 06ae48656b35034cd62dd826569b08c9b075a3d9 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Wed, 22 Jul 2020 20:04:10 -0700 Subject: [PATCH 13/30] - add basic & aws auth - add unit test - add errors - enable direct query --- sql-odbc/.gitignore | 3 +- sql-odbc/src/PowerBIConnector/Diagnostics.pqm | 275 ++++ .../src/PowerBIConnector/OdbcConstants.pqm | 1253 +++++++++++++++++ .../OdfeSqlOdbcPBIConnector.mproj | 6 + .../OdfeSqlOdbcPBIConnector.pq | 194 ++- .../OdfeSqlOdbcPBIConnector.query.pq | 315 ++++- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 19589 -> 33501 bytes 7 files changed, 2030 insertions(+), 16 deletions(-) create mode 100644 sql-odbc/src/PowerBIConnector/Diagnostics.pqm create mode 100644 sql-odbc/src/PowerBIConnector/OdbcConstants.pqm diff --git a/sql-odbc/.gitignore b/sql-odbc/.gitignore index 849c3e99b7..4f4efe708c 100644 --- a/sql-odbc/.gitignore +++ b/sql-odbc/.gitignore @@ -57,4 +57,5 @@ CTestTestfile.cmake /sdk-build64/ /cmake-build64/ /src/PowerBIConnector/bin/Debug/ -/src/PowerBIConnector/obj/ \ No newline at end of file +/src/PowerBIConnector/obj/ +/src/PowerBIConnector/.vs/ \ No newline at end of file diff --git a/sql-odbc/src/PowerBIConnector/Diagnostics.pqm b/sql-odbc/src/PowerBIConnector/Diagnostics.pqm new file mode 100644 index 0000000000..ca10c3cf98 --- /dev/null +++ b/sql-odbc/src/PowerBIConnector/Diagnostics.pqm @@ -0,0 +1,275 @@ +let + Diagnostics.LogValue = (prefix, value) => Diagnostics.Trace(TraceLevel.Information, prefix & ": " & (try Diagnostics.ValueToText(value) otherwise ""), value), + Diagnostics.LogValue2 = (prefix, value, result, optional delayed) => Diagnostics.Trace(TraceLevel.Information, prefix & ": " & Diagnostics.ValueToText(value), result, delayed), + Diagnostics.LogFailure = (text, function) => + let + result = try function() + in + if result[HasError] then Diagnostics.LogValue2(text, result[Error], () => error result[Error], true) else result[Value], + + Diagnostics.WrapFunctionResult = (innerFunction as function, outerFunction as function) as function => + Function.From(Value.Type(innerFunction), (list) => outerFunction(() => Function.Invoke(innerFunction, list))), + + Diagnostics.WrapHandlers = (handlers as record) as record => + Record.FromList( + List.Transform( + Record.FieldNames(handlers), + (h) => Diagnostics.WrapFunctionResult(Record.Field(handlers, h), (fn) => Diagnostics.LogFailure(h, fn))), + Record.FieldNames(handlers)), + + Diagnostics.ValueToText = (value) => + let + _canBeIdentifier = (x) => + let + keywords = {"and", "as", "each", "else", "error", "false", "if", "in", "is", "let", "meta", "not", "otherwise", "or", "section", "shared", "then", "true", "try", "type" }, + charAlpha = (c as number) => (c>= 65 and c <= 90) or (c>= 97 and c <= 122) or c=95, + charDigit = (c as number) => c>= 48 and c <= 57 + in + try + charAlpha(Character.ToNumber(Text.At(x,0))) + and + List.MatchesAll( + Text.ToList(x), + (c)=> let num = Character.ToNumber(c) in charAlpha(num) or charDigit(num) + ) + and not + List.MatchesAny( keywords, (li)=> li=x ) + otherwise + false, + + Serialize.Binary = (x) => "#binary(" & Serialize(Binary.ToList(x)) & ") ", + + Serialize.Date = (x) => "#date(" & + Text.From(Date.Year(x)) & ", " & + Text.From(Date.Month(x)) & ", " & + Text.From(Date.Day(x)) & ") ", + + Serialize.Datetime = (x) => "#datetime(" & + Text.From(Date.Year(DateTime.Date(x))) & ", " & + Text.From(Date.Month(DateTime.Date(x))) & ", " & + Text.From(Date.Day(DateTime.Date(x))) & ", " & + Text.From(Time.Hour(DateTime.Time(x))) & ", " & + Text.From(Time.Minute(DateTime.Time(x))) & ", " & + Text.From(Time.Second(DateTime.Time(x))) & ") ", + + Serialize.Datetimezone =(x) => let + dtz = DateTimeZone.ToRecord(x) + in + "#datetimezone(" & + Text.From(dtz[Year]) & ", " & + Text.From(dtz[Month]) & ", " & + Text.From(dtz[Day]) & ", " & + Text.From(dtz[Hour]) & ", " & + Text.From(dtz[Minute]) & ", " & + Text.From(dtz[Second]) & ", " & + Text.From(dtz[ZoneHours]) & ", " & + Text.From(dtz[ZoneMinutes]) & ") ", + + Serialize.Duration = (x) => let + dur = Duration.ToRecord(x) + in + "#duration(" & + Text.From(dur[Days]) & ", " & + Text.From(dur[Hours]) & ", " & + Text.From(dur[Minutes]) & ", " & + Text.From(dur[Seconds]) & ") ", + + Serialize.Function = (x) => _serialize_function_param_type( + Type.FunctionParameters(Value.Type(x)), + Type.FunctionRequiredParameters(Value.Type(x)) ) & + " as " & + _serialize_function_return_type(Value.Type(x)) & + " => (...) ", + + Serialize.List = (x) => "{" & + List.Accumulate(x, "", (seed,item) => if seed="" then Serialize(item) else seed & ", " & Serialize(item)) & + "} ", + + Serialize.Logical = (x) => Text.From(x), + + Serialize.Null = (x) => "null", + + Serialize.Number = (x) => + let Text.From = (i as number) as text => + if Number.IsNaN(i) then "#nan" else + if i=Number.PositiveInfinity then "#infinity" else + if i=Number.NegativeInfinity then "-#infinity" else + Text.From(i) + in + Text.From(x), + + Serialize.Record = (x) => "[ " & + List.Accumulate( + Record.FieldNames(x), + "", + (seed,item) => + (if seed="" then Serialize.Identifier(item) else seed & ", " & Serialize.Identifier(item)) & " = " & Serialize(Record.Field(x, item)) + ) & + " ] ", + + Serialize.Table = (x) => "#table( type " & + _serialize_table_type(Value.Type(x)) & + ", " & + Serialize(Table.ToRows(x)) & + ") ", + + Serialize.Text = (x) => """" & + _serialize_text_content(x) & + """", + + _serialize_text_content = (x) => let + escapeText = (n as number) as text => "#(#)(" & Text.PadStart(Number.ToText(n, "X", "en-US"), 4, "0") & ")" + in + List.Accumulate( + List.Transform( + Text.ToList(x), + (c) => let n=Character.ToNumber(c) in + if n = 9 then "#(#)(tab)" else + if n = 10 then "#(#)(lf)" else + if n = 13 then "#(#)(cr)" else + if n = 34 then """""" else + if n = 35 then "#(#)(#)" else + if n < 32 then escapeText(n) else + if n < 127 then Character.FromNumber(n) else + escapeText(n) + ), + "", + (s,i)=>s&i + ), + + Serialize.Identifier = (x) => + if _canBeIdentifier(x) then + x + else + "#""" & + _serialize_text_content(x) & + """", + + Serialize.Time = (x) => "#time(" & + Text.From(Time.Hour(x)) & ", " & + Text.From(Time.Minute(x)) & ", " & + Text.From(Time.Second(x)) & ") ", + + Serialize.Type = (x) => "type " & _serialize_typename(x), + + + _serialize_typename = (x, optional funtype as logical) => /* Optional parameter: Is this being used as part of a function signature? */ + let + isFunctionType = (x as type) => try if Type.FunctionReturn(x) is type then true else false otherwise false, + isTableType = (x as type) => try if Type.TableSchema(x) is table then true else false otherwise false, + isRecordType = (x as type) => try if Type.ClosedRecord(x) is type then true else false otherwise false, + isListType = (x as type) => try if Type.ListItem(x) is type then true else false otherwise false + in + + if funtype=null and isTableType(x) then _serialize_table_type(x) else + if funtype=null and isListType(x) then "{ " & @_serialize_typename( Type.ListItem(x) ) & " }" else + if funtype=null and isFunctionType(x) then "function " & _serialize_function_type(x) else + if funtype=null and isRecordType(x) then _serialize_record_type(x) else + + if x = type any then "any" else + let base = Type.NonNullable(x) in + (if Type.IsNullable(x) then "nullable " else "") & + (if base = type anynonnull then "anynonnull" else + if base = type binary then "binary" else + if base = type date then "date" else + if base = type datetime then "datetime" else + if base = type datetimezone then "datetimezone" else + if base = type duration then "duration" else + if base = type logical then "logical" else + if base = type none then "none" else + if base = type null then "null" else + if base = type number then "number" else + if base = type text then "text" else + if base = type time then "time" else + if base = type type then "type" else + + /* Abstract types: */ + if base = type function then "function" else + if base = type table then "table" else + if base = type record then "record" else + if base = type list then "list" else + + "any /*Actually unknown type*/"), + + _serialize_table_type = (x) => + let + schema = Type.TableSchema(x) + in + "table " & + (if Table.IsEmpty(schema) then "" else + "[" & List.Accumulate( + List.Transform( + Table.ToRecords(Table.Sort(schema,"Position")), + each Serialize.Identifier(_[Name]) & " = " & _[Kind]), + "", + (seed,item) => (if seed="" then item else seed & ", " & item ) + ) & "] " ), + + _serialize_record_type = (x) => + let flds = Type.RecordFields(x) + in + if Record.FieldCount(flds)=0 then "record" else + "[" & List.Accumulate( + Record.FieldNames(flds), + "", + (seed,item) => + seed & + (if seed<>"" then ", " else "") & + (Serialize.Identifier(item) & "=" & _serialize_typename(Record.Field(flds,item)[Type]) ) + ) & + (if Type.IsOpenRecord(x) then ",..." else "") & + "]", + + _serialize_function_type = (x) => _serialize_function_param_type( + Type.FunctionParameters(x), + Type.FunctionRequiredParameters(x) ) & + " as " & + _serialize_function_return_type(x), + + _serialize_function_param_type = (t,n) => + let + funsig = Table.ToRecords( + Table.TransformColumns( + Table.AddIndexColumn( Record.ToTable( t ), "isOptional", 1 ), + { "isOptional", (x)=> x>n } ) ) + in + "(" & + List.Accumulate( + funsig, + "", + (seed,item)=> + (if seed="" then "" else seed & ", ") & + (if item[isOptional] then "optional " else "") & + Serialize.Identifier(item[Name]) & " as " & _serialize_typename(item[Value], true) ) + & ")", + + _serialize_function_return_type = (x) => _serialize_typename(Type.FunctionReturn(x), true), + + Serialize = (x) as text => + if x is binary then try Serialize.Binary(x) otherwise "null /*serialize failed*/" else + if x is date then try Serialize.Date(x) otherwise "null /*serialize failed*/" else + if x is datetime then try Serialize.Datetime(x) otherwise "null /*serialize failed*/" else + if x is datetimezone then try Serialize.Datetimezone(x) otherwise "null /*serialize failed*/" else + if x is duration then try Serialize.Duration(x) otherwise "null /*serialize failed*/" else + if x is function then try Serialize.Function(x) otherwise "null /*serialize failed*/" else + if x is list then try Serialize.List(x) otherwise "null /*serialize failed*/" else + if x is logical then try Serialize.Logical(x) otherwise "null /*serialize failed*/" else + if x is null then try Serialize.Null(x) otherwise "null /*serialize failed*/" else + if x is number then try Serialize.Number(x) otherwise "null /*serialize failed*/" else + if x is record then try Serialize.Record(x) otherwise "null /*serialize failed*/" else + if x is table then try Serialize.Table(x) otherwise "null /*serialize failed*/" else + if x is text then try Serialize.Text(x) otherwise "null /*serialize failed*/" else + if x is time then try Serialize.Time(x) otherwise "null /*serialize failed*/" else + if x is type then try Serialize.Type(x) otherwise "null /*serialize failed*/" else + "[#_unable_to_serialize_#]" + in + try Serialize(value) otherwise "" +in + [ + LogValue = Diagnostics.LogValue, + LogValue2 = Diagnostics.LogValue2, + LogFailure = Diagnostics.LogFailure, + WrapFunctionResult = Diagnostics.WrapFunctionResult, + WrapHandlers = Diagnostics.WrapHandlers, + ValueToText = Diagnostics.ValueToText + ] \ No newline at end of file diff --git a/sql-odbc/src/PowerBIConnector/OdbcConstants.pqm b/sql-odbc/src/PowerBIConnector/OdbcConstants.pqm new file mode 100644 index 0000000000..144e525413 --- /dev/null +++ b/sql-odbc/src/PowerBIConnector/OdbcConstants.pqm @@ -0,0 +1,1253 @@ +// values from https://github.com/Microsoft/ODBC-Specification/blob/master/Windows/inc/sqlext.h +[ + Flags = (flags as list) => + if (List.IsEmpty(flags)) then 0 else + let + Loop = List.Generate(()=> [i = 0, Combined = flags{0}], + each [i] < List.Count(flags), + each [Combined = Number.BitwiseOr([Combined], flags{i}), i = [i]+1], + each [Combined]), + Result = List.Last(Loop) + in + Result, + + SQL_HANDLE = + [ + ENV = 1, + DBC = 2, + STMT = 3, + DESC = 4 + ], + + RetCode = + [ + SUCCESS = 0, + SUCCESS_WITH_INFO = 1, + ERROR = -1, + INVALID_HANDLE = -2, + NO_DATA = 100 + ], + + SQL_CONVERT = + [ + BIGINT = 53, + BINARY = 54, + BIT = 55, + CHAR = 56, + DATE = 57, + DECIMAL = 58, + DOUBLE = 59, + FLOAT = 60, + INTEGER = 61, + LONGVARCHAR = 62, + NUMERIC = 63, + REAL = 64, + SMALLINT = 65, + TIME = 66, + TIMESTAMP = 67, + TINYINT = 68, + VARBINARY = 69, + VARCHAR = 70, + LONGVARBINARY = 71 + ], + + SQL_ROW = + [ + PROCEED = 0, + IGNORE = 1, + SUCCESS = 0, + DELETED = 1, + UPDATED = 2, + NOROW = 3, + ADDED = 4, + ERROR = 5, + SUCCESS_WITH_INFO = 6 + ], + +SQL_CVT = +[ + //None = 0, + + CHAR = 0x00000001, + NUMERIC = 0x00000002, + DECIMAL = 0x00000004, + INTEGER = 0x00000008, + SMALLINT = 0x00000010, + FLOAT = 0x00000020, + REAL = 0x00000040, + DOUBLE = 0x00000080, + VARCHAR = 0x00000100, + LONGVARCHAR = 0x00000200, + BINARY = 0x00000400, + VARBINARY = 0x00000800, + BIT = 0x00001000, + TINYINT = 0x00002000, + BIGINT = 0x00004000, + DATE = 0x00008000, + TIME = 0x00010000, + TIMESTAMP = 0x00020000, + LONGVARBINARY = 0x00040000, + INTERVAL_YEAR_MONTH = 0x00080000, + INTERVAL_DAY_TIME = 0x00100000, + WCHAR = 0x00200000, + WLONGVARCHAR = 0x00400000, + WVARCHAR = 0x00800000, + GUID = 0x01000000 +], + + STMT = + [ + CLOSE = 0, + DROP = 1, + UNBIND = 2, + RESET_PARAMS = 3 + ], + + SQL_MAX = + [ + NUMERIC_LEN = 16 + ], + + SQL_IS = + [ + POINTER = -4, + INTEGER = -6, + UINTEGER = -5, + SMALLINT = -8 + ], + + //SQL Server specific defines + // + SQL_HC = // from Odbcss.h + [ + OFF = 0, // FOR BROWSE columns are hidden + ON = 1 // FOR BROWSE columns are exposed + ], + + SQL_NB = // from Odbcss.h + [ + OFF = 0, // NO_BROWSETABLE is off + ON = 1 // NO_BROWSETABLE is on + ], + + // SQLColAttributes driver specific defines. + // SQLSet/GetDescField driver specific defines. + // Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage. + // + SQL_CA_SS = // from Odbcss.h + [ + BASE = 1200, // SQL_CA_SS_BASE + + COLUMN_HIDDEN = 1200 + 11, // Column is hidden (FOR BROWSE) + COLUMN_KEY = 1200 + 12, // Column is key column (FOR BROWSE) + VARIANT_TYPE = 1200 + 15, + VARIANT_SQL_TYPE = 1200 + 16, + VARIANT_SERVER_TYPE = 1200 + 17 + + ], + + SQL_SOPT_SS = // from Odbcss.h + [ + BASE = 1225, // SQL_SOPT_SS_BASE + HIDDEN_COLUMNS = 1225 + 2, // Expose FOR BROWSE hidden columns + NOBROWSETABLE = 1225 + 3 // Set NOBROWSETABLE option + ], + + SQL_COMMIT = 0, //Commit + SQL_ROLLBACK = 1, //Abort + + //static public readonly IntPtr SQL_AUTOCOMMIT_OFF = IntPtr.Zero; + //static public readonly IntPtr SQL_AUTOCOMMIT_ON = new IntPtr(1); + + SQL_TRANSACTION = + [ + READ_UNCOMMITTED = 0x00000001, + READ_COMMITTED = 0x00000002, + REPEATABLE_READ = 0x00000004, + SERIALIZABLE = 0x00000008, + SNAPSHOT = 0x00000020 // VSDD 414121: SQL_TXN_SS_SNAPSHOT == 0x20 (sqlncli.h) + ], + + SQL_PARAM = + [ + TYPE_UNKNOWN = 0, // SQL_PARAM_TYPE_UNKNOWN + INPUT = 1, // SQL_PARAM_INPUT + INPUT_OUTPUT = 2, // SQL_PARAM_INPUT_OUTPUT + RESULT_COL = 3, // SQL_RESULT_COL + OUTPUT = 4, // SQL_PARAM_OUTPUT + RETURN_VALUE = 5 // SQL_RETURN_VALUE + ], + + SQL_DESC = + [ + // from sql.h (ODBCVER >= 3.0) + // + COUNT = 1001, + TYPE = 1002, + LENGTH = 1003, + OCTET_LENGTH_PTR = 1004, + PRECISION = 1005, + SCALE = 1006, + DATETIME_INTERVAL_CODE = 1007, + NULLABLE = 1008, + INDICATOR_PTR = 1009, + DATA_PTR = 1010, + NAME = 1011, + UNNAMED = 1012, + OCTET_LENGTH = 1013, + ALLOC_TYPE = 1099, + + // from sqlext.h (ODBCVER >= 3.0) + // + CONCISE_TYPE = SQL_COLUMN[TYPE], + DISPLAY_SIZE = SQL_COLUMN[DISPLAY_SIZE], + UNSIGNED = SQL_COLUMN[UNSIGNED], + UPDATABLE = SQL_COLUMN[UPDATABLE], + AUTO_UNIQUE_VALUE = SQL_COLUMN[AUTO_INCREMENT], + + TYPE_NAME = SQL_COLUMN[TYPE_NAME], + TABLE_NAME = SQL_COLUMN[TABLE_NAME], + SCHEMA_NAME = SQL_COLUMN[OWNER_NAME], + CATALOG_NAME = SQL_COLUMN[QUALIFIER_NAME], + + BASE_COLUMN_NAME = 22, + BASE_TABLE_NAME = 23, + + NUM_PREC_RADIX = 32 + ], + + // ODBC version 2.0 style attributes + // All IdentifierValues are ODBC 1.0 unless marked differently + // + SQL_COLUMN = + [ + COUNT = 0, + NAME = 1, + TYPE = 2, + LENGTH = 3, + PRECISION = 4, + SCALE = 5, + DISPLAY_SIZE = 6, + NULLABLE = 7, + UNSIGNED = 8, + MONEY = 9, + UPDATABLE = 10, + AUTO_INCREMENT = 11, + CASE_SENSITIVE = 12, + SEARCHABLE = 13, + TYPE_NAME = 14, + TABLE_NAME = 15, // (ODBC 2.0) + OWNER_NAME = 16, // (ODBC 2.0) + QUALIFIER_NAME = 17, // (ODBC 2.0) + LABEL = 18 + ], + + // values from sqlext.h + SQL_SQL92_RELATIONAL_JOIN_OPERATORS = + [ + CORRESPONDING_CLAUSE = 0x00000001, // SQL_SRJO_CORRESPONDING_CLAUSE + CROSS_JOIN = 0x00000002, // SQL_SRJO_CROSS_JOIN + EXCEPT_JOIN = 0x00000004, // SQL_SRJO_EXCEPT_JOIN + FULL_OUTER_JOIN = 0x00000008, // SQL_SRJO_FULL_OUTER_JOIN + INNER_JOIN = 0x00000010, // SQL_SRJO_INNER_JOIN + INTERSECT_JOIN = 0x00000020, // SQL_SRJO_INTERSECT_JOIN + LEFT_OUTER_JOIN = 0x00000040, // SQL_SRJO_LEFT_OUTER_JOIN + NATURAL_JOIN = 0x00000080, // SQL_SRJO_NATURAL_JOIN + RIGHT_OUTER_JOIN = 0x00000100, // SQL_SRJO_RIGHT_OUTER_JOIN + UNION_JOIN = 0x00000200 // SQL_SRJO_UNION_JOIN + ], + + // values from sqlext.h + SQL_QU = + [ + SQL_QU_DML_STATEMENTS = 0x00000001, + SQL_QU_PROCEDURE_INVOCATION = 0x00000002, + SQL_QU_TABLE_DEFINITION = 0x00000004, + SQL_QU_INDEX_DEFINITION = 0x00000008, + SQL_QU_PRIVILEGE_DEFINITION = 0x00000010 + ], + + // values from sql.h + SQL_OJ_CAPABILITIES = + [ + LEFT = 0x00000001, // SQL_OJ_LEFT + RIGHT = 0x00000002, // SQL_OJ_RIGHT + FULL = 0x00000004, // SQL_OJ_FULL + NESTED = 0x00000008, // SQL_OJ_NESTED + NOT_ORDERED = 0x00000010, // SQL_OJ_NOT_ORDERED + INNER = 0x00000020, // SQL_OJ_INNER + ALL_COMPARISON_OPS = 0x00000040 //SQL_OJ_ALLCOMPARISION+OPS + ], + + SQL_UPDATABLE = + [ + READONLY = 0, // SQL_ATTR_READ_ONLY + WRITE = 1, // SQL_ATTR_WRITE + READWRITE_UNKNOWN = 2 // SQL_ATTR_READWRITE_UNKNOWN + ], + + SQL_IDENTIFIER_CASE = + [ + UPPER = 1, // SQL_IC_UPPER + LOWER = 2, // SQL_IC_LOWER + SENSITIVE = 3, // SQL_IC_SENSITIVE + MIXED = 4 // SQL_IC_MIXED + ], + + // Uniqueness parameter in the SQLStatistics function + SQL_INDEX = + [ + UNIQUE = 0, + ALL = 1 + ], + + // Reserved parameter in the SQLStatistics function + SQL_STATISTICS_RESERVED = + [ + QUICK = 0, // SQL_QUICK + ENSURE = 1 // SQL_ENSURE + ], + + // Identifier type parameter in the SQLSpecialColumns function + SQL_SPECIALCOLS = + [ + BEST_ROWID = 1, // SQL_BEST_ROWID + ROWVER = 2 // SQL_ROWVER + ], + + // Scope parameter in the SQLSpecialColumns function + SQL_SCOPE = + [ + CURROW = 0, // SQL_SCOPE_CURROW + TRANSACTION = 1, // SQL_SCOPE_TRANSACTION + SESSION = 2 // SQL_SCOPE_SESSION + ], + + SQL_NULLABILITY = + [ + NO_NULLS = 0, // SQL_NO_NULLS + NULLABLE = 1, // SQL_NULLABLE + UNKNOWN = 2 // SQL_NULLABLE_UNKNOWN + ], + + SQL_SEARCHABLE = + [ + UNSEARCHABLE = 0, // SQL_UNSEARCHABLE + LIKE_ONLY = 1, // SQL_LIKE_ONLY + ALL_EXCEPT_LIKE = 2, // SQL_ALL_EXCEPT_LIKE + SEARCHABLE = 3 // SQL_SEARCHABLE + ], + + SQL_UNNAMED = + [ + NAMED = 0, // SQL_NAMED + UNNAMED = 1 // SQL_UNNAMED + ], + // todo:move + // internal constants + // not odbc specific + // + HANDLER = + [ + IGNORE = 0x00000000, + THROW = 0x00000001 + ], + + // values for SQLStatistics TYPE column + SQL_STATISTICSTYPE = + [ + TABLE_STAT = 0, // TABLE Statistics + INDEX_CLUSTERED = 1, // CLUSTERED index statistics + INDEX_HASHED = 2, // HASHED index statistics + INDEX_OTHER = 3 // OTHER index statistics + ], + + // values for SQLProcedures PROCEDURE_TYPE column + SQL_PROCEDURETYPE = + [ + UNKNOWN = 0, // procedure is of unknow type + PROCEDURE = 1, // procedure is a procedure + FUNCTION = 2 // procedure is a function + ], + + // private constants + // to define data types (see below) + // + SIGNED_OFFSET = -20, // SQL_SIGNED_OFFSET + UNSIGNED_OFFSET = -22, // SQL_UNSIGNED_OFFSET + + // C Data Types + SQL_C = + [ + CHAR = 1, + WCHAR = -8, + SLONG = 4 + SIGNED_OFFSET, + ULONG = 4 + UNSIGNED_OFFSET, + SSHORT = 5 + SIGNED_OFFSET, + USHORT = 5 + UNSIGNED_OFFSET, + FLOAT = 7, + DOUBLE = 8, + BIT = -7, + STINYINT = -6 + SIGNED_OFFSET, + UTINYINT = -6 + UNSIGNED_OFFSET, + SBIGINT = -5 + SIGNED_OFFSET, + UBIGINT = -5 + UNSIGNED_OFFSET, + BINARY = -2, + TIMESTAMP = 11, + + TYPE_DATE = 91, + TYPE_TIME = 92, + TYPE_TIMESTAMP = 93, + + NUMERIC = 2, + GUID = -11, + DEFAULT = 99, + ARD_TYPE = -99 + ], + + // SQL Data Types + SQL_TYPE = + [ + // Base data types (sql.h) + UNKNOWN = 0, + NULL = 0, + CHAR = 1, + NUMERIC = 2, + DECIMAL = 3, + INTEGER = 4, + SMALLINT = 5, + FLOAT = 6, + REAL = 7, + DOUBLE = 8, + DATETIME = 9, // V3 Only + VARCHAR = 12, + + // Unicode types (sqlucode.h) + WCHAR = -8, + WVARCHAR = -9, + WLONGVARCHAR = -10, + + // Extended data types (sqlext.h) + INTERVAL = 10, // V3 Only + TIME = 10, + TIMESTAMP = 11, + LONGVARCHAR = -1, + BINARY = -2, + VARBINARY = -3, + LONGVARBINARY = -4, + BIGINT = -5, + TINYINT = -6, + BIT = -7, + GUID = -11, // V3 Only + + // One-parameter shortcuts for date/time data types. + TYPE_DATE = 91, + TYPE_TIME = 92, + TYPE_TIMESTAMP = 93, + + // SQL Server Types -150 to -159 (sqlncli.h) + SS_VARIANT = -150, + SS_UDT = -151, + SS_XML = -152, + SS_TABLE = -153, + SS_TIME2 = -154, + SS_TIMESTAMPOFFSET = -155 + ], + + //SQL_ALL_TYPES = 0, + //static public readonly IntPtr SQL_HANDLE_NULL = IntPtr.Zero; + + SQL_LENGTH = + [ + SQL_IGNORE = -6, + SQL_DEFAULT_PARAM = -5, + SQL_NO_TOTAL = -4, + SQL_NTS = -3, + SQL_DATA_AT_EXEC = -2, + SQL_NULL_DATA = -1 + ], + + SQL_DEFAULT_PARAM = -5, + + // column ordinals for SQLProcedureColumns result set + // this column ordinals are not defined in any c/c++ header but in the ODBC Programmer's Reference under SQLProcedureColumns + // + COLUMN_NAME = 4, + COLUMN_TYPE = 5, + DATA_TYPE = 6, + COLUMN_SIZE = 8, + DECIMAL_DIGITS = 10, + NUM_PREC_RADIX = 11, + + SQL_ATTR = + [ + ODBC_VERSION = 200, + CONNECTION_POOLING = 201, + AUTOCOMMIT = 102, + TXN_ISOLATION = 108, + CURRENT_CATALOG = 109, + LOGIN_TIMEOUT = 103, + QUERY_TIMEOUT = 0, + CONNECTION_DEAD = 1209, + + SQL_COPT_SS_BASE = 1200, + SQL_COPT_SS_ENLIST_IN_DTC = (1200 + 7), + SQL_COPT_SS_TXN_ISOLATION = (1200 + 27), + + MAX_LENGTH = 3, + ROW_BIND_TYPE = 5, + CURSOR_TYPE = 6, + RETRIEVE_DATA = 11, + ROW_STATUS_PTR = 25, + ROWS_FETCHED_PTR = 26, + ROW_ARRAY_SIZE = 27, + + // ODBC 3.0 + APP_ROW_DESC = 10010, + APP_PARAM_DESC = 10011, + IMP_ROW_DESC = 10012, + IMP_PARAM_DESC = 10013, + METADATA_ID = 10014, + + // ODBC 4.0 + PRIVATE_DRIVER_LOCATION = 204 + ], + + SQL_RD = + [ + OFF = 0, + ON = 1 + ], + + SQL_GD = + [ + //None = 0, + ANY_COLUMN = 1, + ANY_ORDER = 2, + BLOCK = 4, + BOUND = 8, + OUTPUT_PARAMS = 16 + ], + + //SQLGetInfo +/* + SQL_INFO = + [ + SQL_ACTIVE_CONNECTIONS = 0, + SQL_MAX_DRIVER_CONNECTIONS = 0, + SQL_MAX_CONCURRENT_ACTIVITIES = 1, + SQL_ACTIVE_STATEMENTS = 1, + SQL_DATA_SOURCE_NAME = 2, + SQL_DRIVER_HDBC, + SQL_DRIVER_HENV, + SQL_DRIVER_HSTMT, + SQL_DRIVER_NAME, + SQL_DRIVER_VER, + SQL_FETCH_DIRECTION, + SQL_ODBC_API_CONFORMANCE, + SQL_ODBC_VER, + SQL_ROW_UPDATES, + SQL_ODBC_SAG_CLI_CONFORMANCE, + SQL_SERVER_NAME, + SQL_SEARCH_PATTERN_ESCAPE, + SQL_ODBC_SQL_CONFORMANCE, + + SQL_DATABASE_NAME, + SQL_DBMS_NAME, + SQL_DBMS_VER, + + SQL_ACCESSIBLE_TABLES, + SQL_ACCESSIBLE_PROCEDURES, + SQL_PROCEDURES, + SQL_CONCAT_NULL_BEHAVIOR, + SQL_CURSOR_COMMIT_BEHAVIOR, + SQL_CURSOR_ROLLBACK_BEHAVIOR, + SQL_DATA_SOURCE_READ_ONLY, + SQL_DEFAULT_TXN_ISOLATION, + SQL_EXPRESSIONS_IN_ORDERBY, + SQL_IDENTIFIER_CASE, + SQL_IDENTIFIER_QUOTE_CHAR, + SQL_MAX_COLUMN_NAME_LEN, + SQL_MAX_CURSOR_NAME_LEN, + SQL_MAX_OWNER_NAME_LEN, + SQL_MAX_SCHEMA_NAME_LEN = 32, + SQL_MAX_PROCEDURE_NAME_LEN, + SQL_MAX_QUALIFIER_NAME_LEN, + SQL_MAX_CATALOG_NAME_LEN = 34, + SQL_MAX_TABLE_NAME_LEN, + SQL_MULT_RESULT_SETS, + SQL_MULTIPLE_ACTIVE_TXN, + SQL_OUTER_JOINS, + SQL_SCHEMA_TERM, + SQL_PROCEDURE_TERM, + SQL_CATALOG_NAME_SEPARATOR, + SQL_CATALOG_TERM, + SQL_SCROLL_CONCURRENCY, + SQL_SCROLL_OPTIONS, + SQL_TABLE_TERM, + SQL_TXN_CAPABLE, + SQL_USER_NAME, + + SQL_CONVERT_FUNCTIONS, + SQL_NUMERIC_FUNCTIONS, + SQL_STRING_FUNCTIONS, + SQL_SYSTEM_FUNCTIONS, + SQL_TIMEDATE_FUNCTIONS, + + SQL_CONVERT_BIGINT, + SQL_CONVERT_BINARY, + SQL_CONVERT_BIT, + SQL_CONVERT_CHAR, + SQL_CONVERT_DATE, + SQL_CONVERT_DECIMAL, + SQL_CONVERT_DOUBLE, + SQL_CONVERT_FLOAT, + SQL_CONVERT_INTEGER, + SQL_CONVERT_LONGVARCHAR, + SQL_CONVERT_NUMERIC, + SQL_CONVERT_REAL, + SQL_CONVERT_SMALLINT, + SQL_CONVERT_TIME, + SQL_CONVERT_TIMESTAMP, + SQL_CONVERT_TINYINT, + SQL_CONVERT_VARBINARY, + SQL_CONVERT_VARCHAR, + SQL_CONVERT_LONGVARBINARY, + + SQL_TXN_ISOLATION_OPTION, + SQL_ODBC_SQL_OPT_IEF, + SQL_INTEGRITY = 73, + SQL_CORRELATION_NAME, + SQL_NON_NULLABLE_COLUMNS, + SQL_DRIVER_HLIB, + SQL_DRIVER_ODBC_VER, + SQL_LOCK_TYPES, + SQL_POS_OPERATIONS, + SQL_POSITIONED_STATEMENTS, + SQL_GETDATA_EXTENSIONS, + SQL_BOOKMARK_PERSISTENCE, + SQL_STATIC_SENSITIVITY, + SQL_FILE_USAGE, + SQL_NULL_COLLATION, + SQL_ALTER_TABLE, + SQL_COLUMN_ALIAS, + SQL_GROUP_BY, + SQL_KEYWORDS, + SQL_ORDER_BY_COLUMNS_IN_SELECT, + SQL_SCHEMA_USAGE, + SQL_CATALOG_USAGE, + SQL_QUOTED_IDENTIFIER_CASE, + SQL_SPECIAL_CHARACTERS, + SQL_SUBQUERIES, + SQL_UNION_STATEMENT, + SQL_MAX_COLUMNS_IN_GROUP_BY, + SQL_MAX_COLUMNS_IN_INDEX, + SQL_MAX_COLUMNS_IN_ORDER_BY, + SQL_MAX_COLUMNS_IN_SELECT, + SQL_MAX_COLUMNS_IN_TABLE, + SQL_MAX_INDEX_SIZE, + SQL_MAX_ROW_SIZE_INCLUDES_LONG, + SQL_MAX_ROW_SIZE, + SQL_MAX_STATEMENT_LEN, + SQL_MAX_TABLES_IN_SELECT, + SQL_MAX_USER_NAME_LEN, + SQL_MAX_CHAR_LITERAL_LEN, + SQL_TIMEDATE_ADD_INTERVALS, + SQL_TIMEDATE_DIFF_INTERVALS, + SQL_NEED_LONG_DATA_LEN, + SQL_MAX_BINARY_LITERAL_LEN, + SQL_LIKE_ESCAPE_CLAUSE, + SQL_CATALOG_LOCATION, + SQL_OJ_CAPABILITIES, + + SQL_ACTIVE_ENVIRONMENTS, + SQL_ALTER_DOMAIN, + SQL_SQL_CONFORMANCE, + SQL_DATETIME_LITERALS, + SQL_BATCH_ROW_COUNT, + SQL_BATCH_SUPPORT, + SQL_CONVERT_WCHAR, + SQL_CONVERT_INTERVAL_DAY_TIME, + SQL_CONVERT_INTERVAL_YEAR_MONTH, + SQL_CONVERT_WLONGVARCHAR, + SQL_CONVERT_WVARCHAR, + SQL_CREATE_ASSERTION, + SQL_CREATE_CHARACTER_SET, + SQL_CREATE_COLLATION, + SQL_CREATE_DOMAIN, + SQL_CREATE_SCHEMA, + SQL_CREATE_TABLE, + SQL_CREATE_TRANSLATION, + SQL_CREATE_VIEW, + SQL_DRIVER_HDESC, + SQL_DROP_ASSERTION, + SQL_DROP_CHARACTER_SET, + SQL_DROP_COLLATION, + SQL_DROP_DOMAIN, + SQL_DROP_SCHEMA, + SQL_DROP_TABLE, + SQL_DROP_TRANSLATION, + SQL_DROP_VIEW, + SQL_DYNAMIC_CURSOR_ATTRIBUTES1, + SQL_DYNAMIC_CURSOR_ATTRIBUTES2, + SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1, + SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2, + SQL_INDEX_KEYWORDS, + SQL_INFO_SCHEMA_VIEWS, + SQL_KEYSET_CURSOR_ATTRIBUTES1, + SQL_KEYSET_CURSOR_ATTRIBUTES2, + SQL_ODBC_INTERFACE_CONFORMANCE, + SQL_PARAM_ARRAY_ROW_COUNTS, + SQL_PARAM_ARRAY_SELECTS, + SQL_SQL92_DATETIME_FUNCTIONS, + SQL_SQL92_FOREIGN_KEY_DELETE_RULE, + SQL_SQL92_FOREIGN_KEY_UPDATE_RULE, + SQL_SQL92_GRANT, + SQL_SQL92_NUMERIC_VALUE_FUNCTIONS, + SQL_SQL92_PREDICATES, + SQL_SQL92_RELATIONAL_JOIN_OPERATORS, + SQL_SQL92_REVOKE, + SQL_SQL92_ROW_VALUE_CONSTRUCTOR, + SQL_SQL92_STRING_FUNCTIONS, + SQL_SQL92_VALUE_EXPRESSIONS, + SQL_STANDARD_CLI_CONFORMANCE, + SQL_STATIC_CURSOR_ATTRIBUTES1, + SQL_STATIC_CURSOR_ATTRIBUTES2, + SQL_AGGREGATE_FUNCTIONS, + SQL_DDL_INDEX, + SQL_DM_VER, + SQL_INSERT_STATEMENT, + SQL_CONVERT_GUID, + + SQL_XOPEN_CLI_YEAR = 10000, + SQL_CURSOR_SENSITIVITY, + SQL_DESCRIBE_PARAMETER, + SQL_CATALOG_NAME, + SQL_COLLATION_SEQ, + SQL_MAX_IDENTIFIER_LEN, + SQL_ASYNC_MODE = 10021, + SQL_MAX_ASYNC_CONCURRENT_STATEMENTS, + + SQL_DTC_TRANSITION_COST = 1750, + ], +*/ + SQL_OAC = + [ + SQL_OAC_None = 0x0000, + SQL_OAC_LEVEL1 = 0x0001, + SQL_OAC_LEVEL2 = 0x0002 + ], + + SQL_OSC = + [ + SQL_OSC_MINIMUM = 0x0000, + SQL_OSC_CORE = 0x0001, + SQL_OSC_EXTENDED = 0x0002 + ], + + SQL_SCC = + [ + SQL_SCC_XOPEN_CLI_VERSION1 = 0x00000001, + SQL_SCC_ISO92_CLI = 0x00000002 + ], + + SQL_SVE = + [ + SQL_SVE_CASE = 0x00000001, + SQL_SVE_CAST = 0x00000002, + SQL_SVE_COALESCE = 0x00000004, + SQL_SVE_NULLIF = 0x00000008 + ], + + SQL_SSF = + [ + SQL_SSF_CONVERT = 0x00000001, + SQL_SSF_LOWER = 0x00000002, + SQL_SSF_UPPER = 0x00000004, + SQL_SSF_SUBSTRING = 0x00000008, + SQL_SSF_TRANSLATE = 0x00000010, + SQL_SSF_TRIM_BOTH = 0x00000020, + SQL_SSF_TRIM_LEADING = 0x00000040, + SQL_SSF_TRIM_TRAILING = 0x00000080 + ], + + SQL_SP = + [ + //None = 0, + + SQL_SP_EXISTS = 0x00000001, + SQL_SP_ISNOTNULL = 0x00000002, + SQL_SP_ISNULL = 0x00000004, + SQL_SP_MATCH_FULL = 0x00000008, + SQL_SP_MATCH_PARTIAL = 0x00000010, + SQL_SP_MATCH_UNIQUE_FULL = 0x00000020, + SQL_SP_MATCH_UNIQUE_PARTIAL = 0x00000040, + SQL_SP_OVERLAPS = 0x00000080, + SQL_SP_UNIQUE = 0x00000100, + SQL_SP_LIKE = 0x00000200, + SQL_SP_IN = 0x00000400, + SQL_SP_BETWEEN = 0x00000800, + SQL_SP_COMPARISON = 0x00001000, + SQL_SP_QUANTIFIED_COMPARISON = 0x00002000, + + All = 0x0000FFFF + ], + + SQL_OIC = + [ + SQL_OIC_CORE = 1, + SQL_OIC_LEVEL1 = 2, + SQL_OIC_LEVEL2 = 3 + ], + + SQL_USAGE = + [ + SQL_U_DML_STATEMENTS = 0x00000001, + SQL_U_PROCEDURE_INVOCATION = 0x00000002, + SQL_U_TABLE_DEFINITION = 0x00000004, + SQL_U_INDEX_DEFINITION = 0x00000008, + SQL_U_PRIVILEGE_DEFINITION = 0x00000010 + ], + + SQL_GB = + [ + + SQL_GB_NOT_SUPPORTED = 0, + SQL_GB_GROUP_BY_EQUALS_SELECT = 1, + SQL_GB_GROUP_BY_CONTAINS_SELECT = 2, + SQL_GB_NO_RELATION = 3, + SQL_GB_COLLATE = 4 + ], + + SQL_NC = + [ + SQL_NC_END = 0, + SQL_NC_HIGH = 1, + SQL_NC_LOW = 2, + SQL_NC_START = 3 + ], + + SQL_CN = + [ + SQL_CN_None = 0, + SQL_CN_DIFFERENT = 1, + SQL_CN_ANY = 2 + ], + + SQL_NNC = + [ + SQL_NNC_NULL = 0, + SQL_NNC_NON_NULL = 1 + ], + + SQL_CB = + [ + SQL_CB_NULL = 0, + SQL_CB_NON_NULL = 1 + ], + + SQL_FD_FETCH = + [ + SQL_FD_FETCH_NEXT = 0x00000001, + SQL_FD_FETCH_FIRST = 0x00000002, + SQL_FD_FETCH_LAST = 0x00000004, + SQL_FD_FETCH_PRIOR = 0x00000008, + SQL_FD_FETCH_ABSOLUTE = 0x00000010, + SQL_FD_FETCH_RELATIVE = 0x00000020, + SQL_FD_FETCH_BOOKMARK = 0x00000080 + ], + + SQL_SQ = + [ + SQL_SQ_COMPARISON = 0x00000001, + SQL_SQ_EXISTS = 0x00000002, + SQL_SQ_IN = 0x00000004, + SQL_SQ_QUANTIFIED = 0x00000008, + SQL_SQ_CORRELATED_SUBQUERIES = 0x00000010 + ], + + SQL_U = + [ + SQL_U_UNION = 0x00000001, + SQL_U_UNION_ALL = 0x00000002 + ], + + SQL_BP = + [ + SQL_BP_CLOSE = 0x00000001, + SQL_BP_DELETE = 0x00000002, + SQL_BP_DROP = 0x00000004, + SQL_BP_TRANSACTION = 0x00000008, + SQL_BP_UPDATE = 0x00000010, + SQL_BP_OTHER_HSTMT = 0x00000020, + SQL_BP_SCROLL = 0x00000040 + ], + + SQL_QL = + [ + SQL_QL_START = 0x0001, + SQL_QL_END = 0x0002 + ], + + SQL_OJ = + [ + SQL_OJ_LEFT = 0x00000001, + SQL_OJ_RIGHT = 0x00000002, + SQL_OJ_FULL = 0x00000004, + SQL_OJ_NESTED = 0x00000008, + SQL_OJ_NOT_ORDERED = 0x00000010, + SQL_OJ_INNER = 0x00000020, + SQL_OJ_ALL_COMPARISON_OPS = 0x00000040 + ], + + SQL_FN_CVT = + [ + //None = 0, + + SQL_FN_CVT_CONVERT = 0x00000001, + SQL_FN_CVT_CAST = 0x00000002 + ], + + SQL_FN_NUM = + [ + //None = 0, + + SQL_FN_NUM_ABS = 0x00000001, + SQL_FN_NUM_ACOS = 0x00000002, + SQL_FN_NUM_ASIN = 0x00000004, + SQL_FN_NUM_ATAN = 0x00000008, + SQL_FN_NUM_ATAN2 = 0x00000010, + SQL_FN_NUM_CEILING = 0x00000020, + SQL_FN_NUM_COS = 0x00000040, + SQL_FN_NUM_COT = 0x00000080, + SQL_FN_NUM_EXP = 0x00000100, + SQL_FN_NUM_FLOOR = 0x00000200, + SQL_FN_NUM_LOG = 0x00000400, + SQL_FN_NUM_MOD = 0x00000800, + SQL_FN_NUM_SIGN = 0x00001000, + SQL_FN_NUM_SIN = 0x00002000, + SQL_FN_NUM_SQRT = 0x00004000, + SQL_FN_NUM_TAN = 0x00008000, + SQL_FN_NUM_PI = 0x00010000, + SQL_FN_NUM_RAND = 0x00020000, + SQL_FN_NUM_DEGREES = 0x00040000, + SQL_FN_NUM_LOG10 = 0x00080000, + SQL_FN_NUM_POWER = 0x00100000, + SQL_FN_NUM_RADIANS = 0x00200000, + SQL_FN_NUM_ROUND = 0x00400000, + SQL_FN_NUM_TRUNCATE = 0x00800000 + ], + + SQL_SNVF = + [ + SQL_SNVF_BIT_LENGTH = 0x00000001, + SQL_SNVF_CHAR_LENGTH = 0x00000002, + SQL_SNVF_CHARACTER_LENGTH = 0x00000004, + SQL_SNVF_EXTRACT = 0x00000008, + SQL_SNVF_OCTET_LENGTH = 0x00000010, + SQL_SNVF_POSITION = 0x00000020 + ], + + SQL_FN_STR = + [ + //None = 0, + + SQL_FN_STR_CONCAT = 0x00000001, + SQL_FN_STR_INSERT = 0x00000002, + SQL_FN_STR_LEFT = 0x00000004, + SQL_FN_STR_LTRIM = 0x00000008, + SQL_FN_STR_LENGTH = 0x00000010, + SQL_FN_STR_LOCATE = 0x00000020, + SQL_FN_STR_LCASE = 0x00000040, + SQL_FN_STR_REPEAT = 0x00000080, + SQL_FN_STR_REPLACE = 0x00000100, + SQL_FN_STR_RIGHT = 0x00000200, + SQL_FN_STR_RTRIM = 0x00000400, + SQL_FN_STR_SUBSTRING = 0x00000800, + SQL_FN_STR_UCASE = 0x00001000, + SQL_FN_STR_ASCII = 0x00002000, + SQL_FN_STR_CHAR = 0x00004000, + SQL_FN_STR_DIFFERENCE = 0x00008000, + SQL_FN_STR_LOCATE_2 = 0x00010000, + SQL_FN_STR_SOUNDEX = 0x00020000, + SQL_FN_STR_SPACE = 0x00040000, + SQL_FN_STR_BIT_LENGTH = 0x00080000, + SQL_FN_STR_CHAR_LENGTH = 0x00100000, + SQL_FN_STR_CHARACTER_LENGTH = 0x00200000, + SQL_FN_STR_OCTET_LENGTH = 0x00400000, + SQL_FN_STR_POSITION = 0x00800000 + ], + + SQL_FN_SYSTEM = + [ + //None = 0, + + SQL_FN_SYS_USERNAME = 0x00000001, + SQL_FN_SYS_DBNAME = 0x00000002, + SQL_FN_SYS_IFNULL = 0x00000004 + ], + + SQL_FN_TD = + [ + //None = 0, + + SQL_FN_TD_NOW = 0x00000001, + SQL_FN_TD_CURDATE = 0x00000002, + SQL_FN_TD_DAYOFMONTH = 0x00000004, + SQL_FN_TD_DAYOFWEEK = 0x00000008, + SQL_FN_TD_DAYOFYEAR = 0x00000010, + SQL_FN_TD_MONTH = 0x00000020, + SQL_FN_TD_QUARTER = 0x00000040, + SQL_FN_TD_WEEK = 0x00000080, + SQL_FN_TD_YEAR = 0x00000100, + SQL_FN_TD_CURTIME = 0x00000200, + SQL_FN_TD_HOUR = 0x00000400, + SQL_FN_TD_MINUTE = 0x00000800, + SQL_FN_TD_SECOND = 0x00001000, + SQL_FN_TD_TIMESTAMPADD = 0x00002000, + SQL_FN_TD_TIMESTAMPDIFF = 0x00004000, + SQL_FN_TD_DAYNAME = 0x00008000, + SQL_FN_TD_MONTHNAME = 0x00010000, + SQL_FN_TD_CURRENT_DATE = 0x00020000, + SQL_FN_TD_CURRENT_TIME = 0x00040000, + SQL_FN_TD_CURRENT_TIMESTAMP = 0x00080000, + SQL_FN_TD_EXTRACT = 0x00100000 + ], + + SQL_SDF = + [ + SQL_SDF_CURRENT_DATE = 0x00000001, + SQL_SDF_CURRENT_TIME = 0x00000002, + SQL_SDF_CURRENT_TIMESTAMP = 0x00000004 + ], + + SQL_TSI = + [ + //None = 0, + + SQL_TSI_FRAC_SECOND = 0x00000001, + SQL_TSI_SECOND = 0x00000002, + SQL_TSI_MINUTE = 0x00000004, + SQL_TSI_HOUR = 0x00000008, + SQL_TSI_DAY = 0x00000010, + SQL_TSI_WEEK = 0x00000020, + SQL_TSI_MONTH = 0x00000040, + SQL_TSI_QUARTER = 0x00000080, + SQL_TSI_YEAR = 0x00000100 + ], + + SQL_AF = + [ + //None = 0, + + SQL_AF_AVG = 0x00000001, + SQL_AF_COUNT = 0x00000002, + SQL_AF_MAX = 0x00000004, + SQL_AF_MIN = 0x00000008, + SQL_AF_SUM = 0x00000010, + SQL_AF_DISTINCT = 0x00000020, + SQL_AF_ALL = 0x00000040, + + All = 0xFF + ], + + SQL_SC = + [ + //None = 0, + + SQL_SC_SQL92_ENTRY = 0x00000001, + SQL_SC_FIPS127_2_TRANSITIONAL = 0x00000002, + SQL_SC_SQL92_INTERMEDIATE = 0x00000004, + SQL_SC_SQL92_FULL = 0x00000008 + ], + + SQL_DL_SQL92 = + [ + SQL_DL_SQL92_DATE = 0x00000001, + SQL_DL_SQL92_TIME = 0x00000002, + SQL_DL_SQL92_TIMESTAMP = 0x00000004, + SQL_DL_SQL92_INTERVAL_YEAR = 0x00000008, + SQL_DL_SQL92_INTERVAL_MONTH = 0x00000010, + SQL_DL_SQL92_INTERVAL_DAY = 0x00000020, + SQL_DL_SQL92_INTERVAL_HOUR = 0x00000040, + SQL_DL_SQL92_INTERVAL_MINUTE = 0x00000080, + SQL_DL_SQL92_INTERVAL_SECOND = 0x00000100, + SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH = 0x00000200, + SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR = 0x00000400, + SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE = 0x00000800, + SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND = 0x00001000, + SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE = 0x00002000, + SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND = 0x00004000, + SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND = 0x00008000 + ], + + SQL_IK = + [ + SQL_IK_NONE = 0x00000000, + SQL_IK_ASC = 0x00000001, + SQL_IK_DESC = 0x00000002, + SQL_IK_ALL = 0x00000003 //SQL_IK_ASC | SQL_IK_DESC + ], + + SQL_ISV = + [ + SQL_ISV_ASSERTIONS = 0x00000001, + SQL_ISV_CHARACTER_SETS = 0x00000002, + SQL_ISV_CHECK_CONSTRAINTS = 0x00000004, + SQL_ISV_COLLATIONS = 0x00000008, + SQL_ISV_COLUMN_DOMAIN_USAGE = 0x00000010, + SQL_ISV_COLUMN_PRIVILEGES = 0x00000020, + SQL_ISV_COLUMNS = 0x00000040, + SQL_ISV_CONSTRAINT_COLUMN_USAGE = 0x00000080, + SQL_ISV_CONSTRAINT_TABLE_USAGE = 0x00000100, + SQL_ISV_DOMAIN_CONSTRAINTS = 0x00000200, + SQL_ISV_DOMAINS = 0x00000400, + SQL_ISV_KEY_COLUMN_USAGE = 0x00000800, + SQL_ISV_REFERENTIAL_CONSTRAINTS = 0x00001000, + SQL_ISV_SCHEMATA = 0x00002000, + SQL_ISV_SQL_LANGUAGES = 0x00004000, + SQL_ISV_TABLE_CONSTRAINTS = 0x00008000, + SQL_ISV_TABLE_PRIVILEGES = 0x00010000, + SQL_ISV_TABLES = 0x00020000, + SQL_ISV_TRANSLATIONS = 0x00040000, + SQL_ISV_USAGE_PRIVILEGES = 0x00080000, + SQL_ISV_VIEW_COLUMN_USAGE = 0x00100000, + SQL_ISV_VIEW_TABLE_USAGE = 0x00200000, + SQL_ISV_VIEWS = 0x00400000 + ], + + SQL_SRJO = + [ + //None = 0, + + SQL_SRJO_CORRESPONDING_CLAUSE = 0x00000001, + SQL_SRJO_CROSS_JOIN = 0x00000002, + SQL_SRJO_EXCEPT_JOIN = 0x00000004, + SQL_SRJO_FULL_OUTER_JOIN = 0x00000008, + SQL_SRJO_INNER_JOIN = 0x00000010, + SQL_SRJO_INTERSECT_JOIN = 0x00000020, + SQL_SRJO_LEFT_OUTER_JOIN = 0x00000040, + SQL_SRJO_NATURAL_JOIN = 0x00000080, + SQL_SRJO_RIGHT_OUTER_JOIN = 0x00000100, + SQL_SRJO_UNION_JOIN = 0x00000200 + ], + + SQL_SRVC = + [ + SQL_SRVC_VALUE_EXPRESSION = 0x00000001, + SQL_SRVC_NULL = 0x00000002, + SQL_SRVC_DEFAULT = 0x00000004, + SQL_SRVC_ROW_SUBQUERY = 0x00000008 + ], + + //public static readonly int SQL_OV_ODBC3 = 3; + //public const Int32 SQL_NTS = -3; //flags for null-terminated string + + //Pooling + SQL_CP = + [ + OFF = 0, + ONE_PER_DRIVER = 1, + ONE_PER_HENV = 2 + ], + +/* + public const Int32 SQL_CD_TRUE = 1; + public const Int32 SQL_CD_FALSE = 0; + + public const Int32 SQL_DTC_DONE = 0; + public const Int32 SQL_IS_POINTER = -4; + public const Int32 SQL_IS_PTR = 1; +*/ + SQL_DRIVER = + [ + NOPROMPT = 0, + COMPLETE = 1, + PROMPT = 2, + COMPLETE_REQUIRED = 3 + ], + + // Column set for SQLPrimaryKeys + SQL_PRIMARYKEYS = + [ + /* + CATALOGNAME = 1, // TABLE_CAT + SCHEMANAME = 2, // TABLE_SCHEM + TABLENAME = 3, // TABLE_NAME + */ + COLUMNNAME = 4 // COLUMN_NAME + /* + KEY_SEQ = 5, // KEY_SEQ + PKNAME = 6, // PK_NAME + */ + ], + + // Column set for SQLStatistics + SQL_STATISTICS = + [ + /* + CATALOGNAME = 1, // TABLE_CAT + SCHEMANAME = 2, // TABLE_SCHEM + TABLENAME = 3, // TABLE_NAME + NONUNIQUE = 4, // NON_UNIQUE + INDEXQUALIFIER = 5, // INDEX_QUALIFIER + */ + INDEXNAME = 6, // INDEX_NAME + /* + TYPE = 7, // TYPE + */ + ORDINAL_POSITION = 8, // ORDINAL_POSITION + COLUMN_NAME = 9 // COLUMN_NAME + /* + ASC_OR_DESC = 10, // ASC_OR_DESC + CARDINALITY = 11, // CARDINALITY + PAGES = 12, // PAGES + FILTER_CONDITION = 13, // FILTER_CONDITION + */ + ], + + // Column set for SQLSpecialColumns + SQL_SPECIALCOLUMNSET = + [ + /* + SCOPE = 1, // SCOPE + */ + COLUMN_NAME = 2 // COLUMN_NAME + /* + DATA_TYPE = 3, // DATA_TYPE + TYPE_NAME = 4, // TYPE_NAME + COLUMN_SIZE = 5, // COLUMN_SIZE + BUFFER_LENGTH = 6, // BUFFER_LENGTH + DECIMAL_DIGITS = 7, // DECIMAL_DIGITS + PSEUDO_COLUMN = 8, // PSEUDO_COLUMN + */ + ], + + SQL_DIAG = + [ + CURSOR_ROW_COUNT= -1249, + ROW_NUMBER = -1248, + COLUMN_NUMBER = -1247, + RETURNCODE = 1, + NUMBER = 2, + ROW_COUNT = 3, + SQLSTATE = 4, + NATIVE = 5, + MESSAGE_TEXT = 6, + DYNAMIC_FUNCTION = 7, + CLASS_ORIGIN = 8, + SUBCLASS_ORIGIN = 9, + CONNECTION_NAME = 10, + SERVER_NAME = 11, + DYNAMIC_FUNCTION_CODE = 12 + ], + + SQL_SU = + [ + SQL_SU_DML_STATEMENTS = 0x00000001, + SQL_SU_PROCEDURE_INVOCATION = 0x00000002, + SQL_SU_TABLE_DEFINITION = 0x00000004, + SQL_SU_INDEX_DEFINITION = 0x00000008, + SQL_SU_PRIVILEGE_DEFINITION = 0x00000010 + ] +] diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.mproj b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.mproj index 0987401eb4..543b5652c8 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.mproj +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.mproj @@ -66,6 +66,12 @@ Code + + Content + + + Content + Code diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index 6b9abdba5b..86ff0efef8 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -1,6 +1,12 @@ -// This file contains your Data Connector logic +// This file contains Data Connector logic section OdfeSqlOdbcPBIConnector; +// When set to true, additional trace information will be written out to the User log. +// This should be set to false before release. Tracing is done through a call to +// Diagnostics.LogValue(). When EnableTraceOutput is set to false, the call becomes a +// no-op and simply returns the original value. +EnableTraceOutput = true; + [DataSource.Kind="OdfeSqlOdbcPBIConnector", Publish="OdfeSqlOdbcPBIConnector.Publish"] shared OdfeSqlOdbcPBIConnector.Contents = Value.ReplaceType(OdfeSqlOdbcPBIConnectorImpl, OdfeSqlOdbcPBIConnectorType); @@ -8,12 +14,12 @@ shared OdfeSqlOdbcPBIConnector.Contents = Value.ReplaceType(OdfeSqlOdbcPBIConnec OdfeSqlOdbcPBIConnectorType = type function ( Host as (type text meta [ Documentation.FieldCaption = "Host", - Documentation.FieldDescription = "The hostname of the Open Distro For Elasticsearc server.", + Documentation.FieldDescription = "The hostname of the Open Distro For Elasticsearch server.", Documentation.SampleValues = { "localhost" } ]), - Port as (type number meta [ + optional Port as (type number meta [ Documentation.FieldCaption = "Port", - Documentation.FieldDescription = "The port the Open Distro For Elasticsearc server is running on.", + Documentation.FieldDescription = "The port of the Open Distro For Elasticsearch server is running on.", Documentation.SampleValues = { 9200 } ]) ) @@ -21,22 +27,174 @@ OdfeSqlOdbcPBIConnectorType = type function ( Documentation.Name = "Open Distro For Elasticsearch" ]; -OdfeSqlOdbcPBIConnectorImpl = (Host as text, Port as number) as table => +OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table => let + Credential = Extension.CurrentCredential(), + AuthenticationMode = Credential[AuthenticationKind], + + // Sets connection string properties for authentication. + CredentialConnectionString = + if AuthenticationMode = "UsernamePassword" then + [ + Auth = "BASIC", + UID = Credential[Username], + PWD = Credential[Password] + ] + else if AuthenticationMode = "Key" then + [ + Auth = "AWS_SIGV4", + Region = Credential[Key] + ] + else + [ + Auth = "NONE" + ], + + // Set host & port in connection string. + // Do not include port in connection string for aws server connection. + Server = + if Port <> null then + [ + Host = Host, + Port = Port + ] + else + [ + Host = Host + ], + ConnectionString = [ - Driver = "ODFE SQL ODBC Driver", - Host = Host, - Port = Port + Driver = "ODFE SQL ODBC Driver" + ], + + SqlCapabilities = Diagnostics.LogValue("SqlCapabilities_Options", [ + GroupByCapabilities = ODBC[SQL_GB][SQL_GB_COLLATE] + ]), + + SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", [ + SQL_SQL92_PREDICATES = ODBC[SQL_SP][All], + SQL_AGGREGATE_FUNCTIONS = ODBC[SQL_AF][All] + ]), + + SQLGetTypeInfo = (types) => + if (EnableTraceOutput <> true) then types else + let + // Outputting the entire table might be too large, and result in the value being truncated. + // We can output a row at a time instead with Table.TransformRows() + rows = Table.TransformRows(types, each Diagnostics.LogValue("SQLGetTypeInfo " & _[TYPE_NAME], _)), + toTable = Table.FromRecords(rows) + in + Value.ReplaceType(toTable, Value.Type(types)), + + // SQLColumns is a function handler that receives the results of an ODBC call to SQLColumns(). + SQLColumns = (catalogName, schemaName, tableName, columnName, source) => + if (EnableTraceOutput <> true) then source else + // the if statement conditions will force the values to evaluated/written to diagnostics + if (Diagnostics.LogValue("SQLColumns.TableName", tableName) <> "***" and Diagnostics.LogValue("SQLColumns.ColumnName", columnName) <> "***") then + let + // Outputting the entire table might be too large, and result in the value being truncated. + // We can output a row at a time instead with Table.TransformRows() + rows = Table.TransformRows(source, each Diagnostics.LogValue("SQLColumns", _)), + toTable = Table.FromRecords(rows) + in + Value.ReplaceType(toTable, Value.Type(source)) + else + source, + + // Add support for `LIMIT` and `OFFSET` clauses (rather than `TOP`) + AstVisitor = [ + // format is "LIMIT [,]" - ex. LIMIT 2,10 or LIMIT 10 + LimitClause = (skip, take) => + if (take = null) then + ... + else + let + skip = + if (skip = null or skip = 0) then + "" + else + Number.ToText(skip) & "," + in + [ + Text = Text.Format("LIMIT #{0}#{1}", { skip, take }), + Location = "AfterQuerySpecification" + ] ], - OdbcDatasource = Odbc.DataSource(ConnectionString) + + OdbcDatasource = Odbc.DataSource(ConnectionString & Server & CredentialConnectionString, [ + // Do not view the tables grouped by their schema names. + HierarchicalNavigation = false, + // Prevents execution of native SQL statements. Extensions should set this to true. + HideNativeQuery = true, + // Allows upconversion of numeric types + SoftNumbers = true, + // Allow upconversion / resizing of numeric and string types + TolerateConcatOverflow = true, + // Enables connection pooling via the system ODBC manager + ClientConnectionPooling = true, + + // These values should be set by previous steps + AstVisitor = AstVisitor, + SqlCapabilities = SqlCapabilities, + SQLColumns = SQLColumns, + SQLGetInfo = SQLGetInfo, + SQLGetTypeInfo = SQLGetTypeInfo, + + OnError = OnOdbcError + ]) in OdbcDatasource; +// Handles ODBC errors. +OnOdbcError = (errorRecord as record) => + let + ErrorMessage = errorRecord[Message], + ConnectionHostPort = errorRecord[Detail][DataSourcePath], + + IsDriverNotInstalled = Text.Contains(ErrorMessage, "doesn't correspond to an installed ODBC driver"), + + OdbcError = errorRecord[Detail][OdbcErrors]{0}, + OdbcErrorCode = OdbcError[NativeError], + + // Failed to connect to given host + IsHostUnreachable = + OdbcErrorCode = 202 + in + if IsDriverNotInstalled then + error Error.Record("", "The Open Distro For Elasticsearch SQL ODBC driver is not installed. Please install the driver.") + else if IsHostUnreachable then + error Error.Record("", "Could not connect to server. Please check server is up and configuration is correct. ") + else + error errorRecord; + // Data Source Kind description OdfeSqlOdbcPBIConnector = [ + // Required for use with Power BI Service. + TestConnection = (dataSourcePath) => + let + json = Json.Document(dataSourcePath), + Host = json[Host], + Port = json[Port] + in + { "OdfeSqlOdbcPBIConnector.Contents", Host, Port }, + + // Authentication modes Authentication = [ - Implicit = [] + Implicit = [ + Label = "NONE" + ], + UsernamePassword = [ + Label = "BASIC" + ], + Key = [ + Label = "AWS_SIGV4", + KeyLabel = "Region" + ] ], + + // Enable Encryption + SupportsEncryption = true, + Label = Extension.LoadString("DataSourceLabel") ]; @@ -46,6 +204,7 @@ OdfeSqlOdbcPBIConnector.Publish = [ Category = "Other", ButtonText = { Extension.LoadString("ButtonTitle"), Extension.LoadString("ButtonHelp") }, LearnMoreUrl = "https://opendistro.github.io/for-elasticsearch/", + SupportsDirectQuery = true, SourceImage = OdfeSqlOdbcPBIConnector.Icons, SourceTypeImage = OdfeSqlOdbcPBIConnector.Icons ]; @@ -54,3 +213,18 @@ OdfeSqlOdbcPBIConnector.Icons = [ Icon16 = { Extension.Contents("OdfeSqlOdbcPBIConnector16.png"), Extension.Contents("OdfeSqlOdbcPBIConnector20.png"), Extension.Contents("OdfeSqlOdbcPBIConnector24.png"), Extension.Contents("OdfeSqlOdbcPBIConnector32.png") }, Icon32 = { Extension.Contents("OdfeSqlOdbcPBIConnector32.png"), Extension.Contents("OdfeSqlOdbcPBIConnector40.png"), Extension.Contents("OdfeSqlOdbcPBIConnector48.png"), Extension.Contents("OdfeSqlOdbcPBIConnector64.png") } ]; + +// Load common library functions +Extension.LoadFunction = (name as text) => + let + binary = Extension.Contents(name), + asText = Text.FromBinary(binary) + in + Expression.Evaluate(asText, #shared); + +// Diagnostics module contains multiple functions. . +Diagnostics = Extension.LoadFunction("Diagnostics.pqm"); +Diagnostics.LogValue = if (EnableTraceOutput) then Diagnostics[LogValue] else (prefix, value) => value; + +// OdbcConstants contains numeric constants from the ODBC header files, and helper function to create bitfield values. +ODBC = Extension.LoadFunction("OdbcConstants.pqm"); diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.query.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.query.pq index 7b2a564376..7632a6884a 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.query.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.query.pq @@ -1,5 +1,310 @@ -// Use this file to write queries to test your data connector -let - result = OdfeSqlOdbcPBIConnector.Contents() -in - result \ No newline at end of file +// This file contains queries to test your data connector +section OdfeSqlOdbcPBIConnector.UnitTests; + +shared MyExtension.UnitTest = +[ + // Common variables for all tests + Host = "localhost", + Port = 9200, + + facts = + { + Fact("Connection Test", + 7, + let + Source = OdfeSqlOdbcPBIConnector.Contents(Host,Port), + no_of_columns = Table.ColumnCount(Source) + in + no_of_columns + ) + }, + + report = Facts.Summarize(facts) +][report]; + +/// COMMON UNIT TESTING CODE +Fact = (_subject as text, _expected, _actual) as record => +[ expected = try _expected, + safeExpected = if expected[HasError] then "Expected : "& @ValueToText(expected[Error]) else expected[Value], + actual = try _actual, + safeActual = if actual[HasError] then "Actual : "& @ValueToText(actual[Error]) else actual[Value], + attempt = try safeExpected = safeActual, + result = if attempt[HasError] or not attempt[Value] then "Failure ⛔" else "Success ✓", + resultOp = if result = "Success ✓" then " = " else " <> ", + addendumEvalAttempt = if attempt[HasError] then @ValueToText(attempt[Error]) else "", + addendumEvalExpected = try @ValueToText(safeExpected) otherwise "...", + addendumEvalActual = try @ValueToText (safeActual) otherwise "...", + fact = + [ Result = result &" "& addendumEvalAttempt, + Notes =_subject, + Details = " ("& addendumEvalExpected & resultOp & addendumEvalActual &")" + ] +][fact]; + +Facts = (_subject as text, _predicates as list) => List.Transform(_predicates, each Fact(_subject,_{0},_{1})); + +Facts.Summarize = (_facts as list) as table => +[ Fact.CountSuccesses = (count, i) => + [ result = try i[Result], + sum = if result[HasError] or not Text.StartsWith(result[Value], "Success") then count else count + 1 + ][sum], + passed = List.Accumulate(_facts, 0, Fact.CountSuccesses), + total = List.Count(_facts), + format = if passed = total then "All #{0} Passed !!! ✓" else "#{0} Passed ☺ #{1} Failed ☹", + result = if passed = total then "Success" else "⛔", + rate = Number.IntegerDivide(100*passed, total), + header = + [ Result = result, + Notes = Text.Format(format, {passed, total-passed}), + Details = Text.Format("#{0}% success rate", {rate}) + ], + report = Table.FromRecords(List.Combine({{header},_facts})) +][report]; + +ValueToText = (value, optional depth) => + let + _canBeIdentifier = (x) => + let + keywords = {"and", "as", "each", "else", "error", "false", "if", "in", "is", "let", "meta", "not", "otherwise", "or", "section", "shared", "then", "true", "try", "type" }, + charAlpha = (c as number) => (c>= 65 and c <= 90) or (c>= 97 and c <= 122) or c=95, + charDigit = (c as number) => c>= 48 and c <= 57 + in + try + charAlpha(Character.ToNumber(Text.At(x,0))) + and + List.MatchesAll( + Text.ToList(x), + (c)=> let num = Character.ToNumber(c) in charAlpha(num) or charDigit(num) + ) + and not + List.MatchesAny( keywords, (li)=> li=x ) + otherwise + false, + + Serialize.Binary = (x) => "#binary(" & Serialize(Binary.ToList(x)) & ") ", + + Serialize.Date = (x) => "#date(" & + Text.From(Date.Year(x)) & ", " & + Text.From(Date.Month(x)) & ", " & + Text.From(Date.Day(x)) & ") ", + + Serialize.Datetime = (x) => "#datetime(" & + Text.From(Date.Year(DateTime.Date(x))) & ", " & + Text.From(Date.Month(DateTime.Date(x))) & ", " & + Text.From(Date.Day(DateTime.Date(x))) & ", " & + Text.From(Time.Hour(DateTime.Time(x))) & ", " & + Text.From(Time.Minute(DateTime.Time(x))) & ", " & + Text.From(Time.Second(DateTime.Time(x))) & ") ", + + Serialize.Datetimezone =(x) => let + dtz = DateTimeZone.ToRecord(x) + in + "#datetimezone(" & + Text.From(dtz[Year]) & ", " & + Text.From(dtz[Month]) & ", " & + Text.From(dtz[Day]) & ", " & + Text.From(dtz[Hour]) & ", " & + Text.From(dtz[Minute]) & ", " & + Text.From(dtz[Second]) & ", " & + Text.From(dtz[ZoneHours]) & ", " & + Text.From(dtz[ZoneMinutes]) & ") ", + + Serialize.Duration = (x) => let + dur = Duration.ToRecord(x) + in + "#duration(" & + Text.From(dur[Days]) & ", " & + Text.From(dur[Hours]) & ", " & + Text.From(dur[Minutes]) & ", " & + Text.From(dur[Seconds]) & ") ", + + Serialize.Function = (x) => _serialize_function_param_type( + Type.FunctionParameters(Value.Type(x)), + Type.FunctionRequiredParameters(Value.Type(x)) ) & + " as " & + _serialize_function_return_type(Value.Type(x)) & + " => (...) ", + + Serialize.List = (x) => "{" & + List.Accumulate(x, "", (seed,item) => if seed="" then Serialize(item) else seed & ", " & Serialize(item)) & + "} ", + + Serialize.Logical = (x) => Text.From(x), + + Serialize.Null = (x) => "null", + + Serialize.Number = (x) => + let Text.From = (i as number) as text => + if Number.IsNaN(i) then "#nan" else + if i=Number.PositiveInfinity then "#infinity" else + if i=Number.NegativeInfinity then "-#infinity" else + Text.From(i) + in + Text.From(x), + + Serialize.Record = (x) => "[ " & + List.Accumulate( + Record.FieldNames(x), + "", + (seed,item) => + (if seed="" then Serialize.Identifier(item) else seed & ", " & Serialize.Identifier(item)) & " = " & Serialize(Record.Field(x, item)) + ) & + " ] ", + + Serialize.Table = (x) => "#table( type " & + _serialize_table_type(Value.Type(x)) & + ", " & + Serialize(Table.ToRows(x)) & + ") ", + + Serialize.Text = (x) => """" & + _serialize_text_content(x) & + """", + + _serialize_text_content = (x) => let + escapeText = (n as number) as text => "#(#)(" & Text.PadStart(Number.ToText(n, "X", "en-US"), 4, "0") & ")" + in + List.Accumulate( + List.Transform( + Text.ToList(x), + (c) => let n=Character.ToNumber(c) in + if n = 9 then "#(#)(tab)" else + if n = 10 then "#(#)(lf)" else + if n = 13 then "#(#)(cr)" else + if n = 34 then """""" else + if n = 35 then "#(#)(#)" else + if n < 32 then escapeText(n) else + if n < 127 then Character.FromNumber(n) else + escapeText(n) + ), + "", + (s,i)=>s&i + ), + + Serialize.Identifier = (x) => + if _canBeIdentifier(x) then + x + else + "#""" & + _serialize_text_content(x) & + """", + + Serialize.Time = (x) => "#time(" & + Text.From(Time.Hour(x)) & ", " & + Text.From(Time.Minute(x)) & ", " & + Text.From(Time.Second(x)) & ") ", + + Serialize.Type = (x) => "type " & _serialize_typename(x), + + + _serialize_typename = (x, optional funtype as logical) => /* Optional parameter: Is this being used as part of a function signature? */ + let + isFunctionType = (x as type) => try if Type.FunctionReturn(x) is type then true else false otherwise false, + isTableType = (x as type) => try if Type.TableSchema(x) is table then true else false otherwise false, + isRecordType = (x as type) => try if Type.ClosedRecord(x) is type then true else false otherwise false, + isListType = (x as type) => try if Type.ListItem(x) is type then true else false otherwise false + in + + if funtype=null and isTableType(x) then _serialize_table_type(x) else + if funtype=null and isListType(x) then "{ " & @_serialize_typename( Type.ListItem(x) ) & " }" else + if funtype=null and isFunctionType(x) then "function " & _serialize_function_type(x) else + if funtype=null and isRecordType(x) then _serialize_record_type(x) else + + if x = type any then "any" else + let base = Type.NonNullable(x) in + (if Type.IsNullable(x) then "nullable " else "") & + (if base = type anynonnull then "anynonnull" else + if base = type binary then "binary" else + if base = type date then "date" else + if base = type datetime then "datetime" else + if base = type datetimezone then "datetimezone" else + if base = type duration then "duration" else + if base = type logical then "logical" else + if base = type none then "none" else + if base = type null then "null" else + if base = type number then "number" else + if base = type text then "text" else + if base = type time then "time" else + if base = type type then "type" else + + /* Abstract types: */ + if base = type function then "function" else + if base = type table then "table" else + if base = type record then "record" else + if base = type list then "list" else + + "any /*Actually unknown type*/"), + + _serialize_table_type = (x) => + let + schema = Type.TableSchema(x) + in + "table " & + (if Table.IsEmpty(schema) then "" else + "[" & List.Accumulate( + List.Transform( + Table.ToRecords(Table.Sort(schema,"Position")), + each Serialize.Identifier(_[Name]) & " = " & _[Kind]), + "", + (seed,item) => (if seed="" then item else seed & ", " & item ) + ) & "] " ), + + _serialize_record_type = (x) => + let flds = Type.RecordFields(x) + in + if Record.FieldCount(flds)=0 then "record" else + "[" & List.Accumulate( + Record.FieldNames(flds), + "", + (seed,item) => + seed & + (if seed<>"" then ", " else "") & + (Serialize.Identifier(item) & "=" & _serialize_typename(Record.Field(flds,item)[Type]) ) + ) & + (if Type.IsOpenRecord(x) then ",..." else "") & + "]", + + _serialize_function_type = (x) => _serialize_function_param_type( + Type.FunctionParameters(x), + Type.FunctionRequiredParameters(x) ) & + " as " & + _serialize_function_return_type(x), + + _serialize_function_param_type = (t,n) => + let + funsig = Table.ToRecords( + Table.TransformColumns( + Table.AddIndexColumn( Record.ToTable( t ), "isOptional", 1 ), + { "isOptional", (x)=> x>n } ) ) + in + "(" & + List.Accumulate( + funsig, + "", + (seed,item)=> + (if seed="" then "" else seed & ", ") & + (if item[isOptional] then "optional " else "") & + Serialize.Identifier(item[Name]) & " as " & _serialize_typename(item[Value], true) ) + & ")", + + _serialize_function_return_type = (x) => _serialize_typename(Type.FunctionReturn(x), true), + + Serialize = (x) as text => + if x is binary then try Serialize.Binary(x) otherwise "null /*serialize failed*/" else + if x is date then try Serialize.Date(x) otherwise "null /*serialize failed*/" else + if x is datetime then try Serialize.Datetime(x) otherwise "null /*serialize failed*/" else + if x is datetimezone then try Serialize.Datetimezone(x) otherwise "null /*serialize failed*/" else + if x is duration then try Serialize.Duration(x) otherwise "null /*serialize failed*/" else + if x is function then try Serialize.Function(x) otherwise "null /*serialize failed*/" else + if x is list then try Serialize.List(x) otherwise "null /*serialize failed*/" else + if x is logical then try Serialize.Logical(x) otherwise "null /*serialize failed*/" else + if x is null then try Serialize.Null(x) otherwise "null /*serialize failed*/" else + if x is number then try Serialize.Number(x) otherwise "null /*serialize failed*/" else + if x is record then try Serialize.Record(x) otherwise "null /*serialize failed*/" else + if x is table then try Serialize.Table(x) otherwise "null /*serialize failed*/" else + if x is text then try Serialize.Text(x) otherwise "null /*serialize failed*/" else + if x is time then try Serialize.Time(x) otherwise "null /*serialize failed*/" else + if x is type then try Serialize.Type(x) otherwise "null /*serialize failed*/" else + "[#_unable_to_serialize_#]" + in + try Serialize(value) otherwise ""; \ No newline at end of file diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index 02d8c023aeae94935c8962caf72a1921977033ca..c1c08cf92b3eadc3dd16c49bac91a505f740c022 100644 GIT binary patch delta 15016 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 delta 989 zcmccH%G5fOQ98hznMH(wfq{cTAmnR+n9uxL24)6^5>5sN$;lt>rRw!^=Z5;`-*OPx ztNc;k&92eK*J<&JT$iOxolUc*ZJF>*pfKVM>-sHkcI|$xkvTQ~nsa^7f2Z_6jg7}t z4y3+KefD8ZWagiR)MpxA}+K zmZm_9=a1!!M9ww6zE>bx7PkIsefIV#R&G5FzvWxGcE`DHx!&|TMXj}0%lVJZf!U94 z3L4w2vAT6!{rJ?)7h3au)b9L0m3)%PuCk+Yu~O!ap48P`6NP4{JE$)7yU*L5oR=_f zg%8tmMYCUiEiw@jT(^>i^4bJcuDx9P<7CF^_1DV|D2KbB=Gqdt-tph=E7uq|U+}0` zmf2sv;mM1Wxsp!%8~G-wUYk3&OmPR#ZympbyB-L3T(2@qK9HMmL@QgUu)`pDqbj>C zd;9yvGqfc*UiY+d=X4aGTqE50^bAYF&Yh2s-LJhgW8p2EuWdfRSm#|~oLn-2y+8HY zmYrWu9i0cbSsC_tsnrL1tzcDnGOuXQTN&BhR}*ZXb9X(s z!SnuQ+1J?{=ASfvvadVuN$SnZU-rG*A4c7cYw3^lIOE1J!cXtuj27 zy>k^qcm2Pa#=_~|!Y=;Y;9n8zV#oFK-{))3D0;c<^fi0U^?AG2Xzmbmd3rHn)60ZI z0k=M!4!nBf*{u50dLg36BJCtEdCqKPIBU&uT5naz_K-);O?Q`Gkeasr?kuM#jT|hY zW!7hHPiOB+GWPp7=lo1grdnwIFc_uCx zbw?c2gyt2$Ha;$X%Vx>8q*879>dxXQ-;8O2$L-JB@(cMDt-pCovcBYG>KoIC8!xcT zj;_7bc3)!BvF-68cvH5-xPZdpj!=uHz?E2%&x<|Xt$1Z+#xw7Wf@vMz2A8huVyV!Y>AD>6n-IJ5T zo&`=_Z~Z$g^1z$YZzmN)=k2jn;CT6E$qJ*-f8;j{TV}e+W8@KF&Orj895dOlL5Inl zd9q@Y Date: Wed, 22 Jul 2020 20:21:15 -0700 Subject: [PATCH 14/30] add connector --- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 0 -> 33492 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez new file mode 100644 index 0000000000000000000000000000000000000000..39d72b741d5976d7e6721e9bedc86eda9d8b5168 GIT binary patch literal 33492 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 literal 0 HcmV?d00001 From ad73d915d13dce97ea855154d9428e67b09368a9 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Wed, 22 Jul 2020 20:41:43 -0700 Subject: [PATCH 15/30] update doc --- sql-odbc/docs/user/img/pbi_auth.png | Bin 12324 -> 14496 bytes sql-odbc/docs/user/power_bi_support.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-odbc/docs/user/img/pbi_auth.png b/sql-odbc/docs/user/img/pbi_auth.png index 12e1af8ed6edd18d0c6f8ca760fc632a1972ce57..0795d63d95d0721d7c11ebc505c7573191a75b7d 100644 GIT binary patch literal 14496 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 XskAlMEj>}KwtprkVuyj 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 -* Select authentication option and click on **Connect**. +* Select authentication option. Enter credentials if required and click on **Connect**. From 91d5cbebad32016daa6445db98ad0fc938a0be65 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Wed, 22 Jul 2020 20:59:03 -0700 Subject: [PATCH 16/30] add ssl for auth --- .../OdfeSqlOdbcPBIConnector.pq | 18 ++++++++++++++++-- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 33492 -> 33557 bytes 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index 4ac49de19b..b296d40d67 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -50,6 +50,17 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = Auth = "NONE" ], + // Sets connection string properties for encrypted connections. + EncryptedConnectionString = + if Credential[EncryptConnection] = null or Credential[EncryptConnection] = true then + [ + UseSSL = 1 + ] + else + [ + UseSSL = 0 + ], + // Set host & port in connection string. // Do not include port in connection string for aws server connection. Server = @@ -140,7 +151,10 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = SQLGetInfo = SQLGetInfo, SQLGetTypeInfo = SQLGetTypeInfo, - OnError = OnOdbcError + OnError = OnOdbcError, + + // Connection string properties used for encrypted connections. + CredentialConnectionString = EncryptedConnectionString ]) in OdbcDatasource; @@ -163,7 +177,7 @@ OnOdbcError = (errorRecord as record) => if IsDriverNotInstalled then error Error.Record("", "The Open Distro For Elasticsearch SQL ODBC driver is not installed. Please install the driver.") else if IsHostUnreachable then - error Error.Record("", "Could not connect to server. Please check server is up and configuration is correct. ") + error Error.Record("", "Unable to connect. Please check server is up and configurations are correct. ") else error errorRecord; diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index 39d72b741d5976d7e6721e9bedc86eda9d8b5168..0e382074468eb460d49c6723d22afe2303a2b510 100644 GIT binary patch delta 3189 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 b0{&`~p@12ae1b3mV3VzaAqJ>_00000u_Xs+ delta 3131 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 V8I!$&FaaNv?t&o(XMX?y0027R>Mj5P From ddc725bd3cfd70d3501ae325871eaab73b669fd3 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Thu, 23 Jul 2020 09:25:05 -0700 Subject: [PATCH 17/30] update docs for errors --- sql-odbc/docs/user/img/pbi_error_conn.png | Bin 0 -> 13047 bytes .../img/pbi_error_driver_not_installed.png | Bin 0 -> 15118 bytes sql-odbc/docs/user/power_bi_support.md | 17 ++++++++++++++++- .../OdfeSqlOdbcPBIConnector.pq | 4 ++-- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 33557 -> 33555 bytes 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 sql-odbc/docs/user/img/pbi_error_conn.png create mode 100644 sql-odbc/docs/user/img/pbi_error_driver_not_installed.png diff --git a/sql-odbc/docs/user/img/pbi_error_conn.png b/sql-odbc/docs/user/img/pbi_error_conn.png new file mode 100644 index 0000000000000000000000000000000000000000..87f908a39710bb316c0d42765fa8e60b1a90d3e0 GIT binary patch literal 13047 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 literal 0 HcmV?d00001 diff --git a/sql-odbc/docs/user/img/pbi_error_driver_not_installed.png b/sql-odbc/docs/user/img/pbi_error_driver_not_installed.png new file mode 100644 index 0000000000000000000000000000000000000000..b5059bc0b4af3bdaba5e969703d0da02a1a187d5 GIT binary patch literal 15118 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 -* Click on **Load**. \ No newline at end of file +* Click on **Load**. + +## Troubleshooting + +* If you get an following error, please install [Open Distro For Elasticsearch SQL ODBC Driver](https://opendistro.github.io/for-elasticsearch-docs/docs/sql/odbc/). + + + +* If you get an following error, + + + +1. Check if host and port values are correct. +2. Check if auth credentials are correct. +3. Check if server is running. + diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index b296d40d67..36caa6184e 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -175,9 +175,9 @@ OnOdbcError = (errorRecord as record) => OdbcErrorCode = 202 in if IsDriverNotInstalled then - error Error.Record("", "The Open Distro For Elasticsearch SQL ODBC driver is not installed. Please install the driver.") + error Error.Record("", "The Open Distro For Elasticsearch SQL ODBC driver is not installed. Please install the driver") else if IsHostUnreachable then - error Error.Record("", "Unable to connect. Please check server is up and configurations are correct. ") + error Error.Record("", "Couldn't reach server. Please double-check the host, port and auth.") else error errorRecord; diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index 0e382074468eb460d49c6723d22afe2303a2b510..b4d89870c0d89b7e05c3f71c4bbdafc31066d37b 100644 GIT binary patch delta 3188 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 delta 3187 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 Date: Fri, 24 Jul 2020 13:09:56 -0700 Subject: [PATCH 18/30] - remove sqlgetinfo & sqlcapabilities values from connector --- .../OdfeSqlOdbcPBIConnector.pq | 11 ----------- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 33555 -> 33422 bytes 2 files changed, 11 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index 36caa6184e..dfb1295da2 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -78,15 +78,6 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = Driver = "ODFE SQL ODBC Driver" ], - SqlCapabilities = Diagnostics.LogValue("SqlCapabilities_Options", [ - GroupByCapabilities = ODBC[SQL_GB][SQL_GB_COLLATE] - ]), - - SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", [ - SQL_SQL92_PREDICATES = ODBC[SQL_SP][All], - SQL_AGGREGATE_FUNCTIONS = ODBC[SQL_AF][All] - ]), - SQLGetTypeInfo = (types) => if (EnableTraceOutput <> true) then types else let @@ -146,9 +137,7 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = // These values should be set by previous steps AstVisitor = AstVisitor, - SqlCapabilities = SqlCapabilities, SQLColumns = SQLColumns, - SQLGetInfo = SQLGetInfo, SQLGetTypeInfo = SQLGetTypeInfo, OnError = OnOdbcError, diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index b4d89870c0d89b7e05c3f71c4bbdafc31066d37b..92a05ca59ea32cf1f4974874d0bffe0bd59f557e 100644 GIT binary patch delta 3368 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 N)^RY95c=iKwY(T|xZp-eCXJeU~{0)f~-Yt*d@ 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 BapV91 From ed0afb91caaf7daa2e14c71f9ed8ee636969932b Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Fri, 24 Jul 2020 14:20:35 -0700 Subject: [PATCH 19/30] adding EncryptedConnectionString --- .../OdfeSqlOdbcPBIConnector.pq | 2 +- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 33422 -> 33427 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index dfb1295da2..f1af5f74b6 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -123,7 +123,7 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = ] ], - OdbcDatasource = Odbc.DataSource(ConnectionString & Server & CredentialConnectionString, [ + OdbcDatasource = Odbc.DataSource(ConnectionString & Server & CredentialConnectionString & EncryptedConnectionString, [ // Do not view the tables grouped by their schema names. HierarchicalNavigation = false, // Prevents execution of native SQL statements. Extensions should set this to true. diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index 92a05ca59ea32cf1f4974874d0bffe0bd59f557e..dc5ae9d8ab9ea6ac503ccbca2935edfc00ae4c4a 100644 GIT binary patch delta 3030 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 TA%aQ)*^_L7AqF9T00000h`zSF From 82e9a728bfbb17876121a65e4c46d0018c4d8bc1 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 28 Jul 2020 10:45:59 -0700 Subject: [PATCH 20/30] add data type for columns --- .../ITODBCCatalog/test_odbc_catalog.cpp | 32 ++++++++++----- sql-odbc/src/odfesqlodbc/es_info.cpp | 40 ++++++++++++++++++- sql-odbc/src/odfesqlodbc/es_parse_result.cpp | 31 +++++++------- sql-odbc/src/odfesqlodbc/es_types.h | 32 +++++++-------- 4 files changed, 93 insertions(+), 42 deletions(-) diff --git a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp index 50ec11743a..81a7c0015a 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp @@ -85,6 +85,9 @@ const std::vector< std::string > flights_data_type = { "float", "keyword", "integer", "keyword", "keyword", "keyword", "date", "keyword", "keyword", "boolean", "float", "keyword", "keyword", "keyword", "keyword", "keyword", "keyword", "keyword"}; +const std::vector< short > flights_sql_data_type = { + -9, -9, -7, 7, 7, -9, 4, 7, -9, 4, -9, -9, -9, + 1296, -9, -9, -7, 7, -9, -9, -9, -9, -9, -9, -9}; const std::string flights_catalog_odfe = "odfe-cluster"; const std::string flights_catalog_elas = "elasticsearch"; const std::string flights_table_name = "kibana_sample_data_flights"; @@ -355,16 +358,17 @@ TEST_F(TestSQLColumns, FlightsValidation) { binds.push_back(bind_info(2, SQL_C_CHAR)); binds.push_back(bind_info(3, SQL_C_CHAR)); binds.push_back(bind_info(4, SQL_C_CHAR)); - binds.push_back(bind_info(5, SQL_C_SSHORT)); + binds.push_back(bind_info(5, SQL_C_SHORT)); binds.push_back(bind_info(6, SQL_C_CHAR)); + binds.push_back(bind_info(7, SQL_C_SLONG)); binds.push_back(bind_info(8, SQL_C_SLONG)); - binds.push_back(bind_info(9, SQL_C_SSHORT)); - binds.push_back(bind_info(10, SQL_C_SSHORT)); - binds.push_back(bind_info(11, SQL_C_SSHORT)); + binds.push_back(bind_info(9, SQL_C_SHORT)); + binds.push_back(bind_info(10, SQL_C_SHORT)); + binds.push_back(bind_info(11, SQL_C_SHORT)); binds.push_back(bind_info(12, SQL_C_CHAR)); binds.push_back(bind_info(13, SQL_C_CHAR)); - binds.push_back(bind_info(14, SQL_C_SSHORT)); - binds.push_back(bind_info(15, SQL_C_SSHORT)); + binds.push_back(bind_info(14, SQL_C_SHORT)); + binds.push_back(bind_info(15, SQL_C_SHORT)); binds.push_back(bind_info(16, SQL_C_SLONG)); binds.push_back(bind_info(17, SQL_C_SLONG)); binds.push_back(bind_info(18, SQL_C_CHAR)); @@ -390,16 +394,26 @@ TEST_F(TestSQLColumns, FlightsValidation) { case 4: EXPECT_EQ(it.AsString(), flights_column_name[column_idx]); break; + case 5: + EXPECT_EQ( + it.AsString(), + std::to_string(flights_sql_data_type[column_idx])); + break; case 6: EXPECT_EQ(it.AsString(), flights_data_type[column_idx]); break; - case 9: + case 10: EXPECT_EQ(it.AsString(), flights_decimal_digits); break; - case 10: + case 11: EXPECT_EQ(it.AsString(), flights_num_prec_radix); break; - case 16: + case 14: + EXPECT_EQ( + it.AsString(), + std::to_string(flights_sql_data_type[column_idx])); + break; + case 17: EXPECT_EQ(it.AsString(), std::to_string(column_idx + 1)); break; default: diff --git a/sql-odbc/src/odfesqlodbc/es_info.cpp b/sql-odbc/src/odfesqlodbc/es_info.cpp index 886ded6615..146ecd5f20 100644 --- a/sql-odbc/src/odfesqlodbc/es_info.cpp +++ b/sql-odbc/src/odfesqlodbc/es_info.cpp @@ -83,6 +83,22 @@ const std::unordered_map< int, std::vector< int > > sql_es_type_map = { {ES_TYPE_KEYWORD, ES_TYPE_TEXT, ES_TYPE_NESTED, ES_TYPE_OBJECT}}, {SQL_TYPE_TIMESTAMP, {ES_TYPE_DATETIME}}}; +const std::unordered_map< std::string, int > data_name_data_type_map = { + {ES_TYPE_NAME_BOOLEAN, SQL_BIT}, + {ES_TYPE_NAME_BYTE, SQL_TINYINT}, + {ES_TYPE_NAME_SHORT, SQL_SMALLINT}, + {ES_TYPE_NAME_INTEGER, SQL_INTEGER}, + {ES_TYPE_NAME_LONG, SQL_BIGINT}, + {ES_TYPE_NAME_HALF_FLOAT, SQL_REAL}, + {ES_TYPE_NAME_FLOAT, SQL_REAL}, + {ES_TYPE_NAME_DOUBLE, SQL_DOUBLE}, + {ES_TYPE_NAME_SCALED_FLOAT, SQL_DOUBLE}, + {ES_TYPE_NAME_KEYWORD, SQL_WVARCHAR}, + {ES_TYPE_NAME_TEXT, SQL_WVARCHAR}, + {ES_TYPE_NAME_DATE, ES_TYPE_TIMESTAMP}, + {ES_TYPE_NAME_OBJECT, SQL_WVARCHAR}, + {ES_TYPE_NAME_NESTED, SQL_WVARCHAR}}; + // Boilerplate code for easy column bind handling class BindTemplate { public: @@ -476,8 +492,28 @@ void SetTableTuples(QResultClass *res, const TableResultSet res_type, // information for its Data Preview window. std::string catalog(""); bind_tbl[TABLES_CATALOG_NAME]->UpdateData((void *)catalog.c_str(), 0); - for (size_t i = 0; i < binds.size(); i++) - binds[i]->AssignData(&tuple[i]); + + for (size_t i = 0; i < binds.size(); i++) { + // Add tuples for SQLColumns + if (binds.size() > COLUMNS_SQL_DATA_TYPE) { + // Add data type for data loading issue in Power BI Desktop + auto data_type = data_name_data_type_map + .find(bind_tbl[COLUMNS_TYPE_NAME]->AsString())->second; + if (i == COLUMNS_DATA_TYPE) { + set_tuplefield_int2(&tuple[COLUMNS_DATA_TYPE], + static_cast< short >(data_type)); + } else if (i == COLUMNS_SQL_DATA_TYPE) { + set_tuplefield_int2(&tuple[COLUMNS_SQL_DATA_TYPE], + static_cast< short >(data_type)); + } else { + binds[i]->AssignData(&tuple[i]); + } + } + // Add tuples for SQLTables + else { + binds[i]->AssignData(&tuple[i]); + } + } }; // General case diff --git a/sql-odbc/src/odfesqlodbc/es_parse_result.cpp b/sql-odbc/src/odfesqlodbc/es_parse_result.cpp index b73e291751..e4aff19264 100644 --- a/sql-odbc/src/odfesqlodbc/es_parse_result.cpp +++ b/sql-odbc/src/odfesqlodbc/es_parse_result.cpp @@ -29,6 +29,7 @@ #pragma clang diagnostic pop #endif // __APPLE__ #include "statement.h" +#include "es_types.h" typedef std::vector< std::pair< std::string, OID > > schema_type; typedef rabbit::array json_arr; @@ -69,21 +70,21 @@ static const std::string JSON_KW_CURSOR = "cursor"; // clang-format on const std::unordered_map< std::string, OID > type_to_oid_map = { - {"boolean", ES_TYPE_BOOL}, - {"byte", ES_TYPE_INT2}, - {"short", ES_TYPE_INT2}, - {"integer", ES_TYPE_INT4}, - {"long", ES_TYPE_INT8}, - {"half_float", ES_TYPE_FLOAT4}, - {"float", ES_TYPE_FLOAT4}, - {"double", ES_TYPE_FLOAT8}, - {"scaled_float", ES_TYPE_FLOAT8}, - {"keyword", ES_TYPE_VARCHAR}, - {"text", ES_TYPE_VARCHAR}, - {"date", ES_TYPE_TIMESTAMP}, - {"object", ES_TYPE_VARCHAR}, - {"nested", ES_TYPE_VARCHAR}, - {"date", ES_TYPE_DATE}}; + {ES_TYPE_NAME_BOOLEAN, ES_TYPE_BOOL}, + {ES_TYPE_NAME_BYTE, ES_TYPE_INT2}, + {ES_TYPE_NAME_SHORT, ES_TYPE_INT2}, + {ES_TYPE_NAME_INTEGER, ES_TYPE_INT4}, + {ES_TYPE_NAME_LONG, ES_TYPE_INT8}, + {ES_TYPE_NAME_HALF_FLOAT, ES_TYPE_FLOAT4}, + {ES_TYPE_NAME_FLOAT, ES_TYPE_FLOAT4}, + {ES_TYPE_NAME_DOUBLE, ES_TYPE_FLOAT8}, + {ES_TYPE_NAME_SCALED_FLOAT, ES_TYPE_FLOAT8}, + {ES_TYPE_NAME_KEYWORD, ES_TYPE_VARCHAR}, + {ES_TYPE_NAME_TEXT, ES_TYPE_VARCHAR}, + {ES_TYPE_NAME_DATE, ES_TYPE_TIMESTAMP}, + {ES_TYPE_NAME_OBJECT, ES_TYPE_VARCHAR}, + {ES_TYPE_NAME_VARCHAR, ES_TYPE_VARCHAR}, + {ES_TYPE_NAME_DATE, ES_TYPE_DATE}}; #define ES_VARCHAR_SIZE (-2) const std::unordered_map< OID, int16_t > oid_to_size_map = { diff --git a/sql-odbc/src/odfesqlodbc/es_types.h b/sql-odbc/src/odfesqlodbc/es_types.h index 7284957569..dcb73398c2 100644 --- a/sql-odbc/src/odfesqlodbc/es_types.h +++ b/sql-odbc/src/odfesqlodbc/es_types.h @@ -30,22 +30,22 @@ extern "C" { #define ES_TYPE_LO ? ? ? ? /* waiting for permanent type */ #endif -#define ES_TYPE_NAME_BOOLEAN "boolean"; -#define ES_TYPE_NAME_BYTE "byte"; -#define ES_TYPE_NAME_SHORT "short"; -#define ES_TYPE_NAME_INTEGER "integer"; -#define ES_TYPE_NAME_LONG "long"; -#define ES_TYPE_NAME_HALF_FLOAT "half_float"; -#define ES_TYPE_NAME_FLOAT "float"; -#define ES_TYPE_NAME_DOUBLE "double"; -#define ES_TYPE_NAME_SCALED_FLOAT "scaled_float"; -#define ES_TYPE_NAME_KEYWORD "keyword"; -#define ES_TYPE_NAME_TEXT "text"; -#define ES_TYPE_NAME_NESTED "nested"; -#define ES_TYPE_NAME_DATE "date"; -#define ES_TYPE_NAME_OBJECT "object"; -#define ES_TYPE_NAME_VARCHAR "varchar"; -#define ES_TYPE_NAME_UNSUPPORTED "unsupported"; +#define ES_TYPE_NAME_BOOLEAN "boolean" +#define ES_TYPE_NAME_BYTE "byte" +#define ES_TYPE_NAME_SHORT "short" +#define ES_TYPE_NAME_INTEGER "integer" +#define ES_TYPE_NAME_LONG "long" +#define ES_TYPE_NAME_HALF_FLOAT "half_float" +#define ES_TYPE_NAME_FLOAT "float" +#define ES_TYPE_NAME_DOUBLE "double" +#define ES_TYPE_NAME_SCALED_FLOAT "scaled_float" +#define ES_TYPE_NAME_KEYWORD "keyword" +#define ES_TYPE_NAME_TEXT "text" +#define ES_TYPE_NAME_NESTED "nested" +#define ES_TYPE_NAME_DATE "date" +#define ES_TYPE_NAME_OBJECT "object" +#define ES_TYPE_NAME_VARCHAR "varchar" +#define ES_TYPE_NAME_UNSUPPORTED "unsupported" #define MS_ACCESS_SERIAL "int identity" #define ES_TYPE_BOOL 16 From 5022f1f01577b4d31fe2a8b57c4a4f06e571feb0 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 28 Jul 2020 12:36:07 -0700 Subject: [PATCH 21/30] add alternate column size --- .../IntegrationTests/ITODBCResults/test_odbc_results.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp b/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp index f46e160343..ab8c6ec8ed 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp @@ -100,7 +100,8 @@ const int delay_offset_3_1 = 0; const int delay_offset_3_2 = 180; const SQLSMALLINT single_col_name_length = 6; const SQLSMALLINT single_col_data_type = SQL_WVARCHAR; -const SQLULEN single_col_column_size = 25; +const SQLULEN single_col_column_size_25 = 25; +const SQLULEN single_col_column_size_15 = 15; const SQLSMALLINT single_col_decimal_digit = 0; const SQLSMALLINT single_col_nullable = 2; const std::wstring single_row = L"1"; @@ -936,7 +937,9 @@ TEST_F(TestSQLDescribeCol, SingleColumnMetadata) { EXPECT_EQ(single_col, m_column_name); EXPECT_EQ(single_col_name_length, m_column_name_length); EXPECT_EQ(single_col_data_type, m_data_type); - EXPECT_EQ(single_col_column_size, m_column_size); + // Values changes according to different server setup + EXPECT_TRUE((single_col_column_size_25 == m_column_size) + || (single_col_column_size_15 == m_column_size)); EXPECT_EQ(single_col_decimal_digit, m_decimal_digits); EXPECT_EQ(single_col_nullable, m_nullable); } From f4c706876421ea82de028bf88e79ea42411e996e Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 28 Jul 2020 12:40:56 -0700 Subject: [PATCH 22/30] reverting changes in catalog test --- .../IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp index 81a7c0015a..2c8cf732f7 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp @@ -362,13 +362,13 @@ TEST_F(TestSQLColumns, FlightsValidation) { binds.push_back(bind_info(6, SQL_C_CHAR)); binds.push_back(bind_info(7, SQL_C_SLONG)); binds.push_back(bind_info(8, SQL_C_SLONG)); - binds.push_back(bind_info(9, SQL_C_SHORT)); - binds.push_back(bind_info(10, SQL_C_SHORT)); - binds.push_back(bind_info(11, SQL_C_SHORT)); + binds.push_back(bind_info(9, SQL_C_SSHORT)); + binds.push_back(bind_info(10, SQL_C_SSHORT)); + binds.push_back(bind_info(11, SQL_C_SSHORT)); binds.push_back(bind_info(12, SQL_C_CHAR)); binds.push_back(bind_info(13, SQL_C_CHAR)); binds.push_back(bind_info(14, SQL_C_SHORT)); - binds.push_back(bind_info(15, SQL_C_SHORT)); + binds.push_back(bind_info(15, SQL_C_SSHORT)); binds.push_back(bind_info(16, SQL_C_SLONG)); binds.push_back(bind_info(17, SQL_C_SLONG)); binds.push_back(bind_info(18, SQL_C_CHAR)); From a76c382c3ead0ef192ed15ba8c37bb32acd0e843 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 28 Jul 2020 12:47:19 -0700 Subject: [PATCH 23/30] nit --- .../src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp | 2 +- .../src/IntegrationTests/ITODBCResults/test_odbc_results.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp index 2c8cf732f7..1753707dae 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp @@ -364,7 +364,7 @@ TEST_F(TestSQLColumns, FlightsValidation) { binds.push_back(bind_info(8, SQL_C_SLONG)); binds.push_back(bind_info(9, SQL_C_SSHORT)); binds.push_back(bind_info(10, SQL_C_SSHORT)); - binds.push_back(bind_info(11, SQL_C_SSHORT)); + binds.push_back(bind_info(11, SQL_C_SSHORT)); binds.push_back(bind_info(12, SQL_C_CHAR)); binds.push_back(bind_info(13, SQL_C_CHAR)); binds.push_back(bind_info(14, SQL_C_SHORT)); diff --git a/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp b/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp index ab8c6ec8ed..5dd6c49623 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp @@ -937,7 +937,7 @@ TEST_F(TestSQLDescribeCol, SingleColumnMetadata) { EXPECT_EQ(single_col, m_column_name); EXPECT_EQ(single_col_name_length, m_column_name_length); EXPECT_EQ(single_col_data_type, m_data_type); - // Values changes according to different server setup + // Value changes according to pagination setup on server EXPECT_TRUE((single_col_column_size_25 == m_column_size) || (single_col_column_size_15 == m_column_size)); EXPECT_EQ(single_col_decimal_digit, m_decimal_digits); From debe0c5bce13bc52a69a6e1e05fdc7faa91d9a19 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 28 Jul 2020 14:42:06 -0700 Subject: [PATCH 24/30] revert changes for column size validation --- .../IntegrationTests/ITODBCResults/test_odbc_results.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp b/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp index 5dd6c49623..61aeaf1002 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCResults/test_odbc_results.cpp @@ -100,8 +100,7 @@ const int delay_offset_3_1 = 0; const int delay_offset_3_2 = 180; const SQLSMALLINT single_col_name_length = 6; const SQLSMALLINT single_col_data_type = SQL_WVARCHAR; -const SQLULEN single_col_column_size_25 = 25; -const SQLULEN single_col_column_size_15 = 15; +const SQLULEN single_col_column_size = 25; const SQLSMALLINT single_col_decimal_digit = 0; const SQLSMALLINT single_col_nullable = 2; const std::wstring single_row = L"1"; @@ -937,9 +936,8 @@ TEST_F(TestSQLDescribeCol, SingleColumnMetadata) { EXPECT_EQ(single_col, m_column_name); EXPECT_EQ(single_col_name_length, m_column_name_length); EXPECT_EQ(single_col_data_type, m_data_type); - // Value changes according to pagination setup on server - EXPECT_TRUE((single_col_column_size_25 == m_column_size) - || (single_col_column_size_15 == m_column_size)); + // TODO #628 - Investigate why value differs & fix validation accordingly + EXPECT_EQ(single_col_column_size, m_column_size); EXPECT_EQ(single_col_decimal_digit, m_decimal_digits); EXPECT_EQ(single_col_nullable, m_nullable); } From a80eee8edfbff508293818db621eb8dd7c704ad8 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Tue, 28 Jul 2020 18:20:24 -0700 Subject: [PATCH 25/30] address PR comments --- .../IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp | 7 +++++-- sql-odbc/src/odfesqlodbc/es_info.cpp | 3 ++- sql-odbc/src/odfesqlodbc/es_parse_result.cpp | 1 - 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp index 1753707dae..8924bdb119 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp @@ -86,8 +86,11 @@ const std::vector< std::string > flights_data_type = { "keyword", "keyword", "boolean", "float", "keyword", "keyword", "keyword", "keyword", "keyword", "keyword", "keyword"}; const std::vector< short > flights_sql_data_type = { - -9, -9, -7, 7, 7, -9, 4, 7, -9, 4, -9, -9, -9, - 1296, -9, -9, -7, 7, -9, -9, -9, -9, -9, -9, -9}; + SQL_WVARCHAR, SQL_WVARCHAR, SQL_BIT, SQL_REAL, SQL_REAL, + SQL_WVARCHAR, SQL_INTEGER, SQL_REAL, SQL_WVARCHAR, SQL_INTEGER, + SQL_WVARCHAR, SQL_WVARCHAR, SQL_WVARCHAR, SQL_TYPE_TIMESTAMP, SQL_WVARCHAR, + SQL_WVARCHAR, SQL_BIT, SQL_REAL, SQL_WVARCHAR, SQL_WVARCHAR, + SQL_WVARCHAR, SQL_WVARCHAR, SQL_WVARCHAR, SQL_WVARCHAR, SQL_WVARCHAR}; const std::string flights_catalog_odfe = "odfe-cluster"; const std::string flights_catalog_elas = "elasticsearch"; const std::string flights_table_name = "kibana_sample_data_flights"; diff --git a/sql-odbc/src/odfesqlodbc/es_info.cpp b/sql-odbc/src/odfesqlodbc/es_info.cpp index 146ecd5f20..648a0d967f 100644 --- a/sql-odbc/src/odfesqlodbc/es_info.cpp +++ b/sql-odbc/src/odfesqlodbc/es_info.cpp @@ -95,7 +95,7 @@ const std::unordered_map< std::string, int > data_name_data_type_map = { {ES_TYPE_NAME_SCALED_FLOAT, SQL_DOUBLE}, {ES_TYPE_NAME_KEYWORD, SQL_WVARCHAR}, {ES_TYPE_NAME_TEXT, SQL_WVARCHAR}, - {ES_TYPE_NAME_DATE, ES_TYPE_TIMESTAMP}, + {ES_TYPE_NAME_DATE, SQL_TYPE_TIMESTAMP}, {ES_TYPE_NAME_OBJECT, SQL_WVARCHAR}, {ES_TYPE_NAME_NESTED, SQL_WVARCHAR}}; @@ -493,6 +493,7 @@ void SetTableTuples(QResultClass *res, const TableResultSet res_type, std::string catalog(""); bind_tbl[TABLES_CATALOG_NAME]->UpdateData((void *)catalog.c_str(), 0); + // TODO #630 - Revisit logic of adding tuples for SQLTables & SQLColumns for (size_t i = 0; i < binds.size(); i++) { // Add tuples for SQLColumns if (binds.size() > COLUMNS_SQL_DATA_TYPE) { diff --git a/sql-odbc/src/odfesqlodbc/es_parse_result.cpp b/sql-odbc/src/odfesqlodbc/es_parse_result.cpp index e4aff19264..e111bb37f3 100644 --- a/sql-odbc/src/odfesqlodbc/es_parse_result.cpp +++ b/sql-odbc/src/odfesqlodbc/es_parse_result.cpp @@ -29,7 +29,6 @@ #pragma clang diagnostic pop #endif // __APPLE__ #include "statement.h" -#include "es_types.h" typedef std::vector< std::pair< std::string, OID > > schema_type; typedef rabbit::array json_arr; From e6490e453455b3eb978977015ad665b864902449 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Wed, 29 Jul 2020 15:50:09 -0700 Subject: [PATCH 26/30] Update SQL_GROUP_BY value for fixing query folding issue --- .../ITODBCInfo/test_odbc_info.cpp | 2 +- .../OdfeSqlOdbcPBIConnector.pq | 5 +++++ .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 33427 -> 33490 bytes sql-odbc/src/odfesqlodbc/info.c | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sql-odbc/src/IntegrationTests/ITODBCInfo/test_odbc_info.cpp b/sql-odbc/src/IntegrationTests/ITODBCInfo/test_odbc_info.cpp index 4f2e43b8cf..0e8808e4d9 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCInfo/test_odbc_info.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCInfo/test_odbc_info.cpp @@ -180,7 +180,7 @@ TEST_SQL_GET_INFO_VERSION_GE(SQLDBMSVer, SQL_DBMS_VER, L"7.1.1"); TEST_SQL_GET_INFO_STRING(SQLColumnAlias, SQL_COLUMN_ALIAS, L"Y"); TEST_SQL_GET_INFO_UINT16(SQLGroupBy, SQL_GROUP_BY, - SQL_GB_GROUP_BY_EQUALS_SELECT); + SQL_GB_GROUP_BY_CONTAINS_SELECT); TEST_SQL_GET_INFO_STRING(SQLIdentifierQuoteChar, SQL_IDENTIFIER_QUOTE_CHAR, L"`"); TEST_SQL_GET_INFO_UINT_MASK(SQLOJCapabilities, SQL_OJ_CAPABILITIES, diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index f1af5f74b6..c777f8088e 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -78,6 +78,10 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = Driver = "ODFE SQL ODBC Driver" ], + SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", [ + SQL_AGGREGATE_FUNCTIONS = ODBC[SQL_AF][All] + ]), + SQLGetTypeInfo = (types) => if (EnableTraceOutput <> true) then types else let @@ -139,6 +143,7 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = AstVisitor = AstVisitor, SQLColumns = SQLColumns, SQLGetTypeInfo = SQLGetTypeInfo, + SQLGetInfo = SQLGetInfo, OnError = OnOdbcError, diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index dc5ae9d8ab9ea6ac503ccbca2935edfc00ae4c4a..f0bc55c93d4a32a1c35945b2f3cec6dbae1e710e 100644 GIT binary patch delta 3160 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 delta 3108 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 diff --git a/sql-odbc/src/odfesqlodbc/info.c b/sql-odbc/src/odfesqlodbc/info.c index a8925d4087..45e1bad0e3 100644 --- a/sql-odbc/src/odfesqlodbc/info.c +++ b/sql-odbc/src/odfesqlodbc/info.c @@ -245,7 +245,7 @@ RETCODE SQL_API ESAPI_GetInfo(HDBC hdbc, SQLUSMALLINT fInfoType, case SQL_GROUP_BY: /* ODBC 2.0 */ len = 2; - value = SQL_GB_GROUP_BY_EQUALS_SELECT; + value = SQL_GB_GROUP_BY_CONTAINS_SELECT; break; case SQL_IDENTIFIER_CASE: /* ODBC 1.0 */ From 9a36d476b7aa71a9a9f0810bbe2cd72493faee8b Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Thu, 30 Jul 2020 11:24:50 -0700 Subject: [PATCH 27/30] removing AstVisitor for resolving query folding issue with data type boolean --- .../OdfeSqlOdbcPBIConnector.pq | 21 ------------------ .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 33490 -> 33240 bytes 2 files changed, 21 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index c777f8088e..fa706a5db9 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -106,26 +106,6 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = Value.ReplaceType(toTable, Value.Type(source)) else source, - - // Add support for `LIMIT` and `OFFSET` clauses (rather than `TOP`) - AstVisitor = [ - // format is "LIMIT [,]" - ex. LIMIT 2,10 or LIMIT 10 - LimitClause = (skip, take) => - if (take = null) then - ... - else - let - skip = - if (skip = null or skip = 0) then - "" - else - Number.ToText(skip) & "," - in - [ - Text = Text.Format("LIMIT #{0}#{1}", { skip, take }), - Location = "AfterQuerySpecification" - ] - ], OdbcDatasource = Odbc.DataSource(ConnectionString & Server & CredentialConnectionString & EncryptedConnectionString, [ // Do not view the tables grouped by their schema names. @@ -140,7 +120,6 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = ClientConnectionPooling = true, // These values should be set by previous steps - AstVisitor = AstVisitor, SQLColumns = SQLColumns, SQLGetTypeInfo = SQLGetTypeInfo, SQLGetInfo = SQLGetInfo, diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index f0bc55c93d4a32a1c35945b2f3cec6dbae1e710e..a45e425fbf521bf2bfb0647c92d1bebe52be19fc 100644 GIT binary patch delta 2882 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 delta 3139 zcmV-J47~H$g96fp0HgpRB0LUf)02u(2(SR9$E^WP9X>Z#+68>JG z|AA0}u3fmw@fOAIzDCC==hEkY$cayqI0CtF{?e=il9Cu+ za#sdi1ApQh%GWYtPUtZ$g2=xG!Qw=LW|2TDu@``s_lQZo- zf5y`5BUqU^n)PTz%x_{AaPaa)F$Aw;=_UcJ+st+%xbF>}h?pHP3z=Ahdnt~&c9qDf z=3w&;P=-zb#$S;SOd@cwW1(Xu*$IT$$alyKxue{F4LF&);>zAW)yx5Pb21KE>5f^x z1Yg9NEcUygT=q+BWRz-lDpg4zVG>+|H6E`KWb-tQL@2-`w1L5=k}$-m2DXpX%|G^c zcdJS<_vsHPBE}eOXrRjW3@r%qZAj{DWgsnzlhlx_~y7<~FJHlZCiig)Ot?aY(aAC#RMfE#wJj($tD5HlM zo^jY7T(cxJET{vG17Qr29ShJr?8(fjFtXdk9_Bn|hQ&eEwqn&Tu7wE#qiX7CeJzz| zp*Mw9V!Rg3SD6lw&C%g(JghrZcAbxptD4DwCS7(AOuyF%GU=Ah@wHbRQ(5O~Kk?fq zF7WXC>|!?l@a;|4BERyr3C)t&Fx>+sezZJile3Z4!ux3+#zR-#MlmF_VyG@T+9><} z06#0OKP4-OmLPhVK(dE9?;D5d`*F4cx0=mPfpqUdN`E}x-G?chQWbk?_Gb|`)o-(Z z3dykqw1XpEKk;}snb{1kb+(-s14^cvnQsTIVHnyH-@P{mXezd4@wB%d&`*ok6Tbuc zseZgy*W0J6F{>!J>3@x6tAtsV zaR^}OKBTUuQF~3~3ns?c>648K&gm8#RPtYTfioH=G3pj^1x6@T1!-y*>rIS>Lo6lp z9ks^F1Q5F7I`PS8k%TZgj3O3*H((3qp4~dxcf|fwu%O@$Q}UWQcoT~NYaAVabH{`F z2KKx;N?^k}LyeWsS9z^_{U%f3fN-U4G-+bMxC4M_n}u`DTM)w+i}}B&ql>e{&!gpl zUG)1cfe_2NffnhsCrSoip_);i?x8$2F-6Oc)+`WGri1j8c}ITGZ)`bVPKVM@0w|6I z)=xQj-+*y^2!?nAN>$wD5CW!ufHD@-h#o=z6d+kuS8#(euHu#1B;b)?QwPdQL~{eC z-3<>Mb5D+9Ze1Fl4x#F+pQEqGc(9>uabZ|Gt_65#K$jdrChm!*^wFj)2J5@La7&FV zeR~ALdy-bF=!mP4?_6j!rj(pe} z%c+L`fAO47_`i>7ytc%(@sIlgJ5{pP6~uTwGLXqTTFimh!vZ=Di~fBH6R&icwGWkz z;L!7!P9g#jh!uXEjz5p*Kggy(CMPGe5j?oQlV}Kpo^rstv^j+A$9yvVQ4-@&$KQk& z*t%+DSeVH4o^ZFZXbQG}c&C4g=>1^%E_QzM_ZEB2_>IlX$Njry>yX zkc7gW1^HkM{cPDSNZ}BU_%%h6T_J&&ZMS%7yK?dBj3T^HtUB0j6U~gvL2mlEyG_jU zWwl`Xhe=<)&Zy|M=W-53F^SZNRAvo2n0NUwULBA)yKn*w7x=M%Psk~HsYkrH+x`9G zZtph)+#M^7%6@kRUv`~JQ?pUkwTij=l5ll9i?}ORX*st=No817$&=VWz&>D_O%CXV zU33O}4QTl?!_qIe71}Smi=zfQEU^BS;McUd(nhS=TFE4W^6T;z-wKuHREAZuu6glC z!4-B%KpFm-b0yY)nYv6zwK3&X@hj>>@*D0ZG#1i+2vk>`@Nu3!wOuqn@;))OYq4*f zHlrKTc#!On7uhK-+?rAV{} zkzlws&cJbhWhhH&p_upRy#X88tWq!M?|G;Yho&&H=HxX&_ILN2E(9Q=RmDyGKuR#aU>jZZEXcNWG_d_R zAa9Bog(HqL4XAW7n@#BuFndEgT4tO=h^*JzTshTk50iF?`xrV0QD^5inE;+lfZuCK zhVD;)k^*%;FfB6N(y=veH)Lv?x#TigT+$h>ad?L9dFB;oES={L1s(@sC3go z083@fR9=HpkH&-_gqvl|IoGBA9%J6C1YE7b(}1J@(M0tx__4D?l{$;s_M3LqkaB_d z^@e-88PIpUFQKP8D7<5xN21w5Czz93g@)~a?|l2lJY8wWvj74h%~7>4m1+aec!VqB zW({)cTynpq4_;ni{b*wg7jt~k&gK)p-9p)UE&yctAagcQ=5KD7Wfd7vk!2ooLHsf^ z^_(u=*C9eSO>u5@DjmNE~xW!V-0=VKO`qixK94~c~AD7?_l5gz?jK+_O^ zK-F3jEVL$AZf0saO5#|CY58#1A$vMV#6E|luyxQ!?nhRiW&8dqY;@sgsrb1f3vA*z z(*NAq0jLmqv@P0e2-W1$7IFuI_cbqXkUN=_nevYz$lbUF;2PzP1Cxlm6g7s_p(_*w zmmWfuS!?T{!UFiX_qL|eEIxZ(5xn<*){eq;RmJxb?e9K?=*<&|{@6D}xpi@sf9yYY zl^L5y&Hd&nt9nte({$SC{iJzmPzVcU#17x{7T)x=vQFjjBOo4VA0x%PCL*gl0`1N From 8fa089b17c965ccff5392dbe568846c12751c367 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Fri, 31 Jul 2020 12:01:37 -0700 Subject: [PATCH 28/30] fix parameter binding issue --- .../OdfeSqlOdbcPBIConnector.pq | 108 +++++++++++++++++- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 33240 -> 34033 bytes 2 files changed, 105 insertions(+), 3 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index fa706a5db9..afc0c7e17f 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -7,6 +7,16 @@ section OdfeSqlOdbcPBIConnector; // no-op and simply returns the original value. EnableTraceOutput = true; +Config_DriverName = "ODFE SQL ODBC Driver"; +Config_SqlConformance = null; +Config_LimitClauseKind = LimitClauseKind.LimitOffset; +Config_DefaultUsernamePasswordHandling = true; +Config_UseParameterBindings = false; +Config_StringLiterateEscapeCharacters = null; +Config_UseCastInsteadOfConvert = null; +// Disabling direct query due to limited SQL query support +Config_EnableDirectQuery = false; + [DataSource.Kind="OdfeSqlOdbcPBIConnector", Publish="OdfeSqlOdbcPBIConnector.Publish"] shared OdfeSqlOdbcPBIConnector.Contents = Value.ReplaceType(OdfeSqlOdbcPBIConnectorImpl, OdfeSqlOdbcPBIConnectorType); @@ -75,10 +85,13 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = ], ConnectionString = [ - Driver = "ODFE SQL ODBC Driver" + Driver = Config_DriverName ], - SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", [ + + defaultConfig = Diagnostics.LogValue("BuildOdbcConfig", BuildOdbcConfig()), + + SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", defaultConfig[SQLGetInfo] & [ SQL_AGGREGATE_FUNCTIONS = ODBC[SQL_AF][All] ]), @@ -106,6 +119,10 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = Value.ReplaceType(toTable, Value.Type(source)) else source, + + SQLGetFunctions = Diagnostics.LogValue("SQLGetFunctions_Options", defaultConfig[SQLGetFunctions]), + + SqlCapabilities = Diagnostics.LogValue("SqlCapabilities_Options", defaultConfig[SqlCapabilities]), OdbcDatasource = Odbc.DataSource(ConnectionString & Server & CredentialConnectionString & EncryptedConnectionString, [ // Do not view the tables grouped by their schema names. @@ -123,6 +140,8 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = SQLColumns = SQLColumns, SQLGetTypeInfo = SQLGetTypeInfo, SQLGetInfo = SQLGetInfo, + SQLGetFunctions = SQLGetFunctions, + SqlCapabilities = SqlCapabilities, OnError = OnOdbcError, @@ -191,7 +210,7 @@ OdfeSqlOdbcPBIConnector.Publish = [ Category = "Other", ButtonText = { Extension.LoadString("ButtonTitle"), Extension.LoadString("ButtonHelp") }, LearnMoreUrl = "https://opendistro.github.io/for-elasticsearch/", - SupportsDirectQuery = true, + SupportsDirectQuery = Config_EnableDirectQuery, SourceImage = OdfeSqlOdbcPBIConnector.Icons, SourceTypeImage = OdfeSqlOdbcPBIConnector.Icons ]; @@ -201,6 +220,89 @@ OdfeSqlOdbcPBIConnector.Icons = [ Icon32 = { Extension.Contents("OdfeSqlOdbcPBIConnector32.png"), Extension.Contents("OdfeSqlOdbcPBIConnector40.png"), Extension.Contents("OdfeSqlOdbcPBIConnector48.png"), Extension.Contents("OdfeSqlOdbcPBIConnector64.png") } ]; +// build settings based on configuration variables +BuildOdbcConfig = () as record => + let + Merge = (previous as record, optional caps as record, optional funcs as record, optional getInfo as record) as record => + let + newCaps = if (caps <> null) then previous[SqlCapabilities] & caps else previous[SqlCapabilities], + newFuncs = if (funcs <> null) then previous[SQLGetFunctions] & funcs else previous[SQLGetFunctions], + newGetInfo = if (getInfo <> null) then previous[SQLGetInfo] & getInfo else previous[SQLGetInfo] + in + [ SqlCapabilities = newCaps, SQLGetFunctions = newFuncs, SQLGetInfo = newGetInfo ], + + defaultConfig = [ + SqlCapabilities = [], + SQLGetFunctions = [], + SQLGetInfo = [] + ], + + withParams = + if (Config_UseParameterBindings = false) then + let + caps = [ + SupportsNumericLiterals = true, + SupportsStringLiterals = true, + SupportsOdbcDateLiterals = true, + SupportsOdbcTimeLiterals = true, + SupportsOdbcTimestampLiterals = true + ], + funcs = [ + SQL_API_SQLBINDPARAMETER = false + ] + in + Merge(defaultConfig, caps, funcs) + else + defaultConfig, + + withEscape = + if (Config_StringLiterateEscapeCharacters <> null) then + let + caps = [ + StringLiteralEscapeCharacters = Config_StringLiterateEscapeCharacters + ] + in + Merge(withParams, caps) + else + withParams, + + withLimitClauseKind = + let + caps = [ + LimitClauseKind = Config_LimitClauseKind + ] + in + Merge(withEscape, caps), + + withCastOrConvert = + if (Config_UseCastInsteadOfConvert <> null) then + let + value = + if (Config_UseCastInsteadOfConvert = true) then + ODBC[SQL_FN_CVT][SQL_FN_CVT_CAST] + else + ODBC[SQL_FN_CVT][SQL_FN_CVT_CONVERT], + getInfo = [ + SQL_CONVERT_FUNCTIONS = value + ] + in + Merge(withLimitClauseKind, null, null, getInfo) + else + withLimitClauseKind, + + withSqlConformance = + if (Config_SqlConformance <> null) then + let + getInfo = [ + SQL_SQL_CONFORMANCE = Config_SqlConformance + ] + in + Merge(withCastOrConvert, null, null, getInfo) + else + withCastOrConvert + in + withSqlConformance; + // Load common library functions Extension.LoadFunction = (name as text) => let diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index a45e425fbf521bf2bfb0647c92d1bebe52be19fc..523743ce790056f2c4aa015e721e596869624dcf 100644 GIT binary patch delta 3686 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 From d681bf8a5409329efa130ad292776e22781396d2 Mon Sep 17 00:00:00 2001 From: Rupal Mahajan Date: Fri, 31 Jul 2020 12:30:26 -0700 Subject: [PATCH 29/30] simplify changes --- .../OdfeSqlOdbcPBIConnector.pq | 118 +++--------------- .../bin/Release/OdfeSqlOdbcPBIConnector.mez | Bin 34033 -> 33412 bytes 2 files changed, 18 insertions(+), 100 deletions(-) diff --git a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq index d9207cc213..a389755d91 100644 --- a/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq +++ b/sql-odbc/src/PowerBIConnector/OdfeSqlOdbcPBIConnector.pq @@ -7,16 +7,6 @@ section OdfeSqlOdbcPBIConnector; // no-op and simply returns the original value. EnableTraceOutput = true; -Config_DriverName = "ODFE SQL ODBC Driver"; -Config_SqlConformance = null; -Config_LimitClauseKind = LimitClauseKind.LimitOffset; -Config_DefaultUsernamePasswordHandling = true; -Config_UseParameterBindings = false; -Config_StringLiterateEscapeCharacters = null; -Config_UseCastInsteadOfConvert = null; -// Disabling direct query due to limited SQL query support -Config_EnableDirectQuery = false; - [DataSource.Kind="OdfeSqlOdbcPBIConnector", Publish="OdfeSqlOdbcPBIConnector.Publish"] shared OdfeSqlOdbcPBIConnector.Contents = Value.ReplaceType(OdfeSqlOdbcPBIConnectorImpl, OdfeSqlOdbcPBIConnectorType); @@ -85,12 +75,10 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = ], ConnectionString = [ - Driver = Config_DriverName + Driver = "ODFE SQL ODBC Driver" ], - - defaultConfig = Diagnostics.LogValue("BuildOdbcConfig", BuildOdbcConfig()), - SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", defaultConfig[SQLGetInfo] & [ + SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", [ SQL_AGGREGATE_FUNCTIONS = ODBC[SQL_AF][All] ]), @@ -119,9 +107,19 @@ OdfeSqlOdbcPBIConnectorImpl = (Host as text, optional Port as number) as table = else source, - SQLGetFunctions = Diagnostics.LogValue("SQLGetFunctions_Options", defaultConfig[SQLGetFunctions]), + SQLGetFunctions = Diagnostics.LogValue("SQLGetFunctions_Options", [ + SQL_API_SQLBINDPARAMETER = false + ]), - SqlCapabilities = Diagnostics.LogValue("SqlCapabilities_Options", defaultConfig[SqlCapabilities]), + SqlCapabilities = Diagnostics.LogValue("SqlCapabilities_Options", [ + SupportsTop = false, + LimitClauseKind = LimitClauseKind.LimitOffset, + SupportsNumericLiterals = true, + SupportsStringLiterals = true, + SupportsOdbcDateLiterals = true, + SupportsOdbcTimeLiterals = true, + SupportsOdbcTimestampLiterals = true + ]), OdbcDatasource = Odbc.DataSource(ConnectionString & Server & CredentialConnectionString & EncryptedConnectionString, [ // Do not view the tables grouped by their schema names. @@ -209,7 +207,10 @@ OdfeSqlOdbcPBIConnector.Publish = [ Category = "Other", ButtonText = { Extension.LoadString("ButtonTitle"), Extension.LoadString("ButtonHelp") }, LearnMoreUrl = "https://opendistro.github.io/for-elasticsearch/", - SupportsDirectQuery = Config_EnableDirectQuery, + + // Disabling direct query due to limited SQL query support + SupportsDirectQuery = false, + SourceImage = OdfeSqlOdbcPBIConnector.Icons, SourceTypeImage = OdfeSqlOdbcPBIConnector.Icons ]; @@ -219,89 +220,6 @@ OdfeSqlOdbcPBIConnector.Icons = [ Icon32 = { Extension.Contents("OdfeSqlOdbcPBIConnector32.png"), Extension.Contents("OdfeSqlOdbcPBIConnector40.png"), Extension.Contents("OdfeSqlOdbcPBIConnector48.png"), Extension.Contents("OdfeSqlOdbcPBIConnector64.png") } ]; -// build settings based on configuration variables -BuildOdbcConfig = () as record => - let - Merge = (previous as record, optional caps as record, optional funcs as record, optional getInfo as record) as record => - let - newCaps = if (caps <> null) then previous[SqlCapabilities] & caps else previous[SqlCapabilities], - newFuncs = if (funcs <> null) then previous[SQLGetFunctions] & funcs else previous[SQLGetFunctions], - newGetInfo = if (getInfo <> null) then previous[SQLGetInfo] & getInfo else previous[SQLGetInfo] - in - [ SqlCapabilities = newCaps, SQLGetFunctions = newFuncs, SQLGetInfo = newGetInfo ], - - defaultConfig = [ - SqlCapabilities = [], - SQLGetFunctions = [], - SQLGetInfo = [] - ], - - withParams = - if (Config_UseParameterBindings = false) then - let - caps = [ - SupportsNumericLiterals = true, - SupportsStringLiterals = true, - SupportsOdbcDateLiterals = true, - SupportsOdbcTimeLiterals = true, - SupportsOdbcTimestampLiterals = true - ], - funcs = [ - SQL_API_SQLBINDPARAMETER = false - ] - in - Merge(defaultConfig, caps, funcs) - else - defaultConfig, - - withEscape = - if (Config_StringLiterateEscapeCharacters <> null) then - let - caps = [ - StringLiteralEscapeCharacters = Config_StringLiterateEscapeCharacters - ] - in - Merge(withParams, caps) - else - withParams, - - withLimitClauseKind = - let - caps = [ - LimitClauseKind = Config_LimitClauseKind - ] - in - Merge(withEscape, caps), - - withCastOrConvert = - if (Config_UseCastInsteadOfConvert <> null) then - let - value = - if (Config_UseCastInsteadOfConvert = true) then - ODBC[SQL_FN_CVT][SQL_FN_CVT_CAST] - else - ODBC[SQL_FN_CVT][SQL_FN_CVT_CONVERT], - getInfo = [ - SQL_CONVERT_FUNCTIONS = value - ] - in - Merge(withLimitClauseKind, null, null, getInfo) - else - withLimitClauseKind, - - withSqlConformance = - if (Config_SqlConformance <> null) then - let - getInfo = [ - SQL_SQL_CONFORMANCE = Config_SqlConformance - ] - in - Merge(withCastOrConvert, null, null, getInfo) - else - withCastOrConvert - in - withSqlConformance; - // Load common library functions Extension.LoadFunction = (name as text) => let diff --git a/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez b/sql-odbc/src/PowerBIConnector/bin/Release/OdfeSqlOdbcPBIConnector.mez index f821cc0a820e47035f8d2cbe7df5e1c8e1adaa9d..98b2046f02bbd7aa6bf6444a1d0504f704ca2b31 100644 GIT binary patch delta 3070 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 r0_I Date: Fri, 31 Jul 2020 13:07:16 -0700 Subject: [PATCH 30/30] update user doc for pbi --- .../pbi_disable_parallel_loading_tables.png | Bin 0 -> 53093 bytes sql-odbc/docs/user/img/pbi_simple_graph.png | Bin 0 -> 277846 bytes sql-odbc/docs/user/power_bi_support.md | 13 +++++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 sql-odbc/docs/user/img/pbi_disable_parallel_loading_tables.png create mode 100644 sql-odbc/docs/user/img/pbi_simple_graph.png diff --git a/sql-odbc/docs/user/img/pbi_disable_parallel_loading_tables.png b/sql-odbc/docs/user/img/pbi_disable_parallel_loading_tables.png new file mode 100644 index 0000000000000000000000000000000000000000..4e12022e9e8991998874a2a97cea25d260474ebc GIT binary patch literal 53093 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 E08x@JApigX literal 0 HcmV?d00001 diff --git a/sql-odbc/docs/user/img/pbi_simple_graph.png b/sql-odbc/docs/user/img/pbi_simple_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..9174de438b1166cc188d45aaa7d5166238bb23f1 GIT binary patch literal 277846 zcmd?RbyQUE_dkk=A|fCq0s}}R2uKf&(jXlY0xBIcLpO+&)X-hh4bt7+(mix{H{1jI zj^FR|x%Z#%TEDyQx@Rqzb>_^ObDsU|{o1en+RqtpS!q$U#{`cN5D?JB#f0P$5KsjW z5FU;`LImE?jWT}%yxg;p7k!J6*9%$$c98VnNWDQoCw_+l}878u$8t z@BLRqkoDJ>Yv~d68imWrO4KqSy#2RuiNsfhwD*@XUs6MhtM{uKX<0i4veh)BD*n0k zuTG6oGTJ-NE)V*$1HxSr9QQk7xTXw-U%HRv*18x+^j=-ejNb6I1vpqnU}eJw z)*qHBUz5qU%Lq^xRUWjR2RAC24%l;+B6!jtjtlt}pr)m3! z_FXJ^Z{cVoRYKDimt@2hyY4yjSm%I2XwK&^NHio5#AlzgEI+WD&Y#iHaylAz(R2z^B^9F; zD@i!opw8EA`9=jTu1Gtov@*8Yo*FON$kog9bexalzgjEMZd*4pMh$K1uR4hnByqX) zB>4adE2}A$lIkIMdx&0ro)xag`7b{ez_k72QReM%SzB~b%pA>{^X%5Q>ng@!-Y^a; zu-(26aISKNFmQbxm*{jKEO6cziyq+O{F-%|nyYUWPPV6EMBK-VAu?)9XH_MVD{Uk$ zIU1A3x#q(5AAbpWBlpyjx!woHEr4rpyz*WvPKAwDmbj^Xn7a1dXl3XA5>3WT7v|(y zxYDCr%bmZTom*|X& z5jv zmU4|C5(ssQ6x})+O;b0-R}C8O$t5+T6>hq9`$DPNr%?wik3(xnv&dYNjYrjiIpPG| zrF)!kemz@_nBV!b)?ufl^T15Oi_nYj+BUhao9ycKj~gfRualaSBJkill=+boEItbj ze%zh%*agw+pf@2;ZXF4oJpD~7Pv{^yZ*{L^jn#xP`2VD z7Mj0G%-;Fdc_3#U6tlgf{Tap_4N_QH5T_#C(^;-GsgU(?L=9=QGoomjsYU=XFIP>T zbg7ZjqhO4@{QUQZB;srR$qqNyC#oKD_A_=X3jzEi#}n+o0gooLkpg-eW`!tfFd!)Y zU}Aw^#Pv9a?6_t8tuyDd-=8sfd>40uB!!rLJleY2ivsLP9N$wikkHRKXouu8GqpmC zKIVzMDdG^qmYI#@btvtG8ywzyKGE!r4ZP7#iz~PUz08@>_;X1jEbx#Zm`s7pCm#U? z6tq#z{1z|s-ki4Rgr;*l$7oG>~$Ow+XAK!(L+Lcu1~dP_^(2%OKI=C zwxC&JR!sLJ*h6y_#XxzEVw_4A^YAToW z!LoAfYrcuH_R){}UyQ*~bhjB*py79X^658TK?gXlG?a#C_(wwAh`Gz3$jt5ov8Vzz%ZNL)eWJTJtBPgZXt(~d2Q zxW#cc$`*w@F`Z^wF^aLIT+AHs}Cc3Y4+G+-q~TJiq{8DO{w$=+3&BXVjZlOSSkm zE(2dDFXlzm&6m7;N<6wMG-) zIesOR4p`L*^>(Na=KqAKs@-$WLBdzav`3_RpNX`^bD^=(n8e>toC?nIBY} zHDwL>Hgt0Jy(qiS93XDlRYhl}-s&tAQ@N?xsY|?r5FIR)M!sIH8N03Rl4_`N<%5Ce z=}MX$dQ;@t+JdT1#u1TQD39_s%${YGk5NRBgI_oO|L7?6+qSlu(`Z>k>5 zmvej9Pu=c-dsR@m&LlI;Kj{AWcle87ENa(<#g33{<=kMrrG$FS?lBrmbWtWOu$t!C z^po!BREgPg0QxpYa&xnDOC~~c-rT2bpS%4&Sxhpj-ob+_*sNbw7|lniIsKseAf`mp z^3RAYS0Yrdl$#5eM+z5|x|)@q7e=8~dPXr(3asV;tWO5gdYjfgQhgthZrwAjvOu(I zN?Q`63FIlS8Yg47W&KqA9`x*46V6vbcPTM=@sF$c+b-kN5t1VpV%EH&pp-`Rf-%d? ze(xNnF+dk>0FX>)^;cV)zr)KR?Eu~^W1nCOD3BNfM)T{^tmus83iE2SmR?YMyMgW! z8SV?q&Y9@X7`^4{#^ap#;GcKCK&@=pwZe4XwZGQ8;@u8M4XwwlY&Xb~wR@O7H6vpt zIpw6jg>$+tRQ5Uo30+Iv^VlnQ1FF170{a;Ey4M~KTh;Sgggzhs@QL2CtD3=_a5jIo zq=V*`HGf6?3#qx_Lk*p+?XD(5kf-9_A@y?C81Sc2ML@9Be8bOQ9EREW+=iA?&(>d4OLwJUK>{tg)8|``QN`b&lT^}8Q(Y+coc(%UKoz7TY zq5$cXz>|ff{&IZcUGSSU$m+eNtokH1s=$|E9=E?)X;$huhiy@%lHDJ-&V}V7GRk#LVf{Jo_Z~)O9F&S$%e3CSjcLzBg@&kT4%I&h2e~KDYza zgN$3&t$%T>W{A(!;ltycETD)ex=eEez#1kawG4Z76e(_sTA_BP018Ok(pzHowE|c1 z$4U_6XhRgnr7=-%YCDm8?y}P^GsQ1=-f^R~p&nlr@z>XLiu!s$Ao^4>`@=AUJ zTsQuo>;A5#{yFdE3C8oM2W5&W1buLUC^|7jFIi3yWA$#MFC%Qa#=*wP>8f2oY%Wiu zDg_2RnWiy76s;;94HrE2OtJvio+P|i_r0|aLI&+0f`QA({gvk8CwlBH>%5!c(Vt=u zGWBvFg~q(4gno~X77b_Ay1u^H$yX_OtE-1ZUcSmv7d5uuxuX^%A-kbGlb@YS@3o1x z1mv6J+5_pcQQCj1M_D9IYXrIDPefqJwiqry+vTWpUCB}BVl~Py?WlHi9x0|jbr7uBuX?Wnl*oT=Ss{1WrGkuZVE=sSuXk@>DgP&B=Kt~2$LxTT5wOdi zlQ0F5G6pK-o?O%?BB{Ry^z@FM>$JrrQw5`DdwG<7&FKCKqx$Rc_d5z+xX>eq-Qh9Z z)Tl0?sHY-|{nz2UpH+nhJ?&N9sS&W z_B0HCq#x<8!)Ad1@fNVI<}@O!_-U_Vi~7Cu$%er#O}O2@g2iSL5MFS@L2N-ERCr%i zKM>OOv|{~B5D);}`cWVe1QspEkVE_oj+n&U#1(yaD)8?GIu;lKp&iB{Dn)_!|FdB) zCVnyxIEXolESzQtD9lN#P`&vz&_AjHHOrqMs(gz(DK~mBk2>kEY5j{xnc5299P;>Z3zy1;U0CE8or8-3d>&F;zL3dkpCDM^%<;^SGhu-|MXkCqGy^f63kLj2eB>6$$0(QyY<&}VUGjF?!5I(RFRsS zA(qMb%X$SGFPTGPNZ+=1>b7I?r^wR+9(J)>Z(8q>}h zq?&8K7uTWY|L#@?y0P_zdwfp7!``mig`t-?{13hI0-jjpJ-a^o$FUCsG@)>L;67cr52O(T7BkN1hGV!F}26V zWi-+`kr4(-Zp~|9Y|@ggedkkjKbs^=#Zr$h*Sh=rPV%mxBXRjv^mbOwC(A7zbGv`a z`&*laChm*PfD5k*amG#w8ucw-V~KF#Yn zWNIIr!dA3i8#JCaSB4_NT8U!0Wksah^D{Ei6Q|h7FXuo~fXKJ@!j&BNHi+L`V~%%l z&p4vjiV_o>sR2Y6X7B)nZ*_(4{~XFXgpe*VRAAmHM1MhK73NV1uXV zKCN4Bzc%PZZe25>gqB0%Fqiy>VcSPi%4V%b_F+gsN;nhsLxS-WO%{Hhh_fPB%4+bi z(%#Xm*1O?^Bx2iBInNZ7_-fUvX!b#!r<%K1BKLZ)70|3K+PIeTVXLoC;^?;-Jwemp z4bz=7G~mR_wbg_vsZ8+CTGNIU_4T0vOuRb2wNb)=lxH;-zUl@NR2R*+8LFM1*>XQf zwP>m)!$JE?7BXyGmC0`Vv@~=22A*SBL?F*!IB!+*G7Q0NyWZy{ZH8BS(ZlqNW2$L! zW4L{ccbxMnxz^Zn4Td+Mta$g~&8#`kFQKw$B05dk5YHTL;P?JK+k4FE=z96&-$>IU zHM`0*8>Ju5UQ^Sbl@?e(2d>`S+n9cG-^>h^jfjDv+<8@=mnlKw)#~_7Ergx_CMLoz zlej0kEJwB6B&X=Sj6uopaU(}^-C56d?sVg`t-QLtxM=(@@X9nkwulcRjo4r+nJs6- z71xDy#z_9F7QWti%`yEnX#vBGEwfKWzIhu5&7tF{ctg^lv9)A~bP={nA~joszc!Z^~=j>&jN`p7!j9Qw9&s#Uwa zus#j^{dTXK5}VjN%q9(J7~^&c^h2iZ*WaIdaIhk6cga9)*RuMoEp4qvCsG6IG*d9J zmDS5OU8P#rTBs{g=G%LtCz>pMfLbLr9B|(|tUhROmMdMPhfRJu@%@Ep4tj=>Hz zX^FN6*M5P8ff|TyiK&8WU13?1Po20DW;UZ6&Y7P_*E3nK&njPARF4Z!8)J9R?Jj2= z1his-rE^`_k67?sF4o1u+(~Qq&JS@jQxJKvZ#H>O8lE>gv5Odyxm3qw1Zlnx&(q*t zdrRF>-^Kp4m7J#9`w}w5J9B)rQWuf6J8N`ufd0yP_h?0-1C2cO+o_djx7+C*1zIGD z;yUYI&)lx{%biSrT-}LRS(UI}Jaj-`+QWPc-p6{BSCMZW7ok|7zvOOeO3)T27;c9_Aw~&ht;)F2Ir{4Fgld$xUuyj( z0L6HUvzHeYxy)Sh@Kt&AK5P04ht$?Kg-ht%jVeEnYg2+c)E0K&exI7H!KuphZPoIM zjRZB?_ZkQJ!5R`j)9KBuh6Dc_mqfabmg~rpqG$5YQuuXckm<$vKLF|>l)E}+CmlMq5@$=D>G0h@ z{sYS%m;O|Az~LBkYRFlsqfSWu9D48eLJ#tzFJ{Vh=7(PEUx4!OFn9;VU%TCct_)e} zh)M3{XQqb6?k_KIQ1whK=^}!@L|$pzgmtatp7>Np+3xKxerZ#Ta_0!TS^vJ%qY&`z zbfGsj^GU$_gnZR4KE;J8Q^-W^wtq>lgZKTSWhpK5*#LMIKam4<7|9Qp*Qp(s?mpO6 zdSyrS(}x>nGvi787ayAPr;(x|&kfNu+s?6xj`Jgr8`T(b-_EZBE`zOLX)mN0tI9k& zJ`vX|$ecv3fY|n)JAx0wFx+-U$fB2j#bX5$pZ$~b5Ppya*2@Wv1JY0wK7Fp}=gla1 zS1u>CR6-P(^A!E@VV=CI?Tj$Zj=d1$Hmx1Ss#z2^j?L?#w+9=o`GdI4i28cdWy(>H zq-K8-?C^E}IGa6N&yA_?-=CWoB4l zX5tSgj~?pJcU`ZR6X{wOUJ%k;5B4O~&sm-dA2S}68&4+{mQ1l|=(mE?#mh3g7PYS0 z(aH+X1Ym_hl~Cb*jNW=dq2pS+_vdY&-(rIi0}}QEk}mClTmvwmk7guMyGrXP5+Zz6 z{U;!=WV+U>;WP%$ty&pM=yREVK!OcQ$f7c{Uve|;sf#N)&3KfIbJF zVV8$nTv@}K2xOjxttl=VnQbMv=H|Y=g~j@NDb2KH&*>YjT6JonGbvXuD(D#RLf?I; z3q|T#85deqp{4K5-hFuAJNG@l#@^SzXz5%9b)TdF&NO`Vj{5xcq~8h0-8tUXa1DFF zpZ0!z95aTUfbY(#XYXuD<(PD zhd@FnGPV5CF)78u(#l!etJ~1AzH4qeRm5jP5fNXN{{Hy+=_$70{fE{p^52GLi>>)v zs+v70p(>mLl{|qOp)3#>*9~B-#PqGW75(RPOCX+|t30pw^hfNtaG_epp2iC>V6IV8etU_ zU3v&V4}SeYxm9Ee37zdhd^DkTdSwh7Wc*7Yo7KAQpmX!v4i9Rm3a|Fky>_(&QJcD< ztClE;HF1uMr^uE=U&OO+t>?0J<2_bTmM5DxZFPcHCY8OT$4_EBQ8iMG+MpAh;+sQ{uC*tfwe%%l_Zn4=hC?#J1kD9mr%>U#JvZz3n*D zNv)*vlVUr|{mw{kCVWQMh1n_B-pO`qsBK+hpnZ%kqSwU}w?mQ6xHzs~ryv)#rh!a1 zZjD#IY7TWua{PygoJb8T94TyZfDE_x0FG35V+gWF6phQlJx4-6NyJ<~u~+1CJ+YvD zIMZ*IFxFqgJ_xd7Mgd{;9`UPCDrt_0ie3c=UC_~Pt319W_UDRIKmnBu6yTwiR5tcG zwR&2}#^Pm?uU8cAriWee57Y1 zw_~UoL|yI7^asw9Tp_(6+cyU>eie>%zK!BLvfd9eA9pVA5e+VxntM8Xiuznopwzrv z;e47nj%#Q~4HZg>$ORxfQ$kNI_iN0f3Zm4WyDbVx@2b? zlK({Yr+D6dQhqxH;(2OlMgx8@XXvx=dQ6ZzVCeF=TMg<=wAJvM*T~d)v53%0?JKtE zdq10WxPmv4I2F{k=v2>R)=j`t+U-V^YyVCOdvWu9b&;P)ooUC;X0$cU*@-Ge?`=f?r#Bcj%&7l2@b zP2v~Mq=y0U%MHEsR=>)5K#b_&;yZC=dUQ)NdF-h#u`TBBA|qiCx=3ULyMX`%OoDe} z&Y)?Nq$=A|rBXc%hs5Rwnh!a_W*PUh>4s4sY%YU!6?HAW}?;K(!$!^mR*<7Wj=V}`-iSnhLMA^=#Od0XX1QESD zdovxhbB}Dpe*MG(Ut2D(x_VMdrf2Cxz{qcTeOu7}Def{p;_hP8P8wen8x5a%bKucy z;{3EuF9<4(P(p0;Uhs+-{;)7)^I>XU-o{zY@c>qN=xz!_0oD3zLC39b%eb%uZgNa- zRLXECMA55RJ-nHr74Mftcnp#JPK`B0jE6lZkj#y>%}pS;N6S`08#XfqFDx&^3mR5| z$SC$U-X`R?d9#I$o%1l%Bhb!_V>3WfzOgfPys4upnw$P{)|!Z%vCVmP;#d_9m$}#unZvCYHF4X0 zm)KzWH3B@1(G|)a@(B&c>9PK$8*JLfsz>fTT|$8DGB79e!NxTYsV88yr}_FU(gy!H8=ABN;YLZoFo!``Lf7gvrtSDr$qi^4GXi zdSj8rG&)md|HT^iXp5C;T`ISZ&g5u9MAKo7-Qc#hWD=L?m7)|EDz$~J7r5DjB`tq9 zz5n0Qo&6OFHZ6@PI!mocD;JIef_a`X9&K6nluhB!KuXr9Y&NG#YV{=-W9#Rj?C?3} z6FE>1WA)*=`gt|0z7$lx;;>L=cC5@~Q=`oGZOc*LgQKas!kwlLw zqLmNd;w2Uo2B@6Y)!NuZYKS6Nqes5X`B5u*=GKLC-NI_?8vk)L>;C9ubz}8iZ=s$4 z8w!YgvNxK`&Z?<@h@5r6%=Co&KvUV98LuyrJ$p{Ey)W6(%Baf$KFC-r$FW9KHUl$_ zawBu?MT&yh5UIwJJTzq>ASfNI@#Qg>n*QJSk(vgLTwK2e58AI)S2O(2|z#zjyp zxGmj{oUefbpXkY}w|0@>x-}?CN+drEBq29OqG{BmS+t6PcdNdOi-`^r4N8^}!B4+6Q&yIUobnV8| zQx%gOw00?Tb|Q}o7(96xO6sW_|Lp3x!_#?1cef!2WrSAO<_5eERD= z>~7Bsqb}E7^bWN6<~(jGHkd=q7V7%>NH-hIA;34nHlAVxLtJiav(1+ny%m+#2o%BpCPhsv#RQ zrv1f(;X~Xd5*@8aZM(+}pR%KsKeEdGcKjI@Mq-I2G5yrbn49&G8`6tQbi@u_+2r7rD>6#RVlcvY4LsbN~6&B zAk9C)WV+CP*o)SGVb=9Zxo2Lb7}_w#q@DAY)Pn-5nDh<)BsV+GTKj@ft@JXlc4oT7 zID*f~KHxc%<5YRXI}D!J0-bd?S2v2owHMP}z~bO6Wa4ry&zh2+=1gx;Hm`s1NLE_- zmsYpoS&^_UVx_}vBy6yzlhp*H=MY7PdYL+q_Ks1r*5Y0z8DPI1xNrV5r|CUX3y4(B z13fGW?cp##V;v8}{b9lpAC&V3?T`{VtAm_W;TI%Er44FovSzLNi5L8}^G_tl$B{`K z>(|{Ki%qYb*7P?Nd~)(`!qBdIxeIm~=o}V&!`LQwE;h;_7u-r;jyK1Z7YHe*m5OV~ zjo&2SE!qMWK&57&fD%l`t8M$g4QKQ5m|dRYX~oJPZ=Vfy%tfBSlqw7+J`7IKVkUaf zxIC!DKc63C+7@Js%`8VIe!g2ZBQ;%a)fe*N$OF@c2`3ox)vsmg}VVRm!c2*^ZCQRF2(@5Ro9D&U8RYmmYxLJMZq3+6-iWD z>6`3+gIpD?7X0wSB1p}V17s!SJ37&XB)@us{5!zK)ooU^Hk}Hi!fHs5ulBY0w-4|L z*Yzb!6w;;b>3gYCs(eaqbm$E%AN-DiBpfzZ?S`s@a0XQqJqXRMzX0}`uCi7;@=fkx z%gyzIwyR@-X%*-1g1{E=X~63XfuZvQ%f-n>VYW6^MFIYV96aZ%j5-SQEd``~PU1p* z*#7%T-nu;PzUGt3K5$?GD@Es-4yJI-(_klRS8|I`#|)e=ubbBrK2t$2jr-b`ihSPj z4VkzNSAX*vyfI=`qYD=TqF~bmTXI%5VCM9*u76mK+2=V8c?LsRU7jnuDiv3kUB_hO`aOcT|3lvZtSTF|Q z!=B(Pg>EERUb4Q#3SN|B#`wc*y9c=GH>n;Ewr);+SYGMsTOqbp2k>XxISHB$J)@9_ zsV_)$wgv#|IH01r6Ar%G`x)nUy|N$glA2X>tTsKxS+sC)oC|c3Jb9T8N7SouTpa_C z`t4{ZC<%T~8gBYe6p-XI`VZ9xu4^H=>WTxNEkHM33b!}O1N9b^uAZXXkwQ{s-wQkt zKh|6Qdhfo@>+VRVrmChmSrDgrit#8zgvLnYdAZOce?LusGcz$or+xsfy^YvxAk9jM zFwU2^V#m=)ux`2iMET-|r|B*}QT0rY9qI7&XH0jl*h7~AzRDL#F8M5uqp#B0yN(2l z9_5H1wGjC;#yz!sm-EH=8=2ibLN6+<$zMCw!gWsa>#rhDdIj(A^!b!QaAWG_-g9pa zNHPYs;`uwqI%W*}#o}&Z-K~X1`05h^^zvID45HU^cNUv9(D~xg|1@VKNOhKLnF#&K z$MEL;2eS(2M_y-KcwI)(2{YZSI;ua=A5)FTBpS)5JVgQV+FORutCK{02V-+K{G=kF zj81J~2MIc2RX-bA@6_*55Ns zE4_~b5*?KqWoLAuTR}p%;P#q{k^Kb}nL}u2@9TcjHWyib4=IpSfZ%LL4$$k}RjWP7 zj3tkQa&;h{S>l*`*;+N5(~G^_?50yc3OU@5%)Gy|1Y!Hl3MC6+ci9Hgc=6I6Ot0}& z>pzU(?aym*KhE{CF7Bi^0)(+GNb0y+L~qk{zQ{W6_(rh<1_4O?prU3{)d9G*TA|!3^d1|awDw^U0bgy2?r1i zJ%@k3^(|TeLYp52vvb0B{w_3P-XXS4mR(IBUtFIbwlx7NYK;uL@v4oc#*9k>{6=CB zxrizQx6A~tv-HJ4>V@kqBw=@_eizsE2Q0Q!@$#RTpgu!_F&^jt;ybf7>_q`BTf_2V zGy#hx5?2ScEpU{|Y{kES_z(r;Eq1Jz5shOvdvC={(X=wNsXK}#0K_>zz17PH*lKr7 zJD@WyuOdxpZu!N+yG0~&%Ots5C=&~H4Cr*UQF~{Qz+aMCq~B+oYq^l?2h0IRUjiy3ssf14$)yCY@!Z-AGfb#1!F^m<{uu(xC# z8H{H5m9@!8C9!4PjE!L7CwqMPZPE)$3#uGGS%K`R_`RF-aOpzsZ2Cnb_=Z2C(>liny)-Sn#tkPB>2HN{-n9 ze=;0GM&h{ZDpBzig9my;mw#!x(2BO6XR{18Uum;^Eh1JOj`K&vsgWoHRA*lYGg z%{>2hjgeP{!cw&AgaM5IYi#L1_viAlFvkV(1jZVK1pCba%L+NZNxSgm%+=nM?jF~T z*I32nSbe*a$bYsqsOZDZRYhmnQ6vhmM?=L&Mt&d#RO*fa2Yp4d@-Q>*~u zNG*hnki+yj(`Q>RbPkEcfn?FLTBi%1i_Py^SL?b!M`ns~>B~g%2pfs*$9muis>Ay{ zk2$11mvHLo#7`K0#>c>-oC4BcoVw=;V5A!9{`Q>5*kB5Y_@-O-H!ijI7*duDEbH5m zdg1f>cjlKl1Jpz=JH6&$8IKdb^uUK=EIFRIYOzFpJOoNOD~q(fKSPNMu)wwaMpnw# zYb&Ud@%2m=DklKJCUPqB4a>tUHg3Nusy)%lAdwj_wdzXoURW~e{MfvkE;ifl&o!OX zIEC{M#wxTU!G?-h%@=t50h1+BLKgw)+p~kW7s3vp=~UoL*CwYfY%o^PX3wt-@u2A{ zo4!b<+k|<3xJC~|Nf-f-+R3&?>Se#E3#k>~>Fj+78#!PDtl{PE{?#GrJE$4HWrmR` zAaid%i)G7)`hD?71S=w86i~5HcCTcB85RZ%;KKPtMFCL(ILLX`f=3t5=yJAXrmX$= zZ%}!8g9Lj&0y+ga(OXSh;c+ikf#^?cIltyNZIhGb-mVuL+vJw)HQ%~VuNttFOin$J zMjWvX$g3qA-Vl`vf;Y&{PD()D)kELN8?isnq+aClX`1A~0v9I!hX=8{l4}XSn=J>J zKAW-J0#INO0+Hj-@-kRGBNJz10V_y7M#*9RCtu#9=rLlY&h7TJMZuZ?8^OmtNU%XI z$2t1%co=NCNHB0t03Ga><)N#QQ?O!*&w_1^b1ua{vi*ppwfsYZ_GM-bSj?J)`GGN+(Ri5lL8v*5BPg)6ix^I zV-CqU^%#C&Dh=iJoX!s!WMf#2KRYPCtRjyI{$fwE}{UH#YJg(Xoi3+q<3;SjpOCHrn&vfwrNej$l z%tJ4iRh45uz2sJ3LjmRUIy!0G&`BLYE+7EQzX14OFC47ua&wy~wkEHobIESj7TGwu zXqL;Rj1X{&dv2jDx6E3#+8|MhVQ5VccR9@N8(redThAf{x+e})RI=(g9i zYbqt0xjds=$75(7O;F(~w2mK-|CaTyp(g9W8Svld=Wzbe^iwbBQxDYr7ljB~2JkSb zukfy}k&v1Fxe2c{osM()#OJ&KBtdKR^Mo#k>#$eBkIkR<#c{9vGt9i6t;v}egn0C7 zAF#UT{>zk#@jH_ret9Q-E_~9#jksheT?u5o2N6KFLZ^eI zIv&4{`h+W8H_d3xBT^M_}U0>aIIRJ@aYR&_(ZR zw_D!3i~@=XPk+Nq6)MNucVs1rmPu!x)GD zRd~ln(v}9`%+N0*SJ>y6>y|~2E&k1z@F}3N!C?G#-vwl8C-@7#nQM5d?qF_!q{MCz zVFizS(-m&mJB+#AbmK?V+HOd&6iNpc#p%=|QwTMIM@(^cGrRss^D)idG^fKczzNc2 zT=rTBA=P^!2~&DbA9_=Q2KeFn<^N$WPHHI9O4#To?;O3wLRtsm_0o#Rc~iZ7q9A2Z z!|o77ujFzZHR{TEL!DrYgw4W4*F;4ktbPx$Yc0FuFmK&V9=tTF{0&@ffnM*olkD#S zr6(XYP_mrlkBC@*@MqnTq6LhY7@}XTYl<`fimsPU!n*V&~3TeoX2rk zsMr9!C5BrKZKUc2!8Es>MsbZK5FdFxl`e1j-%6xR(RNGq*XIAl5hN1o&DMv+jk#NJ z&a3^Wh#Tk9493KtAGyV#sitXi^A`m>OL%3OP(a-;TOSt!ek5xZF;Z0%XMkfmkcTxH ztBO6DEM&d1IbNhMoxrf#qCoKSYQZUKUoD zBCn>&J@i5zrvrSE%x$hS!JjjK#jpE1@#@O|I3Sv{l$re%@Z^zfK(uV1P0;hQ&k0d| zK}vs&lW0wgp8o(dQ6&1L)n7hNx1~a)qnAAu2^Q5<851xAKG(yuQy)E<85-c;xitLQ zP$|S(X|rEx;1Dr{K=UES>c-vKor^N}HVa<-T~B?$0;kpNS2;%Zd^cR5I(Gpbo&(N) z&VMr6X>8m-N}LlSEZ?9u6uG5P#bLq1!b(ovZ+=Obhh1FVNu9!q~J@<&slR52AMv#NlKitQ@fJ6mX}DI z+4GN*IUbYcS9h^gP6^WBvavUqy^6+(MgcL_fJZ(=|!69AlpF^)bIlfOsoY3yM^2EzzuFPqO|F>o8*I$ z(D5~xiy1haS%kwbH&)q37HH<(@8b6riJ3KRWGv>BY*<(grd9ZG_hi^9fY8RFnDxCWmLofRFM$1_c^!EcK=hLXr)e|tGlWaH8)x9<)rCc3NA zSSfx|T*9J)Mgp^Nry<;&RC3?=p5GUNB_HY=xb-xOoG|Q}#k`Tf|00_`dlOB!{_DLF zdEdP8<>-+Svc&&30RhVSh0j_@jh6!J`c+M%FG2L;dxxy(steW{;3O1jPo^G*wpTJz|CYgwL>Jy zdxJC3i}B29^-=Md)Ftlt+Rf9f%Az(5`>w`$Um_CXc%_35w;Rdz4Xw@qae|kkQWBP>q6xnshyGMlz zqRalfKA)S%7m#iEE-^M7Zc@knM8wH+*X**tSr!81&TQn$pO}qQ4gHTrG5KA|4mHHi%R) zPNaxK5$Etv>M{f#&1{2!Vk|DkWkiUh9dn~#cE|793%cmBNXqajZgHbXaiqJ%)WpRt z^n?8xrB%tGWn$>6mh>7+6fn4#9@gI&CODi>NYtu4ub1;_VV!OCS z!gH<;U`Do|fA??D$l4yTFDoNNjjQjkQ6Cj`VFK$H+Vhop78w=cu1uY^(0E*oM|7Ky zB{NFLeK?$?W})Va<#jmryKr%zDKl$HqUP?lo8#NCK&7}f zEb!O&sCrVo1n@Ya@o_xOei27#vsdRBhZgbfep8&+3C{lK{?3-=ffNen=Z~Z7<+xqW zb!Cb-__tSp??3^q8)7dgZyvx2=Xk$=UL)Rds{UOwERpw0x4fHO9a>ukzS)DX%g4e$ z7~PNn1q9H_;a*o4m*bG2w&f{?nT7nLb84m9tq_^&a7s+?fXOGp1PH1nsru27i?z^AfYoATEqGI4m~a2Zzpo3_2vdtJkn+O zm+!_&%-SB}xgCL&&~=U+P0{p+^;i@yx@6HED2y|Oyk^}vdgD1QChR_ZyLu@ca&Rv= zaCq2xtNdn1k)Ul(m96c)R9P@*FEPKZ`CwH--Noj$IIrTmXBOnv*zMrK1ErXHv*S(G zqa{kXM!_++oAbpHb$C`3u|koT{-IN?vdd>oK+&XGegr&l`-vBKmYXs3{jsN*QN}B^ zit?jhuo-*{4PTTk`Wd_RiF=IvIs8nR-cLM%9~$wqThJXp0jl@VQF)b10IMVY9b9H! zf9^(|UzY-UUUyUj zGFnwLt)d7}=87VH-Dyp7;?oP!+6Y3`Q4^7G=40fll9XJV#Fqio9K8x2E4^_CRNfo< zb=U1^5cqZ7Gx#-s3ak)N32Ln-XNHfiPAV7=M@cjuRS>gahv$c5!Lg}5^cDxYS;{Ob$V#VXvJ;zoVybQeiaqr zw^wZDJ|$1NH}E9;)7keT1%E1Ns1i)kEKhELl*?7npH~W3BGN-%6jwxv0nh}dCU2Z? z+lznF<~iJj)TJiF+%U5ClB)18viRM|Vkke!z@Fa9+_17xcAW6$^cUfKULJ8xTZlgh zy~w=R=h*2lty&Q1qK4iouMSo4t*zF#)KJTv_!*fDOU4G7jEq)wPW*A^n4lk^W3dr= zZ}bb7h0D74HW=4!8j#Dkk8L0tC(Bzmk`nAkH#b|3YoY)`gDcG9%^j7d0so)$)F6`_ zJ-O~`yh@TVMHchO$vf_H*zq*2PCM>$JpYcCF0kLRRlfqE)v zU81pZow4iq+**6Tb zP(b_Vhx+OP-Gl{(d&Ym7Uyl2;H(XKnRH6p4yw1BHxB7H6#=njGr7T*1Rcv1e+OXg^ zh@u%&u$HL7^x^gOh*C{ei+c5^L|)SI6=yavsryX}`l~XGfq-TMG%E3d-WMg{q@0RF zgKWfrTf#qvN=bgd$Rgh!da2;{y{(hG^vt>-C69oJE^pEzXM`l;?-bU=5gTPZJ zV`lhFK;UGp4ts@BXMQ;O04S|x5~d)_2BHZVc<4dANy18E~m_Wt`4 zymki~TKX%83+KUe81vg)-KknTWQ-g9hqudL#`jA77H4h%Tz2Odlg6Wv^!bflKM=Z2 zD@pJ;7Jst}5G~)Vr1@_5Bu7nD#kF-ks>Bj|!Ifu4h~62v#Cci%spZQ{v#wg^q*U=> z$Z5>g8WF4^dy&b{qI$ULih*nEyGiooW$~+oyxWF^4f>6R@5*?@`@~E@_-38bm*;?v zKGa;FWakyB7DbU%E8~|1eG~TO`E4Fb0D*61w#1dHuw<~=ndZ6oXWo=IfEG4Y#=~v< zGgqYM>2D!?5R)9p+(gX&t$AXS*c90@O)qT2DP?i(eWhkHJA{n~`%r5y9ZZ-293c-1 zcUytVI|M}5Q-fSR&4KrFcK5sT@@V2B-@~5>u3yKD2|%4*D}ll)-v-SC-^lT*yWhj` z@J6TW_kA1Hxtz%eq9?B_Q5O(#`ew*1%Rd(XAS?VNbvHGJJj@@0f6@2(1#+)DMzJyf z{^Tt^G?kAUHOrPQ>VyZ>lyY}eQ+iJ)c9c=>80H4TE?6kSuf2;GmDK3) zV6BCh%31Gq1$tGo8<^5q1n=9dL5m)t&q|{6hRax_ICwOM9KwA%F z>R?Ly1bgHpebu4-QB@AD<#OHzPJzz*2X;Yuj_b&NqYn@~&k?46>Ho5ZAe|Azn-F2f zKcz(x#WIQ1jfX2p8IPD!fRUo%L>QNT7Uj3y;dk(kb(kc=$7=o50D-n zkhe+7q3VtlYZH_GEu-PbB**MJ(#RbW?>#U+Uc5138jx4PeTQd(Z!t;}4D7)0av2g! zN=*onhWNVac+tjy4!t?{Zu6&BHSTg2G!`DAS-`cu#nxyQ;D8LMyq zeG&Beo=c_i>p#(*V7UcTJ~4$#M*})5hqH}WioVj{5^ZW)nt6R9%D#M?90=wOXtR?GI4bEmC7%YVN^<<3b65agh+{+(HOLWKu$&>e z@W%c}hs={bk1AZQlC~lCY49%#e_0X8m-?9-YYnYUfV!4dV92>WjpZQ~V*lQqpX^%I z<5Mae^pA=6WM^`dMZ7i=8$%r0S3EL5XyI+Xj?s29dfdId22uIFS9jYi#|b4+xEs_2 z$e#oBnkKeVe3;}U??CgFj`!L;`2tkz#bz9tvoP5bx4YnJ!`r~jc$7ptH zA5HuS?PN(UuvGdh)lrJ;6)fkWgIJ&ho|a21`xBU^U3RnPJ4`&Vqx+RYst;WM+(#rA zm*}s#$@m8w^dTkz??5J<2j`Q%*5I%QNlm-kwEP~cWP{;w{QvyAAeHT4wA#H_rRa}I zt{`$K4$6a|sQ~GetMTh{7ZNk(a^BnKlICL;sAK^CuF*+}2uWDa+RLaO6iocwrXg_ZV;wliU;-H`An1ntW7b#r{=S8?^iN%wz5Mx4C(! zj`Jrz8Wa9jenraYzzT*k8z6wOdv?(#HvO2ki_b&MSU_bV{Ej6yUln+D142{KH;(`k z52hgBuLd>2uJV(A8r6cV=k9k7CBB04p04SL`@Ui{`G6Png7M&*osY`*>9&=LYw? zZbc5f#(8WXf0r%3p}G1hdN^+?bVsw+E;ns8qJk9hfgaaRbc;kYRJ#d>1Zx(p~jx zA%FW8#F(2_6U46&KGCH{0fmvq*E4rld9qp-a6nGAYZ2}BTPW+GVkjGBZSh#6y3UcH z-8Um(RBS2qHA6N2cQ4cYQvV7nmTd*EROL>2g%U`qYk2%gpYUVs~`>tU$cp`UyZ3NqlND z_zsHHkr4QsH*FPnc-~}9w1U*<6ijmQ!c)`!j9-&bFPa!0t4V5s>D8D3(7`Uz-t04_ zRrA_bUmw|UI01(LyFbc93)}u!Ew2~f!z$_Kxi?f+d~O+I1`OwAFebUKWPfzCrtw~y zDOustB1_-+WR-#6@Ynt_Gj+*ile7skf-<5#&C?9*Oy04F6StF_z8HST+VA&PeQ0n` znnIOWwHh>D2_^(4UJV`Gg35oJVUkj9q-uRm(f_T(Iq=oXN@ym@uzI7R!C1#+15 zpV)OZia@pc5g%;pOD{bdwe&Ri?;s z59b-UeS@v50?e#}c21d(e%u>-Yd7b+H5Qy&|1LD9Kvb zpsQKTW~3&K-!pnU<0HJyZK(VG5YKf+kc_jCDLnGc$g=?JCD;v0!11z0*CJ=J)nAEs zVY2jla_n_w>F*XAGyu;V6I1agom4vgK4&!FLpLyQjf6-d`;m1_wd7$YT)q9arle&o zFEMT??y&Pgf3<1!QLqNyJ8(Rwg{3^W@7l}W+a*ll~zc`8mr9yL?=SX-x& zUp2lbKEV3*+zP!tGX!X^<_mrmuC}$?wnWpH@FF>CAK=J$LD$vW`Z)i#j4+Pe{4ogd z6ggHASU@gEDaqLXaT5ONSfF0@t6@oK-H#nxT6Jl4&&}X0ILVV2HGTP`2Y^C1=rh&d zcp+K~e0%Z!PD+|Nxfp|pSK;1-UlnF4>0G`)y*^Y%`&e&>rn9N@w+lkgUBVHPSe%oZ>4PM4O@!ppM zpV^WHH2tq?4ONYv)QD0IOp=MRO0@vMH_!%Pq1HahhDz7r5e&<1VbJ|NvziK3%4K5N zKG7e+D~V16LqdnyO(bk8@*>JTUVtX^<#uFAY{cF?CK3fE2GR z0aE&Uac)#hpfY|y&vQA?(w2BM3oOoD8ADPlF5~%8`PdN^!ckYmXHi4|jNNIN)>({x z)O4wiUi*_nMXxAvwcC~Vn4oC5ZnxP3jn0O*dLejvqz@$(W6n);KPHH4B(jEqCUU96 z=JcYmui>Ck>BxULl;&z6!=|8MExa@0j{kWf+B7?g4yW_tWJH&8Z`zsJf1L5o2 zI+2zrfvsSZ8^GCSuif~OOCCm{T%!p@5ntGG-hImTC!wSeDD(fx`nU_Exn9gf_{0E8 z!P99ymx-(;Zsk9afHsc%f{?6Z0^v1`TD+at@l#^zE5dGpS~b6;12dUD4xMjg{vRKI z^D%VQzML(91v~nzs_}~S zo5u?e@35X5%KUEE)m3y*nsdOhV8L1%@%v53ibb_{zwvlu$#*J<%F^_ z%_OqPz^3`dk`(d?OLpqkjhDSu=%PlCKHuVCDIiCE`X|rA9}QQ)*Jvwg0uQGSPDgK{ z2ui?2??JD*cWf`1rgOgt){3U~6}xDC5fEq> zUrox`(Cz@nEowIyj9NT@1avL$m^n9vC#GG?C;5|j6k~MlFP;Nv6m=-%Rwa32pD~gi z`Z<^RCl(uIzSbZi+tN02=Aosls#t>69+uvD7SYx_U}%TIpeg>8B)`M*^XXCHctHr_ zFnLP7y!_c&uuk<1_HC0O1I@OONLsz~>jNExTxX5u)qlWG2LQ-VL%?zF_(irl5%;*W zG`lI7I3#(C(myvbkN4!{&oiftLz=xDhCM|*qtNq@Say4F;@qV2F)=N#y6vk2A5CAf zYk@UM3RYC@6ag>Fg<3@ABAeabY5zcJ;L3tr@}RjdP-VJzyqWp#Yu8=!&4zXq)%P-zf0?~36Vjh}!#-;Mjr4m0mBK}kO&iNak zdlKOohk+)~H$EsGHxAWVdP}9MIGyHkeJU56pS!4dSqWqT&zDtALv<7{GHCin3T4>` zf7#`0Q39En_{!JnYhXB35|;YJeyPjJf8z;@dlo+9eNfVC0tc(-?UuCK%QOA*!$L*Z zkB(gimA!lGHlH1%zA!2XEtNF!h>ZxQB8$I}N5?}4vAvIzmI!H?X`qbwmXJ}H6pd@s zojG~D%*lC5%lVE6DNM6A1LSx=t~s7r)O^c-6>}F5N!p(!4&RcTE~H(T3yQVDEh*(R zKG8v)m(`&!rlVRj)8|Wm@SWo5M)leQ=PkN(|9FT9?v^bHd8-D2d5+_C#<{-yb=8Hp zD)7v#y3Zy>J5i%+wMu9W01@H zRA#-^l1blTM;nC3OdR4i%J+R$-o9g?GG?&zyugvKsYt+!g(PC0@GjH5iYBVVOEg50 zL|Jyw!x9jS?dK|`)8{bRslO*kGOsU#?Jy#@Hud5dd$6AL775E3`5ELTItE9q_|H`x z=MPooThAM`!?$KzdaPxkUDDDI&ohBG##l$Sd8#B~Lep);wlCe?qxBb^=GV{~E6S^m zxE-GNdaFdQ{=qbnlQIDEkAZf_GG#A6qlMjK0s)j}TYyM=)+XS=BW0k$Tyb_|JE9OR z8v_ieBdhTM=v`|~pbHbqlxq%VaFy2n$<*D;q$^I?fWmCn(^?yQZy`T%_*fRaaxE!u zExCheWRoKC8jT3oxze_tY_`fcRiJsB#Sj27XGzZN)v{FCXLU#!pB1hVi<5;Mcb&uZOc)AiRZ|=-q@tO>dF#?k ztwlfZZK;Q9Xoh#N#k_;v3KdCRrj$m!AqniMKTKk}8?10#O=GiIuxs>@%|opvnNo_Q zOBuD_pig~~`v!sR4ZF%HHhb-?#K@F9hf~g-)g_zLzGPYJ*#13SaSi0;5URybS)La6 zL>|OEjp=n5_1zOq(?B{{{#%gVEN3K}R+U$WYze`G2re@cn0NvsT=DA(qhPdW9RW#w ziY;w~T#tJl94$%Q+ortA1)l+9?oFewquAwdCquuSe$*bovu~zSDiJnFy|$7FWBWn1 znVdtZ&+e8wcbHk*A@b(^=~QVXNnhS-6^+a)Zc_W{YOW_oD(rhl9V=8w zEqnTN|J)LE8}-Bsqfqh^x{+g*-ll}twhVTL4_L?hb{zEyN#&fwUqSPjFK9<8XK&1U zJIU2g(v|mfvUP3UA{Z2V;s!Qpl(yH)fO0pY;W69Y(>==EC6~C}?+Ypq+Xjh_B+p31 z_}@_MC)-cIe!+f7aWG7S%SK z2Iah|zkCeVX%FcrQNiXYxcf8A8( zlWh#W-S87Ghaah1TVZ_XKcbi^k+*j#Sh!4n6iFWFEjMo|xH^#}#~O@lhz+`}7p+VN z`M}B6NszZRf9zGG*GN*=Z})|DJmZi~YMV^X@c1#oK4D*<)10*`uc0h-wKtMvk6|g!x6Fi`lqcJgs7&*$Cz7|^3%^SsALV! zWfXnG`$qiG0$toU!M<%C_Yqe(4f#_OL|Et&=oIx85Jd=vf^2A*WPqWjN6bW5+)_cGcX&gx5&O z1=f}~mvEcWPTTxMW#r()dHYI)_{=h;C&)E?fxJ{mIw@B7&PvxcAR2PT`5bB@D`R4F3&i=}8Z*cq=J zKU)Pap`=+^#9=_WvKac<3Sn|er&Bz^3>79xzgI@t{s3o zqH1Da?}KgG6e!!;%0xGArB<`;9hw-!?9<{BTd>93mUXR6-R%!X<8s&{+mz)IrXR=4 z6AC%C7$TyFW<2(^5q2QGrY2Hld-w%=OMd66w%E@?d_E?n`ZP5TH16>ZgAk>^A{o;c zG~A1`2L>YcbLZ*OHSgk*(nhg5TY&P)JG=$nYMbnnb*8s!xru3)leNNqp+?)>HgqVB)k+^OOi1MM}8L%dMZf>GfBz}Pm61m z5(B7j9R|LA3yI-VN%r!*DP%U28SRg86LZyWAYdE0ZSD_*+_9-sEk9Q@j$W7BPwme0!rY3pN2w_hgDxQl2KqR{ zKUd3z3w=dl@G#0?9*{4%Q|Ro);6FlH>qerkp24wjUWUls)x8RYw#l!g~p6e|w-&>ZLLa=I5@1ADU7 zPzC3uEO%?Zy)H12Hg+$g_FYVUpCT2h0~;C-F)S~fAD!4yZR+#f&URQO*b;KfgW#UtkD+NPXD*50-d;^s3E1v%qbLdBx3i3}N1fftG` zP?$kYU#|3SRnaWJ|F+D~(;48z(2Wgk&I7v5HF^c4wvJ1Ec-$@ObCwF%t0oazD;v58 zW(kr-14SXi7F&{M7~v!F!yHPsWPAeWF;ONIn#f_5Y=b-G1eAztH{2*jH2QgQ9!@Rj z3y(c@d>uR!mg^`|&)y*O%&xJJS;_sDxSs#F64oW(o2x<|J80a7o9b^HlegARt(S}_ z#wBarLW@$0Us=(WN``KWR)LeUS>WrTGo?n-D??=>V%xLwY_ZPnXfSVk%cCPwE~$i! z)5nC^xlqkNiO7GU)_p~6=HrjyFOM)hkIW({eZ7}_e_LwPb@7K& zy#pPIwb-kjgz^CBE+X~@voQF~5RF*Eap)QDoV$4qi5>*Py# z;bfmi%Y%H?W-lJDQO>^GJ*Nl3tl%t^H%fG)3J~y0DlufAaaZX#e95n_k7PsmynekL zpGv0GEG*lgmc=AaRq{$8`801n=0pQyv?6hAe2sC7u>|pLI-|{%TIZX7P;-Ir z>HfP=#4h(7x$=mjJkblUoVw3M8i6HbWJo1Dykew`a;s1_rachg9cfwHX_FU=T)oA# zw-xkFK?|c;?*!h?n^j9FEVX&(bNhF93ouzZ>(JIiJBq2M0 zg=NS*)B6&ETY_Aw>W+8WQ}~L8X3N3QQx{_^1JgNzqal`lcyj3`aGSt3!kG8UMbCO` zG`H(EIZVpV&KPZi*LoPIQTe9$Lo4|lmoaiMJn2Kpr_hLpFxN6#9-t=8zkZT2Q`F@- ze9ron)Tr0a*v7(+pN{Xgk=74?ntnj*0`Z0`d-PBM26?<-H1=k-9M) z5;%!WYxXnIwG(ykrxf(Xj;_$Z-t59pKh4cax!zRcyTn!I4w;xdqU378o+Y>xy){YX zddq3uK&Rw9L#SgjozdZ=l5GDR+>xa(C55O{_LYcZGqtL=~1 z+d&S`82NpT5Z@A3RnN6cIk|_~i+Xfc>nlcY{J`?y9Il?VgnvDRW2keYwFym`aJ307 zN@Rc7yH|hF1I-WZOr%h@7`9wLf;u8R?JOEm5M4%{Ph^Z02+_7HYoUF$hf;{5a%nt9 zjw9$7ZnKn(vK$Pc0n9ZUdB;3_Td(nKwSmBu%LC$i8LhiP*%g^Q`E0L+X~ulbt*xX z7~^XnTahSf6%Y%(1mcdPf$oWNh;RX`bK8ql0^+OfySUA*?{OCqkr$b|3XTpAH+##P zOkif>CK=&hd)P>tOYtOeneuUYMZ@+pGySA?t>dt~C=^4AQPI*Gj-hI*i!72sJpZ{y z_nT0U3)-%+y2Ad?J+y*Xsr6B^ocWds+_e=(us@}sI~&u~5q&C;6{MNNi-G|YuxPMf zq3X}O!#RR?>1#}NFdUZHLVKLn*tJm|e zY5T)woTMB)_t_dmVWqhS^LwGPMgk2EM(t$VBp3EK#uq({efua$Sn-LNJlj%ld=!~F!V)^={ zUBajqpKX@CHP^C=w7+5LdCF={gV))v1uC@(0!dbscn%DTdZ-)#nH93!%f3&Sa zN3Y}hN-E^{zSa-2Jx`#X**GLxTs-Z&zv+FD^`Z)9n7YlE6dY_PDO!^!t>H&VlGNaR zlS0Z}AkSiSX9r!$u4#cb=Q_T#ESFJF_w~KhyL~CRdKNCP0ysPJHYf~@62BcgRXn>G zW$yHT^|!z;P3MdHkZ9`G^C8oor*~b#a0o*z?>|9D?ZR()%t&~Oxc0BDwiQ!Ni4jA1y zd?$=MTpiNBwDxJiE5v%p{6D`VOcp4s0><^_PN2w@^vFVmDu#*w|L*^B1NDz?cH6=9 z?^%FPuuv3J|HXbjK&_}@tZXr6iRmHF|NI|u``=!_C;{3h7*utQR{|RP(}o-I9L*az zjEdD154HdIFSiHzLIK>z1n_AuTc|GW7CIuq^*kNgWk54llt&DzusL0LGLz-&aJMUr z5e7-s2Xf((Ct7Ml=jS%cWGIUd^XBAlvQjvBms2WNVst6qV{&mRy*8h3;DA@G&JZ?+ zXEO>!I4OMh3=Ki=pW|Odl6ZxG@xz52mgV@3<~t&30gbzt&7&ou+iGd7)hwgifb{;u zw8S)U2Z#0@`58Oc-m1q>66~L&NNO@|y$7u=lcKkN&7Fa-uQ=g?BqIRjJMI{Qh8z9& zwr^Jc9bREry=9kf+?7fZB4|4W;BNsfJk60;#dvok)FHXs$!3(u^c!!1`P*+?EuRK@ z2UrMrLnZhb-M~qJsS`%*wAK2|6z1Y*iXMaz%aegijk(*M2ro>zkwc2e@Oc>QdfdF$Bna3+-9 z#WUA|%PF3ZTr!M&^=C!*VjOe^ps~PjCUAA4g&hm1MuJzA`JRjqF2F2Q-MAW8`2&qD z>A!1kDLn_wZ7*aIn7MVCu~&!ytTzy(mHzAgV3eW)8f+Lh2dz4)AGX5Gaf^>$2r%P9M{@x){+8N zOvSx&mDvhBm`!<*$@{%8U5jCsvf+#}7vN^S!_w-!?DJ~@f_z5oBQh|CG3{#HG}L~b z?`dbFuHGm6=AIvV43G~Ps44CVRs+$ygqMp#js9rarpxFMBE@no* znq(_qadEMPdR49IhLp==m%{pOY6?r&jE*0w#KAmV$c_DX}dl(Q0e?K+xY~xe1rC%6Z**D zC9Uf8YjIENFxe-V)aH^92s>Ozlz!VlQJ9FfU<0=fyU?&-%$=aN&DA|x0o`=cucs_8t7R34X|!6sY{9QU|%U{T+A zsl4_{%AA5YO34Vvx%`lhsB&1;t09LR=Cz-aGQOnQ-=y!54t#2 z84F*plx?+l>2^FRL$=4y>_EBCoEMT4eD_A_JAS@$CqDL=6vS7wmN9pfTj#be=C}eL z>pFD0lKRXjOZX?@?`;>Zsb(;6QmW-RxaW1e(S1&{M}BK7c!LbOl{brf4RM@}n~Que zt!wUAaHbG)izsx41j3WkOmg{iSAO~+P%Ecy!U5i}OrzX>dL&e5bOBr0<9Sh;YLikc zW!rjuzkp;i2X{2b#bEIf3v64`i+9*RSNqiRdt-P4TXzCKL;E!DNyCm;y7R;>J810X zO;_Dz+sk2em=}+POhBllz6x!a^NzS9&+B6PT2pRe-lRfDLG-eFe+kXyuQRAzksQ6Y z8>hGq;9(=-A|B_T!DY%goPimV;Wm3$F>G|yb4nmzxGmHaxv8kix7JX;19K+aqEOmD zvfqidgm^S^d6kc7j*UmNE)0$It_*ne_AQ@oYkG`KX}2_xO^r%yn8pizX3ks_C@F8G zEnINm99~7!H+mP?6zzqlO(w!-#Kexj|99pg8{i zsmc-FMw0Q0h9jJopF5Lm6X!G@hufukmx6HsGrpzN31SgO4+^jL?x~Vj$m7`4ECK4V z>B`C26EeOIU5kwmwKdhx;A@&zQ*}T&ZHVDb`bp(>%C`iM$8pLrg*W~j??$gl&)|RX zKFhqMj!_8o+TV9g4RyaC*f)!hihcmCG{T;qRZY?^Xm(gfuXo-asf*dZ+4JuG)FbEZ z`WRxOs&%&-Cn++}pzDqA5?J)nelM6wVmvYxgT6{>blD${ z^)s`Nt%D6teo=6Q=Q=V^DnD)z%_+0T`2vYM!HV*GWl5V;aiA!rpCPLCP!vxyb~xBH z^{qh>SMAtFYDAW=%u6RK)0$|1Xs_h59UVZZWARYmbt(F=(izc0>i&|Zq(HhtpJ_i9 z`D!N_yDvhXf)@T_mV9c5xk!~5k$#(8-3_}ID@&W$JG2Zk8#dc4!LUGGX5>XhI{ifv zwj$E_tzUfK5eDlY?!Uo*-H|x<=sQDc*a;<$p*1i){3@IToLCehb`Rk zr&Yvcu4-eou|Jc8j3}()w+kK(*vel-7{u;cvIYHpXYyrc@HqpWZGlWy-*un;)eNMh ziNgjUmo@*aZ5-cCi>r+cVO4-yUBHm91wF*jws%aKc(xKGrb4;4BLb#HN1!?*))TpB zMa^Ur!qllYHq9sZGcFqXxokNE3gV%OWaa_LQ8$QsVoqd-Wv zxo$s2={L2p#*F3XbuXqYwGy2nWu;Ny-~|cjdUmCJf%grKA%49)u({adEMc~d%z=Ux zh0fqf;t_7!B(&TwcSq6TrBBWV+$hGwY%Gqm%kFZ2ylCebqQq|{Ns!}0eKB_EVLg%Wm4`MFTxma8~gW2#v{ z*<;*fUOmdhX!N-@Zl-yvGvH6%{$%Sp?VErlRy#t1)q4S{^S-9MBk#sylf<11FVd(f z$bM)cXFKd3oc2rGhLanp&!8l~<-1Ha)$>Flax-fDA+)rN^ZizGl!tAi^^oow5nl=_ z?GT&}*={oRhL&g~!iYj}&@*FjLi98Jw1n)^R{PV@cM`uttL{s40la?ArTUfd)WCve zqlTtqRb|VS5GPaAyyY3gA#a1lDHX`QFBC&n|<&m5*vPjP{&npW0#njkFmDalNVPIlfbK9AXf!SC~g9kjU zX)Pp$sQPrRAm2v%vBhwf`v|!f8@#DJTzzI3yKu`6x@}Fj5k&S4vaGmIRgEhzSyORj zzIA619VXMD7?;*ev;U*&o0jE)=aQHylzN)F`xE4iaw5*A_WqQUUQVJJ`=M(|(3V)O zDQ~$o^}>MylZV({8_|bWW}&FC4ueCgyE!sm?HzR}@%g7p2~aw8u{C^cvu86mnU-Qk zDF`l&ND=7<4f0asnn{;zH$~cuOsi~b1M!A8o;z8!Hk|Quk8ADQ84KP)g%$HsX??x( zDA2%M-?Qgpgs{i!V+~9D*->XYv}JOsBvtcs1B`Be{;|~*oawf`B3HOGt-k;2o!0q6 zOK)+T4z0fcAXfz2-KAvsmAKp$iS)ua6VUx1xz%sSA!{;_@Lc0C7C<(d$+nXouYXhS z&;ipp!!@6IQ20geEUXB^D68J*M5|p@APK9lu%!{`l~?DEL$}%cXlOCw zYbzSe%?wxB2}%@|@BBLRvOjEp(1K?(ZSKwly0d*L+wJDdC&p9BUnHueHr=zYk7)(_%&cVpcdyzs(CrYNJxCz#S-)^YA=(}=fW#vo0HVdVv9!;*i z@3*mD<;}^MGys6+TDrQe?&$_?eC(_=*;)E+x3r$V@CFlDacP=&+xPTJ$r>LE< z&}oEIJ32pHh)0>8q+h&tlFKZy!7q#68)fMc%g|XdntRh!iEP}W1e>zCy@$YfrIn=Z z=jBbK1n(Uk3_6^-R3mY#4y%1ltF$@QHP!BT@d#q`!ERO9I2J%_a6qy?>6-`DL!5?Xn}b9{ zEKt~#Pz`k?v_`v7&lxU(D+to<)R#8MoB*|!1!{LzSI~0s4G!&qY)u}#?y)%%b!iC*&A$tJ>)i@((z z!S&o%C8or0B=B8 z>{tEu(7U@E-JsHv<0|PKy*x#96MAd9h&#&{*IPs7IE0_a%T@4c?}yTR=%WabRofd8 zWnL^jADJ+9Cxn0DzW0LDQ{TVuo@f19*RbN3h>E`isg*_m)eAA|Ooce~&VFNU%Ob>~Y?=y?RPwsG-J({`RlfRl#5v1b~U-1Beori*sbH zQIij{s$aiLyFgU=>bl@3)PG7v|3e5n&}h&$709Vg7wRD`!5fUGKL`Wx($}K@73kI< za5|y(LiGx03Bmtw06tJ-{ZD}3|NHs>f7j=2{^M6oZ!ITvj0h#J7=HhKCEl)afPV?p zi)CATX7Bs9RPK+YUbcUSOP`o;hN;XZ54lMDQw+K5pBGJ+aK{&*WvvtaJQMqH@QmFl8>D6M2s^x1F(vg($~gA9(3uc6u|Lzn8DDWtyiThKTKVFrccanQd$T)k`f* zUvh32H;Aafj=PVFnK8+;fIj=(_g?AMQ9_}q?n*^k*&&J#n2@9^DLQRv`H4NvZqe8c z_+o^@zAYz4Wl1@qG6fp}S&5&`$x8x$GCcOGCVK3f!6YGn9sTWokwMb%HqL&-vp;db ztE(HKfJu4PcK{tZI=f81a`D^95-|E?y1^r+h)>M`;T-%i&H{RH4=b@6(QC}3ec26{ zClhRIHg^4qL(sy0FqIgr3NF&rmY5Up?nR$pvs1DQV1r^&{BdF2=hmK$P{8bwe$hh? z?y**SJl(>zRYU5EIzl0axZS?R=`mE`aR@`Ir*^v<4Qj5%oSEL9LZ*H(w6&c<;%nO4nxJv->`hOK=g(4!;<$tseW_A-b~(dOrTd_cAwgQg&u6GFU-7RwLf3* z$}UA(l;)cglesQ)_i^j_N*d2qZDk?;ZCq0qGO~DdfgCKiU&^+?M=kAI1)*CPB&2XWH3V};<2HaotDt=H^axM86XexA@v9^BE=;kb8$ zilfyV2St}#kIpz5b$*x7g_K?~x?bDA04gPeeB|t56h^E{KvkC)ahPt~L*lASYnuac zJ@s_Oq{yq-AgkSyP(nBkC0R_bUCN!i@vWX3w9viALhbl_g>~+pV65dS|w%6K@F83xLA$5MD5pypSF}-)5rPqYbya^2>^H9z}H?K zD4_qN;SV%}QdZn(1CcJ)Ye)L-lpPt{vFMetH5sHD-(AH9+&0gBI&}2Xe3X3?!$&v2 z=ePg1=fO+0iQDq&nSJo#7fcL=J}wL!bc;R1csta&dinLV7da}JQ9nOd z@R@sY8Tod_eTqh9ylvyY|~Yr-_m;(qXDjh+B+aG^~iYSY&H;2d}J#v4D&%e zs%lGxn8a{QGUs1*{8@DsISYU zOfEZxw2DB)jG$PbI1Ebyk~kt?GBo`F$)* za){T^kTJ~paBFMAb$^IQ57qTT38Cj#t~~A4a!`Yt1A&?#v%hWi+&expGyx+yEE?mK z2VRVJ@-3wp@i_{fwNtKFAGBln*%5-aOq$%uy^VH|3hrrJ8OBV^{MtxAq(60pFpoeE z7hfIA5P*3JxjbXlZ6=TUMw+$5SYlv~q))wf*qhRj`5q5*-vh4BP@j%u49oTELQ7nefIv9(v= zD8hApCh=Aff4eW5>N(e=o#z`#yltI^-hnkAlyc&0(}iK*8XD^N4n~v4R?X{@OK_d_ za@6j&@o7gMi{7FSqzSbeECGHaIjjhHHeT=^uDDDRj=+<2Hu(jsAOOdmH^NIsv zx`0`zC3B74)%F-NsW_GRopQY`UHf?GCnD#$pf9azx`lMLXN`|}%x^)*3&Ok_r8~&r zysZw8vJ4U~Q8p{cr@HdN76fBYkwjlw1T_!b=olc%oEKacDLHwz5@!M`UiLZD*^LVR zkR)XiI@1^5=fJ7dDOPrbE(sQI7wx)2d@SI^33L$t8vI2S5K8u#5hxPWbE3)8J&p$#NH4#y z%}F5t&c@@iHC63*|K_{@_*d!)_;H>CC%BBH+!o$|ih)Zm?0G!?#b~(`DU3XKbaUL9 zX}&l^beGk8Af)Mo6)^wvbM6Pd7hN>U&9T}5yzQB0zd$^y%k%yIa4He+>EJsIVHDtg zffdD=Hv5$UYE2gV&mZTRdFpu3p5gz;zk~!#%<}_jVnBv@WiX>1{I>mEs~bZsQX%RP zn|aZEENoLW%l@CgD_-%vkVpT{G}*iR(zh*Yx*#nm_#sg@f`ZX-|M}9nrT2aP?n_gG z^l8_=>>5X8)4#n5;XOJ#eDO}e%D*oxfA9VS0^WZvVfwds;K>i&0F%A7y%VKX90lW_ zPf^i`08ggJBj9~|%&Yk}UTWr_yAXth4W6970B*9vr((dyzk^Bs&m~bb06%;dEeP_- zxq0L3hBV;S|M4zNEa1sOpFkS))H8|YsVsQ)e>_FpA54~h7UkFK{9jp= zY|lHq+42cf)%&b!25J9pSt>x`jhI1p`K81E< z*M$;@R{%loU#1icv?z!mnv%5tZgqR%fcPaW;;^tpdo*GW;2r<*HR`>d=bb$b^GICS*!9p20HWf9wnGLwUqWlE0&#WMaNhns&a16E3t!DTM+ z`TyZ{lbWa_#h4^)fN}vpVTSftG4?$c4b#@W#qCrTeAurh56L);}yqq$(PnnGK12A-cgrwKZ%tncZ(Wx$!(#B9+xWUwOSUIe;#) z<;vIn!=P0(7JvZhZBAC&)D0Y9`9XIWEs2>6N2%w>L$F$>-giuHA}YbG+T8HL{Uc*X-aVO_T%S>)ErU9pkjFx#rkp>Crkd1VAcXug`G>CMU zba!`d_!sAR?mhQ@=Z^93F&H=;y5D!rHP?)1&h<>LQ1aye@$RY3#6!l`A}L^pKb0}4 z6sa*_3Tc@a(|j8rwxquw@>{@oxXyRyv>8EOJ$tqs$WZ?l3%YQ%O(BJS*ZxAsF%X(s z2Ifsb98Mb+bZ##J`$;m7i%Lwl=*`w@tO339`V{NL&C#Thtnf`MA{rA4KIh5Ba;Vl# zvE^CgasQ^B-Bzy6ig$gqfI1mweSxt553myP1?+dnV$-a}mfsJ3lnZ$)u>7BQgf_6R zIptfmo$k)LS;j|w1TAv84bF2j-`c>;xxNJ9=U0zIj8dExG^nJdZ=T|nwXE)s@j*ww zz7XLviixc!ED&Ad!1I<_V6WXRPAJ)((!N_B;&z7-joxAEStWF=P*uxSSyDNpi?VyYz|J3U z$rF{=_!PPyiqA!HqKm6Q6`19rbQ}&MFb>_LDgWhc z;WJuE^1&e*6bcpsWE&aQj9xNL#?0=^18%p+Lz$wuFJE%bIA&s;)fMi8IV@Qr&H_Hn z`;@g-39d8}(>X<6ZXX6r63#UXHWfLFZid=9=7^uH|KpI<#D` z#V%QjHC+Mggn~M+1>i>2`&my!Sg`eMQpDBOb=quNEENnNiPe@T(hpY(GgX+RrI8?u zYr8kBG4zRbb5ph8z@DEs?KeZN-5*|^D?*rb>nrn=#1`^oo~~Ju0g0>b+Plcl0b4>6 z(F1_7e~2s4r53_2^k}s7KonUZq`i{bKn%7`)JMQyI+4}&JfJ80^Kh0pr`B8TAe>_l zjH;$ZxNE*^DT$NZ3QM;(uzV#J|GYkQj*i7P-~ElT5s4l-b$0ZlR$6O8K>wlM?xGVV zM&k>NQiz@?pWBgty7_d)?V>arq{6wfR_qQUVI}_*T)nJ}=mzfxBdsHF51{>*eRwA1 zEnEh;g=j+gbLBb_ooKzc%=^kg-OmRLEKmPU%h#HsKI4w%YcJawTD1qz20>92681Fh17|RpG}A$7H%I+w+oXwuJJbt#fsuM;%pQM#1bzgQsS>bX|y+ z3vz-|lMbV>vN(w^DPaDjHx#${zi~+c2MxHH+;&V42;3akaOOt^!#?U1JmC}WpiKQ} zK2cR%G7reHS9|8G2{8D71c5vU<@3SAv2~gd0v_jUS%`w>b%AZZSAAHu!UnxPYH$$= zt@C~$=HTflY zyL$(-9uk&1SnDYD<@)mIGAQ?=7PEp!M^U*iM{=Of7j;Xs*}58D8sVtk6x~ji&=9u` zZpIrCs+5jA#haeLbuuasQShVmPE%M(ZVOj?)Y1B6AH{9W4F+ruJ4D{H$hZYnIlLslkn;JQ zN5zzX-OahE6yM0vSk8Raw&&+rT>d5sSGaD~i3Qj_qa1dumRII)4UO9DO;*6pDHKW$ zNWx_0K-jwvj8bBLius=$Xad%2vo)mCbmcrSNW;Tt!o^PD=oJb*VM!UAMM?baqD8g- z^|YW;qj1OKsVIr+497Y@qf6#-n_{fxRP|lCYvO#W#z+_Sr)+d~l&0ffrxxP5#5Sz? z9SwL>4QIteZF6Mqna6XbAwf7c8LE7o_t*WhwzG)Dr(Lz$G;Qhc0vIJ7m! zSKoCxiE->iEN~{qBP{qbEkXk@W`tGczeE1E8(9oyafS=bKA5a2pdifMQmO?$T?m9~ ztkMm$^tG-EoG&DboJ$%sZ8~q-f{Ps6JS}TY2&q%EhgkrXX4O<`Ez3yX+i2QUFa)HJ zzS_2|3QJL#%nDdsvv)gcwbt3yFMkJxUfwtD8_?Z2=>rFfKmRJ6qwI>yX1qv!&Qu5o zq&fw1AI1ul=dae9BrmhXBO7myBukl}fuLRKvKLBhv?2p^+ zPE~I0{zS%w97RrN$u-c6lSKe8=k`eSm6qTgq`N5IGJ(a@ACYO!Q9Amh={zM=rI-`4 zlUG7l2735X2{~>SeQ7CVulkllp-X3k4ikKg8OM}>vsJCes&T4wL!PvF=b6bC@X7O^ zkL@NMQ@QpxY|GCBY06k8a|)gVN-gMZplyO}a!Jlc|L0W)#g$^2g$-vjBPKNd*lpMi zOt-1Rbr69SpQ$E-fJ5jF;Ewa{2U9iuO?G8UWr$Gq&QEwP#7j-`Q@IZ5zzy1wy~*?0 z>TudB!iHhBo=W{V#gU7r(Ws&hR+1(A3deOgW*lf^;Ly)fu~$K!+CR1uzswHB6| zQWt(cn{0f7h$U8gAB{kUykBthIiJh{U9#Fs!q}UtJkE~Q{=8j0UpSVD&JHX!=TU6a z&BgL*Sxh}JRij|D7%pPnViJIl$0@Zqf8K> zdV=)uTe+^we(D@?;MKg#fRW32T%i5_)L}F9JYSl6*gAR(Oaby$3ad_+CHcmRE;TCW zu`0^PchtJEu7nD2GWY963Y%&^fjD3t)kkOFD+s zp!<9yvo3VL#uJAn;Wn(7DX%?E!{q?4BAa_A;Ai_S-U9l6{Sg67H&e1u(tXqs3o<=0 zZL}aE03z@cpm=V-4k>KHbE-C5qQy5PP^_xp%r{MRDyS9`iEr(JuBX-N&#Y^ zCPH!t=#vT0UM&YtobAp|m+mJYUB&07aND2Qlxw{D#E-{kZ#y|m4&84M&3!oo(F{c< zER7VFpTulA3Y{q3ww9!%t_7An>-De?uoF*?DVM;Yzh6!J;l8lqwIA(g6GClk!%RcD zZ*0`baATpfwV8_>>!Kc)&oe5X;t6o-?ur)rB0*NJ>?gWOPSJ*^or_Jw0QKWN3wp=^ zYcGz=-LA+>(fxJanbO#dmt?UG#NZx+l74h^OJ?z(*rH!A;G+K>;d#SD1hTC&@23%h zNh(Zx*|7{wMc#A~ZhcBYjExr`j)2YISW6shW6}qSCm8;9Wu{OM~8e;;_ z*((}c>_eR(6%xx~yPqK|U*~p!ZN%gLsx$HN*I8F+-8{`I=k`+cymWXq+pJ?-fimHi z>GpU@ZLJ<0^#GXg3+9}c%D4z?kQnwm3Syc%mp8?~(taUvoE5GR2NcZIZ9_J%NbNR7 zA|zg0lh(3aVqp+vXP#|0I)4j?csP6bn~HZ1&EyWUJP1g3o3>YDyjFBC9;>`Nedki0 z)nmzaX_oSfZJoawXK|Xl!o|Q`no^l~WnFbppB#__-^=u0zz`YszanOD07=lWAw)H& zE8s;5-9t)JB!|GCfIt2S)YCEEzWo^B%qd(tZFy}wAyX)`_83Jsn;(zY_AMVQnDl`B zeX1A7GLIWI*)Bch{U@6alvbyVaWeC$u=$_<-gF};nz|s(| z3Skp|Q35rt>>ld`V>gXVxH+>#*aSOs`FM7oQs4cK^`pSSB+e29pjL%a7{!y+;~_Hg zlm=o@zxian+8JWewHrB{`_`{HKy(h@+Ea7*(=U>FPv$CVXuM_$HMRbsoSB*NQbhk8 z;622k`PZRBNBS#!^AiBBAsW{oSP)Jp>m{$JnIgfXf8YjBGa{DD2hQv^KTDPY8zW9` zRitqW-fHeX5$3e7`3ABmQa6qpu%Rl+@0VJ${GYGYLt~tYegN-Er}+2pT4fo1e26v>64a zNPup&ux9x@_}f@ihk^gB8{|bTpnz-pO8^xZ@>=czQ#op^bbm|#-rC&Wp664q45mIp zYx(iybOlK=R+F<>^EkX<@at~mwB@!gLjyRf-}JO=pdGWTmHpqrK%{MRp6>}`7WIo) zI(Mc?rw@Wep0oD~1rVL?AV8InMn+^&6zeS4lpj~;@Us0v`nEnYyY-2bAB34SvxNnK zXE7{zo8EYs9`Qy0gc*x2We8y+n}ZB^rwojH(j*HP+S5deD%;AhnCDG*QVxu&q{YVv zR~&6)X35R+iOv+hp`#}}-(jRD&Z=`M68}7cD+j4;0LM_P`Z)RBZu?KD^GP5WN8V|~ z@=~+vV|e#bX?=f{E=V}9586--+JD@UA^0#$C9JbfhJ^BJxUTi$lxpvUvG#l)zWs39 ztNYqTs=dV%&Zr4m)t!^7ty*m~KyXPru8GBU^wHiTlNQ@LO0`Ih*M0|kGPWzy?fS4| z+Y^^g4z;j+6JRBNFHPF{$}nF}rZ`ypO_XSHL2gP{(|XclABMGcF@z5gaXTHY0N}A_ z>kU$UMiQ7#cB#rqTK`wHpoUPF`!uJD0ZS_d6IIn*c&qO7C<)qTRVD zXk*v}1^KCx>t>8QDw0~2ZP%fms9o~KQ#><14W62{a2d8cIoI*xWUkiB@Hh-a1i2>EKjRzHK?t`$lS!r1IB*8A>G}`zT^) zYo_gf6EXYZ-<2`3SHNo=|5+D%N@4Xtn&8iJly|_#yJN$!tH6vF}>1}i@f1OBbVIk@09B`Dkdy$bV36mp%)7Wjg3*v8S}bk}BUl-iPC zUSNQqg1zOPpSW3rv{{J~m?IYSoJl5$o!EQ0`aZ{)n3!|rMxE%ByLmge9p$Rv-24$Sl(d1&m7He{)4RROe7eMBR>HKKSi8=? zSY~jt!7LUDhB{U^>3E3Fdc&-AClE;k=eq)x3z?_-u4JuN&8V^E2{zha_-oXw6~6pA zX%c;|IjlnVfA9IfYoYRaom+gCw^n;IZ2*=&K2EgTo;s~leK)r>EXn%u;+LjMlrbp5 zpy$dYe?L#DGsw3sv#nIsfXFAA+=4s1)eTj_pS%4Q+ludu?m#fB4!{_?D}ZnEtar#` zFah>sHZYUjCqT6G`iIU`r3XAO9)NxaRsU+)|7agI5cQ>7Amu&2)u3IbO z>b9V2ed;zl4#rY!7Hd|QXjaScNbuhx7w3=weZTS>l#MO!$^fRCK9zi|UV$x(+jjU0 zb-lkUWANwAVW`_owdK4oA;fWGF#SE3LA#HS4+0WM z;F^(;j8Px4OnNdOB&M2#3F&pCi(w(r@Vn13{{Ut#5rBt zg9$A|1_b!Z{NFYD(N4#aW~b)Cum(&V;%OY7t6D<)dXvtumMwnL7FZ!<8oQ`spG`UQ z7%+u*wK!oo=2#VaBz(YToMjD+HS>L=!G6a;HM4ivIK}qao z0k_8Gg!(<>!pg3BSMbU@zPBfX4gadEcM_|VyyF0a<`>+=+fmh3tKQ~#2&p)*gULN0 zX8C&=Jw!lQ<<2QHhu-q~Q|NL>=s*ICq&7emPV*8?(*&f&HN4TUo<3f?n|+7i2Hn=t z0+_M_!%F*dDBoG@@j%aZUi=Wif$qydbl>+IUB)nS0)Rs~^2DUQ$MLQ(?v0^MQ{5Ht znv%+4s0cC|_hz+f8bap{@aNVWtuMfW3@{n>h6yxOs?6WrMvw>g<%@1}zzJBYzXXK( zg8PkgI-9$x(4y3-gs@rl#vAB+SA1Z9qchXC5uMC#{XB(|T%RJ(>XqK?Ih0DLmQ)jo z%1NB;xeKusHP{Qfs>Wa*Mes&c3 znvVk;?cD2W8+H0IbU{3qm4x2ueAa1qsw#Q{b;hmfQjjKH>jZSQ^!VowC=$C&!yk(UtMn0xt%f9l8Ac`O1|qwG}#~un#4?p$s7vvk&b(%4V?-nA^c`M zM8fey8<|bOL4riB>N9bi_vmd2UfYr!6jwtm`-x2FuLr>Wo=`&ge(CNMUaLE(0ts!xB<}DUC@nhE zsFoKP#F@qVh#zMOB@{^X4%&D%?AIShUAxsyT$_dWD~+r>i;V1)fa;xh3Hk23D%<>m z=QcV5g6F@;=P#=&pEzA#ZExOTC%!Q#`>TA^3#vl~caLpQdf{hT@LN(wi_1C*@`tdw z2hrcWQKk{3DmS#U6~@OWh7!%vCVw2O=nu?;XJu(iQ=m+a0+r#n(RuJGwx*=R=q90f z6zcl;r3>q~i>PjnkQ3umf2_$GPERGF(>ph$eY7NhMJ8e-)-tV~d@h0l;EXxPAy*yeyDm~|=8|6N%ZoJ$FVVT(6?cz+WFDOf{-LBIn$w(K5V)M={t=Q+pX48=}57#TS}Qtydjh_(kaFAe*5Ce2ID znU?$5#_rH&5)wy`L*{Qo1C9C;4EDTJs8!8x!5pfSA<@Entcv=ZHQEVl@l%&szG0=( zPCwu`3wSTbdKe4Q8=8*xZye^Md0&9`j-%QFk1e(GIuJ@0q~Me6rgG@{?3C^dT?3Dj znP>@dnqh}hd0bqhBQ-cIxnJ+kS6ikQ-7fkP7W_;c(0STNKbZXN^BZ5B7A+>yUy0E&?|4m7X_Yqv>Pp?t2BBd#Ti!;2?gs8cGCU}8*f4ZMeM16p=v3D zeP)SCurE*^Wq}tOxZwlJ@yg?1_%{l3qOKuQr#2F(DuI(ztn58F5Iv&ba&uYQbenJz zS|1(i2oSdHj;sWy$EV+4-1P7@9o!thfz@x9d$$V}pP!e1g;OUD?xoVMCa2!EZ~Ne#wj?fezl!f0e+#VnDxhfF{^i+W^v zkU^svw%e(YESxJ)MdA7Zne4CJz)y(8S1IVe*1ghHpbe@_Mdxn zJ(ucY>3HA-=8mh%a{bv8f}yBFv+1hhcejLY@A`<5cBk|ZL&kvCoEsw8$tKzAXw`c0y`g9v-`h(6iu<9a6?bHp?7@C_VJ6 zaRYnXnwQkxAX>EX^UJS*V>%Hg7fRzrD{-o&d}+@~Fq{)1=VW}?8_&dj#^*Tr*8U88 ztxy!nT2X(>3#PrQ+|ZSB;ttGzDX3STBzZT7ual5X+=`aL7d89cE?RU$SQA8^%5rke z?w=FTS$+;`4>rox)L%Q#sN`6)!v}~HBlF#|)6xbCVw?mI-ujPzMVl%@sJ_m4tITZQ ziygo?T??_ZsHFPc^Y1D zD8GAIZ~R1kklbq7;AN5VS{wM?&i7^!Vc@=^BH=xVVt-}zHq14>{B4+YOEa3<%u9Cb zK#H(f${5h6)C#vhk>0FasA9q|?2eg@%69N2p1VZ$KrRVl8$8U0Wc1@#;v##-n*~*{ zCLMuq1a^@f6z%J{=;-JxXs%0pvvuLKbt5zeDV|)_md9?FihCMiQ90Zy5`MaNOk>am z&yn0z2z;|uud;|v@bjOcxz7w{lv*-fhe#*luvW-ONdcyKPW3Lu(i1Mu!17^iEy#17 zoSg7J_(3N0g`@*A5~3y2Lf=4bjE{{8dBDkQ$|Z1AB-cx5i0kP($vRu8V5n;*XQhk=26Jo$nX z@$n=E5}tc|vAbUB(BmUiLf#weivxrbl&1(Qcl|HQUmh@HYjKKpqS_H4w?F+;i*SMBQ^-$?OD3Wb^vJHNJVT@I{bC%-g^3VwR@`Yea=1zA0=Eyj= z(~o*a#GXkoH>|jepsC}KX2D|wx8~<*gppfxyo}x|i*FRY&Jg`rqEw_?vqZljt3ieQ z^O?Z}#)*rm3XMCjhbUJDp$sb*=am(g-p@BaPoBB^_#a?{`1-^6rm-MG7O*uHL^PU1 zzDgfHG}c3)-y`-1`0naWmPKxBLbWmCCE8!}6i5jWG6?jpV)Raxn}NqEvTXDG0QQ7?;z`>;-xVe|8OF?RooaUfrWmm2gtVXk`S$O;|Xo z#fu#6x9}eMdJDJh?;*G5fP80;=;p)1uS&CtW_Os)(ki;eS(-<%Aq$UTQ65O(VY3r; zHVb>_TZfTtUWML86Hir6LCzT`p+4C`9>*QrWVL&KB_6|O^LDjA}mb0^ClUT+pe z+wUzpmC)@@AVIfZS*CH;)8&r&2A9|-0fFi6J4^bE_8*_~YgONIIG^NU&pi*1el0+Q zjT!nk0i){#%kv7PFAOzqpe53Zw$R;xM)}f)D+CwB3!Uj=KGQZjoyMRKkON3E;tK|2 ze)J_KINPu6Kj<9(L-=SJH6D*0Ear2h^4obKH*r|Vh(wQ&aXpjowfQm4(`ZpdYYpa$ z9)8=Py#DCV!d+(LdEegOem2FWruHo>FMp1XP8CL?n9rW08~^lPqXP}a7iY{(M6X27 z(L}7Tx zB}-DjY){u(gCSc|e9i9hHZ`;F&9gIyn1%6@(2r`U2)6baHW=;c&{YnvJcmIiDa}8J zQ9pR#{$nr?4gMTfx1(8iV~z;mLe*vyCD-TsW<4nYeam+j9<-z%^>--5#%A|;j?Mmn z>eKs$FGSY@M(#w39`2-H)o|Gz(}pxYR5?-b@`gNW0#_H-dM!77AFn;9h9J_O zX+=|jrSCueO~lpi@Kx36$Gbm_jYGHmvux#CH~~jQ6$)~Bu5`jemEz&?cpG-|)k;;J zAzAO%tQ>-C7h`3KfR~iMaeo?nf8Cnj*2jBR=+1{d2 zzSV}DSlCx^V5_sC(ae*K;(J3+DG@xJWp#-w>tm3{oKH@>_}A`@n`3U^34bzX+$a*} z+dvXAm(u*}!pTFQ-Iq3Ny}B-sq1p2g2g_&nNO&g~;F8DC{cVvw)kfR{sJ=53OpnImTI6&Q#EimBYE_lOO1_=wD+`f4qaD>{;4fnwNIP9RxT(c5W z7~6szHsUnXA_&_>bBPnXH!j#hfnmDZa`_nrEv;nGk%CB6a>QDh0iWFA?b*+5pxG5^ zl(LRz@KdFuqk0-)kux*zRtZsr5(1+6gLD++D~Tk5|JV{`sQo}~b+{yaG?=d-b`8wk zPVyVIe!&!__w9sld*gW$RX*u`WsQYDIzFDRG?&x_kkv_dG_6KnBzQQ8LjqOCt~UgS zjFCe#gLpmI@d75?Ltf%LlT*8Hzqz-JizR9L`PAJVtDu3$HY-m`kSRu z@1Q^*GQuO*r?pMf9N{lnRj-v>8m66fz_2@-DOQ(@m&|#L4%!X-0q+Om(G_bpR^G&o zh3c|b+jCCq8yT7L%k+LPel)-(d@b4FPomf}s`A^$zWqkzmi8m0ua)ajY?-wE;&U1U z*nc{e*z7-m6DoSj!NHO0dPObl7nn#QvcHFk92|)Rw__7%Xpnc^0tX`FrufLn1m~c2 zVxo9t-GElAwu&Ig;A>jiLiG^}jEibEZP_HY{j1Y$AO}j&3q4g>DwV(--mybX+ASll zC>1c6BW*@Q12?9iqdMB>@6*1}06cY!1hRG>|<9gnsce zP0z6QV*&2&lr)wkFu?87=Ht#|nsh4t`NpAYU6NU?6%@wN2vxXx6 z8f;7a%wnDO@%rog>oarPEaT_5kPfhUdB12QBZT(K#M=+pyRk){wGHdIonnqXsC;Hh zsq{3d5l?acdv8dHZVh%=$%%ElWg||d+ubclJ3r3VbJV+HKZ#hWMMeswc@!-|UIUW9 z*nYI61l`iTIqW;D+DV zF;AMWmbR(MT=s+fxq`CDUlJaA)6Sb@2xw3iGNwbH=j)bN=wL2IQSBp=3pdqHQlTIX zt>!yc^w?5O6l;p&#|vyENf{Z^YY$PzP$kJ!xt#6fJldbCEHsH^r1Bz*Z7G5vwbfQC zc8_LKtAEwJBZ0oJU$}8hBSZBU0AsDFV!kEG+c9{?~G1$yLAG@rWm3)Ol#?%B0lbf zrFU=>z+x3##PX>^jxA5xKEf*oHFULod(_s_>3V&3ND;tmGP7~x)IlIG5{2(gWdZ_z z-@w?gFrw~KMy9~6bt?&k4q^mCZfs6lKQ&r~91r6sTi89z7PAO0$SMou-LPV$VaL<;kLUz;!Li{8`$!Px*R9aFm_vq$C2 zRIh@pa*azKsh2jL(HPNmj8-$0XX;_ygX8v;8)Id{Hj`nxYD(oId3j3j=_8(Rt$q9UJj!_VVLt9KYAurCsUEgWY`HU` zYiE9!`CO69RyzDU2z0{l_x2DCg6(NLe2xB`?oG5Lwo-F5TGBry0=>=Qv9S}x^$pW# zbOakDT{`9qZrarZU-|5J;;_+fHrl?MO%$nD7!yNTaa%F;EW6Vf^;of;h?&Yk^`{l? zz`oKHWTFm$R#aOON8bL5nUME0_VZ(MZ^aNw*_2U%RBmxu$-s?KaU>}fkJ~(Ae8Zt z-Rbtb?veB?m;&M9*EVa_c%r?=AAEr##nUv2>N|Y8$g8+Xy*hHhgTLRgKr2x5G#SaU z){X9dEE~CF0VXZC)%l` zEgJIGFy0rT?+|SX)T(yirp#nwwmPiN>C-&xKnz!+hP8{v0t2m565H1AldxD9GW|uz zQ-C1Q#HhqH-yf%|_MVfZE~}P#!*5VG+q1AZCM^(AIX_Q-Di(Add_L}@x}yK{bgrHe zRXYXlF{{%CJV2mCe3p|-WU4C9p(!<94rca8KW&0d>J)1`=h{k z_e{qchkb2r?YRLN5m%_4_Yokba8UKBa9sypueP? zSNH^H@w!p2Si@3g;P}Qa)aiK5l%JsWT3}V_Gw!WNqGXp_e4L92%M3)v-TmIagEBp=i|Gy5O*MS%nsg`i{vD@orlW!+LL2%pJk z+%!GyBPQdI*bB>h4a;4h-9WOI7j^mz{tQQg7Q8k-%aKT$#_^ zwliqaNM*KAYPoC(jfxV~;Fi1U>g(H`t$Ts5zKwbq1+QB24(R7;^Fx?7Z{7gARpWdr z0sPsmW5)tNjAwBL7Wd~1fQmd(I{KZ{2(*-=$Yi;HF}2$sFII9NPkjLM=evCY-{Cv) zKMr{I1u`CRANv#eTIruTgn>-gK`;0sUrH)6u%Hv=MyR}H{On0L7l+F=HPjiqT?N3s zgFAb}OHX(tu^6$)Q(4VvD72`!7KFAO&h}*-PSv`wo(AvVC^)=#p?|Py;3&3TN1gQl+l;CJ>mS@T8 z&I!i#98^01pdA2$#){+xnOh|oRfGI5kH82 z>a@}*xcg8k_xrV|v{CTbUkye#)Ct(}zx^|+vH#lo ztKT5c6Oc0h`|~y*_FridGV*2K?Fkh_vecO^1lRw9p(daKsS&B9(6Sjv3(EK$s*fUnQ5!+(X+bO znSX!Ml>Q|pnFCa@YLhXNK?Q3sBBm#9ZtiJB;ia%4#GY{N9nxnS6&(NZya&%J?j`bz z*$M+=hR@dO?mJ5t9-#-3`Y21DrySc5XOQpXyDt?Vs^Gn%@Q6F5e4ym#hW&>pqcGQJ zJC`PukE5yO%X5FqYQ5dWAk#s{JNy(G{Wg@D1%mKTk2yFfuX^9#0(EIuV|mQ)lVOoz zhmHCgFARl-+A#2~SQnZ{ul_HckX!;qkxJq`DgW_6<67hFo^6Pxi8ZSf)NGE3v02M_#rc5p}e$DuV6nrF}29&V;Z>{PHjUxX2o zM=0Nm2j?u-)dezjJkozt&t0teP|h&TP&U}@Zf;g0m*`S|!7n5vAT%*4sa^rg`^2ul zH{B2BG@KfZT)ldUpk(*mKkmYZk!D?{mk$iEbgujszf^d?94!@9cmzYETTaw)2f>e6 zYCF&%Q70E=^7irh(a}!r-kuZD*KiS9R}|5w6{G96C=Opi@Z>Fy=X4WTd}DueIC%Wi ztY>ZFEJ&oKGTH{%lNvw=cn~fANf$qca9+P*M}Di`9LxKGoya_WaIk=k{8bt{E24r} zrzTmu?_#A;nM8;o0y6StwX6?RaXY?oBRWJeO5Z#H8L#-mT4z2~FEC%C;z9nu-wD|9 zD1-M4R5<@%k6a>@cmW>gkIO!X^L3-)7e?vnRp)Gz8IPj)c+Rh8d3x(9NoaMzXbPgF zLdFv@abL2tPlh2!^J}|>r)+pJ& zRL%@^T~cG;FR#W>fqb37j&1yEbepFVwtgI56p-tZC0siHSPe@;qr}| zgrz{2T;od?-nm32Z)|88KJ`;)vdLzCdI|A(X48Hev|33a(bcrb9~y)PzjVNg4REm8 zCGHczzkU9+H;I}3jYu*ua##o1q1Y&5npDgcrkNthM!j(i+qGZGUekLO&D)DJ@WY5s z^e6ueCSWldm%@VXp~Co9D}=Zt-s(}CU8-sNP5FebDk0$wI6&pe`bWY#VMF$`xVA&< z)V4E`u7Q0>qkB#TaWSOSk!p(xQgvYTxV8Bk2=vTT`{G~gIVW>gMw`3FI>3fF z%ooexB7oZtEdWD(4>Yu2Y+L?8)ax23ZL-H>7}59OVEk=~as~H6&o_>(ot_2e2L=y+ zTL1yULRO0zL}nT;=AsX?|DAG|`Nz>7Q%awnhW})Dx_~z12i~ zYt_7~1B@_;T>r_X`1i>h>A>b9JAvp0Tvi2OgC;-@Kty|wDuG6m$*;OlkaJgJKZv6F z+X)-ZSJWIw>|4?{ehnqm+#3C$Q5eS|fsi8ci%u-SU63yf=rRe7e-jek(I?c)uhjVO zPOTERFAaGw9l4pTZ2iIBMAchA353K7z=*cQXS>cZ>Xfu@rwaY-z0$>+s$(WO!$;{y%%x%a)3n=zg zI6jCX_`Q}0-{C;fRzrT8PcR)usjkBX%93WTCquq0ruDfWx9fV5@BoUA-WUKb@lb2Z zr`;jpwL8xkbk)|efJJPG!D)p5c^KJV6^mZFdql-eVRkoRz2>8rMRbxFPZ>&Wd{?3{ zon4dukpIzN$6^B$A3xg*KE7BX!j5)taVq5rTl@P3cIy?Z*#2Y^P9Mwps?+sUw{d}4 z{?}|^rhK|LUW^xN z90=}zb$HiKl@culF z+D=_;aRs`mT44D@MlH`spO_ZXPgdC>8l2DeS`zXo=xlZu`;BF~OknoJI&rEm4V)i= zvk=eodP!n}hVCl4+O{5_3C=FE>$%=^m4(wnGlYJlD-tn2-qwctg%nnFyhMp`<%;$m zbgYfFy^*WD#|B1Rp7F=vK93EGNg@3=_MDCog7gnXI@KzgF$*-Od6ILpPOr^6&m{X) zQ%Wnp*k&&$>k-^jbZF-9M%_Ge?=<7;rW|> zO=iy9WVmW@i@dI`-~*gXKPSsSDN;CW564T2Wz18`;N@11+X*k8p)%Vry7a6|)qi>+5T*t29yFY=rkcs;^A+8QgIr|ivno<^lF)Nz16UH$1XqXfzE#aVKX9!2u* zC{u&I;IO|>-@rLRRFh3;)fC?La*wN*N;3Oip41cVZFw$k`%UW=5Aw>NGB?%QP%$@x zS4E#@g1&9DnilqbY?;WTf31+816& z<|J+FlfnqHAv|2Qq5=KSri_^{BlXI-IaN#holZV&L9Jc(Z+c`=8XPXPt4E$-8KOXI zLkdD4+keewuri*l=y%5-E?HQjvPMGAoWUmUx!cfhudS zHWxmbk5vur#4@VlQNLb|yxdLcHCcKF<*grW?Om*TKYEY{fkocvKn@kAw9+>7onGH3 zNVeL_O`%TI+#?@C)yR5lUWw8c_`+MRM$OD|_to-x65JC+h8bL!Bbm~+th(2m=ga-v zoQ8IsZ;G%GnBPgRht+gNZu~mbxK84{(LbM}EPT#9WQp)iZ%wWr_9PZ%usaJgLzmW0 ztk0!$!5xsK9GuvGS~rxqit)L2b2M2$9|+%oqo4a;C9GL2$iew}D{TgO`c>)a#>!il zTm9WBN}Dxq9M;}+`AobfRKoG`m;Byn!M>0{&LK%Woob|>F30oXmKXgNu6rjU=+K;J z)rKgpBg!w)lWW%cpuFd6(&m*s!}}?CZm)TdPQI*d;)_EEeoEDGQx?9`)GP)BdaEld zNI1-2EOZ7^9p3Flp9uzpY&FI$hLsqp>u(PLUI?9p`*Ao4vl4l^F6c z&R=~D8B#NL~g;P9-N{UCgFUWXouk?o=l zYPu~Hm@8pRyWRBe&5!_SUtVcFd&p!gO6m39akid7&iMtL!cweTdV5ckhDCOxE59lQI-C*;MOXSEy->68NvFlkqY>0>2u71AwPVSbHB5dq8of`s2{d>#wHP{Z1DLx*vDE0Imbt^F$Djya4wN zxI_dsN`+_u?_VOjB=ux-_kEag9`E3QW`H+`~ zxhGBZoj$~*A)kXe<8!UOTSNrwV&EtQ8AdTc4oe5A(lPlX$Zt&N18WRe>+XUWgo?=gwT7m zfi@L7sCAky2xlafTJ;{1fu$5A#gli*da~8j-sgoEO2Bhvu~sbzhq{G}9~~Z^?kz#q zn=)3b=sP*zCzZseYTV{?ifUdj-57nICY&3*Gd&onqAuIXUwPFxq2tQ5RR|f9Kk>@( z#%f_qhdtTv5l*;vZB2U!%|i|fx>T@y^lJGwyjb;m6k{A&9Ye;f(vdyNW?7}tBfJ2on9NaG!&IaDj+BI!wkwae2AMi>WD@|A`EbeGrM-1g7`28{AdRD>m9nxNBC7 zWbNbDz92RF6qN67THp0QO^?%WzT?!rQDY!8kjB>q?EH8gnGsYg`!hBfx;9l7RNvW8 z%mSZs%n;}tiW~t)bt3Xu+f1d}`De*=XCrchX>hXR&aeUazG~6pVn5A3=KsBazXAqc!?Nqs`2h*n8Sy2FEH0d?y0dyH|-}ZC^DYG*{~!2D=yE^zs7o zy1GJW&5o>7cGNCMzY_KK4J3X){x^vRdw9xG>!k$So5tpcL|zB9JfQm8m~tJFT1ePF!rgnb6i@ zG=U-jz@5=CQo=i#M5cL*O@Tn^x#5b}u{^`gyH9P$x=H7GDM{nh5onFN3wO(U zraIJWA&DC7-+6Vcx7t*s@#n!Z{H-p7o4{^4ESK+4lPs$O5vO%ba*+=%C|4=5%)IcL6`jTKlf8rL zdjwA6q4ZxlDMFV8Ht(zBY*5oO=~rWbO}-ANQ>aGUo9too@AxXs@kelVKJr5sT2+{6t=UoYuw7>sdc~E z*e%4QSIzPk9U^qRG}=>K_#UYln;FH5F7piOg^-}2U}Bag2#vPz2-5AJAB#~|x41uC z>vO&|RjVv}c=74u!w!zWA%7uPES5oWV3Ktgcr5J>riOEc)>u;ApH5(np!!B;Qe~hB zfRJ3-MZWze>ZZ5JGJO@dy)v1St@+9oGtn{23p5TbZmkw;P?W7r>?^cqq@gi(YjDm{ z6k@!7R>T&e43ceoO#$}~3kae!u2|7^6Y+Bd!X1FzYo)IGj^wuCI**w!{4@EcZ#Wpv z@HQp^G7r985Pc)sz15U7HJ?HWTHxf2iLa@?Yhe`Y*^KSXQi$m$C8W;6EA%Pq# zggP!K9I7H^z$t?s(f) z@#x#KE;LNoR8I9W3*PbN<1-uDF8&}%_Vho~PMhPk`~*X}P{E<-A_q)`jd@;i_u!4g z_M~1Mj~I&KNt<%1CXMysMX2qm!lDle^9%Szmmoi!0`aSl@ViY9t~Pj00XM2W-Q9#! zjf+Rg-w&r^wRpcm(!jaG8q$+76+U%G=J-+jpX|?Nw_YNYhL55bmK!gzyQzcW;9I31jt3NFzlY_zH&YpiI~HSs0kLIBu0?rzq)Djs40lcqDokv>yCQjL@9Yk_2c>XI`I8nXTDJBa7M+-j$UUZ2& za_;&>`_yL$L>y%~coCViPOzwFfO#`DJWU0cUpyk@ru2(tik`{5!g6;lEbdMX+tr>x zVP0>DNNSIGZjjxUhle@h%zkG2BM8a)1BloW#oIGlPDw0R1t)%egvo-eZPvPf7u!?C zgf2&Z+(`pCEkxr6id!$>P-{^ARoME{PA$}{t)g+S?V0tJu|w*3liILyH>klKwz{bn z3WO)&GS|NCR@hk$oNiacTJUpKVFWvYp*AS~FlWg0w2Cnm1u|OgN`Kt<7hqgz|6T3; z2zs=!6ZtDE8I(%OJb>N!uyoIfMK={2Q{{JcRRs+mt>V`*(!TvCK>TG*$`Ep{`Ne%rHJ>YsNhj= zNjkVn6VvpA$Pj5b0ZeB?lobZaqgXja>me?xnf_s4%a6K|FoZ0De_x`*W+S@Z%+@DU&9RWNblh~ zh0i)ulzuQZycvG_L;+WUKp|ak?>8yM)W{Ev2n?8-^#?eb}5lcv16Xm zf%K$Yq{Hp9J7G!~8=ylkWyv|jlJ0lOM>`?f5l#Ll`zPQ$% z8E-fBKbU2-lQW&@%k`BxW;a*LSJh4*`9e>@<7(RkjQhBvBUf<+aQH8GOq#i{xX9OUT?f2${i`-n*Qdh1)C^dH?=daN!jV>{p^t{!_{-Q5hl3<1+ ze`tX9V(=?sbs-rgILSOg&HyS}l`L&sg~qWFc8+~$wEc<3oS~2D4@q2`out>#?eVD@ zFk%r0jibwr-NxW?t**~l+rfoW)hLYd(6y8`dZxekn%kXRCNVjmN$=x2u^6Vfh_w%N zFYfBGo^EMEf16m4^_V9W{#B8>TGX|U(HNi&bT{^O5YNDo4{=2Fye6Eu7;1)5m40Qn zAjZx7U$ssPK;H%M;*ZcrQ}wqlV_NrX3ELAqa$z&`+W>fM_8#2-G-6DrOTg!AGo%tH z8qMWb=AJQbd#7Z}kvlQ|lA2T}o^F!K7U(PF%)8@Hw9R{*{n~G>B|_jUiT?0Ym1Pl+ zNyozKgc|d{K<(1CIN~knV7`|#pklO;7Wtfw%Vs3(>q9#90)mXM*QwD_gyLX7ryGs~ zBQ){Cv{%8e`25vfUb-oDSa7j|x0-P=!edE!Q$heFr3 z0n2k*`Li5a+Do@j83Jy#A61Sv87N-?7re;WGyCC|>$>psCcKaO7r=4o^m8OSU&>d9 zxv=h&M+twD?%U-7_ZyD#!i7HFnR7^u|< zB>8kMbN3wdO&8mP+-$?bzsbYQab0aZS1SuEle_!9)x8X@L;|+hwd?`lb7*kdkGM0B z*RoM{?+(5bL_s2>V>zk_n0$E_D=MHX*8rz|h1Sn7^lO(Nms${oS=V*`(`-lh*;yGV z;BI{gxSYAs=e}Kk<+A9My)w=)y1WkeNVa_uWmUT7uTZ2i^n;Kk+Xg`Mf0QOdf_{Ip-=Qdq9q3jfW1W4?XHve$R`YZ&BpT;twT-p=(?ns;uij&7t*~WIeFv-2 z+|C|t-|3{k06v7Ol@ZZ7?p}h`DFX_;r6dqUj?d`91EC;4ml^LqwN@Tog$I+GFfarm-Y6sFYgu ziW>`4q5ev(;(VJ~nh3jkCRGzoubbPMbHJYrYY^nJ3Zqd9ske-O;BwCsPQ8C~pn2p8 z?gm}J`K(D7(UlC6gOc+)2ZvRRYLxg$_4;5kY`s?j%!f^CuRQiO@|z-N9|~r!Lx1QD ztf73Z&3{P3uD~gM+N*=1*Gq?jbk2vDYAWZYj+`(gz?bjYkmaS7M4Uefk*&kkQ+4am zbwVEgQkA`XSWfBHvi(CGV$1E^)`qZ}%@NOMALK6@DX_~$xuI(JF*U&%EJLy?>U$oQ z>FR)&&Yb~vDva_hM#_|<>)x?K?W+Qd=B$Kkn0; z{)0#JYYsZiXRSN3Ppj|rDBNqqtMvkRz$VneibP1fyWD#aQDbeX)w3ghoPccpQ~>Y4 zo7+388CC)5^(c*ywVBn_z4^fDw)j=_R3GmP9o6yRc8-YwP;UeM?0=iFNPwy&cOPH5 zKNr2&*L{5!+98HnTZdS*0o(}yv1>Z%FXt)vK}Uk&@(t`j8FaT_dskPLlr15Jw-_!nLttAL(F zD%d6+6Rue>MOwmT`)mP``|H(+5HfrkEjq3$3rWiB`HUSANzHM9k|#YF+zFYJaVpIB z21{8NDxHn*2{he>Np|NGMjuN*CTj9Gpgkb_XA^Z{{S&i=Tf+EGTShXPz$_5ht1wt> z9S=1vi&vZeiX#8AHR&dG{G z!Hzj=+*dkV2n^hLv_eVnssIHAoZhT)FkG=bA%bm6%cbNRoc6zJ7 zxUCE|f4^c2fPehlt!ue{MW`?r3SW3U z^GAR2MS65%ZwXVGKg(*;tP|Ou)303_DUv=7f(y04XD@05K&_5(SNPVyu>FV(cQSvu z@{7)%RAaMKSUzvvaqp{PhrT^nAMY}~BeAbwb3`|o*UQfew(K*m>vi8tHtQLh7xqho zP3q)wyUk@x4Z7E(I*TDJX0zX5?J^d>I3ViF3@;Q zij}KK{$o~8^WEZo3>sc8E&x#VcyupBeu0rg_C+u3pa`6k|TSP8+0#Dk)uM5ZowBPcb;4qfB;IuSqaqaKXyw z)&X6bWapyZNIIEPnH)*=PWPGecOVD`r3f~&DW~tH@5qE0jg+@kE5y_=FmyNRJ{^GO zjfCxZx)$-I2s<}*LZcZgoq2T zZD+nsH;1FO;&Z2WP*6KE{@nMhDYHhS--*_m&`Zq8L`t#XC`MXcES<#0-|Z`IGMA{uTbPH)y1)Bh+B zHi^N?faQ!H=M~v()5E=$l{y`rSN|p2ATrIy}IR0S+RUxN;8elK!V=K*Im+@=z)rsF=zImST%P1BZ0@+W*dK)xb8k~y3}xdPomfjEc=0NfIZaHZNfz?Bz!*35z`6`nvUt|z|8Akqx zud){ELCWEnuKDA%AvieJgi7XYbGYotq!isV1399Gvp|r&_C*|-} zUo0H1tNCZ90|6xQ;{u~%*#4>A2q$uke8i*LpwR9(fUIH}O2I=zgKjB|Il4aldav&A zbz6mh8(+jRKf8!q0P)lFb#yMew~c->tU6vE{0mh6O@mW)l$s%+b{bbB6QZK9$E zF6Pb5)*{E&m+sX3vMJEdey2otO2Q9&u_DpKb*@MWUgh;SK{p@L>wK2llM5g)!;PO) zol^OwYLmnj^EMX_6#NBRRWE~0#w%z%@1M;%wWlm7rO~IcTv{Ez0|!fFJ>*wJd(D2` zsr4YGI7kABG<4r8^%x%nv9z+E@a!udh3f;I>SQQXxwuE#+XZ0JmYoKT*A$ps#O!AO z_7`jYbXk&!I$7;HPhX^h7JaMF1jQCQ<-tW;IYg{ z;*jFQ*4m^T?QYxuk`TXBZ*iFey}&B%?-@PGyx8cHiGZ&XW!!EMC5_6P(~h30WJ&8+6@NA?&>+{xq~Xy_6Bi@ zS|n{Oo0U`QO!%tXNhqq^;|NSB&_mNXigSJPtW{Hr~;hX9hU^uY1 zdG?DbfXG0{p>8OjF>G0N1&0|TQxEjs?jNH2>aBOqftY+mCu5XTrl zk-(Q({g-3D%cXJO{cR37eW^yD{xb|8rgTrkUI7QAC5P=fNf7c7o8l>*NhmG$Z9V-Q zNnB~avjSR8`(&N zU!T7(JJWJ1jhg0H6l`JIcdrOs9xi6;rOFdDL!?qE2u6bT1s6-0R&Eurpi5$xUgcsg zRzO*4|H{h#=&$w^t^95xV>OQBEQg1hX?6yiOz7(WnC>j=kK4i{jMp&yP4|0yd&b1w zt|v*T*g*N+<5w&qc8ujgkq{(Mbvgtv$a{q>Vj_C&C__)vcE+C&|J~|+3oz}N8 z!vJpZKSVBAkk|l{4SK|LBzC~?-g)0@#$mf7KS~afr-T&f25bPSQiLf!5Us~CxZPnT zy4&r?=sizusBkz=d9hGv-F!`Wa(8_SO#ILYj)3rw$W_^XY!YJq9FLt+<$8jS`P60p z1@G2tjPyk85EOiO=T+NdVr)?gV&Y{W0WCg#g(JQ559<+1;X`}9DI<8HHR&A^WWSR3 zW$EfLg4D1O;~e`uAHVtxmmTo}IY+*s|HXkTj^Sudh^3@5tIhdR#FP@Uev0z@_lh+d4>tdV1!?t4xnnxyvm{ zom$4Nzy5kW6Z!m6{>S#nl-NhnpQNhy2c=5Gg3cFtF&G?vY?j#UF`aE?NQSKa)zpq> z6ycN^c+LpVW&g#*)U>w0gFj;!c)kVeXHMv0tE1Md9{0Cf5yyZ!f3_qVYt5e73gdv! zWY)Je7t2Par)p&MV$som45n0qfG;l z$BNiD$;0J56ZL|*rsd`<2wkhhCXt3n&Uk}uL`CJ#AAErR$=z@gnN8=4j3wZLjE^so zb#qz&!5145>rpzqOq-*#?3B;0Z;~$?V3})~@T}+uG8|5aUw0;hEO{=>3i#S8W{Y+2 zFi|Q;Sl@X*!b;P150eUI?f<~CdsaE}H_4#)A<4Hl$dLU3CYUu^8}8| zX#v|J+ues%7p_)Nwl)&;0nbQ8g~}_tASyPo1A9bPG3WA0L1?To=aqTr z$CHD?W!m(US;(A<4#gNmZpkY$#MxOhB?xu&R+-W|6u*&bbD+Sho9M!+F60}G`i?-| zbQ(XlmNXRbai9<2^@0>$^8IQr(Dbzc`{mK!7_Xn6s#b2lk73dP525kob|#h?*Z4{y zdu@p<^tq-keE2lm_ro@v+IZV{HRg^U8y|~ ztN`#vHAeU7@z~{5%A3*Th3IYc_5M$~c&=fQrU8cWhyZ&GFlU-^>nHo4s+)DtU1`0Q zUdgLAtgd&G$k;Nev6^Sxr=-lpX$Nlc97I7En3nJklR%Rf-q{#kS*^m7i%f1m)Ei(pGoiv) zX8r^w+hBc-6TBX)YV!V2QJ^p?52j-Tg>J-Boq_K+U4V@gyQz`OL4W3fQA>cHU>T%R z8G78^lgLe8PE9=(O4?sXD}TD2P$)HTYsfR*MwFU=D@lsTy7+%o??Bm|E}oS9ClP&v zs&+??0*KA;l-X&ySAf0?=yo4LE{xF=x%(Q!wsgzIc7JCa#F71$=XAiAd}rTi9GQn~ zuj$RP_cvhQGT2O`Qdeb{9}^u-x7eZWaN2b+e<(U?o0gug=$KnVfP_S8`=2DYTryrY zo=a$Jyur2h!8KK|0~zo9{5d}g9%oh=9=jJ#3;AA+^vJPfoIC>VpFU?R>(absBpDw2 z4jW4De2&oF$$p-P9HxBE`SsL~W2?0h<0T7r=AEiaCct|Xv{RZ|U!nG;O$8ibUYz%k zVoM!b)6FOh{u&ADDdrTXYWqw>`nPh5WIfC}anTxupRV=z42I+3f=&oR*H6~+gI%iC z(<`j}pZa>Fw)C3%vr-^dprm*@HVD0W{wINk_AR^gmT{;t-OlfG-r?otQW% zayRoyMSf+gmx|mt{GAXw|Mag{WW(-KF$d5(^E=h{+uqkUqbakG%^@P<3Lst_8EpEU zkbpT1zQl^Ud9TnAE$aL>II?Jtm!a|Gf&{$uiT(3T6}?VyJ(KuF;N{KS?$G>=qtast<>;}XZ<2LaQ+l}1zkAQ8P}bqlSh8+mRpiLet*ii30ZvF3IxLbCd=EM zQFrmQ*2#41%)V1NsVl@XE;~^Y>&qiX05rsoaHzMPN{(cr@HQZdV07pJQXDM{%zo_vIbSMhNW+lXAT&3zPILJk|+W?U1 z*EH~3h&8utcO~WeemxOjPDPbrHNJW+R%5%351OPq(*rz&%Y``X&v$E|@4m~XfBDhLdSzmmNuTfqy7!c$4gF{3!|CT)Zei#v7x{6VYaBE4WEsXIdX+VtrkuL z9k?pD`|Y7O1on=mokvCW&KFaA=oA-jh0q&ihw+Uof7okYXXCn_&F>?Z0HEzH-c|2- z3c5-*3Mu+L*Rf6uETt>pHkY;oqqT>NB9@WyZCF`v9T1x-Ot}up5`ci_x#Zs(9oo~? z;M~OmMOv0|-A`2Bz!1ds_*#FZmwe$ENcwMb#V5%nY#VYQH^ z1ELQlD=IdNqc#kT*?zYB6yXIz{b&5fUMTpBB3gJtnVAVcnNN2WC<|uLHCoK0B%(rwmO#o9mt9+Z&I@)HPN9h9{P}av|Itt+XX3W%#|i}#_DAss z7Mel=e^yg)IN}_0yhzaTgiKkwtP@8NmU6@avbBSK68B?(Jr2G^V$#&FhY|BlK`E4% zaWUNGKJ9V8wBN0td!f-(r@ z>ZAf#y%3GZ{&1`0x~jkYbzY!+bk&r}{BOidd_576P$6@mNC4oWC}l zEbt3jX6=L}(&Wwtul;k%TmOpm*Oql>Xo(;6);`UoU7kXqJp@DrEip-v})jG(tpY=;~5_v7O^oH41^Yc-rpHidg<)1>DnVvZG*U&;* zmG>Ym_`vOWM1Qdg8Z0zO$@9uAB-|r{xRUnu_k+iL2sBwir4gEWR#_}Q0mzj6h`Yoz zWw=RcK2!C(;5+8xBp}~^lVtxY7;JURXaYS+GZkF{&8}XDk`bd}sD0;6EYb^TkOc~A zMeNZpd*DT@94gJ$&6FF1%xL%OPB5VlybUdZ3E)SjP`2Ckl{Nv^4^mr!Q_?(Ck* zqD+1Dy`nIvq=9Gl|5{0ti?=QJE4P6cW~;Or*&43jy*{PmAJ*H`%&mFfS2nM^@T~K% z3sBn$3#k1Dpaac5#HU>6l$55jz*GjzMoJe53&LEg<>fW%gr$$kC9xL)RR+XTVN7br z=abOVQm=-fCc^*lFYYDh_-fN{(qTaQD_*FF`-qqFkR;vj$Jnyo>y|`85KI1pg#%9) zL^>si8iF&Q8A0vP2N^dBS&hj`CR;c+RLQ&CRKokciL(=QZb&MtqbkGTte2V|Q1@q# z>*nrayZhh+!Bumo-u58Pk5`>>)POu3HT>yR+Hw?1dF}7pFZSIh$|B zF>2g)7^_^x~TYBV7AB7epLKG7~9+a`BCG0=Vye&nCTg73g{tjH7nY) z{ttN_|pP4?f;g06@=7r-4p*kl~-|S~vf8JLxrv0uYJNH{wffPercK z9tr#jll-r%dPA(;H&E~gq@u%er5m*Gx6)6rMDWqo=a}=S@yd+Oh}FzV#Hp&PXfqyq z*Qv*%V-D2qT!;m%Fh%{TZXQEC0}OLF0MoWguKwoSxN%v1S9{5VMTZ?NFVW!SV(uCN zqy5{;%JV1b2!ANRP+vZv9P+YwG4wU_*V+DA+g9&+U%I4WyVVwJ-E*!h z#1Jc`8i8%dtU03z_U1*ndfmnJxA>PPzl#Miw?ppUq`auY3IzcY{yi z=WEgxc|bEYEv)`!EeEX)_1n`u%9(Fco<2jv)cd%zJ+?TH+Jk0lhawLKs_I}C2nGtW z17Ej=ON0}I&f2f_%!j{MMi}J2%a7yfJK*CqIQ1xL$#7G1oa@%C4MSoJ!%5wx0|Ba8 zUcdE&`McZ6QLg~)7>r_rjsZ81Ch#I7#5qlO>D2COtqrcQWd~()!0ezb0d=1M7*XZI z@M^r!3^4MutB{$jyj%el=i?UGou{mUu{hh%mGadfn#y(@(v`2SLds&0e`~3ZZ2V(Y zdbwQJ+K%1>2=eEj`lhQ5b^|HoWUivwk;T z#XomsI16|fUtkZN`u8V{p-@VgUiGsWHcK9dq5u>SkR%9Kw6{t}BeI(0O{lr)OYHRl z7t>~C{iU(q<*gE^B4*s-W088wYWV2CIA~e9&1c$sUGlXBe1-9c(HO(%B*Zv2s#O0{ z>I9?tPbV}2jBnI^kT4f)MMwy8mZhJ+sqt$FHoGo9xgx;CZGx;j`xrL^4{A3zn&Cf;Fl1%w=h4`^ooc`$PhP125?S||49Mm?_jQN z`Z0hUQ7D``yc%xLxO>H0lyl*SDI$Xf_beQ0rgN%xZMuGmtR9Pdy}I`aM(%_;CJwVx z-&RzYp5$y>?|F*S^`>6N7pcD5^AXecP~2L8lh zcHXYwahBb<9L8Z+*W_hKvxyJoZ_!#Z$Q0jy0wa{|{YM)IHB~@@=>+Bw@GtP2A}c|p zb5Y(uKh>Kf7foOM#e9h1CX0=i5h+Z%|EWYEbh4@ zh_Mbd?@v#H0bN0}2mByFuj8v8(guaB2zy)Y-_3?&FjLoVh*}Q#2sy=9x6c#AJs zSdw!_X%fh#bIp<>Oqdmqj7T?tm2pP``|8Ccab44uCQKQM z$$tSY1x+n@`O^x<9^~I2{y$hCQ}rJ~RZAZD)k2MLa)=dbY=Zm(;~9XF+XMV& zqwyR81Iqk~iI6ROz#jSh>_+01!}#stF4X1~N2FoDZ=*FW$*-0ChhZOyIe4_4^{SkbHT z2<@v)&eYuJ9K-Fadztp=ADArAtJ&J>MVs5h(o5lO^B|3c*^WAWcczkD-iuSrRb9fr zdG`tKDde9G9441te{ArbNxk**&-G}H{$iiW@fkQd52Ayt8W|G~)e}PC9}uUh{W2&~ zl0(|@Ig~@UX^(TZWqkF@*J2Z1MHr;DZyIfq1g<$$%)c%9Dx^bmosTD%S6B6c069~ufhLHAjx0`PLf8GUwT~{<40r^6ciDz5+AdE z4;7Dk_I0aqYJw*%ywS-Av-UZ!kx%Fci{J#p z=|<}1Og}J{C<;Rs6*Ov{Y`;9Zao3k(>I|&TdSk_s0phCwhb7%>FNUyNxJ`KUt+Np4 zQC+Nq#l}V^L)h>|H@qS}=Ml2@f@A~fPz{brl$mbF&Bl(A>JvclA?uqP>#_iXR9JhUgJZB|zGg3WUY z-}KDyAEz(gRQC0OH=1jTlPiY_<#;0qMXgQpv?qslJHOId-!a$)F?DWZ5!jxrA#kAX zBVi0a6frWcj-i23Z4LJF)mSJINVA#fjnPv=IL}fW2&srv3WLw{g`^(Jl*)}MZ#F#5 z#AnyoW!Gs`tG-eD(zTs9DpL`%eYxHEG3_i5CM-CEr`ptJqOt%p7U1iw3aY!$%9M0i zg=zqemJGuVIZ)WiDaP|S`xwn`xV9w!-u|;tLn)$Bw&ER5`7PhqBcbzN%V;QdfP<{7 zLPUSBS~C-b#~gE$9bd@0whq?6zGPf;>svwikJF8j=s?6Im-aVoY?bCVVc3nslW4Ze z7YH%|Bc3!Oizmg<8M4u^1@egydWBaC=;0Aqu=WRY*G_AGTUiTsDEMs$^En#)!;=s$ z7eY>G;QC)soQA#z=)Uz4i;RSGDVU!oNjU|lr=|D|wCDTss&B8%E=TV%z*r9pX-Blh zC_DW)ORCiUV+C6^JDAzJ?0AsK)7B`#3Jyx~B&a3T9G{{1P}rurtmBEf(V!^^ttZP4 z({JT!X}rBjhE*A%A{Qt&ro_cHAF@P#=g&|Vz_5#Yz)>u4ZnTAQpVGRs>@U<# zdgoADTypaix{vldd&{!W^k5^BLmVcJ5i8XJOWbMR#j<0tdS{!`BE2Tmy>Sw25p1J+ z*~?mS%a8woWjd?nA%&(Ofdpl)Q)cM7y0@rR$Y(fk7AC+Z7kYzp6~N}5#g3Q#e!ZA(PtPDVd1~b zEjx6!dwd%i$ahGx@%rSrgXZ2T2fU$jZ^oz{VRwSm+_}Avw*Gg*jkCOvM1&s_9?oKa zaJk<)<2q6$6R^>rDH)h4m(stRLAb-j<9u-i*et-u)p$FEth>AWI~-~raOUKdky+tO zl8on6s8#F-{%bT*eD0tJ0xVxs#f5(QC7V(~y*bAh9l0zQxK&y7FHERMK<`-3bSY^> zRulSOIJ(dRmTIXeShT9_T6YdJUO-dvKY0HA=Dba~n*L;<>G=_FE#MiO|@a}meD8C$-`qc8hBlYG|vFeo}W-KesZUzWqc?G zms^}e(I%E1enA~p5d@@h-haVnVsL$ zc4`v_Rr0AyzADQS09?I9)Pj+|XLlijk14~%Q#VT}4nn|by|vgl+Xj}3!P2)PX3 zI%Yep9}aI=g2R60lS&h*8Xa)nssniXM1^~J&$6*GXaV0JD0!_h`tR)E#$RBZoKbah z$4v-DwDddGCjd(lEIS1yalB8{6dJsFbo`qaA7O4lgZPU)H}%_fG1!cmTf<2?7~h6R zv#FwomC+!TGShFgqZ)+2AIkWAS{ z*XW|WG?ZIik395RF0ODa;I-R4uJt_x^19@L%s{iTfS}a7X>!hD>Gh#xNS(p*cX&EA znd30YW_zRyDK1RHpe~{Wb=&NpnN|6iT=!il9GeNC;gW%(sIA5ijJ;(Tcn{Xuj(y^DKiEfJ54v1fe84-5Nod`kX9L4H&Ai;5O9ppjgH&po= zr?s3LUw5=B+V#A9BR$9Pd%4*|s4*OtU0_Q~%k_`bECp$#%-6U?h1tiJV?^1<;tB76 zGIlp8C0lAb!d2Fp~f zd$x1qUlY+!*0Mb>6a$>bOUZ|O86K>6K`6;VM3NKW&jE6|-~NczjC&=gYMILn3UG}H z=X&SMX+#-KpXbM4;|PG4E4E_f!`???n@Guh|EJl3GPcM0^xjjK2pqy9jw5M5jAlUK zm-#3(Yd;>i zp53L)*&HWdu6LM7ZAf9BTD*^a+-_IPc@fT+@JTd^S#8YcrGl8^gl+KumY2i~)v`T( zQeFT)doXdk)rtt{?@ra)v8?%_p`k?F7LE?dZfq7!-+-|WXL~lTELn;3B@8_3(e%$4 z1KX`|*6!t1p*u%V)~$jUFpk&w6s&7{ABVe^kn?AnESj$UjX+w z;L3)m@XZ28X9~yho+tMy+t<-_wyy|UDWrZ%@YspFePcUgWH^iJUp}e*xjR|dE|D$-EjuUI9Sjg^C(3ZJ%NFY+cOsC57N^EiClndj-%azOnu=;?+dyhAMf;aw6vBd z^3~ehWcmQt<(>81`uaM6FCR(@+LKt=5ETvrH4dUB4r#Y15`$BaVEktK&moF5?q^%S z)nMR@IUO-NkB=8g?bIDkhDoq?1Ct--Z8G{(xCfMBTP*F=T#~DfNaINlcSaH*wI_{z#L*VHp(@b zisp^Iv1COp);&uQ>>d?WthihDAsYIEx zn@-JpuMA59zkZ%tz*wwt4;AqKJs8--(RR}%TP0A)wx-wNbvmmVo{tAb@`kt+UrC$U zO4D>WDGEmFxA6$88R8kEsq7wj7mxtBJc~#14sT*e{8d%7$$XcnbfAP&Ul4s^`gbv3 zSQO#jQ^Pp{RnWdb2s6!g-ThWn{d) zrr7Z3Loe0S08g0)mr#D+*r(O-GNkA{UF2-2bMhH0Ndkytin~QyQ9!rHPY9{8H}5gT z+U=Nn?L8~L>&0L~@wByEUgK`u2bd5UevIIDIeKfF7!df~jcCE}XdNBaQvIq=aOJ^) znp)@NY`fdIEWIrM_wP^Fw6(&j+i%zu6>vSc5hP%?w>>`;U65T;2)e z42y_B9w++y$c?R7FZl4lUI2`tad!@ZFH_&Q2KXkfd8i1}*miYo_{A#A%Y^JUgh>b1 zG2H5QJWW;|SdROKcrr8wi<)(GbflB2%->!W`{f21PaVCqe$QDsdvE?gA>}sZpc3t$ zdRg_=S1M*RXD+`dBGc zGd`sXv$LC(S(UF7?;w(|l;c!k<-fEVX&s_!vlw&e&b%VsMR#S`|lSF@B3yPG`pAd<<>Q4)A; zE*vIVUG_jFP6i>0#VNj+>mF3<2Mfh&+9#@3(D+VehX%`gS6L zg)u_UruW)DNX`Tw@HT56#&Au`pYha51q8niPr_0_;<<7@``-oT$wCM{+$G#!WC8T9 zZ5AImv(nUipA!Fzy2DMc94>uA^Z5CG9xMPs4Im)pNc-&me1bjd5qR-z%@fL-)If!)P^z9o^ zS(a;Rl3|)+v_Oa9cIb;70XJ=w+++)fdJUO#S>Ces^$bll4+1tVH>{!&Tx@c}GoKiK#on&P%}3Wfg>HNhySzU$4ST+A zFO>kkqK?E%)>2*9LW?CjbslFcxk2G8`?K=Mn}!H&MBhy92ca14(K}RJ?xhK z7CnJq-rSC8g;czZn`_vQ`qkQ2DI=Sv2O%{?YVJ(vOB^Yjje7PR8&t>tXv}w;4WUVw z>dU_dNi;8CwLllGt(E9WcnImU=jjaq5G{XmQk;e|}@vQRaMk zVEDU-)!&2E?v8y7`M(D3^RN2V#sc>MMS9|>EVv7JpYp%d0nVT+;U24fdz^&=c`c?0 zl;_aR2CSo3XU20wDLSCFt9b!rI7xU7_(ihcIE2S(P?5guT# z{BQTw|9@-Jkgz7S$>X#4WSWX6an=7+7caByzH74o}d=h8r}1KSAAz z|KFT|mvBU}W@>b;*L%$ARO+M=^y4{fnK*Ow9~)#Eq*`Q3ZVAh(J3HHf6EdaIOxX{# zeys4l258}x!Qxv9GBQ3HAiV$Abo_0O{SN{D2_@3MbV_di?N7kTfe05@w)!O2=hWhC z7mvr_!=e^H+!Zf^Z|3a+wcY?y|7!S$Lb6TGe6=~CtM(V{S0N*@|FJa%{2xe)Cy-S3 zxbWD45>ie1v$AsS7Y2*}kFl?gs(M?yJ_-UNAq`TJ5(3hjZYfCxq>=9K6lsu63)0;s z-Hjk6-7P7Nbbf2=z4x5^jdQ#&|2T%beyg7K#C+yV9^AZq5t`*75YCb>E-tE}wuq;_p#m-(CDuGvC}%$r7j+iKm#jrqzSHA5N3U8+Zy zQ_rjmRg<0uBm|+^R~IJ{SH*aG00@mZ`$KuSu7goM-urjpV`LQY6)RFR8BH^a({S zFKx`#s~8(gxN9U5Z6wi*JYt^@fkNq?K7Ao4=eC|?3dZ_@0=8DEUPsWP1W6x+qbxC( zqMUT%l2_lNxFpr1ts5sBhc;%84DaV`h&MKk#2{%&6rWeS^*QI=j>q*+6$0Yo@2Es} zhW*&>1=~6g%^Jg}Y@Xocc>A2B8|hEX^N};~2eJZ(lfTgog^)$(piNW(?hd>4%6uP? z+E{ggJkEWw+0w+ZN$_zr(Doynb4a=-_!0JXjJ3Hf-;EY)93sL|r zByH-YRAR5n0la48#=+@!vRT6I;#ATK32!MjIjRYFRSs+S>#&xd`VQX>B z(AwwOvL9>owhX5a`Uxkf2Bh(~P*4(qg3RMa04{v`cLs!azmOsBrM&g+ptlDvIwHJK z@OY7=ELTl)YO3JYGm_=aw-ug`Q|1V*8jrL0t$|RP_(Kx3+d57f3MmF=o8+}e)+~CU z3`xYiEFJvJd}9&pM(4*Vq5=pNB`9JBT%cZ2p(EYwi{l(CG#XO58f0D*Y-tVXf| zf2>}7JrHU?%Rs$T$|QIB06s?bpAMGunX399e?-G4qe;-iowqf9(mxQkAb~ck&~sY* z9Zp5Vwqk9FUfhEAE~+Bnbylx3FIGjM1YY>7N>dya5d?RIl z5H^)~J@IBHnKk|uc&xq7Y$P*3`MH`5?1B6r#|Q=@{~C;D(mkC}!kv938g&=S2%aof z$G%*!AVac43qe?)6(qp8V5Vcb7VFyZ^m84l3i@}_xgzPDX7 zZ9O_->t}f!5fwGk;4;$8u{&Qbr%kencW47v$cDo@T#K|;{QzuJpEkdewikRx7C7ot zu^K;soEaePk5nnvIncnymJN8(aUfy48;pWVgptG@Y>Ib+v0%3cNM^rw7sFkOzl={j z17q>x;q#o`Pyqc*8GNhZLf07r$RQUg{lwxcolObO2-rY-Fc)&~9|*F4s)BTl+%aK} zE_Slo&rwwS{KBcPed+20azMFThFHj2PmWRpuEF&H&lu{(9{5?GxX+#tYOo5W*F8l&f7}9lcX_(??dKTEynRMDX6$=b&$FX8OXeGgTsF@I&?Z@QcG#&J z@KK0>Es2NNv;j)V*GKiTN%8ig4L81_iEe<3yV;EWn^RG<0pEh|^pE~;>&5eV#D7r0 ziB~fwT}ATjP;Yrvs2-VaMeto75wkc8y3c0fU|pIA=W!af;89%qI_+T|G^=^ut_!JM z4>IRN%me=K<3>X*>RCepLzi}j2#bhBzj1@|zBxeP8f-9Hhz|3s!be~o8@5$D7 zF)b7uWV2eoCuIGeRDHV}I|~%lDkgfQk4|HWBR%KLpMRArAlWYXBrAQcPRsTp$%ywD^%O0-&PbLT4@2MS2OLPV(y}|=&M-Rdo!M zho;qwg_v!-p|OaTv*E7CUgCv{yhNUC*7iwd!DxtiibY?W6K^V%X@N`;DDgI4?(!%V z_y<;MN&K7vK+d1K!vCgKZ2%gMN+j@9RkW7VbW)IV)lYQSUQnC#Qv!Vybg%hD?Nm9S zq~!hWUOgfLUShIfU1imrx~A?ei#?*4j#YnRCWEaae=xAMLYA;&d!G(Ye7;Ei`tpQ8 z!10BUkT>oMvfs!wN0C}7l$bBQ$a=X~?N9&U4?$X(!wwMP58-1{ool2B+RNlYZJ%cs zbsXkdc8If^VQCd8hxYZo=%-zj8ZWB99sFXz^8Qr!C1Au?YqCtRwhDJ=wjMPejl>*v zgXptMLyotg^v!__?OD@a9Kdd!^|lN>vDxEcH}xDh&?%Qpn9o;kwB1XT zinJ_1Rhvz|H;$GZRyo!-(tls^>{>T>-f2F0{Uc}mlP!1CpGM$ADvLFs!mg4jz%@ib zbJPL!tDPZ$AUnbXzp3!vUuGj(3x@J{zIy%dtEm_6e0(=la6@3a<1{|LkMRy4>HC>; z_iECZy_hTYJ=BsT^-U%?aZ%Bn4+|uv`_}t~=>3L7gFP#vVBDQ82VJ@B?EF_}*Pmq& zOZXQoTc@-uUpP0~#?UFz0q@yng@84?+)WP<4oN#&cCre;$=lfmhr-o!&-y;idriAwWdhHB-!`|t$qgnr#8rc} zC6I6~S|$I|O@g+7N;Fm{Tda|z5L$FUZ$G1a5hzGI);Rbx(U>wI*Hi7(>q$p z@7}OmU-9W)B~%j9)ylmt<>2NHww08ULVjR2k?kN2-r;vS)Y8g`s<^X%r+KR?-gd9@ zaM+5w=&Je6g3``@f3qjcd#Se1P=VtGqG^F8HH}qPIIph>=GQl7TrztrCO|}og&qhi zNbloAFb%)z5?s&$${3TPs_m7@Aqq_%r@HWuo4snlEB^COp8G!vSg^Z}M2ZRH6k#)E zdf>((X9dgwf6&|qhb=}oiolmDme(RVF~HO4sNtr2t<<%BD-*B^G_jiqAxMn@?QM;% zNa*4n?-`_e94TL*WHyhTKV8{zx}@A)Eu0c&29hOeV-+S*gM;Cm3s*DsdrcHlTiS44 zTa}MgT-$|b!<>n_1BaEO%g0;@NZwn-q?6dW#PJ1be1sF%arFb>qdQs0dm=k zMt@tdptiJh*84WJd9OD48r~K4wcF0QrGP(*)M19VPdFcu!#C*g-X}9zldTsz=;F2W zXgPj4nAHBDD-XnwS5;pqdlbe~X&*og0RmlEc>ZD|qYj93CYF$*5+%Bw?-QiE8o(h& zL`T0WQZo*Hv}ZYA!~YO4s@hnsTI>iv;+kh(cpf?_l1^C&0uE2CrtK)S2%`&Lxd^Mi z%g08NpiuHSH%^HN0eV*R#UtbLb;vS}x@w?XjiU>S<-67vGQy_-4({*y0Au5~n_)Bj zJNta@LK&C=N)GD|h`{^9%jB(_G`-=Q@+qI#tlRu=bjT6n2RNU;EGFDb0K_+sC)*FY z?x=6<^;xV}$V=z8c#&2;2Z*Q1j>RipsctheE6xpwj>vZ3$+}du8o~!K8(`9~Dt4u3Q*(ki`k`JmDDG8{d|bMIwRhI4YB;{fB+IL2-tPtp?B9$WqeKA zDc}OEJnpxL|6t>Yc(TJ~7CD!P z)%6l>cLMx~<8d$rk7f$_?%cQSVzb_2NEwfZl)Clm=ohTDDa|alW6ii4uRW5Y9+oe= zi#Lr%FTm@E9cgfv757w%wZCoen)PCy?(vk@d&&Ub84w8>$tHn^2Sny8Lgm}V+8Jzn z3!Hts{6%%1{SY3y+s&6xz$XD#MDntjp+?xxN#AKNx$3D9`*z=Me${pl_~yJ}@Q&O_ z^ljEJj9c7UE?;SQOa&@}rz63HvHQP#5@z8O|grVvxq>cNQ$j)idoaCgK;J$^swNPvnz%a>t?-huZ{FR<9SW`6f-t zkrr`NKMQ={lWGsQ7iGOoLM8ygs}4B8wn5o4lcC<0a&;=Z+~&mZktMSIDZfYd+Wm=XL}Y zY2aTV94GF0{(OqhRX=7fBKoL8Z~7g*^3RGWsr>`d8n! z0g|1ymyz={o1&h#eVatx!0D(IZ)(og(8xJpznqn)oG@}ULwp!Yun?}%&1;pcSxix{ zo_#7%QB<`k_5BkCB^YtYHVuWE!5XWZ%SDa{OJA9&H4?tWIHR97+c#UCcT)W_lTzE`i4GerYVgE!Paa< zVPXVVV`)2g#uU8TYJ%h7XfXwT75dVGgku0YfRa5mx3*mder#h@{D~lJ4Sa~X+$F#+ zl`W5^PO=3*$IUfD$E^U{iF8_Q33%&)d$V+9{v6-v(x{gmjv19H*1c zJu-Ogc3>~Nr<^C%c7hj`rxFnFbS2f=IPUKC?Gemp}T@N zboE%-)ec}N`*10=hv20WpIU2id+rS>jFGKG+>od3;&oN2oV9;NxXVe0f`W2JP8zRv*Y- zxT5{|$CqCLp(m?#CJ9d+w@XY~(<3hOy0Eb?!2NCc6c38tZT7*PD|e|8YtgjQ{X0c0L`PJKQv}V>>Ym*y3Z8bSU3(_s z0u*fqjOaO;^6fIKxJHDsh@{qflI6oyX)Ob%nfmQwc}HqJLaw!`Ip(jsfYuGV{eE5_ zV_^F|BB5h z2sclA>yv?jL8zd-BWGVZYdP9%z0+4P80~t~wSanq^Bb&+r{rMqaOrA z_(DN6_0gH9jA)7g{ZQ3FWf45ZVt8raZk>tau4Od}u`hfPOL^p=H!CZiYZ5X0GgCug zNJgLbf5y&ZPB0L+82*^l3ZYuM-6nyQvp&LwEzd%|nnCPdH*^4Vx(q(4$v7rWATo8k z?>&n>LcQY{9Z$RZYWnv3JxzwPABO|8EIf74v;D_9&U@e2z%f-m|BPCGusD45SjX1L zG9qa;sg{+efXB`X9C53dMz@F0npvInja-Z@Kg=17Al~`GV^=~7pIF`F>G5!XX<&8> z@s8DQpNH$iXSJ-Shp=-$E91C^eplHE&>8xl7HbJ0)qq!ag<3**?6!c>?AhLBd{~lz zQttC_)mE6#YCzK%2N(xlmxRq0`NqKxVDtBi{I&fU;BP-9R4g%V-WHl*0-!$Iad(NN z>B8JO7pW?gXuee+DrDrYXbLD7lyEz~7{$of#6SOuF8Z z{o+Mb+G)lIGCS^P>7~%5nCP9rV9gxaqJbm|_tC{xpJ?zOws`EfP zz_9-jOjv8Efi}dp1kk{Gt?q_2^lEm-84AU$B;-$ZQhkz#1XSnz{ zI;`j+w(2B{yXqE9*YMB3RG`%RFSTB{&j0EhM|=DN zXgmJ-bAQkP-SdBGpZ}?w8Xb#(=2Mb>6ch}FMv8Q(fOaV)SvW+m3;o6;2Aq>O`<%+r z1nfxQ%P{^AUnYluc40=14~f$O6crlXecO1%IH@iycM<=qqJ;efR$v1;bNOW*P!ZjJ z0HR#;9&kBe(mX&wqmBdWAt1mP04d7s35pov7*yI?3DXM;o+^sU#0J4g`|HHt+cE#A++bgpExo3dv zttU_){>vr_#`=$>@3Y6KLMMJ8Eytncj)3+_iU}X`*5jXcFe2RWLw)THric13f!v$& zlM)sz6e3Ve{O7L+NnA_$W)jK!PbrY6J%E=0$QWcQt3>FXl1?0}X^$`a{%gRme# zL};SfifywIO8$qslr#5{FSr*LQIfaE3LQLq4HgUw=qbOBBv{;URHu0HavpiN%Jb|Z z*Xq?c#{rbK%zc4@8}M)eSIoh@*rJr6#}oVmH-JwL@Q7 zZg~(xuM*7yIkU)pCJ|r;#Q~jNMKF0>5I9Q)^#3x3zunkiI!;Dg6tWWZrh`EK2FM~F zLb$I_I$PfGg@|Le?Wic^aRex=K2tZ+ zV>;JR=%NVL4A_OI*r$A_qV+Fh8m3Z^pmX5nHx^Nn718ZDOM{==3$n`^Q8#n;p5 zv`1o5dt}G@WPL>LkpQ6^8<0B%jX5>23=qmYI5~t&V!*73fstg`7bj~Ag{oX{m&*kM zPJZFjN|1m%Cznc#egw%^E)uTnAIt3mjV|exU<(OT$y^41pVOP0W>+&DsO9_&B^j%f z&SA}wrDJ|6mwYW#PH@Y4DDDE7u_%eO)-1bP4h+vAmZ6lUA4mH-$O{xQ{5y>obxxme zQ(Ey6nJ*5y=0ycz>CO4SCl!GHTp9C42y^uqAjoK#B_CRve@s9CaeaR3c0Tqw2{CMY z=A8^?Wx%#hKu4_$16{*-X>WL31ck1@WAT=?^Jp;NqDB@0gx`E9f4o5E;`96M%i4AZ zg(ltDO!5i8&MN=9hV&2$CnHk|-HS^1f-zoxeIEZ0CHTWE@pr|cftJhmnt>XVEkpSR zA>q$4L;^%1d<3g>$Dv81xy#~EzGcN2dZ}Qi+aI1Dgv$BD=?j6anvb}W2n>&-QYy_P zWO@c7uvZ82RQJR-RY1=AX;U$|s7-XyQ^4`KCD-~-w)heO3QRA=|2d_{h2*ycF0Klx zs(aBwZ~>&67~aKvFh67lZa7{auIoKH>z!-M>54A^4dl&X-GIq|08;wY3O!8r+LwyA zMJHkhCiL^O^?8rMn|(V--3F$6(iezoEW2)C#%Un2cSX=Eh%Pjrk(D*7Kp{*WPP`;0 zHWvY)k+L$)#oet-w41XHlwa3a?!<#*cf5+(YUXA%MUx4l-7&q1hf^7s?DhU42}wi2wr}79 z^vEA-xvkWHhAQ$Mry6IO)=sM8&tKcdTof<$hdh0>N@s%gp=MO>WT15q(ns2rR6xZ2 z?9(H$-D>60b=KVFXVzz$pjdE&J=@Z<~`+2#3Xy%Ok@LVrPY-S<(tyC1)gzOV}B$|>`|MTcw>WK_woT(wb#KmhEKh_ z!f6IwbbN(Wg7>%j4BZ(ly97ufrk$TvyS=(dlC>+7R`HC%_xOw+BPmAGc@`#5{e{vn zetXXXu^vBEB3)s$b$eoLMW-r#$q1>=`n~TIT!(Ywrtn3cj-i9WMY+cOVMZ^1ArJo6 z6Zd4c?gkrFoEG%JEp~i>AtWb zHL)@GvJ{(Y#u{W=a6M~XY?tYH;i8Zb(%0~a1Yj3hmXd&7#+zZ`FWlOvdKENpE23ql zzc@&pGT89}DQ84DA!+$o?alS`jwi*MyhkFR^1EBerr0$^o>sFD)%JfXVk;2u4F7OY zKlwS$Bftez zO1HD3i$C)aHs~+L7zpzT{2Bt$*I(SI_iyGP7t4j%8V!wNlYYkQ|I}KrO#msZt{jb_ zNH9FLkDmP)%|Ri-bTEd=Xs6Jm1#F)juR_I#3Oj2markpW`eFnq)i9z)&s$jW^dCkD zS|OiZ`6Az1zwd`oS=H+w=wiq=bA{`ycMN5S)0PD?iB~-%E$tWXh>pTRLy3siz$a*D zsh`uZ5qpgnhf5pIG4vrRux|D4Ab9{iPv=rJ|Gi;4s7PRcXZob5c_++OdW|MQ*bVj0 zP@fp!^MB9ig8=m$Q9enmjH$Hj@-!$4v*m#k_mOnFAtP7ic(HM;4ae!miTJ$I@+CMp zn*y%IxamDa>_#z|G9Nq%4W02&HvtX&(X%R$6N7n6P-rS(&Q$U97b}W;W7N1EI|JFUV28r9y#7wggA=Y_)xsoUu*|vfitZ_Yy+I zd;==_Qr<+x3yE!=X=$P~?4Lf6hbZ}Kyn4tRhb}?b3kArYwA01)o@8%|)bvNisz3OO zMOfqeA%d5a0P$n6;O99)I|VL*S*CWCZprI1kw^zcs0??Z{S@VFKeZw9gp}?|9}TmB#&FoR%aSiopWU6lq$VJC z0!1!i-)8Ye#@#t<134*IgQsX-MH*S?dX?~}U0z4FT&7$Nk|zVNyL7+eL@H5%7)xB| z9})%25#H_0hh!%95hB7>_quW6b%P2BgjJ=x9pO7I1m%0k@mOhWdfruma&vbwf}?Qv z=0*rvM)cIq+TrdDZD|=-&exDbx{GVcZ_ke=2)1Z#Lz%I)w+r7TLdfuN;L)k!hO^6l z!Fz$2q;lJA2XlF>tdvHji4(H;Nxe4=M0*R-3Gq<40)Ti3^~#xSR9O#&LYBgqfuW%- zd;Ac?0n(1)*w7_T2wdKe;U5(}uG1*22lkH|m9;SQ8u1biL&ifCz;eeth4 z=5_)wdqDTvoew}NIw(X&6UT+B_3OwyKTIJG?pYK!j|y5Z$>9Qkg3;d=<;l!`IeI!bFL!5#fX=1k=R-l_ zXgt-Gz&o8EmzcV2-Z~VM$?@?GK5&W6(@hWgMt{kHlBVel_6Am7?f}cB{-SY&^YYnn zlWcWQuNC_)&uPnQdUw8eJ4Ts-?xgrYPg*x=C250w^D3Sa;4Z@WmEHRXCn`!e*;_=F zaz+1m93DAu@q!PVucByvqvi9xd3k2$hlgr>*o=6?ur+#_I&&B6kUE+r>$%CWRqY7` z?~{~Z5WTl8F-sy;?|lz#d-}V@R%5|wDZrY+6;B?#s0}AxX=x+;)sL!i)N9M_6RoQP zq$q}he$$z9szs=Nun_nl$GhG9a0W3s7nchK!Q9n4YgKj?6IPy;>I3njIET&COfQEk zO0+9%nDtQrs-Rjk5}<(m=i7zIuy2?E;)Mt!r787%z%`mjI z@KlpAtgPpy!gBzV>HhL%DZT>00>%~`Rj+R^%&~EiFAfqw#(IZaT5_ZbaG@;RI_|o{Lb>r;c$0?z4-`Cj~B!jW)WQd2E3dtq^ z(n3!Z6{tvkB1dx<%tA#F?g|-zRJFIXHt!HZaEqoGGYb!emzLf{>nSQ?s${dPR_`{k z=>NFgZK!*`O_m?v>XAdA=RzmtJ#2DhQK$Gdb3poQwYs%(vV%zA@@1UcM|SHM_yV%I zAdP6--5Rq;bAzH9%X!Oq6>|H6=-Q2I|K#9AiZQ&p4TWg;7pV7d6TFzlZ~c5MnAwgG_$bx7a zsKIIry;5J1h@iz#&H~A}fg}gyp_#YQD6_p5EqJT~U4es4?$em|X%cY`5i_b#x0)F5`7^uKs;vbQ< zji;vm>(XI*ww~S*VJ0_4QCo3H*Aua9r{GdV14re#)<;mDez$rNi|#~;9JGch&DD|0 zvqMP*7@s@|FdKWQCT&BrrcHP%uedL^y_AdLCUGtsOs=NxaO4@hnc?R13IUbKa&@_H z@<&)uh8O8grze~N+-kB|`T=vn42aYC zV3UxXoXmKYXx38``vFL1vAU3}>m$DrwO|qE7z+;-&}ZQV5O_jgMj4+JI$im*pEg_ax%9oK|pN4K-Dyn4gy)Hl$8<>Sf@qxF5+0e zpJL2-v1U|3tY|aPp)}cn^(PfwWsOD|-2!_C4m+$A2kaFn%lV1@ddpwZ*>x|=x`ml~ zDs;=2(h+hE6j1}kltE)aGA&$J>+Odmf>@4g&@uaTmarly5()mE>~CVQpJgLpkmgc7 z`8uJCNms^;G#vMKngAw~-D28TH0THV?SPGLk%FDF(iX0`Yttt7&5}3}%Zk|#`pOwn zK4_KjqImyJm+9DzCBuT*{KyTaAhA`+87rg3MOU)Lt)6wPmr9$TF%~?m$-c#_Zty4ZQs=={Hr@kw6=Qo=i)HeT!h6u5N;)+m7>UXAdaRHz_pv-;YUB(4} z@74brIsDjLHu!tB?+TjrucMo9f0ClXycSs{&VW?G-#Fht@g0eakHY;^7nKK(@pwp} z*G!6R4kAd%rT=r3b+A$D-qZ8?a`EN6I-R&c%PgUM5Yj)p`oDfn2eb{Q>L~4>#1@!Y zky@pIR($q_&#kxFV&bWosPBTM|20}!aPawL(UAm(+MPn{ALe8s{h9L>G(q@x)h}_8 z820p77Z2d4u>WO7u#Dlv&w`TsM|duZG1j|GXz%{{QTh1)6j=XKp88)i{AWq>f6XS* zpH;};n1i1POdl|TWlTqSNM*DD(F#Di|6CWl;(6@B%f~>MUyX^x2WKkZtOY>b3u2oz zw6Tom)y;x~tWW>vSFk@OCdFGPN<$|L#Xra@8`qAHs#s0%)fdCg6@6Kuf6xZh;0+W4 zF%ipfiDv;w^|`41p;+|YtPGG1yP()eau?V&yr$B|yDRjyYPQPdfBjw`LMERgAUIDP z56uTDJy`9m@HiviA;gXGsbq;Vvt4wY@GHuyn3^6!LLpV$vDW}}ExeG5-B92%E#(B? z7**0WSJS*w%P1^Q5Mj_8@Ut)HZ}V2ax>%eAr?JNJG=GxTp`&LkfTG;LI{5IJ_6Et^ zw?6dSx@)sNG3f<8hda25p;L(rM;G05;I4ACdJ&vd3K|K88PwTMJsvloDV0$pOy}#P z5+!jvj4B@BO10L{8l2AqAjSLtwZVx<5i_S??N4prHciF~nz2AHWRC2PB^-IZ$CMoq z?|U;hqvE!{hdl{=Wdo6tVCq7fWH^tkM=i%PfV7dY>nQ@QAOaMa{ANiB!yzk!qCGlQEI11)07@S({>aY` z_1qRnXk)IU2Ny-@h;}7&y zXodrsv^zm~F^rC|(rhSfa4>(b=~C9vkQzNJM~h3ywuUqKXsP9^h=@r1g$W6Cfi2+x zEO4-Q#@xGd5V3ULmIA)Aja7ii2G@`_YRXyf2Rm9PRczs<3gw`^%I!G(*=6t|Plh9n zn?-JG@34yq0BDm(`S0>O$*WsGf(&b4>zUSijc$8K={olvaKE!4q7e;#U^s9UjL%t^1P!?W9=!oN$sdJfum*z^Me4-5Qh_oT zI4qgp{6H0U6=1TZXIq3W4-K!!qc=gRM}@dN1$oeA(}nSVkT4LsxXJRE?KGR}snU{Q zW=?FhSuel$ly)3(YMqfhs)aSIU^!JD*|+G9ZfOAv>qa*?r7_9 zHL)3UQ@-C@lJX+)bKR?wlP}H9is3uCpydCb#<9QkF?B~;gu0-ExPSb?QMzE(Kmse= zYXOg96Y<(&u<0P6TrF&R8-LVjz(~6gcOkBbFr|M7`y<;?<&eXC@y+S}{xdF&y(9E~ zBW2=pZAYt8i{)BfHfu`CzWb=Cc|a<#*v41)Q^g4^onoy)csvLBmQSQX0ZH0i?~(e1H6HUj{X{E1vL#NjZr@PSy$ z5Oaq%0-CAX=sY#?W%1N-@mMxT_IOqi&C`Z+Jw>pWo3O@CzjT-w3E#M${BWH{hAq4E zZ$b+g0On4cX9?KB7l0qse7Zu?T|>jzxSO!uR4K&Do&PeO8)|OvFtD|75k;)3l!fp?~H+MwgVg-L$~LaW1C%P)nK5YOiR0L%?fh1-L)R&)1#j) zqFkvGHF>W)X2WX`Z0a$caqPgTjD)qm>`anX&I&B>+e$p}11-A2D!;$-A3okbeN+Mi zzKQ^y+~Wv`{7%mC&tLjK5(!L+|Fj=4IEO_?&+UX=j23XoXXK{#K|kT`oYh#$B_+Z4 z1ss|ZAR-fz$F7g9Jt8SDe&+Y3elPd+BHqc)L)a+>J z{0Sh>EuasA%$|W!`<91DMiBZp;9h#0lhh^HP=hf?F`{qf+~aalMkR8x)a(-&;=C_D^&dsX{WePAqI%#L5RpDUI!{EZ8;q1sY?Q(iOK~_Pr zDi8EW4c%nt2(U{&WHo$o>#$YZY|efvSER@Db#k6-Y0*ox=<+Lq0(QCFveui$#ju8o z;Ex%ZCNIl^ycJN0d^q(zxodvK4B$B$h}MJO zyYP2?ueH7%zh(O>X2Z+36JnU6;&!^HT};w^)4`z#EFHlk2#3YA!~q}_&jsrr&tY-6 zTfYaGMH~4aRi3C2tDwDhli`p{Pt!8hYcqfGFO#ht?ffv2d5q~sSULY4VY z5s+1QHX2U=r=uTJHmGou)30#GMZTk&>5c9~B)G0c)Q`BksN^i?+eeKm8!*FH!Q{y1 ztjcY*QSaT3r?VKIMcG#8zPT(;I$k8-l&DTi=nBYFiGon(^8DSN$o5P4IB}70RKWhBZb6tMtWheDX7AG?pcFqsEBZ&e0`fGBt z)}<}%Ny{mdi^lzK2Q?)l$46djASp&=Ah+t^bw3f?$X|vw2~4|-{1e}`xxt!Cpo31&)(c(9+1U=doU{}2T(mLjO8mqb8={DoznoY zwefV92eip%o^klzWT_96rgQcr-&X~_cUS5C%K)6S&9Y+!@&N#n!6@p+r`r)rE)0Sm z&_YPYl{wKN1{^wo%%Ozk7v}qK(>R#}RXK5qnq-^(CR=PyJ`;cH-bIBON#Mrq7=wPS z`9UYRE-3L#Zlenw=!|0+L4eBKR+tU#SxS&ek(c=fWXy|`4qF*8Y=$uLs|fRs478$k z!CfEUj$&557}NiQI{?}8JeTyj%Yn%^gB`vNh20~k!OPpDp?)Yft~zO6d!>=0B3 zz^dfsdT+fWP9W$+u$E^`KV7vA&gk`z3Z@(U!_K`hbFW9alt9&|-DcUj4s$t(=msGt zq4kZ~{)Eb_VC+N$7<}a>#gcOJH}{0%I0}(8F4OK*c^5dt6$XFY^#^9++uNha&Ib#w zTQbQ3-<)05U|U7m;ehiMYSD1L6H_o3SXOKXUfvh;vt|mDJGd;ArXh~k46IHiOESXa%W~9RCa|6h`je@dU6SN;(KzvMeMAu zwu)sKm!!yDYm)-nr49Nll#ci?0*aRMj$2z!7vl;6Wgl9^{QR5F;Ffq7q#Q ziU&qV>%}a$TYH|0&P&Z_8ZSTWY6=v@#2X9s7P;J+WT(wDQuvL_0GLePlU&OHp^B5; z)z?LzzEVF&jProiN>9diARUz4rI!<1o0Y?u)OvmAuD( z6LwbcKE6RqfK4q&Hu>mPMGO;&T&1iQAufl$=?^}BBQo_2Qqhg&R zNJ@6dd+%GAy)y2d-xn!)4iY*&{^kHo z8tSRywZ6leBWKpj4O8L(*Qh5!_*yOJJlH7fg@j58>=xv&0GSJNA&B)bD4JeX9V#3m z%8*mk--qi0*8%VissZW1?UXKb-vW37QLe)ib5B(jIyp>7twD(06sWjAElh?2^Mohs zoj7k#khB4ZQO#c2)v)$eK~B~Co!jV*3bSpadjDECpG->KY|!S@^uw_d5PKef9}-br zjUie?Fi?BYsYd4Us`Hbwdi2^(_=KzF;ayjiV*3VDvvR}#Q{a!_y9nyu0v4kpT-7RQ(RtCG&1&3X0i;qM7g3)>&)mqt4y7nW_iqXS zhO3*DRJF|c6MizRI7GTI*pi06@-PCsMA02Ty6m-BcfugLTBaZ!K28{%q{gdi1hgBO zdg{n@4bgZMzd-#}CEFSrLK+9Kp+SBHaDMl4vA@gjiCM7sc-hd+33w)*aXn*3fZrEddS zt3lL*Z0xtnFrssJcOoXt3MpCnFMMQV-YQ?t>BR14J-BTA9DBzEY_iH|(Nsm)Jx|*; z#G}A1)srRNbQJrCq>bTZbYvj;gVWD|PN$^#Bp=gQnz~#YlGEgT;evf40^v6xuO~m6 zIqbksegt_>0XZ5CNOOhE;$o?ISo$sBp(4_V+U#h#z+6u^iVazvO<7vAW`_6=qj4$fi(?pI0AJ_+nq|1G% zk#${~y~_LQgV*@XdgF?Kz%GE>tCt@oC#S<5E8zaOylWFs@(3L~?+(FM#m7D}yw~}pRUST=x)A3*QEs&m63tzzxMxOCMd5jkdC@QN zoY?g(X2g0bVv5Ll+bm>zNuCTDE5aM}SkbuKr}2+r$@f&HhbMTQAK!?(T;8Pq^pJI} zCPG5e8koVAfQe1Zaj&z0?3Mnsb*`AMf0|sIzqik;6%1Ob9*o=m=Re%vdfgUD?$kQ@kKH)gbNd&S&bXRpBOm7>r#nNYd^6-rB z%edV5MHT!+$Ac@|N_AK&q*SG8OTF85)sbHz3j&>zXx-)s_$64Cqv%~}^Gc3K_8IH! zmUCPrl9|D9Ftc8h4SjI7`D;wuIKmf1Wb*RAnb3|s1hfZEex*+XAx0X_AB8bM_CP)| zCJiZi@dJZ8U5zWm*$$|}-kTp}0*y;W+PyTjZxutYwXl3aHw$(Ja@&pV`grG6#n;1= zYas`dxJ_q#i*!oGiOXN z^1r-$&j%K(f_}g5dWQn91%A+1rxQxblMQ&q)Yk!Fj2cFi!}bP-MJ40AhTu}IE%86` zpZmAvr+W&v8V<=!JxS#QnszEBZgH&ZVYPNDr+j@9l`Z`!i?SlUJ434j=RJJ9|}l4M?vnb-A5A-D|4 z#1Ev4aupU!lk-ybV#Wi+(e$7z<^K0fgd+pahf}dFW!5YLG8C-LFGA5DYTplnmnH#h!a4^~$8 zyY%Ba2&JZjy}iUIWN#59VvHTBxd$c>Nqle(%wFs5k~6zKKz~s`tUGo$fE=~$Q{QJp zk4>@T&qhHbdXS{1_#!#_fd`|5L@v zeS$=EPU+xHp*b4$Obq$$C*ecY|Hs@{21J>*;krntL5OshNC^xrT>{bw3L+&vlt@dC z(jko?DJdZ-DI=Ydg49S!ch`Bw+WmHQzwex1$3LzM^S)2qeP7o-aGx7AZE$xQdczBl z5(Zn8mI)CzoBEZQE8g&`wzmxdwCtH|3!I*ox0MM{e^P>;xcW3isMueJeqrG1{FHw# zm?*O6DscvuJmnk?4VG_11iQ;+2%oc6$@S=qYC|hU*Sjy4hfQ96-hbZv{EyYVOs0m; zMBT+AmpwWJ^DM|FCZ*N_AB;amy`LZMK2$`lB)7?FfGK|kHPosty5S;+=9eKd(_8&< z$uNhOBJN)=hynTqPhFQ$857>6et$Xg`(rBSJ8qWB$wkrcz6e7u?E(aOVL4G3!zPGk zcO%?hLac+=8_72GeC@gMDFm6ZuvI~yaK+7}P*_fNN@r(DAQNuF1Z~x+CGfPJXR^KC zwYy|9_Gkr9E7P=Phrf;SU^rLIYc7Ag%4?GCj z)u!@9_9zt9pV`BM3yvqB(&uoSuNRRaemj(wLZL#OCQ#T?AnxS_Y5WQPq?*PiL@35A zvp*vAJ#GaDvlNTi*hV`{Xpw4F$`InxgJE)>Vztt?a#%n5fQT@y6?#+)f5FT@b{{+} zg{%%?eAofIdHX3X)zv!0OnO!)6b81ngU_E2e}UhQzA3JI#fH-7%JQwbZ%t z-8=7>aIsYbU@((@^I_<`5lrauR2h5%ap(bmfg2!1^gNv~fNY&$ zUO@6G*{ZQ!rMf1rbA!-WaU4QfOJMBXA}q?G{3W?GUt5*>?Wgu%rv6x47%HA}%zLh0 zhU?tRGuAqCkA?fTU1gNGfPx{UN5C3kygB9l@+uHiCKDTt5U z6s>E=n-_JCRw>#?jJ;}aLNuOfSg1mr3%25`oGVMr=DHENVmx6~-7c$w_NJ?(-Cm}Y zN74;$xx(D!2B@^}ljCC#XfHUJt{%}+?+hlzW58!mJB3XvKgU z$?@99(l4Q=`UfQ5n`Uzph~ro7cJOEso;_S`czl%?WG&vM6G}HP7M)_luy3TxqKOMb zYAFNsTrd;R&pn?~u~>sg3mNij1tNW6gAS25w!Ufbfj(>OXtNLwky}k-I{9}_9@wf>?AjK4=*>6dE%{13*WO!;CFwt43IiRF zk(nc&_R-x~*GE;bPsP?t&9UR~+TC3I`TeMtXP280!d}D7xWnT>@|Hi=Il()Yd?W}d zx~s0Ze14BL;qmMq(TXY3nm@)fSY{#2>fp$ zXRAGey@c(BW1NmQgduouUe{sS%6KyPv6Yw0cmmMWsXr*XiyIv`jqM;kxr2vgmT#R` zF|k#_2uPhZvel_S7W%7RGDMfORah{zOqMyg-G16PUM86g{-(t+xYAvQPFD!EgY3QS z?pPXX4#UoVpb`Mk*P8t8CK(E9A!HzIe`n-f`hF(!%lCT0km-9u|MK&5bZ0K z7J>?!mPb9%@q3m)heYW;1hrYf*ctXj;|D-e$qZr;&)RDpN`>W^`)%LQVUCLxbw&G!zIC_`LzxTGJdO1ZyA`SM#ewU34xab zON|Y$I_*0-Tq$yedx{p~((%BlJh$ zWqN$JkwD0Riry?~o9B9u%cP=|d><%c@~s$J4kMt>x{nPj$7_M|CXKg+0oxTpRk8f# zE@LeJGpkMZ+78CAs=O&WQp4g2X=#6b%Nsns$$W%9iW&T_Jd-;3$Ol9cP8&B!Pi)H| zrj^#47B-FqOewe%h|neI>W;?2mneb;a7m)?_^jOpz^B6Q04XS8qv{4?;I1dk<4nL* zk3SPD0c4y~M0Cg2&;E zG5OBX6K~L5?YxboZJWMIiq^D+C>oC7yJ=><< zDp6@VWB?Gx<$)9JakkFh0nZj>g~kcWpheD9q!~D3O6M&pf}uZgC(-I!uh%mB_+2F3aC)(9)`P+ALP=^2A0)X{Kb=bl>>{BmmUVbH-Aechnbrwt=5J>4k|t?qE;J1N#`nZo&}T zKkf0{HDycLf6q%*|JgoI%_3tW_qiN_)0LBPs_In_?OXLTfQQIEdqS0M%ik)I)|UYFEv=c4cQ zIzH~>AKT6tCBr25yFrghKGLV-Evd7;Z^YjjN6hGW4YlkB2ttF2XT1wE(_#W_c*pS> zJS_vMp${+o6or?fAVR*3ivJ{7PSle1UU)K4sEP^Kj`-1V%3LjGo2pp{aSrs3l!KKp zN*8A4U}|19Dni^0m|*Z}vOvApnKQp1zIdFX=)uUMOvNQ^a<8GoPq**(UX||{7ke{0 z99QI!cdE2^%$iT&5z6ne6KhJ=w&M`{g;BuDQauvr;)kGe_t`_RjT!&FdU}ri;bZ}7 zg41z4#R9&;%)SE&xqkF-$wvL``- zB!dY^bFYr~bfiEKyq%##`(z<$zO3%8<-PsSmm!VS*$=t41@b?X>0eEZZlf#I$>bOf zw!P*KS5mP+zF58LI3VNan>Vk0O~WR{OmMv$Qvb|zo*X^_aSu30ZrX$V97l22NE+z! z$6}8Io_f6giPOlTSTt|=VpSjn4ZlsO{;k|nUiFYahq5U2_VHO>h`ZUk^iZ?eqg!&{zo_?`+y%7b0AJ9N%}8F+=rF)#8>x3r+X%&^F+8 z8tKc_P2vZWed3*Q2?#7NQWF3rkG?La!i^d_+jIO#YiYRdsNf*-Xui{PCUwoy0qAC6we zCeN(eaZ~JyK``8uxF@-mvN=?pr_DA)#CDYCv^KWU1T=Vlm80jlZzaz_*Thnyn^6&{ewz8Qw13jkBdwDFepV2W^jBkq7J?go4wz=eGQ@fXEP@ciMDT5{c)Glu5zKkj@iQUIOWduF?AEC= z$L8Tu9!Z-H3CTukoLiGLMf!nuVNT`1J;&nP}P`i*kKY2Ee zr#0c+wEfL+Xq`HCZ&@g3B;KAXT72gG7s4bb2a3t!D9eP(W{II>2QapU(_&4kiYlBpH|=4;?$K%^cl#UP(O7->KNV-(DM(&qpM!Urf)TD?VL$QZBT% zpQf4efb|83(^EmxM1E(Too+cE^RdxUi$Q)f@I9No+#Yte8+NvzN@JcC%DYG;cbm3lOlOAI|hP6>#73izu*6t%t=XpHV}cXz-d`x^Um9?Y@27ZoG9!zJUVU za-}@y#Q4)TK~%ks4!6z4MnHLCLBg z1OqrIvWx%pFHyJ9@D<-Yv^7{Egk+3#@sB?|AkOkL+@X7qL;iM9fcWP4cjrS`i_#M2 zxetwFIy;C}%Ry;5n)KQjDtIy4+2*l#A_CT3jEawRAP>8Mdf+5xMhBweKg%Wa+70oF z@|tw)DamqZc*i%|EHIn(mCz4t>4%yz@gHk zJ{YR86+QM{lb?N-I{m5qktfhr5%WH`WcN*ZYxBP0VSejTCX=O;y`Ex04l>e{w@acl z)4B)1a3mjfVdN|1M7ZXu*^fI7YrVSNs!vsGDzn5PRB-ETsQ&KI+mE@&{X!|H90qzD z-fMMMvmlT_+K@~XnADm!ZO%p@NoJ15lun6zba^aN8i$6yE6%vX-aS)fy$xga?8xi5 zyP|H>*;!}hjUw_kb2M7BOFa_qjEr*IjYcL%9-;$z`Fnwfg!suo54v zj1EYBoJffByg~G=212EfKkdXmIF8qzcA3TqBOHyXE0m(C>>TyWeezKgTPwC+iezkh z6_4~?7a025N;1W8j&3FUNNhyZ*8JMdFwIeq({s{~@(wV7giv;>&QKV4~LP6N%CCeCf*qdK>Q=h)FR2YB$)B!~6@Lvbx&Zlk-&jOM7*DA zP^o8oEsKF)dRnXMf?=zjZes4!ng`t^);o%Mo<{@qI??f2f2w6cT)7`dt#!W)T2LDO z#e~b=eiwId_ln;lOMmDYynEKTd~=Ffmm<0L0ct3yk~Mva(0LL3m=crx(eI7qI4Zv3 zL`_xX%lp*TWA6PSb)VAxCAE$r&xyK;07Gzish@N^b*cjJ^al`@E=^O`Dd*-1??UnQF>6AUi! zw=2N0e@;%u0{RPj7a(dF|4cfJS)q>3P9i7U>X|#lLufoR@0!#Z6G>)nm&UVF1AD)0 zd9UyM%hNw&y%OM;LmLbk*g?jkYAd+~?7Yen-}TMF*%|3Pq{IBC6Kwh|jmq1~%vn~3 zV?+$uSmngm>s9S#qa_sfxTW#7!aENejh1dpUd)(!Bo%x?Uh0&ZPJ9Z`twRUIr+Psq z^!?9G4`c#-2Zx+QC7%2`iognkwJ5$;2{i=`7Q+?%gB3o#il&c|e3xBhlNbq3s_K5TT-x>4 zhwYf;u2&dXT*(+>w~KZekR65JI!IZkjK^KLnl~R9Uwm@-{nfx4iyb5Ct5(YOqGmt{ z7xlJbBbC5oJw{K|Z1(Na>)Op}ZJlT}x*e@dDc9_7^zhm&_bK04&&4;$U?sTz_zM$I zU!RhjQTEGQrpgDsMnSZf8?D|~~=uK>$FS()N zoAqS6#d96;GXytIN4N^z^``q5Kd<~vgk9a9Uj+fQ$Bw3Y*zOLR$rE%?0s&{~abOaw z8}ym$PWiSOD>R>l+pODz7n__YgfeQ8c#}-Xm4`{J(EU$KAIO4vnJdkg9ZFalY>Xni zp+I(Bl}^849gDoX!zwsq`w_eA3($oT`n^vSLxD{YWy-+PYdxGg-eYar-bQ~&4s>V; zrw`OeimzVa4v5@w&!PP$U%ZQgQsYmPn|KD&nDx`>?9ZNOpvV>#ewgwfc{lwOO|7+k zXkC{=-#dMv?aLiux0!}Oc3F=7RB6=EzTd|a#~>J*4xV|#2*c^~o8c2k;$Stlniw-2 z6r$_Ou(Pzx(=-?+d~K`xoJWS+RUF5te>wW%yR_g2Rk;s?oR6q-w8@O|GrE^ z@r3Xh!@3KRoWH%s@A>k7cGUjAd?y5Kni`eA;*+SI`o?-G^M2MO>FWt1z>H+r!_Dg;A&phVoejAqhp~z}$#~$yWdr52j z8C9K`c+baC!R3?L*+$5)*CgqPF>kla=>gAKTPgnymGO0%k!?^nEKa`X-aO{OWSF#N zB6mswG1a`p-OU5dU+>=g{TjlZ!qt4hqJ+tr6F=ddbD z_&vV?y5gS=mERa;5bB?6#h>(XWObR|5qk_`5claSIxXa@2IX-}hRJMPOLjH5-Y#Ax z6FUkpan`4gzyOKq*5v8CpDz+IsPxA+?}p+;qyIXA2IBM*QAv_v*|9Thzz>Wp{aK6C zq{_XixXmt-?ty^q+hq+K$CuC4gDgF_beN&^D(pQkW@zqol1Mb0{MLpeYn1S|2jYjI z8Q?ZtJ;8Ez+QvIcYK9`~t~4^RImXaa_;@vH*g#t`10zpGO|>MB!!Nkww{`xS6b3f1a~ zQV)N!ko|mEiuL42(xG8m=v~i|%r)0xp@R0n5^Kv>+tepIJM=F9>wcJ_8OflVrj>7+ z5FaLThBqC<<$St7awqImS1qU^Rr^B`E1MGQiyIFA%L9>hO;CSII`*f6&?S~Cfy*+# ztJ<91U}$;^ha5DAytWdVW)1T6)yA{9KydoKvij?28koOcD5xuX0@2&|It^nwbDUGx zI-RUIJrwhF^)BbKO{Lw@QUoRP7w@UvLa@9gIm!*^np0L2-rmnUK1!)Su3k)bgQJCl zmfq2J@B;f~rq=q+%3UQRuK!Zf`6`jXL7p@(d97!;k;ld&MgQ0!#pUj&I271`9y^1k z0Z1_{o;PePdBxe}kX_0tO)xhF=eFK9v8z%&`S_?GSy1M*Jz5siU5Uy-ptN`o>z|CB z?OP%JUZL=7kA9t7nLrw{@K9vSsi7J8C@}Ot(Fcp?QDjBsnE{;7A*;ID?c{K0Qxf$_ zNvm-L3*BX=IEiAgItn^yjoo3`Ai-lG-UrC&f$|uLI0Zin?7clCX;OfuR*4iScQaxT3s# zA{y8HTD8uL3z4qBRWf-A@ASO9yh>KQb41iX*Tn`Eb_JD>g<1ZIo!8FozG78#Leuh7 z;ePnCIkm;d{$tE?a`}oS-){e zbv(~;whAPr#2#_NA@D1h|%yzmJTt_nsNt@ zk1M>22JpI~!)&6N$oSOVBrj_*2G8pI?KU@&sKk6Ra)QLLpNtrs3<@!9-V8ijZ{TmN zy#TQQBKNl{3{&Z?8=!ntIG&ZeeJz>Gu5meT$nFkC$0nzgDgB0gk2OV8~bJ1nrMHL#PwLx*FM_t-eLvhPU=;OZjKK zHPi81z_Ec11p1p&ord#Cem}kpHJbFk-G!_QYh9o*|4YT?M;ZSbafYO~Q8PcW@@XSM zQiRgnbu9JU%&V^DJFzbk(9VX)@d0-%|NLYJahM^*;wzE*4IZUcHh9H@xRY zSL4tQ6FW|YI`4>OU@S1@(?>G~9jF<7PtdW^15$58`akhmYt%E35+R6$0;^RL4VfvV zv5ZD>->4`~F^^KxHQiIp3Zr~tWDxn6LW2`Aq`T&{Ma=P4)b*JQ-;>}cTxh`JgC4cGVd3)VQGTy%~8(CNI$+PhbOD9=pmb)_4#6ycB`{5&} zAAv*OKURsZe7aFsAFE7x?9t2gBU=x~`bz^i9+*?EX}#=Y*r$|Su)+;2^6^@?Rrk-C z>m#+!r=w@n%?t>wj*0N&&vR#&Yznwi;TLr&>J%asxLC!(4NA=qK;(&x zKXr^H|F{{wH?Bi#04 zjRA-;XeG|6$`ka34H9sKS05q(@ytw%8EyJZnW`{w`Z{ z<+qY9tm$dY7;6mZ^zO#UZmz=#7Q}T?VB`f-R4wT!FyS&aNi^^DHqcA7uLO`zn<)4} znnd$l7ll?W&kx7#q=Zl)OTV6Oye&xDoHfE0)F%UCHkuE`v^E$hvdzDji949&p!Vwo zsyE;?LM~m^coTjevwb!jbisJ@G?Nns#ZY9UqTGjOpdjZSV}xy)yz`MAM93-YeR`00 zSwfBAx92Z^Z>ksP9)u$}ReMg3StcV0H(`eIIw;GLcf?$e-i;{-n3Ne%&l9*C&PZR; zhHw{f|1t&24&~+L=#OLsMn{P|uK#=OA@Xg5;ds#d#xd3~v+kPo^z`Y^EK!<{%+X?{ zGKJOGLrB=~URkx_)tYUzqS7ajq`-Nle(4fr+>QQmUbQOEalxf*zoObl*QGt~TTp>} zXND0HcO`e>?@Ynb-^M=5<~6Md9QeZc%*iVJGAN4!p}idW=?9+n*XaOQ5f{g+|ShwL0g)l zVFJ={4IHvC$eJ%9aS^{R7y*F#`wr9+Uc!r=ErBf8Aq6;Z96Ico2d_#jqz=HCn*^8R zCI&uYy7i|mzm^uKT#86k5l_6+1m&=->^qMyOEM##{lt%pfYSc&(CyzBT7%hBH^m>a zx1Nu_RLUH8l&~xLboo*O_R!6k^E5hrzGZ`r%XgSplme@B;_DjWvX`?Yp*0A zhy;=^=|A=xDEF^xVj#F1aKao%GXdQNt*#OPya7_-l-jh2iZAXQ>s7|wnsw)m?oN2d zL@8~48f~<;QmtAc{Gx^n__>8~YRF1jHyv8R-0Lfn|Q*7&w;je zxG@74xa-t+MUYtX-!95iOCuc|}+C@cr&95GXuU_QN8J z6G>!OWP9P!zAEm5T0oGACmt$`5q-G2YU9AMG&PNeFHR|^>K3H~Llpqle1l!?vV_9) zpOCm;3z#tz)c9S=rTO&a?5KBT*Qsg1(rv-g)voTj18iD`0GwUpDsVi%Y6WxAL%*0X zb+Ty=kS?)OoZA2*4G?G&Puc!mrf2REya8jr#-fjPE*DTb)l#C{U?H=4q4+Rwr` zNRtYpd74}4Hpyv=0p#a)(KP^s>pzGIzme`_H2f!AO8?XE{s?6L2Oa%^A*(<$-%6G$ zd%swYU$qq~bo#l`SqB!u8LPipOw@DIy;wwZr}*=pbN6xI^EQ%rnDe+(%6?lUL*eSA z882hqfOXvk?xEi!JAUAkKKX1PyEv#n8?+ue*oitD!?t+@~mNx^rj# z*tjjS_fzHWsHN$|27?E~>;?nX$bfR0aaxWux$($=>{0-Ld3`6DgnApb ztX3Vd0R&st!LIL?$_qgvD>iXHdEcUqxlpBd0kmaSN}wzG8)zXg8yg^U9AY8N3h z21?_o$Vyfs_d%L-&51RbLsiVzWIRV<5J`6|ua~H)(g?1Uz6W@DbPJgWz{Tr*FWqD! zP+-!*x*N-zX2|ma;{worFmTFc+5Z)$Sb??>6QOv!)ku?+-hyYKj-~o|JpyJ)DuKV# z=v*UmEdV3MX}g<+XoT!)Exs&~5TE=apFyN7vhpF6?`oD2f5XPwx@?i`Imm-l9>(uT z$a|PB+!0RSPvuH4@DzJLQEtu-61q&j4pW1 z$I%(%VLg)e(E$$~9i>GluzP)K*r={8v7xxiD9R}ZS9>@@vX0?l{s}8Qd)bQw{s4U{%fGW4GDFZ>g>^((g7xk zyS*^Qy)SofcJSnAHR*t11Z-(d-CWXQVq>@Bp7S_Ur>PVO#4m9eKhLr{>P1v;M~1Z- zS?0}*TK2ozX3#(h3vgoZ8?s#mz@+5viQ`iGT(cYS zd7Hga(GqAOGgG>QB8;9{$_2o52RU9p$6x_LvzNX00(1n6+~3UEId9fbgMtV$lCK2JP_h7^mODIj2`#dW4=C5YMblfmfVPv*y=6A~a_xEd>}k|Ij+98Wok z8P|Eg_uWf!la++Q>bK5Fjz_uery@^lKm?j9)5d`V>+~EiKqcuZsm*x8;P|~&#G}=Z zyY|b_S4nU@f{rXn3=epjv-8SVipNh5i1#oy{Dm+ncmpvYBdy=O9a`dP?KZ630~M+$ zG*}{AeX{McnK6B)2j=OOaE|@a16>+weS>_4^J=&+V2rg`L9&ba@!V6pPv09*;kD`?d z4`5MW8CUMl?*RG+xu|0{WbF2BzVJ4kE31Pi;sWgfvBN7L=O|ydh$Xo{1T-moT<5u4 zhJYeg4g0jedAL%Cc;wW;Hq zqX$XpvRVhVl#VQq!ezX6RY5+RkE2z9FY%K&5=IOo%XY6+A}hDCBd9Q|aIQQ}2Mjpy zJ<-a1ZEb)&SyE+`zIJQ|NF!^|6Msa~t4AAf>j(rN*bHEX*j5^yoRlnlEItK$I6Zbj zGDK#X^#u8>N0#|qoggECL)Ut95D!p9WB{RT+j#T1$^o3RzRUpWK@C&yD z<8i)HU3{Amhpd#!qG~g~fEg1(kk$w_>jB3y?dw~TQ@AFFB*sZ^{&5973nRL^@?`ni3R7Q_HyzX72Yjhl z$L&a-kamW1rM=nQW*(A%VlYc)@Ornirkw+2Red%BLH?@UUQOc)pp;#Ir3qA|d$A4^ zmn1+)W1Pg>sSXinHunmU$L#INz((4Nk}d&mn>{u=Qy_ocZ;H*ZryVC>7E13qIlAg{N2B_Pe!mB|IkJd>3 zI6xsIObd3u2u+SBsmI*!?i?=6n+v+x8Sk^~|31?WbvGm;kE)?g?PU{KfdAkABkEHtC?9iTo8B1K|l|Vq2sO zy@F!fSmc|Pzz~|dJvju~{eZRjTNA4Z35Idw4O*Re7uk2soR%Pxp{w8SO5m*b+-yU} zGUk(`;2YFs0@W5i<;AO497GD6_~Ww4kFJF|L4e_~7}Q84L=9CVFuH-Z_W*$HUOvPk zZ~FXYD8kpg>~)3Vil+1hNVA$_07gCKmJ)yzT!?0+&-7Xfs}GbxnrW2^ zD?UPjo=&EChf+~J7k$BoO$Qe^9im&FtS`((glh9ACDk6(1??Wd$TkU_cb5U@^L4#3 zRuf_@2+u<{^f_sF*^^Ybz!{XW65^%5>{a!x#8i=D6y zH3Dgi=&y7mFfa>icNZhzfREY8KUU??gg_sMQ!wMs>oYIz5%3G&CGRfVcU&E-VudY< zT@_1mC{Tnsj1u_Z&g-E^A>6YX*Vmy=a0=n|QH10wBJ=jk~W=lpMMAucM!Fo%3~>;(enw~(ay&0%oPbAadO3oO%Sh`W0m<2-9V zHT<9ka2vMRdl#X~2d2i5y(-I2=;l&G#Z9()DR+2VVR9T|X78!Wc?Hg-t+6u5T_UqN z7{Sr|UR1NWssq|70iH0@>p+#RMjsb2Wp%h&$mLDAcTEHcg3qU*UdiJ-3XS4jES z++<`-!bE@0nVyAAAQ)r5M=>&{v5bqBUsGO0ozcK?rEK`iGzj25cIOg}Z|9T(DCNB8 zTb7#j0MgoES#yz`Pww)`^b!H_ek-%MJg0)>gPC6>318dO#DCb8(3oOoC8X1n&4gvc zQb{-XKCjtcvSHT`F}fj51Fv(GP3>Baj=A`NjnTh=?&M?aEaqy1TCky&4hn2{N^EZ9 zGU&SiZa7UV$s1cSh!>!|qs?AK543@)G=2*aZBo-f&ikXX{tcV0j2dd97#n~tBd2r6 z)h_gkwb0GFU=@wco+Eo(a?(Gz++g?2NAQ07AmqrFqW#tn> z2Wfk4(|6v~UEk?zc1DD7f@C40z$M&hGlsl7)=xqvZe~T@84|cE@t8O0;yt)Z$-4#@+{p9@$rxB(4T-C6JnCE<0^J zZ=2f@_>6`>zaxBZ@fN^HgZwt$cY24Iwd!qD5P6%^u!qD6F0Vj_+Ua0*np~~^LwO3=n^Q=xg>sFoI1TIUZEZRt;J;^Oac<6$N&T7-cVn%N| zH6B+4-WwJ5xu;JlKHR%TBK5%Wl4wL0X!C;NdL+L$+!+lYF*4hu)9!x*M{nqtnVWnT zfY9G5ttfm1P`=A^i8iI~IO>f>hZn&H#uv$PUfO`-1c>KtSe~K{i$c7Tg@^P~{P;CL zwB+Jw6q%piUAX-=x+O#j5a8O%hV|coeABW&kf?rG(eBHVxio8+8NzaC=Bsc9`r*n; zuf&$J$2d2FB<10X_7tWFdV0xwH_U4=PP#g2sR8C?qPs+N-VGP^-==F!aVFuunf;;~ z-*OjH^d&X)kq!hGmY7Ci!IXy`lGr*Cj?A=-&_dN;DYLsC7x(7fc7xwwH_ij36X6(z z5o1BpipfVE6C&?ka9fTb=S2LSE=B*Z$aau2LRGaW^ERj>FmkLcthO8S+hwFfLF`^w z%-RKb(p|Y90ES{hVwTC;8ljc;bB~+5$Xv&TEW>G%YTA{^5ZRc56$Pf+8kPosyu{$F z{Vb!1cR&biMCMW0)hoGow`K4P_aD#jw8$01zc*>FG|gcFfxMyhO(5}jviz|qaKt@A zksQ6}vckC5=B|_q?0V{`|3t|SAh5|VxxCbS0kE>;0Pkx`*3okzzdBn75Af>3!6AHw zGXpGM%k9;g>CpPhbqa**N@lG4twQ|1hP$9ZKvFloVj4mox2Ah_j!}JT{{vlE>vW&x z<8YvKGZF!ehHfsl9c~Tgw%5${tOn`Zo`Nsz(AAZh(Y;!3s~S#^EuBXdOTrx)aj*2D zvrh1;evNPd?@%cN8y!r;6|{dKuN$}$rk(^v%Bl;H15xdRdea4feA#{HHHVqwi(r6p z{s*cy9-G`pA2&U-vS_jTl{|o_vpbQn{S}Z7D(_*@$m}vkCE#FdKA>uMROPN~TT8yF zQ@6_K=uCEJhZP~d{rf&-;s$I?WsuSW*juIL$lXY9PGw|kHCaB$ z?H4IifZ1=)tUyNTEm`>3@Q~P5Af#2A7n^1E%O$$yAP2x}D@d~LAZ=1LjouTJc@Sp8 zcmXnF7xi^hk!Ie&d}OVkvKV3hvsM#X)^L%Q7XW!6nSp(J+0U^_eKZt$7F|GV+9HG+ zdei7zBS%C_&2|2HU&7%$$S`NFfT~nxkxZbnBD_N06P4?U}HVT*GE~8=4mNEyH`+?CNgWOqN%w^1h52W5Va1Mq? zRN?_~lBW@j8IXOwqAD!$#?-{JGL{l5bu*r*l$;16lfe57?v0%2L5!T}5$qxxU5xTi zluu4#0}TivwJ#Ck8pk4O5zcPUFPKAtJ#-}vqep?Q`B0tP0R`5aPd<)@yroxM^3!~! zC^JfOXg*9oD>Row*4zYw*J(k}N$Wigwy+&qQQuV)fPwWjjQl&gwQ!_uT~kf5na~&qm(7x0AeF(QtA3VZ~k?@ds5}*OsTU z+>uW|8I}$tuXwZ=0aOq}4@%3GU(j6tcf|Qu8~OSu*RA+-)nr!+zcwvFMs^rOv^DEQ zi4-uAc=9%10bFh^pC%tIw20oCAHF*0@o< zD^E!vjT5Dqy%&H7e# z>On2E5&gZw_?+S<$c>?(ucxP{cU~x++}b+Ggd{JDE8;V|M)R3JTeH&d7qy7;cN9A4 z6uRcq_W;_Ce{j!)yLwLM#d0ow;PKg{pIK17C!JG-tJQcZJT|x#dG=?Qv>8;Xyw0fH zT-919YQA(O_FtAeSYIBY}5miPgd{u~h%m1Bk?Kx-8`fSMt!ff0nbM7(d~3)YeGWnV_-`hu(e-gRF0TuKoWf(|A zPfAJ~y9Q;FSWj-gUUN90!Gp>*5u2x&*Tmf}U_wEvXHxVm4iY$_vbq9%j3~Z3zUWDpIcacuIi%(H^0U$CuSjab??Qf0;`C-53&A$Q`|Lzm|;1iXN-^WP( z?AEMS0=xkGr_gIBnyfA!_c_1(5Y3n7f0@bfAG4l*^rm4#*S)8E(^7N_^#=t8tC{}x zQ7p7jr=_8`Fk5K&SsZHkQ*ZA-;<*8V+5Xxu8$1a7pYslGg24zgQU8FK|Ht&IA8oyV zh`5CJbZ0!zy?gguDe%uRcO334RaaL7eip!||E~`?f374w3vD6&p6@3c^1H*_m4|1Y zZZp&sl z{WPBI0`XTO`Y+OVRhb>9&)4$I_EUJP%h2iMkUDin+5k5g7?Jy@LAwAM`;$&D2WB%M z=R@>DE$)QN01=AOol}$nfQS2fpFR%_4OK_dgaDKKH$27f7Hw{mDv`im))^c8FL2Xe zsm)boC7eFlYV?Y6NagFMU3&W~0jydc;@@~CDsqc|?NI;1#JoiO zgoa3?;pcHPB8iCAF}G5Bxw#S+g4|Y2jg$UL`}(^WeFLq3C4VG>81x%8DmJZwYYFX* z{b0UNGw8w$#g_J}l$!Oe|Htv>)Hm22Zd2{8Dlz%`il_Xr5iTg-jMR;!Z-|Yb5TaTL zYN&)(IRM;nx|x)gfR^0MfAB|~7dfD<%jKb|i}|`l+gRV97tVyV%in}{e0+RqxGf%i2nOl zHs4(KK{-cH{SU-czap)7`pXBm490}smO**(cLcCW7N1&O1wH})uZ`Wmn~5K7$Din+ zZ$w^Kd0Hr;W5@_wS3$GBYXzY;n2jNT`(G3tIZfxMkbVR7Ei|z~gY|XO!PEzzOhbk- z%hGpWPSini{r~nbCMe+nYyY%eHh6PB@6>Ew3 z^oQntJL$VJT#G((y^u|C3cpu?@6CI8OYy_gqxn+cu8#vJ^>*qUt;RS(v#ssZflq^Y^8>Ybj)l4PR9_H>kB*LB z{YX0d&{FRg41(XCb2Qq*y!P=aj=}zMzls>|&a`$-iCINibhurV25=o+7ygGG=Xi)8 z_P#rBu-`aOB3AqbEcBJo+#oVH%Ivoy5a|yBxU|7^Uz9$+W*|abSU;S8#XlJ_~>ovOp4&$JaMAQpR`Wr9Z ze+J!65WrLd*d5%S4ve1s1Qt|d8ni7g!%LVQGE*c0d2IvjjTQzcDP$U zsI`oem1sIgD4^m;_6&#uPa63jrv7i9G}6C;3-ogH3KLvQ3ptp>kYGERdm9o&*aA;p z-Zi)YNr(dTOq$WmYqMp(=p;DHl@4E`}5fy8FgRj|JJBp&_d0h$m3W8cN z#2$(nm+ifDfqhPv;8Cyq*Kmz6TSS9o}S6BJC^3ac`8m*z7^8bP~0dqN%e0R zbd?SIUgu(;@3s*@#yL{bLH!a@$M5;$I^3q}QzL`Loy6{jyF0#Pf$C5wgpBxV`W4G< z-kH7|u6%`;r}OC5Lt?RF=9&o^W*43205Aw=%Hi@w`d0Y*ir8t@Qg5FO z|GO(-b_BqnF}0D@t-G|P`eNj}s&`kOoeCI|sV{SWYMnMXeGo4k4k=s|ms9?n%rPe6 zf5WWOU*Y_}iRot!3K~7hf_LuuahD`>cxd8YFljUA$7DjtvZYf!VkmEIewZy*2V;4w z1(F;+2M5@?5cjVEAqH&5D3kV?prouOu#$n5{iFI625Ui?>mO3>0}jb!8fd}*gR}R( zZTMJL41h4H|CP*u=-$5!(RW)3JKB2{PABVw52goy{lofwgfPSeQ<}oxgpMR8JFy{k zT31g=0S)Kfm|}BDaNtaO$22G!QR8io2vju2fkgV(gkI<7l!lEi+tIGvjx^~%YXU?d zZC3&M=?Bo$0SW%katt1R=p($vCXtC@o}P%x%i2iEs>Ymg2T*ddBn;C;^r{n2^o+3V z@0-Fl(w7{HA5|n*zwAo(JY>n^3RVSEJ%5*Wz`>BW@7u}-IiEW)JE@}Yn?5X=fm+yb zE`YV7Dn|A`a6*B-tnR4SB{c2_I^rrfs`t_NEuo=mN(8T?y|<(@KiP9pXX(+qygTin zbf${o^Lw}*a69`TP5A!OLF7h(p+y2AIU035eQ&dJ=_m)h9P*c;RLmuYpbm03;xm|@ zx6BL9+zG7G++FF?73GgeCbO6?+~>h9)W?ufZtzq8-Oqm=!LxLaNH;0 zm8m~xC6P9B{|>7PG64k6&xB9|AQMGNB~e^X@9$j}NQMgu|cbrQ-rMvjSyI`M+0A-0iT)D_$pWo!#3V&Y9U3IKumpS4^Y- zWn|z__WVHG$C@g5uCq*n{PfU}*8gGby5p%{|M*Qw*<{a*tgMQhva(l^5;Bt!5vS~( ztg>ZQ_KL`sk&HSSkwjV9Ng^vV`}g^xlH0w%+dsW}$vNNgJfG(?-Xk;acVR2Yl6Nl3 zzY*}&`g6Gq&zUXH=9|BoZKe&wzF$$&ZW(E5^VUqs>G6^Wf@eFRts!$*!EZ-tH=wkN z9b`Sc=CEXQGBkVZz7wv)3;Lm;w=-QmXTxbyen~z1!G*Udlfu@eyA(@z=IK&EvE|M? zlhgM2&HFqCy*m%Ezt%Im5Y)BfNS{hw!>WCFX8wp;?0A=_*w(5~Ao-W?`$&w!1u36% z1#JM{!i}tXOo_X0;`S(*74F1!6IcL+#U?Hn&a)}(pY62_h+aRG4L79*epQ>4!BqoU zIR_a$45jaJ==mnk@^aY%7IY$c6JYiOB>aaxvqk5l>AN-CT*1GezfRMmN!F2<7#JoTP_exPFA)l;C)9kEf$==#(R#^Xaxxy)BU97 z4GQ0G(1)H0eGppTT%%=!PfsntFXGpDOZ(}be3`t9ZyjH`YTlZcNLs~FRzN#ssgPMw z44RAZ?#Sf-VVwYw*=f1x4WP=#CO&kQrb;D`*ScP}w+g0E!6#6q^RJfjCA_N2pr#hy zGbCF1#JWI`68dIJyU%Y3^vr&&Y>|C_gQ`?g_IWDRg+sVB(&-oPHR49g>JkjYVO~!v z_mT z`HGiT7H5!-uk2rq616o1(L&b>Ki`68oY|#Krkft=ema>+12xZm(tb(DRnPJ=N6QY9 zqLPZFn~V8}?vQ$5o>s}K*4>^roA^j|gc`L(Kh^GLY6cgEPtcp$6nptoOiRY9 z1-&@PG@n|GoZ|tZKl@EK(UW~4IB;~pi|?~6U$4pRytR{yff{*%t23tkK83wEBkp+Rz! zZQ$kGxBWLoe}8o_?cvKxTsXverlj4}v#y#)5rl>`2PTrK%M}#wR2lS&%aB3=>qVph z{}8{pb!m?Oerf+fSg@w}U|`j*Gq;}&55-zFVjrtmY^mBLb(MdIj?8M^xDqKB;pmkB zF3KXF0WxmChymAgF!!;c9KOzs{!O&x5AhGuR8{&OU0sBM0DXCxp!qpuGRkG7N!fZE z!6ZBCcuQb~@NQuEpIR%`PV_Qdvjz~~L^l1`_M#lO>xY;I*`^~Sg^He)&$;qKkfJWG zQYEIBV8OLfCEC=kZRE8r7&3W%Z8oGCrd^(b<=ER{$8fm6lQeXYW z_9$zn2{wUKmzEs8|CA-$bGCOK=n_hafO6OaK31w0R$nM(bTL%b4DS!2J917Xp7})e zf?dzz#K#8#K+gN6VE2dc2xW=pRc{Kp2^aC_PeXh@J~Q#T$my&rVw~^j8sy-CaTF!G zc@mCwP$tH~*{h6CU>5zvTpga^&{}!fG9e?YQMb{0ujq7*UU5wv=T?LZzy&qHT1R$+ zA3*D`cay^Tr)e(^R?vArC1JVKJIngmewhNBF)96~1Fy}IjEkULWs)Nh+P?l!s7M~P`(8ai@3$3P*=~! zLj=MP^F?wTGeV z>+#~Ae0!DL(PyA%{5t6l4ONR6hg@@3ei_9D-2FU(-?K(;A*z*sTHKGSLZ=j|-k7v_ zju@fH3Ba9#D8&>PhOJOgLnXn24l%iX2wmr_=ePB^UxPLRCAUN2lP7|?$LgEgiZt!= zPBI+=!oT3=INoslf#ByuLZ7~g+PhbqnZ2|iP3e8=RGU=GxV%Y7I21fs{1C)R_j(}x zXDFtBBm!DUBa}Y7iYXN5X{!RjpAeiYs0u~4yeq$5k z%`k^DdS(Jh0M=+=h9atTW+hby2D)4rX+Y5!AB%BTP%6JCx6+mn14?HAV1QED+C-^(3?dEm91Rl6299|TUc|3P%fHyWk>j-IY}rKy+)cqT40 z-T`G>--_g>o30!bX;lNyP;wn&TlNrmEEur<`+A zZ(`BwKZ|U88YQSDwL=)_s8B})Qebjd=MZ=Z&9V6oyoe9OqXv);0ulhf4QnUz44pdl zKu0CAv_KN|8Y_bOkqxn30`k#MQZ#XWIw)MFCk-_78KrKOcL)D&G6xA7E+ zFC(QJ;N;WQ2A-|>cz`j!FXj=(qe7FauCIJg zm|X-AGmfDVHyVGk!+=q$m6`;#6h!AZ-nzPk;_(=q4R+`53-lC|t5fcGuw7qcay)s+ zSJk-4O5Az=@rtIeY|5NRJ5Cn0hAl(Sg4etm^JM%-bgkzNvc-|QCPZ|eauM(n;9+pW zF+yzU&K_gWOC^I5ME38+yYIX}AFaNX?*Tw;p>FdWh7&hX@c#$q!2<*gJpkuEbkn`W zjoLDPxj4X7?OW2CTaGz}^*%;~QcCRbHf9=x6bTZrEw~;e!c@(b=GL zRF*G~6>-FzW)J~TbvV7UUP}VqArsW%^B+R}fUyjFNyIL`02p)rZjTIK|CNQ>kQeCH zBbaiqPIyTGz)PK3cWs}S0Ms5+LSAHt&Lqvg$K}CF3&8*zp_Bp;If@JxOeS+-TL)_b~(GXB8+75|ssG!0w zN9J|JO8p@V&&aYsrcX$JACo$?Xb(Z^Q_v7!YEVBd>8s=8QsO%- zKmqn1$(4J7s}s5YDZ6DLABvWyi3xS3eTddRV(ihBZ80({Q@gk1r+#U~PT<`-_!vgPnu`|lCEd$+OPx9qx7g+l)XY=;x3b$un zcYh*mlZ!t2RmU^5NxSot_F_k_Th_BfKvmFP8z5xl!XMTlJE2SWrg)kOGu}}l2yBGb zo+m}CsbKXnl_*sWu;|(-U{ky)IG#H&WGh@$>ihK@5j!Id_;ECVR}Y!bOcsHKi{q+Y zAG+-6&;j^>6E{BPf`tfX>He`R@VeJy%CBRV#9#~G`y>Zq3m2F`BM@iM|sM`3rLEo<(-=~X|7tm#^82a(AVPdi8>OicMH`>Kr zAKKjp=EI*8h>fAJ83P^xov0Swo76Mm)Rymjvb4J~A7k8NgzsqtLiu z+3T!tSPyI=e6=3*^n0V1V0EFw7E5~bSpfK3Q1I?xO$_U>F;a05+6$PJ#39Zlkx z*-zd(xuDM;pL10AA1aU+`^!_3Y_TdlxDkHU*E)Nw-q#u|KBliN|A{YQedL_mTpe2< zRvI9nfyJe~7(of!Hb;IEJ#fDiZ!wj-@&WRB7b?CD0dq)kO3Gk3`iVt*vcmo@4m}`=RQ1t4cv@AW%0+DkDpgw1ltzT3qE0CH4v(% zWG=;m8&Zl&TBqF&hZ2CAvxgm2B;`{!D$4!&D+EbLH^1(t+L+Xk$0Si5TKTQX5#MGx+3-*!j=2J z+;{Az^cV-4gn7e%;aH@JtF66uiC*6D4v9YgxbO2SbFPw`K3tTOPk(`cQP|{I_SEph z8}6qMr}_;bInfp{3ncsYyZWCq3ZtRAB?7>#17;6@QwD`YdI)o3Wr-y|lhk}DI^;UB ztJT+Kosi=4-{T4qmTv}Cg>c$S#Q$P~vsYe*naIUYb|XjXmXrbVaW^2cD*|$~(^ELm zD>)inx0JVDTuju@hs0z z6n)UVSZOi`;Xh`-(x?2pOyqj1gb#5n@thsi%Z*eo_lp4pKh zk{h7Bke{!sg-%_iV~Q3&ZdQyKhHX;zHtP`#bec93pqu&72MUYXw?TrRo97U0>8)6T zane%um%V3&;GPzc(!0OvltX9+m4{(pZ%=&XI7Ndlh_{bL-Z}8m)!#2Bz>h|$uzV=g zkpwlH%^`S_4%GIcryk<&dGypEOn*0PcIw`bT(XGhyv1-UH-%VHf~utF zRf-#bsh9JCScZMyoU!9o_4R#p5hm-0ohPD28z3i@CBQf1bG{h;8U^O2##BoEkcSFT zIjipag;072r2Rty8=zt(O@SMM1diN|FNEX1$OxWhPkuiPn(f;26ZOauZD7EMMrGlQhW0O)dJjL!AZ|(Gu&-le>%?^Tn9FQIx{XURiHS==v72)p+*AvH# zHQES=f6wCFUJM~%ugyR8NHctEW(?3TB0_M`f?PlO8t^S_`A83cR(D)k?6PzmAZk*n z_~OcSGQ6Hq>m9(EdXqne`c^RR6arxr;Wv9&W}b4RdNS@wP`yP?tdc6@y$`-)%)<3d z-ZBMO3Zz88=Xy+}(q9eiyjJ3Gc~`UccpE5zQCe1Bo19=U50f1=HkSlZGeuhAqHBT0 zLaZZTR1$&=E)nRu!~8_&Olw(1OtbCL{M`tYd#gbJo_$-l6uzw|33&$LaZ1o8vc8;S zYjBbPo4T zX@+sKAk3&n>x@V{?OTqT|I9S<{44Rvm}f^xuO&38`R=1d#gCLI1YlIX%M(?7rSvi# zoTV=Brz>-IK3Qy|xlzdyOFl-fJ`OtwoOWI;rv)%=P?|Tp?E?VG*u3ylV5#xbU#9{v zR307&q@+Huk$YgKx!$XtrIZl#eyjENcfk?n-HV`Q-|Bf$0GsfRBh`_?QN0S!s3nR) zT;>l|0>>X)Hf9a7Df=d0b(T8!q$+Xe1;IK#?-U=tvf=NrRVn{@aX?uNEeT_2qg*== zQ0xb|k;j-WTA`>v5AuKJRo_jmkra%f5xskEFi`+>rQbKGziZi7tQ9?*UZ{C8+wvN9 z>D-+HOz!=~ZsQGMl0$9JgQGPG<;LfIQv9^jW2k6o=yHdV?jw_zCT#9Vm|Yl>Au#Z* zI@00i0Ou?+G}`LVBMqNBV8M8xuI;QeKco5S>(9+}@5O3INu^oZ)en`s=tuspYTG8ai(GR}Qm0;Nc;cO2Q}rh&ks)8ZkpaQQmyMPeI&+m)$*A zMJAF7^L-kjUzVqH9Mw{5Ihzfm#m3Kr zmq9RlcLNQtUVkp(6YBi+2+>N-A^{%fFAGhg`qW|(9LR)%Cdx>Mi z6`kshFCf~|-fQ!w$UJ~zeOk6cdpzU}61qiM9|>jc%cN2V9E!0MeNb)-Ct5y5)(0;> zpA1v`R0)hpCoIJT&CHIo8MGBu+Dx`rj6QqqBRy)IS(rD<;~|x|(N^AEYp|ZScdBBphJ@*-Jl0vR z$2F0=69v`R6Hkz^SzMa8DB{ktnddC?6*O_>xF-L}!RG8E{o)hX)sXLPwF9?`MzMGw1Laf?i zh8Wsjcj=?BUI=E{U5XW%2KgeZ^2&7|y;fW88 zEsb~uStM7=iQAe?Ge62vi}-gQ&RX&q1ke@gYc$f=gNS+koP8SFX~0elPDy{n>I9k+;XeI%c1lJTYpN%C}0ju3lZcAYCLCOU|lGz}Ij<2~v~CZ7;k<9}nNEB0*?? zYE0GLrUTwL#WT6 zS_3rqHUX?#BgLXB)kjLIc~##eRf+FR{JI8&#n8`VRWTQ-4f?OX8$c=+GE@-Vi5o+; zIVGS^N%U;~!EsA4vICL3e>{INaMsyxr9ns!67GSg#h9r$<4!vxa ze9m(R)F@8Iz#zE0S=j+E;-f0HsJyWRPM&>m5ub?vN3dVxK}$RHT8j)Kkl1tHRe3P( za^zbZyCNP@8(DS4X5~9i{IZUwh4TNuBIw0F)-G^@G3df%k0FoSfuj!#tePwx4I8?I z9g;z=oHnOQHJo2I+eG#KLB9;?L`^iOq%X!oy+dHsPCBP*fYDSSF+`PHOQZibA?p#c z1IaUA5xB&XjDC<>rrY9!fwgT(NK3oA2C`qO#A zd(UUy!|R>?+$HWF?Q#*9Mi9E_KL-Lkas|-LhsN{$iHV81uk8&)B!AT-`pKt9Y_Vg0 z&K~yD>=MA)M|TlStjI>?bo^R2z`6BjdAU6>&)EIh!RoA8tPvB2ij(R8MW)AkfXGY(Iob8_y%zsgm{+XLgu-r6xu`v=!_1FSZb6#Nd>-9_( zB%74Ktn=;irPjv@5?0z@(+x?=Yka;gQN+FR+rvpn4-Eo)1EE%;V zU(j#IHSnB_Hn=dLgsnRATRS23F=T;_BGO0;*}%etdA)?AS7Kt~P(u{BqaYjf`vT;48hJzR72>MmaUKKf+X34-8h7MF0iZ&5UtMx4|05_xaZ{imr=cv|J*@<<9W*yc5|?{ zvA7LY`%!<=%zQ~c?0P{S@fT4d$EwY7n`?j^hr#W8VuHonzCQPH_Uy&FJ~xL+AlhA+ z`8kOKu-iWtR5;PQ9^A{LIuHyR9|(?K4L1SYND#d+ zMWMOke|j=+c<7-tM<6e|uyB~nkO^J}m~yr2IorMgvp86>R2j64OVLCG<-B|T`fGhw zL0Up>Z8l9@)N$JAZPLYm&-JzzQ&YV7Ix?>d{Of@y0DmmUyDc^V8j}0+koolmJi7W) z>*1y4W$@%7pciLQ69j6L5V?;nbTyKiBO2S<>R1?{Qn=G z0EoIyEWY4TlehNKP8R@1!N1jfTbBc1-u+D3Kg4N)By&pUx9l~o>RYl*Y(Yio!+DqG zfin`pTP-L<@cH=BqWDde6jB)^TUc0FXsDE+PTKilYlq`jf)6lcimtCF#p8%#ZGKz; zSe^WA4E;tT%pgV)LMqhQs=)`Dk?WGpS!}SI`+pDPH(>6CeRNHt3p&tM&|e+x*+=(( zGEpSJ?7W0X9$l~jeDR`|k*J<{gA)FaMF!%4{2TTZf{`IuTueGFcL9%f9Xa91seXGb zzjdyEG+8u3+}IIpTUZg25>y{CVy;i;zAm_Zu@WnRP?La*|No=G&f5TKu&H9kwX^Uj zCS9A#0Gw}ZRxw-6H@~oelNAl_R{xYLY(=S!7p(#&PygVfu^D#}^Q$AJTU_h^m%DB# z!v7>8!8y32Fh`ctu{0IN@vr_0kWfKT*_jRlp8m+>mx=Z68DF*hnb&s`&Tp=%o7}J` zkzT=XEH0Uy@{Rj9ptlgwcYWLbQo^8^*B5WO)>xA9&e4hE2Ltw?(zb>AlVbM6`SV=^ zsC(80msN@(I>ttZ#*f9+PEh80I+J#+n0 zR8|WcM-)p%F&XvG00Gc6y7!TYGcCwgcXjoMtB+fQ+^)n4>XwQY-I^odvhfoayoGc0 z!;*U+uPK;$@WN};%(+86v*$0Hm<|_c&_qBl;Jr*gnn9%iIVtYq(bWbsuKVIJI6yBT zf%F}6hW0hZxz2uRzH}_$<~F#|jx)ceyejd5q-22sH!fYI8A*=uJxC)!9`kDu@s!c5a8vlJM z`kcaWy`1OPEGuCIdGCXI{hCEKBZ$xvNSYrkAiHuWsdj?_ z>R;nIA{%g(BGV-BeV4{Fc^ie`%T3AUl?2YU>UOyjC>)0@c6ieX`39hX_5A3v0eS=L-5w;r~~Y=qFz8AVP!* zF!Ye3-$zb1J2@P=mnm9HRvK4A*W+yITiqApS-!H~Dl8mb(E-`Pwwa5yE}UBKn5YN2 zhgVrDt#o>>3KIH%R=wC%ca_ukil}|3s{RokpPaa{@3ZezMhx-HSe(73?j>tiw|JI< z=(v#E=VQ|e9Yr@C<(&#ED4F6n7o_qLUqXiO2;Fae)%vlMWQG#q@TQZ&yN%Al5os%y z%VQTzKTjl{^T3SX3Sf{W^a{fjtY~-*fLAy zyqQ=|uBMaP=kxs9kqkE%u|^HeEbN9-W@W;X=3`bag||rE%~A+r5{Gy3gnI+4sl+pL zDET++b1SD#k|#@bHoo@@ii7woXd|X?oG%aU5@Hu6Ov;|E;F6}vIlkTrZG#s z_gcAVX%$Idv`CvP=D51Xbk$vQBhwQfawXCwOq-?S&C&b zI9F13z|3%h*-JD^luBuGpYO5rOU%RffoU0uZMKK7#p021g;Drc{}Uk8=wA?O21Tzs zm&K1z4xp(S9ww1AgU}LwR8bX)18Zi?@mC#)@HQ)`)EC^p=fxh>xTF8HV~shGqasT! zi+W?#Lt-mr zd*Dn&osaQaY@w{|=<8z~>vq|mp+KUzBW5UhVAx?2E&V7k(b>D++X9#I@F?%SGOzG) zo>?lJ%+?5z+@c3qzIK+!`9n>_Jd$VAPrr_AyM4=&$CUv4tLd4P@+V5)Up6qjz5ork z*^nB};p9`kmbSLerfCpFGGKv;5;VQ=(bL*P4m4++3EguFf2GW1J8J z_BB1Nke9IHM`yN_ND#I->W6^1fA7D@fV-&WRXSzQ6b>n`Ym%jjrZQf0s_x8h1zAZ9 zS)M8}eZJkC6}e8*$>l7Q{Yq82pW_4r7^8d)4M;;86Qmxyxv+k3qy1vOL7lW{q=QR0 zE+Z=0x(Dxk3giHfI#2s2-Y_sbpcTGX44bJ!h|}k!q?tzKHT_Az!7eR5RFbz9K`=M0gB@|zDz zOL};>h4IP`oeP9v2V=zVAEC3qGI-5*xaX{M5Kk=Q?7q#^)^HcHH+ivxfb{kNZ=G#i zwOA?wD^Mizo^btcK_1rW1TfKDi#Y!DN%;5PPw6hYj~*Y4mJE~%KF<<-hTz4ES$;+T zTb&W}59ibyrl?rY^))v$$vipox?LhELfI(nN$bh!d!B&6kg+48jpqA&57Zf8sh^bX z2gWihL1FqwZ!JoA(K?RRL!XV0*_d~zysiMR!Ve5hIp530f+p{W(422@dBp((J)PYC zX3#0Adcz?H#xI@Kqh11R^R~h@7dG28gRe*4-QYTAvjUAEl>LN`JBcH)njquv6&{8X zs?ZNnee0v+li8wj74FV&S+?p%Y~=7LAw&H&eG1si4Yvwa`p;gIOvMfCyaAMPqs+qV zmVtf6Hkobdy-e#5KKs73_wrJULd06snTw67!Ow1^_dcf?%l7y~zM-=E8R%whuY!JY z6=ACLlgkzC`n{5V82V$z2RmUZl1-=A#iF6#7m zl-W<#GY5;#SAM!?UmI1CE)y0HO&6pi#f;X>47dQ0Zun~0(GY>r0HKF_&Rfmvr4*|a zi-@u6ZBW}pY8hd{aRV_Lshg1S8PA}aaq-@rcJ7Z0ft08cESy&-pMYb;11{*a-PP&m zpUk6-2W{!t6RsyavKBW)^nO8&D&Fh&cT9U`4?iqUyE~H;PjnJ{?1I+;auz@a!-e( zd7)ysM@!%soIP5F=z*%LQ@JYVcho+=A39sbCK7s%4Sc_6Zr$i^)GTcW1T!i zHaU+ND_?Lc4(7(+a~;GE%HP^rUINIfIt0g4{&kEGat)PdJ&#K7XlVU@a{qdiBX2{% zAK@II_S`6?K{=<S@R=#ppnezox*r6)^B^y`MQv-@+{XF0K(y6Id?3Ot zpJ{7A!{GG^AZ~wj-|gPWhcJJO=m7XZ+6jYtA=y^5PPCtG1^2zW;xc2LyA4+MNT#2P zj!tLs1s)J#-?9XYxb#=;dIa-_m8zkNm;GV;LR!r#(5L#^k{t_U_{cQXE#v_NZ4KWPLr@i^Qdm*Ak6t68}i?6;?c@rl}Tc}ipK=L=C zjq0(KqHFgq3aIXuqA^u{68sheipEcOK5Jssv#nhDCalPRc*HOYgk!B6`uA=t$&3hD z4Csc_NG;CizUVLIJ7zqW|5&%6=GiA7kqY3WiIlC}2VMAxwz(5qqQmZ^?>QZH8vX_o zg)rvuL$?p+!#@uNA21EN>-)nwrWH$0Rx_%8-}N@DiH?-0ufN@C3`iYumSbRQ00Xa*Wp#B`qEr%~l{58p&I@D669vf53QU>o3IufgaCl&|@IvZ|WX^LB|7GHhm+&43^CF+u%6#^JUK#69(&qOa# zY?^x<1$u-6uoFNQn1B$!&XWu~=t}U4B^Q}{N0^LF^&^H>U3{b4-1D4_&meJ(g>D5CCz*QCpXi=l6-MW;0oYJAM1xI;f7y@Vlf@(t_Dnx+K>drr{{gw&$P z>{aRBh}~DqpjU31SiwZZlyQZgAL6iOm^l3e^Xk!!R!pq8Jue6Cd;acR3j+A?m)c9= zai00l>(CSHcFgpO#lRn6!_Y?!hzyHg$6#OijQC0n0AXNVEo=#W3#cB9ao-0X^IgIXWrbe5MQrOJ|_c?(RG1vcKZmzsMso1 z2Rr*>Ey+`@;QrD$O6hE8YrYOkK;;?DEcIO=&B0X6?XesoqoQiR12E%S(iSzMPh$sF z1k#Qfrk`ZNs(nM>rKeY^&X{%xjqkR;+@m{hyc^bHTh2A{T$fT?{MIYW^Kg#W2ha6; z?Ec{XljpOxH0@rb7BG4lmkv5V;c5ILF3dnLx}W{V)||PI^%yzI&encB`b71)BN<8@ zXbT6&o}g>mbJyVm*2V=`A!oG_0kg^bmGmduDOh)$>L;4}Elzg&l4A$(S*QZ~~)*QJ=6h zHWs)sr=ue}%i&;Y@Cw;9b!>|g2)o8Jj8PvfH83aIoA&PY!_Ws(XR`y(qE0wq*W$A?a!x--$Z$BSz*tGW zzCqTRqu*bz`sr_U9Yv<;0kEsQeWj$8ufEn9HhLxDrzlC}Z|M}3MQ_q@f=^2E7AJ3f zLZ1z~>_(E?QITam*ibQmn^r$D@Zy*?B@i=4M<#G#|7k4NM73jkbEIDR%*3ut<|91D zsH`jkZwO2VEcdBIBqN-iev#`Rr434?aDZHSBJo4(lVd>dDs_#vD%qV=t_9?xIIc98 z{E-m%5=-#9_(|GP*&yw7KkrxTlzj8L%>HQ(V;exHmTb-8^F48JF((csBD5VK{84;u z&mNg3D7N;cgTQrTs^8-Uns>(VlYf;tnC~=fx&C~*xa0U7Dplev1UgIRZvQC66)9XAweft@kFAMtv}T`3&;DjL$X1?HIOLB@TluYI+}7D@r)2IE90 z1??{F^%bl~i~TraQvjw~USp9FY2tPN>_h!7X5Obioc~3=R?*%eqdK`~ZeOC9^*QG< z4PnD)=r?iF^9p-N)qD_K-nGd|9P3+9{N9e7obd~tlN|vtwY&1B4j74y=UdF1C2i)^*G@Q3%btAXfbbTt$4`eMS*pW(%b^$+#M1)yi-($wW0`zm)CC}jj^IW z?K5*97tmU*1ol%^=DtLwzQUgwCye-G470vIBOG2Nx&?kDSN7E|EjQo~FXs4xP06&; z3c8{)m{9~>Wxr-Urdf$F2fv^z)^Ae_bwA(jOX#Fr9E6>wof?DdW4&&_4vRTL8nw+O zB`y>1C87OW;qJOuMx4_}>)D1+rXGxr;kt8B9Mwl^(u#RSd%D+T!z#&D>E5)-JOTUU ztB-I-634Hh)BG`xYwNDpQN^XCLfw~ufat=)sGt98p>Nd~6(7YCf2jgni~h}GtU0)( zxMu`WE4$Hur!XCgx@}c*EDv)ZPD@h!;Sj4gF`RIFe1k`0RCeFhADYGkqa;qzV?@-e z%>B%ks2Q~rinj)E-DA0Bl+#_>R9~Z|YJ*_|p09X;t`_%+WKOHE7(lqWdoZQ%nME%I z(Z9JyKSzIJdep56Ed|~!Z13vsms*vqilr%zx@PvYXqOIjuiuf;3=if#{we5`MuKN&Mga~!T};O@prKP?s|HYCazP9W=J9bZ;MU|-l| zKfzT{Qa=#DheffvHt^|K2I{Bhi(Es@ec_zCbMyYEzyZd|=WKOnY)r^^WwwU65H$h1 zUwJbqHn@VjRo_L%Du-0VL7&FxT^@@Jxm>E@GD@*)b-)RY|#`UBE#o za7{s_BLSp?ShsM(`{aV?N{6iD!!Ft{4n-+^dX8kLpsl#H_J%gtg&I*yh_zSVPtBpn zk6}m56FJi4V1d{4xeI@Je-O4+#{yAbzSqqR@NiauALRIqi3=F9q66;6Rgu`3hJevQ zShtu@#xc-1kyq&dK8R?X?FEB3?Bmz+AtkjaUO%r3zqju6ga8`J>E5Z)4sYOD{?9NWq&T0mc zq17%{1{vD8hMK=_Rzoubk$(`NNiitYaDPSwbZO^Ujq9Hgq7+1cuH z76RrTS-C=gkAojcP=0}diT22XC}Ltc;0Je!e- zOmFXV+SOq9?ro|cKOwFPtY|Va984j<_njBE+=wO=87jbga~^$jjf+xroehfNy%=rLj~>40^7g3?(bz zpCn^&kCBjs)#7A-(4#eAaGXAK~|J#|+^!N>M zJ}Zgc_ECsw@ZeH!+d?Ve_I}8R{Cu3>aOsj|y?aAb1U6vaLdoKVA+pN5ua{8g-fZ_3hw%xkQqd_}&5i zu%k6y4JJzaQUa?MZM3R%>NW_yLMJhvO`b02e?m(Uo`>7$BlrCoeh7Y}H^(&#y6Htl)e;x} z&|{t2yTyrnK(qxHKu6mo1{ikPOaFSeVccA48Q*6Clg#n@`a`*j7u!pl*Gf3TLv`9 zK4<+uSxl zr`VGfnUw>M@C%O`Z{^BS^PFvzj&8|nE#t>vO94$qBpN|O@YptKqX3>Q&>Q9lZHRV7 zP6xSDgyDAA(y8m=eIZfK-s0+~x_AoUL5Rmpf52*%pP3TyjEB8>cf20#Oeo)g^7tLqsV|KHSmJf@BHPEZ(%P8&dZ7m zl{hN4ZVh(~0OtNK&6R73g6|V_rx%_3mTTXoso;!10L0Xe5#itarwGYwgYZeVGR`a8 z-%)J80R8l8(7f&z0@DgFhd$=>9#UP}46lIQr;X!b*#2gmvGQZSqHY-5>Gq&&@MV+V zUHn_*l@PlAoI%QS%1U%uN@3HzGm$$;&LAU;p8oWzZ{@R)Q1{db($=2NTq>V*T+pa= zT6lOS8n`l)g{B}qvvU&E8@`V&hlmhFR?N9hth{XcAqO!Ha@EL?@wYgCc~8)Zg~qk- zqBa}674_hNV z-wXP_bqNX+19w%4QFqxBF^PL+FFH#Zj?ny9eltv5|JKLf9?5|P#O-3?F*8j|W1T6o z221YQl3a`_T2%fUS>Sl!Y{3h$EqO6R%0G)VDm|8RToa?wj453^rkno`hKseEp zE}V~;j9k*joEbI&htNE7>i1Yiq{?duXj3@W>j&?-jQH!1!7R{qCwJqI!xCh(>#csQ z2kOO#hgUsVW=R$4vETXS;_nYEReB_8Kut9eDo@)GnTxcv+cdx7%7e7_b+h$vO}f63 z#|PRz2MnR#TUyCylz7+QNlbj+;g7p*^2&;Zqqb)|@^y1s{P*Vs(V3kD^-I?K$RVF| zS0pdn#pxvGYDLy`p5nnBFPOb_H<&jVAbNA%jRPq&uo7O=Wt$y1NvB>55ipFMm>9*)r~ITaskZT?P{9^pZp%M-fHg-KyS6H6*0r{xaC zSHK_t+c^O=euOZcXkt+Fp0Ci<4EG^P^`Oz@Iq4jMu!gCH3%uT)XiP$nhyG^fz?RKg2BE(5g@w zL|6RPl3*rqn~yHGXRyx&Y*($^QcTq8Kby?2fDExga`)2k9{>UaXL_)Mj^)IQ+0Gk{ zhq~Qj*hJH8h|WWCzdhhT1aaw#yR@MJm74A22MJ)@&qTcijYsIOQ7&W2FvHEa_(7cb z^9_yiqIL47Sa_`03+GqnSSI&70oMxtq$99OK)C!!&w++sG1sp%qeW&t5l!DKZmd)D zloQ`fZQC;h)y7W~+1UxWEB~_rAMG>JJfVGs;Xf(oB2i6sW)Bs2lFiQX= z<;gX*LnQ_YFeWbh>B@IsiR-gxj=+!SaqQe!I+vc^+?*vM6$>cx8udJA1sUa1_elox zZ_yz~VqKl>8fdkVE`uvK9-X@J=`D2zu|(s`0vAgN4{N6mBWetkCc-|48O~+Y-mD@) zjDH}?o+bIisa_LRb$!wwr*A4a_K{In^Sdp*PyUH5xWi8o29EDty6r*Znf{bq2aQ&s z&#@#%w5bL1Q}x=f=;dR|*Yy_)aA|4-inR1wB*l|ODRl$CoT_!E0I^J#tjyQ-mm5CF z^37hVhYAvL5<<8=IXPCwCq8s(0J#fCSb+KuSGn=3Hx@co?N&c=`{4-G>tnjY_FrsK z`>2I3Ru+|)nWrJ*$qbkO-ev5je4Wk>Kvc~DEi&w!B!|Y}x>KC^fk<;_qmTh9gf=tc zc!c>4&e-BWUd+{gw}YUvc|c$Qe1lxm&FjFW`jyxIVxp6vp3RX%7UTC6v9mJRO`p{I zv{yFozU`SHMUY?G`a+BD+<{eh*XuCmMIca6Mdbs=>``d#x#S4<~T!eLg_-goVvTEmqJ$G;^s?AL{dxic&r;q3ao+`Ml zcON4b_t9X_s`O;$WrijoEcYso%IzUEjJlgul1$Thw+7igP?tlVXa)RQ zgz#zERm79dbpsGv?yK!r5Dx!WK%w9{uK0?tbm^~EdrwBs>ScBUVCXl|sm%@N%TDMq z`2Laj{A@~?hev|S#(kLX*>)fQ#0mW++6_#RvlOzt_eh|TmW{bxf9d#P3z`dbSWw=W z24CnnQYiX@0XN9oIpNEZ*`hPFt=uA4>*S9Vp6b@c#-UJTmC<17E=S|POKU_|NE>eH zO*HpbXjug_SN3~mko=Ir06OvBy||TYse#V~-2s-hH#&OvA8WQaXlIu@k89+NKAS!F zmVM)%1hBS6XsKEpp~w1NdDk&_5?|;~K^MiMC;#G6JAdydiK1Ox zG0{;mH`lH&Zv8pncde7V^8Fl&_@8;?Wd;31{k6TKWzRFC)8$Dt$&y_uZ2eB%<2NQO zsGzd8Kir%bgH@Yu%zQ^A`L@JmD;|+~{F4-0@U@0W-fKWMz9PPC2ApYtfJ8RAP5}R_ ztn6t@I?s@P&j;2&9uGeR5H8Wd2O;YZ30OhXfNm^wjzS?6Q6#J)6_qbaKC zN?yM@BSr`QC=y#N)?VKWD{d=pktwzzx9u;-(kw3BoAmuhGK^8JID$Ot)KMiI(tKHYM{hKRpZj`QU_KRfl>}AKL9>r8 z5RrOlH$)@}h}*Jtm!A{4ROR~K+K|MVs#=w*UJj%eahM8=f3`;3ch4HcPI@vG{@7Ce zq0&}`+VX1syA5IqcF?US{9KyfS%X`oU++&_O8ETJ!ukC5+KX9)nV4JwSwkzXF}){M z24cJrG6%O@Fc9+jy127DklJjA&5~EYxs}IHI8FKrb0@aywwm{3kFHHsOkO3L%buXY zAAfNZuilu6$heH(=jd5ui+W|XOQjiqHFfNzB|mu7n*i(eC8Ll)@8+8(iKkOPJHB~; z@6P9MYb^7x!i48LE9(v@WL0y| zYQXA4n~|0;XC4{W26bA#dXeIB6QfW?5_MBbp^AyM|12q5em}}<&n6=702NlyRY^$L zu5&p^(d6Z;qbmw&j0&H+UpE;HaKb0qL-6F%<=Gj<*VPMYb5iZ5^35F=USe*8F7E!` zmgKmA?<77Wy)7781Lp;NdxAL$8Zq(IfsQE!K_b-ARk`sy0!?RYa`w;-wb)hd!o?zF z-zBGmMR;hJZ^*{g9O@?~-BkTMeQ6&mWB)FkQ?-x!3Cv#BYdv55cq^cyqW6-kT34gp z#ONq)n?AWNYxAWLb=Dv+$~OXW=~2WZOZ^1Lbnq@OQTqxTes80(q^l&k&URhaF2?En z$3nd9@ixs%tlD44t2KA|c7C^=vSaK2^32kQ-Ca~Y`ZyMX_*H(f&{{{d%Qx&M3-2!9 zyEmoes}foJLrBs4_HUkLZ2WuZTD@-WP8d|1@)5XfoYn7gU-0YxcJ!yTv@~I=J$dN; zsQT2vn}(hFsq5pFYu_+L;)T}3Z~Q6w*vt*~{J&dP7}!T_kXkVVzF& z#-~A{9#m)?iCWsUra!`OGj%pJ(A{yXX~U$TQo zdg$n_-g`YsPZxbIUH1fq!mu#Xsfrm>M>yL`U^NE_pG)juv(>%D^%1;U1yoe^H)$bG zjL>_ukfW64zDJ%IC9*qoT>zW5cZG(9G?0+UUx}+r(TM0u4dM6uGFdtWfcSgLNjIoM zNb^)Zj{@YMZWk4u+boG9Z=gEbd@Bo!%2KaHX6d5fWC#wntV@~+E$jn2)Y8!=D~Iq? zDh$wsfBx>l%@BU#2l_&X?z>{%GK|m>71CN!C{KXhUaWuaAXs0&hY~jxgt7Z#7O7e4 zpJ~P54N~g)k$7FwCwIk7C0osaf_@g-nmpL#CJ~&8{J)?w5Y< zdTe=&a@B3yhBzAy=AV3G7h;pKK<^#(Mv1SpaTcc1cv~CF3COD}?;TaXNJY%|P3#q+ zh3HU66wyM!&k9hi;Urq1Y?Z2>UuEG9iC{fY;tX3^&1<+x`T5l!<12w>A z*QCt0xtv7ni5u`C5){4NaINlB>u(K+bNs~XOwh?Pa{H`7%empe-yO#@n&|E84D3tj zb(dE-e#NDg(YA%ft_&Gtg%%9PP7y^QD9YQa8e2t8;#lK3cHvGFYnP8@c{bJrMxJhP zsdBrCOBU~H;}`PICw6q}!r=8iHVp-J5<$w@wU#tz*&Q?mM`Bh2V)eGHs_~-&u(sL`|x; z8n?_-#pTXBwQh6dv9F_&=K?0Sksg-lKMm}9GI575Ryh&5Me%Ls`|~9kRWUM9ju(u; zAm`rss5b7W(kOnl9Rcjoj}WCnY$gpM3;FvRNoyfU#DK4v5$Ik5ZZ6Bn2Ik+L?5EHC zYu4>tu5vSX1kHZ!o#MChC@6E(AT6pNq=+~)P zKI8=##AYYY^)`Pw<6mM4Uz*jX%^Y{%(qERd=vgRFK&fiJ5% zPQlld?um7$R!!GzUg~lbjI(AgP{ACLQRqdk7C1LD$>HzF6eBDp8k)WkqXux|Xt(S> zd+WkT^U?gg(w5wqF~^{{J1PajZ%VfNa5cSDP3VePi4y_G4tT|UyH2^4w4Fu@P^ibE z{Rm&f?=KMN`!p<=w#Xd`e(1p|yryC>ey_%S^%~!vcv(w3#$>Eioe~&WT`Z@4mw@Wo z!AM+1aDk0z+i`cQs^YEQ_IABC4!Z7c16bqJvLBgkk2Ss+VWOhfkz<4&KE*>7a@oUU z`B{wV+H13cyToaE1pzE#2jaCb`6dHi8u+*~tEH7-`FT_Z**_=C*TBt#h30WsvD4;rB`J24LRL5yHl09y1_$Yp7=691~&^ z>~bh@$^CG6ELdibRd_R}%F)dtD4!cA>5FImhd`%(t(Xe$`WOdNGjf?;y!adps8U$m!(bO|ru+ zQi^xin2W?6p51&By^>4e4-S zLpw4_a&0FcpG!(=Xg%$>EYQ|!G^}G$mo(U;3mLJZX34jHAmfU#@(#swvm?HpXwRyG zcw51ziUiJRQ-51lFK_P@vomcSnDa)jT6)h5E}uz5Fr0qU``s=a^BPlH=2iB~J zuXO!pS&3~(S6G6H`-FxSY<<2ekiM@uVD06|?w{D~AT1MAjz}Ci-nxj-!AH)F~ao8mt-F{6CLHfHSA86ZH|WP7Kh) zN3T<9Og|7g#8-Tmr(DSE3nghHu)Zp5P62r&JPLMge7n}{mQgLPrnrS;cddp~{|e5Zpv@e05}=^V zNh1kdA)lloA_rWDS_C!j!lPM#u|r?a#8=zcSe-@vtmiFR6p?mYSPQTa5*>ACEABT7sJ808Kqf&R7NjV+o zkRa*Ihf?MBNZ}%Dd3e)e&!EIysu0BkWw`OR# z+W8aZQDQp~wC{$F%GX3!@}+O7?7v6*^T_TVxMzzH#MxBYT4=Ti7aQ4@_8wegvaS`t zZu$Z>@KZaSA=!Gj=DbzjR(3>eLHrhIZ_;Gi-jcRw)*50BqRA3L7^OFF4v!FRYi24l zOFQ`JjouqM6f0baZq`KWx#-0trq^<(T%^)aZrPO~Pt6Fei{3~m+5O7*GycMyvYbI* z&iT)s)|^8n&l+OMgF0k8Xa*Iftls|N;8)`ZLHd=RS&}W=?Vmz;*sX8D|M+rhaj=oA zQC}P$`ZnP?{ipjE-uUeAkPHk%D-q-!0VU}I|H}px19W(G@A>`MU7|+>u)B0ixRTZu zE}UClNEP~dOael9^7s8`m`K%zl%uaBKsjL@A6Ko#m)Bo|L)PE5yt4lQ77;>F4mp^5 zLL<9p47VL|wEyfu+bUBpK&_93+%ssm>N6S^Au*5&-3%zI%%)RJqbdW5ndHA}RAirBwe-OV5h zJKwRTDP~PIIPcl|(nQ}-&vWm|649=YB?svt`Sqp`1|Kp*xij)PZCCVIp=)y;@4|)= zB&QU=8+x6`c_wvXw~p>{9MOyMuL1WR(?8hRH@8(?i8xPjp88chtvB!I2h2Ttw!6mO zmZYHEr=RuExi6m|*Qi&Rq~jd!?p2<|7E5R0=7z% zh>@_x=;yU%OTqed5TYXdMzPvDuhf`o@W2tvvD=n~QNG;$1}TQvoF*oBu!q@Ryl{( zGlI>w2pw=w=TzI#x@^>cO`%xx?MkecBQS3CV{8`I#d&HOUOI9jlL6kiYJ-O}` z-N9}_2bml25j1po4cBI!8aEj?;C^4o!SoAHxPkB;@&kAeRDlLOVB7=;Ks4wRsztS% zUe3_|ZP)7)si*b7<9@@8Qa<&)l_$z)#zZBMM4&$S{2)GXVWn~J_WZ4TZt|@4nrrBG z+FWcoees5x?AhId$$ntCni0HksJiaOW+`>i@SY^xGdVhlV1s5&Y>R)2A3Pkz*L@ad zGITA%5p3y|<|O6CrSf%o!-_Fl$FLS5EE(yq$nrbB8B)++(4*2Y`}v*Ry>R;>%+QEY zD46@taLcc|AG-C5 z1YyeN@kH>x&q_$C-GaJH);_Ea$S>I6m#B0sI;)DbI=72C^BsB>^4jt$5OdcB98z@{fXxG-s&oJ4Zp8?XQms7B8WHL`B+TWrHt0Ql9@&r}= z!#31JWd4IK?3@VDFuto!33RD;j<`z`@t8=Q=I(I=cTTDG(gSV5hNG%f^$qoWm_qqA z^|Pkv9M87k6h{e$%*Vd+4ocvWwe=i6MX!(HW|z=2ulqH7W<`)I&UY@qLh&OYFt?9M z)!ow8Ted>``}5#!!3zzHWB0fbco26DDD$(N30pix6OmygH_@GVDxI1pqJ}1VMCkO#G=nQoszcNfyxrU5}Jmif)+`WAZTyMtq1CHI~1E^OnF7+6!!Wu z&b}2sz(IO5sumbH=8Dp3*8wQPJu&&q0}#B?vD^=DGQq2S@bKixX#w|=>>#PP3Vi}R zZ51^l@Awwq7rT`RIDwX*t;vlvZc{zQ@OL9%-)lk^a5|kj@-p|%E>Q85o6%C^U5#pS z5s=LFG@mMhp2BC>)o9PKaGuqrsnFym;(@}-579yDy|}gHM*XG)Tergm#(KYLO%Cpy zHh4D#*4Hx3dHvJ{V-j1AT(pvc@Np3{j<9q-zT`R`kx^6b)* zCpB|>Z~7MF4TZo8KQ!!l3?$(3#4O$jQrJ^t>9qYUzw~{tg^cB{4LP0|XtI)gfxa90eDM+5f9SpS)cd5&GXIoCd_@m?Z@QfkCqm4uL}=Z84cNW) zV#pHR$t_TwB&a#^We6)X$1Vh)I8M*}; z%*Ow8IpcpOmTT6zDoAhR9!e|Oi%#pm?s(nf6(j(o2Z-LF9`a=?8-(V#y&QH zkI5IzXBqcT$6G$9st2O$#s2ljyK8NlWw00WysoS|R&Az(5ZtUMtH3c#P;_r1URZ*6 zZS%>p!O*}w*4_-N$)zF%i@~6hfT){S9g|8`-!y@FP;NvDK5vZ9A=PqrEP|9@f9SYc;9%lEzSqP&by(?onpb>BOr{m@TC>o0D?UnFr?9FbZYo2EgS)%X zU3bDYhXK1jXpV6`)*JR}>iB^#-PwM9J+kk0IN>b#c$W#+PgcXZ&$Qg^BRS=GI+rR7 ztUK&W0pr+!HpRX*un3%bk;=JaH(;bmKFXruDs%eVPnq4|y z593uLM0>t%h|X{0ZAIw^y-y7v?|ce7ATQ-y^2T=@6y!Q|L?(TESkJ!5?k;l*Jlt1B zL$E`I_U$d?U$KuaX}=2ollBDX_4{M4^!AO?izX^HIDOPr6x)^fb<2u#GW(3=;KupR zo?vX~svg{v!Uo;s%tW30a9~dc4WSu@p(lXd?}A=XG{MWQypf=u`DnlJ_VWSH9P11n zYco-vxwClCXEPy3`-OcTjJN$!SF-JNwCC;e9b+iPhhpAc<0!upkE>Q$%HEsF=S|ct z2%1>l1V0sjxgj^?JqyNCTG-IR^8JhZFI00@Z1SXlL$z|EtS$hKwZXZSKf5#67xUn= z)(|RhN>9$})xK-6hv~cCRWM?f>c|Jo^y+{f@M(BO1o&^S^Hy*jnTF4vY$Jp=5G#OV zbAkz^IW)^XAAYvjtZlJwaq)rNFOTpH4`NrrobLkb8Oe$3CuQOswI76nB9Rk-l$}-> z*oFBY?->?6dk>^w_aaYk2Y>sPadG6g&ob^srOT<(&O>MxuQ7;({3yXI0dX@p1h zj(NPZ!$FQ;2HQ_IGQ%*5ueIY7!^yH^!SgMGA@cKC7+}Ax!l4NcB*ua-D$(y;lSgYm z6&bnm7g?3)>XzQEE%$cA*!7#PR2fg7o7=pdhK!Maq6#@!vecDbPmZ(KU$YhF4Om)w zM<{}~?Upiof(aqoPLou4n#>=38V(A=p5eYfrMjZ}TsLVUnAM9G2GDw3l%)uF$}bvTi|h$F^FMA?eE~s` zGdcX|Q}7tmPl*Qr`F^4f0yG%XeC}ZK{?{%97NJ10T=>X#fV;5)@bT^&nB6D&r;N}` zXIib$*Kcx>7vwEfJ@l8UNkm$UzXf)nH1I@AfwlXTHU-=D-?LFF-Xt7_>`3Ej1y`y2 zWY^@P0w_Os9E?Ao0Yq92dtNi9ls}yaf=f6q9hL``kkGpT*k^!l3HenT^s@yIFA+$z z&&<2hrcNr5|8%U?w7-GL_Xb$@7b^ibuY)>1NKFBT^8d@+6k^CRVJw*brd?)#oBu~< z+~8x-y5cTSYUcRhz>!*<==U7{u<6qcr-4b6#cI=HrG))|J48YLDTrTYKQ~WOXb6WY zeq0f)7_l+4&hbSj$Ftjd*VGd>m2?((C-V5**m7A9q+3i>8iW7Jr|8K)joE>~3VkRq z=o|0djXfd;?9*8QyAPluKjWZ~O~G^>6!$tT=qD4*Zi);vttpY0;!q2jE&&YtKekQ) zi@pWS^74t_j&1>v6Rf@H-HFY~oS!~~4w{`J|1KNfUx#F4&(zS@+1kMwpmnJ-c+Yuk zD}Z`9sUxcYt+!!iWlmIzTEp;y0_s_jBWNcZ#3K}{G(CO1->0j|P4f`L<-y;M`6phQ zyrSZUA1gCEC%%q!S0w*qDZ37~6LC@TNdRcs_PQEi-2cs(C3s0x^=-OMtF0h`?kktR z5E(mWikZCT5LWMBBg^IMTVA!ARuDhY+uqLpvOXR6iGVs)p6{(;wN4ArxZj)+HVN!< z*E`+y6((KdV$v&wsni~@{zvZrXn^02WCI&QX&D{%yz|t``!zHAaZFqIg9VFDq$_45 zJXP6awZX7T?>c}h#PkK@ha%>7T}5CFo9_Fa->N_I7~56IAp6*-UlH{D)x5D~RdV ztIf7KoI>Qu)cF^OmPvXSsRE{Ssg0c*E(;2w0W>C{bRp}#R>iuu zbnabDsvSVFGb=8-q^hb&3V8+4qZ%d$T-w;7Vpce(D#rO)jjH$w*7PF!ma^%pcg z=i9ecw}R~~&u=Um)IrGc0bqiCzp&K%?(p$(ANJg{QdkOVKA?!R5aUoe(Qe>p=#hUX zul?plQ?!$?K~U4dc)7J{`T_m&-@4Iy3?T);`0gkcojY0k+t+JTPg~5=%W& ziD{wkoPW&%vo1{G-4*8JzPE4Z#ZiUWhE{RgHvkU4@}VK3&Dp4S_FV;)yzKU~;lbQ3 z_n)hxB^zKzh4VdY0JC=$AfU(50-f?X+*BI6?(3C<712LH~n!*Be|acANL5(1KR+ zM)BqhnZ9QcT!^Cj#gDCz@nX1G9iwQLamU$CRHxjD#%@FrwMC;>4c9Pt)#dX`J#JYp zf&PNm8kYubOt`Kt^T+S-yK!=TT|xb2hOSDY&^1f+>UG?ztxG{<*dcN$V%cb1E^QS?@{6)hJRtk|# zTfYC2Ltn12;WOM>w7GY|{0NtdY6ysQd1srsuc?(FO{M_6)u-~FCIVHivj<~M%Ucs@ zI%po*mLYyO*6aPfSGN&8=P@GtcmnQcmT0oRsvSknyi}eB?`*7cj<=#iYrLB12)j3VDSnMAFb}pk#9ypU^bFLB6DkQFYEpCc?x@@RczahrD)w(jj$HsO=qVfk^%w&-q;Y^R$bcK7f7{ohaY!!D|j^lcns7cP2lG2C?rNobJKynD8`TM_do4s9L*6SiXqpI33#&qu~7$=O1C(&Q5| z2g%DjvJlKg3yGivL#?WF^ju93DAiI><)mDD`3-A5Dong{N>t#UH;h)ZB)6 zx(#8huwo6aeq~B{JnQJLO&wvMxb4+;;**I4x-H!o1ilC*6a-E@NM-N7-@SEDyIVFD zKVc@NioK*}T`fSrl%@@ZEzsdz7Ydq&9}Pg+uQrR9wsR%aHu_15+-eCj^qlGw-wrjY(nN*6?mr2O1!s`(iyj6qUXZ)Z?(ZF2AX(2&B zW7kkBzvP@km=cczj~8)ODu*WGmB{Iw0Hdi%X|jjQOZGdgDUP3>SN{n3LGrB7xJWB& z-4Ln1+U1bg#jcJnFV4`X_tdeaJ=WO@h?Q2WAc=(=489$;ZNwDul1w%n4 zE?KfGuc5XV@aoFT%O}NfdPL#p(dQrh=o_Q`hsZ9*On5*hQZt1%MiqD)IXeb71n?a) zxA^So-6g9AGgmYvWM!4F-8p|uqOntMvk{z@6CtC}ah{Izl1`I<%~tLR(Jc8>Do2H{ z64wFQRAezu>{GdXf)sXoz*bP~z}VCsy<}cLtElIqcl*>AZ9UAw?QcuQ>A!h!dA=;% z3h)q2M2dur2r%|dG&!&Z4YHY#d zCvz~XgHh*e4z9`un%lKLHlBafG+scbhzcd1+uXdbt4&s zn32}E4>?L5ap{5?ri#vI;l5c9e>p5bu@^i9cEtUX0F{Pox-^t2mAQWPTDgI#W08&E zg~p924Onx(i@^i|@v1+zt&JDdq_;q?j<*%5mIfzr@a>eo?jiF)9?M%TgNKnM5VfocDeQlqNwGm zz%G|pn~ZGZTXU;ePU#2lle_m2fTWoRc;A}28hqye;>gSgC?Cv=1FNR8z3e3xf$8w0 z)A!by-nd8-IX?`HWoL|y8*2aPr4L|FPx%dwGC9m>EksJqcn9Hgfces9)Wm|NphqcY zCAKtumWNo-aRDFX)VQ8^D>(d)-{!UY3hjPH%hoY&7DCN|r~Nj$QuqA@uSR=;rdtch zH4T#Rg@?@^XuWi zW>qczLuSY&Y(9wy+pBEaSg&F3l%%~MY|+>PndDB5 zC}Z_Gd{6le9b|I2anyM-1fj}AHXhysD0(J+6yho*1{r0=;G0now1p>HQ&({+7MoGBVtvP%~9S& z&gLE(qi9od0g#bJ5;(HR*1A2KqM3)V3`x&%P4`WbO;;@429iu9ntUtLyet~E0q2-u zBp@qJf>%cO&Y4c$*qYuht%}^^-M=rzG;tY1@Pa!xcxFpkvlt#bv8=+}&sSrMY9mSV3C< zyR7wb7#+mDY%S=Ldf~*gcMqrT0KdLTft*CJ$zlja!^!@M}0PoCNEfsL@LMompbSBT_>qK*LM>`DUju@_owtsZ-f4lI`zOJp(U zPbU__bHe>=PVsD)zh@_5A2QF~`vk7t37js`1{YNPxc4&Px3#%xHh-SNXEpoXI#l^J z;J-Kzmpio)?yuiqgs!f71up2pPHseW-A%3TwB)VDc!N05KuZ__gh0SYYTMr8Sf z4&q|LUuZ7cM!nl;>n@^RH-|u)xX*0Z28o)7`Jf4 z4m#TgoYvM)z~#m8dk#OA%QQob;DFQ=;9AjdhhxeWh%jy8yZ;@NGYT{K3g3VUQRO>kO>I^vvM zH6E4hHni;B!_5OLzgTEPU&38;zKL%oM73~#n#>t{-|PmCHc>}ENpOO7?wQ^-HyVBK z-KWgQNr7iwNhSRN`YiQ*%K$Ba_b+2?4AUv=~)j=sQO5fa6 zS@TAmn|Rtmrck9zx}2`9V`*`*=SjNcT2>(Lyn2pyRR{KMyz!}dn)CQ+S8GzJg80VP zSh^%iQL`*v-;Xos8m`fw9^?5ITmBi)wn1w;0&rR2LZq;p(x`t72d~gVZl1dX7DMPy zyc1caQkx;t^6nRX%{0!_FT4vJ*u8+RMG-~`QSMEz{Qz*H?z6*`H!)MQyngZr@KuO&z-9WAEa(yX)8rQWTOm5gUGLbqxC2`c&)@W8hw_`o~@;F$d7 zaLd!l;6eM@lt_+C?(R~%!ABT=s2I5B7B{{9tOf9`SB^`W*b(_pMQ&4>iHp?*G48WR z`2_$rKC>eAvFIlBg#GGUAd~nV$VC>Caj`=Ayv5esT9RPPs{ik!Gd!&|YTvwiA%JU_ z)HmN`)AjZ&?esheknGPs4S%UJ{^WC%OydI(BT-azUn?O1tX=I~DDed?k_xZP?OjrV z++?deC;9;1m)mXH4*<4T>)Q_iesQ-D_6yLt{VwX?$mJg8{fG`fGeuJ!I$c{V-n2l9akl?&3b2gr_~E0N(xhVni?ni_z|*`ufOk@mmTS1Jod3 zdlSKJ{x`!)=@nfaVvXlo7cXqG}&M9-7P{Wb<%jAzDl)2ul;nGem@yc-V_kraf|i zQThkT)=!qbNFY4c?5hIdw~-5g_5rqSF$lV1&kZ0i-mG7oZs`Qj_T=ACLxdW)WMw1g z>x4h^ypPHL=AD`MoEB+tJP4Y-f{@w=98S^S*8K-b+<#?T|8|m;YM?8}U%>hgb;>`; z%*bxT9?~P}+u|DpMUw7Xo(4QwssCK14K=2hS4n9}$>jTx3H$H-s6YHfnfI4+Eb4hd zV*cl#|M!XS%r&4gy(RSijkd0?`yXQVz$QVuM7dYc?Lb)Z?F4)$f!6*fmOhn@DMgt{ zU#WZ2xSC@EO?gj)asLWcH@&R?^CL$A2a68>%`bds6#@y%h3?nqmn53tE)I!O3vqO) zrH_@d;Z*fsQT+NZ*R}1Hu@^qF8wYl`GSEWE^3Ol>c#p$??z7CrvnqfZKcP)WyUG6q z>tC102Hyr-q`8&vLn;mUFu(%6?XFU348^T>&&dN==-+*HVDY!?-@w54VRa1{JLoeps^iQ!`@0mR(_^&=kK58#E4;F?NYzEpO z+JBfJP~nxU2vTW~yrYbAFIRDER#$6W4jkps6r|+U*6;hUCF)A{|CiJV5^|= zM)BE*Yvf!C@Ko=M8uaiFOiv?nw{Ftr;^xlXZ^0&F=y38oKk4c^zszo=N|p&HmwypeFrSj#V0M(T;j|cfUnxq(Q@d@uorix zkkOM<9)E5kA{Wt4xYo~1qqkdvsW+xH2Zq5;Eu^58bQN49}w_ z51*Z&F57MK`T|<7vig$b?6Eza3NwGc0|_=%^@@4oqzUA{x_(cxV&XLI*KqSM9sbv8 zzjOoq?kQi*lhZ7aBvU{qSFhTPvRly^0j+D>VE!TMPo`O-CMo^%)W0o%FNz-6`$s zp?M&g&)=zfvE?LsySVzNtp+ACbQ}v>3j@*?-b-Ooyk-71?Lva3?a9Y2(0T(a9k%Aj zq!j)n=%&Oj;GVcczAkre*>ERcpun#C2>o%azSA_05+0%#BD>Fnfr8F{s| zy9uP5RjcWjji^E%9^<(-F&zv_F#du#=|;Y(WklP1(fnp9eMHeK@d zrUUe#e#E+253-Gy0h+DPA!T-Z;R6;8c-pSlt_feOy8zU17=fzYLvN}_IaEu!kvcQ$z>)7-Bks}K!L#>I62oumwR`?F zn;xD1ntRj(J(H^pHv2vf-iZgo+50$_0+*8g%uqUdmVVFCm{#A`zO~5HIkJl$bE)At zo2udfwr3^`mwCWyZW9Uo-=+j0hiWF|d!S+R`x3~nIdFVvVzZ<6!V_i#djPIoj&{c~ zP_tlGAL?qmk8aVK7z>|2CbyT0-t<-w2!0!O|8JAthA1n?9z?ddngnUd^bX0qK=cUM zg2z_TgD8Piez;}i@vxHWnx~=O<*&wD~^KJAT^a)lS6I$V5M} zPr(aW%rhs!p6=G6``_$t-M?l^#HY=7O&+5ONUfTjC{yX$Q}xH}o0omKt{NXp5R&u# z%=T~2mNY;p=0sTSyJeC*Qd%B{)3h2ml$G6X= zkGw-zF@JjP*4U}^Z#GAU4UwRnFR{$gSAcmi@NnxEAh;u6Tp&H<)#$t9&@fpC0#liF z_u6Tr@UtYi!bN6iz|tH8%To9Q;hQVx=7Io75>E@^{euF<#t8!*G5&URBT5AN?yBYt zIx|y@aWxb;)ptngtue;5p|;nfm{owZDflF3UlZ;L^FnK=OP^l1(>5bn6|-dq_Jjn$ z#N-7v!{1d#e)eIVwP4p!H|u`qngn1YfXCvLdi?l{beUG(HTlLj6+yx2GN)q9fO=9n zNq%ahhO;+k((;EU>`MOnQ5LfCRQR*y9#-=>S#CFFm9x^ zADrq4%(m1lWpNQpD*+zu;Kq-+O-q)A)hM3^g(*9*t{ZGs6N6k?Lvfa0^WDD1-e3fv zht44$gmIZGZg|Bd$b;Bg3-Z!fP~oPqAR~TA<#}15XX5A~;CY;ZrS_~wWZt0Jardd7 zYe4+8u#j1P_jml??^!CiY;Sb?TQm?8tHSIssE!Oxy3PKKu3&;BEdj#LLdeD?sFvu)dBF(G5mkiQz;5ExR9S%3OE|86=w0XLM z3jorZlL~z}NnOs77ZIr_p7rCqABDAb%bWX_L?xR@TOy^Fo+pbFtE${eqBD}4bbw9* zXRp6nV|gSAdFowj9q!xB^rIw(7xC0F!%5gE`m@h`*0?O7=`Z5@^8wuFeHv)RM)H=d zbPY_=dfskk6JM?H0YKe-G3O~}C{2i#)c?68rakrlOJc%7(~r%YAvKXICD*i;3#fjs zin$J2j4XrYgkjcS@wAQV5@$aH>5DGxXZje}n;33{J*MQ!R3HDA4W*iFx`9JacE7Ut zA#7Jnv6Immw9{m-0>PrM&|Gc0{0W?O4Lc(k!rC1><-N25PRgXGo%P06;(IIL-K7hT zHnp1}1T!CVKwbA;)_cnY_3F$tB=#iJFOB`BkvUH=ucPScW@qm^G~T;Q9WeyD)9FL~ z)-HhaIccH@Z`6uW_YOEi6VX>W!Svlueaokc>yLx3VTp6mCW?Ros1H7XkHlifU$xR=Z6 zM!RSXCJ%@=x=TEx*U#S-laYcVJ`nM_k8e4RG;(2Fr_tAeR;yjqpi9CIDDI33?OFV! zbh#j>{I+X8P{uFl!%UWur=cA$FXnh!thr(e>`eu9+|&F@>{qTPC>tpzuD?wXlh3tk zf2++C4HR{FPAbA)AosaU){$LMMu46{dr{uagyXv}5eg2zi>cFfFY+sSl{D`JdpI=^ zvvT}VgfCmcR5 z=KwE0lg>&xKIWr6azjQ{eL+CySYJ`@9l@(SM&4YHNzLWkWPz3YWWst*2eJO%C*YO` z_zNW0Nw=PY^D~^PJt+HXLKDa)rysWVaBmpb!;Z946OS zGy|T320rf7u~}AYaC&s{zIEZaIpqCqVBejpld4zdMuEih!PZGk=dwgFuov(aa5sq+ zx#Q`siHCF$dKNs)=gS>$@&(`{HV1on9|%0lJX(ksLKgANUj?3iV;@iOv}Jt&$EISn zsp3(M4Mv765Bmc2S$2`PnV|j2umL~W7pySgfa}p!G zXu2G^AiNo3t&?1ULX0%xfU|u()S&CWpFFDmKEB>PaPYg?$&;-`+2Gd7GWD5V&Y2!! z1}DY7fJLH<&2<;t+kE{4xbN_hvc3aZdj_ssv}EJxsMq@F@E~IZziyS zW0K?4J%Xi!10~&{T40P-)7E4QZ*Va#dWWnFVfny_juBZGoI&Z+yM9K{DB!E77wJb1 z)XgKO_Q_(GR~?(bs_1~Ab7?Aly@6bq4_b2dZvkiUHh) zIxX~I{~@*GyC}g{1lXCS{#6I5G!39v&RH_6VCyxp0jkJl;2YL}28NXx>|@GKPJ|GR z7q}L?gjlm4!!@WQ=(cQuiZ@62)Omo5I6U931_&d=2T5lQz_Lvd1e5WmbsA|;!H>)* zGn1P0&d{)=Oh=xc*?$OI4SphafS(vy3%N0}&X({0B2wCs-SYx<<4@~#^`$6Ur@G0)&KrXKfT1VXgmQmlWPxxjR4Ufn_ zNLthBqTK)FNhswz3}?_P1M}R3r4YL)SjRVfm$TDyeqn)bJf#OTVKXo=$gZdXJbAzO z_qal(#_Qb%!{k`)$xukDX809Y02;{x0@o283adks^peW{HrjOO$D)Dh&W+B*QbhLL*)2yp^9gmmBjpM`B3xcEkFjsSJ? zan9atYq(c%sVDW5@DRWC-nU1UTzAiLAvX;%e@hL%7hPl+f7xe;CW63e)e*ym_^6&F zXI)yD%7Ku{e4ea~j8;WQky}DO_duHi61H6T(BoB+$IIGvptV4Ow}Er%>K|t_ly0Ms zPpQu@zYk4!T+JFd@VY&;aBm=Wn9;Ye>aQ}xue$A&QE7;BY)5>2X=YS$^@hJ7xe4i+ z&;B(T4@o0mDsPmq47IhP9#$z{1!ph+$Ug~=Hn2Ugpc_pquSh+ir=s`&S}CF+pBspN z-Bu~;Is8D`U{{g3Z}#3~AiJAi4cn;I#EgMXpFps?knc^(dAiiF@7JB9fGY9tn+IB+ zJq-Jzil)Mn8_|(X9bf~#^KS;3*T>~vniYcJ5rs)U&LJ}P2?rV&$U0`NePby9)mx`< zBJ%X}bKGvi*Gf6$?{R>JIgtl?S#YVVICa(psd5yNUPLXt=X8V0wQ|Y4aSa+4WMNB` z#fi6;qA&)EWK9F)h4XXzb=&_m+Xl)zDXx|jaI4~j-o0Dm9GaXil{m8hTT1v7U8A9; z(-UzP7M8AWD#msn+#`j+u#am5&OXE|b^w-#FS6yYRgVj)_e8jc^yK&nMUi-++!9&l z33YZh_(L2`(-+yM((uvDG*OHa0PZ=ffQ3-FwTFs!yrYe?;o6wOodl2mRg?j zKl2Uu1mI5v=$}Sz|CP9DFFlB~`t!UEC?o^iqm{s|)>@#6Lg}a){~G$EU25+JDV%v= zhg!K=5I^E0pS&FZg5MKK?6kWL~ZjVctf%4c3;T;@VEc@S-hu1NO<)3fB*yrw-^IG&=99TWNTZyCcqs#Jx?9c zD7{4-s$43+JRJ3Bw8aes>2G@oq!o9*f%jwturkwqG-9GbXHzr{HH-C+9AG)XH+R-t zpOC!G0v+Q#Zn&?7Hw#q8-^BHqj@o?lw)$Vh|mMKab=9v{2tsBUJ64yRL<+ z#p+3pzKHIKFp2+R^drrzl_swyT2dNfPkVm5HvnxtBqUfTiGei1a!G32#^}?Sq<%(Q z?KMf4kMll9!yzsUi>?w}_b^!rDY5%v1DUck~LJl$Jbe5IRe*L`i zPbj2spi(}_h^v@oH{NKie^;R(_j9M*a-ccVk?%FdvEZ*{PZ33`Q!I5BXvv(u7U}m$ z!tI$wM!~_+;!_9y+v#~O&_uM;5LD(vlXrfSD4Z7#JW3XAM^}@3?-ckftMMBbh%LTD zFOLFVXbEAmR44K9mB>-hZoJ;HWCkP`4s1s-U|kxl{2N|_jY;Y&r3f9F9$cBA(NFb= zh;h$Ld&c8d6W;@Tj+-`w@b22;?9q83-4)tvI<^>~`=I{Q3vFii&p@r%+A9BWBu0M3KrocBdg|lVi7{y?G~2y- z@?S{G{|@4BIB(EHAi)D$JV>QWZDiSK5EU5yL>L` zQTa(PPSGTi8%b|NyrQL|zjys_uKeKTtY*;Hyb9vd4_UGG^R)1j z%`M8(#~)LfLv*^vQo5f zptAj{s5NZ;73}Qo#HK0s-fY~#3+~?S167s5n|KBaQseR4NQQ*wkCg?RFazZ)*Gbp1 znKU^kRJ|l8XIs;mEA~!4U+Khl6g|eD#C!D$7uOS^b0g)Gd}_6z*a#HG6ixA3VX0Er zyP9(7M9|JtXt63$kx=hjsaXw@Im+!H8Q!>fZjsmTJ!W(3`w@8MB>aKgPCz5(;6uI=TbowftJv%@15>u6$>$h>>gk*xeZ-}f z>5%-47M}F?Q)VTKkE()-jb2Qm=NDgKESHT^imao`uaCj>jkt{AC+F|x5(x5-`%=FI zt(ZN*zrhK(opXbaH8YTpMxQBq&~(S-<|$Kl+X!rS?fkPZZrKKxN+OM-E1LRjh++)c zY~3BMe%%hZ@otWZO1WH~x6``tt|r{At=^Y_(m1{>30@A@ZsrkNHDFf~?_|6}jHqnb+h@Lv@b6#*3$r0SqxLsU8eGKzpGh>8jdNEfLIy#xq05b2`Q zVH5?G-fJi#MXG?*5JHij5Nbk5yKk_JXU?2CGe>^+-nH(Xzh<$7?7j2uw|u|P^L%={ zvnnGFx z2w#cQ1RA@G+tVF@E%}0g`tHl^#`od`ru&nlFrOdZj4XLIIqgwgJ8@tSy>m^$A%WxF z?Z_l%34p^cJVXGkFpybG47ABL3KtkcF7ng4G|GAJ(06UL{%si~%yV)sW=vs*@FR6`weADK8yi|JhGxuz_$$ox!`{lbi=sQ+7`KI69od^XM zJpkszXn5o;Sa(14icKZ8?B&@ZO5kjkI1yaP~f;qG><)se(5(=+0Syj&_H>dyMr z+nuClcshMP>QZ+_eA^vjA!z+YNmx97u>II4_1&s~sxW5u+!;7^%p8w&vo+qlb(s5j zTi0_v$-Bz9Q#19JCk6qE_ArsS4yVUx5+qX<|X|IllM44l$m6+?7ID5bT68FfNcn2^M@{A0a$5 z38-}Rzv=FSABJwf{nXK-r8&}`fuv+0`_Pc(eIkCGLS@dqqMC@%)MC$`73KtF|MiYv zz*%wT1(_#E_oi}Q4g^jpzS_XTVt1Q;aBef`#_O6#9K|P-ZWV17r(e3H` zy%slenlmoG9sscSYUwA2f8I5BOl$bhFLO6b?5c z#AE(JD9@kO$oy9HO8K`)=HP7Z0?w9mDNkl-*uE;>UlPgOAvNEIyi_J5mUXO$*DLqju?x4f$gLhYLLe9wCy&NoDQ@F% zf+(Y%sKQr(_NLFNf!<0HU&1wfK=HOGW{ca9JRJR4mxLjGQia>IyG#*D8M+1ITJGp} zLmP*iRR%8dPnhqJkY0k)DRenmr%JT2cc*Ld!nv)Cb{`XW_2Hqo)w2)il|?8%q%ih1#2%}?$&nWG&z1h!_&m}lHy=tN|1<>GKw zmhXw>D}T00cQjAn*!E17`6{7hBNz-8DpE+Vz#DPiB|ZNzv~EMPqI7%1Op7@uP9J#U z?KDf+OSTrwM~>yufL_WMQU7K_gfSNg);PwL(X!z$LIp8MtAd(x2j>%$2$f~$>(M42Fg}sPKg>C6H8!r& z48eS6>H7yZ(Y0tFh)}H71*S*y{BE!UYJSa9`=Jg7f^>m56Ub&sqg5{X%6Gr^jQ&Q_ z%AXaMR#vdD@-;xqQh$gV#XlALQUDnT0@OcrrdHuozF6;wE42$C1JMuvgBF;h1cg|Z z(!O=HK2-?)K%!S6)5~>1BgR9sYpBuV@8nl~@lk=PC-e)+=i7c5ga930$K(otQ($=0 zns9#*2dr4)x`FA?ir|<8AqD1KdO&+$&{X8SAY2^#ciJ!iEkf)+oy)$wDFFZWXNPow z+^=G7K_GECo>SK7lPEn0vYk*;c|M8unlv0aX6u*k&uV=97bA1bS8p81GIsr1w*D%= zcV`K{cJ!Bl*ML0h*|F&#+CYA+TYR1OL8aiMJ>W5|LfWT{V10Sa( zcECR~0W_;S+<*l%Dj!%A^Uj%CnRE>STR$j_UV4Duhq(g9jNj2tB7I^En7zKlcep1x zUFMbx?Ka>}Ny|GNRgbb6`I|8u|8bZ6wM7$WvoTWR$9c->V5Q z=^4)??JyN2@fK#0Uz50kfDcD`_#)UeSMCjJRn3uUo6+KqJsa=(j>)I{AIq8`_2mlS z8Ttf+{)D(;@kEI_{#r=>dPRKy$D0!?rPd#>DT6@JLs?ZnVB>ZH zuv%|}go*ypdny92^R1)rA%1QMxb$Z>q!R=Jd!z>V5|De+3 zv;UcN$D#kNY4UH^C8X%!c6)pY&;}`8i^mMI>vC1T_WOXwM8;P4_lDos>q-F@lTL)t z;~k|ee#zW$v-nH!%84FSrD(`c9F##_R%I^}f$~QK6MAXW)4F|&1+@p|2VNUij9)rD z_Zkg+Ua+~0!O3&pUU|05s0Nml>-_LsZT*7FaV>~Ds5sF)gED!;-|l*o5& z;pwSllhxNenXN~=4ifqo<6v>S1J1T#CdYW)%N8rmAt%fJq1|N@u$ukb67#(g{U^9l z^cLC1{k^ZP{bY9XfIvO<1Y?mSwAR?6_REv@s*|@Hf$K~7jhX>p@~r=-Gy^TSE$f2o zneky=rvD|w@6S8Lpmq)#$G`moa`~BtZRe@Zt0~udgnn5Q=+7hrNZUU?^y$fWV-m>d zALI?D0>cUGy+F~`X&Hc}*ym9wAPQugpQoiuuF3V$j5XUL_3FC<=6U5EfVLW+oIE!f zm^BV^rNFMHCTx)6cm-WkFcqo)lLxSU78O}0)mtdTe1d`(o~`}u5EE08s=tSf*nfUS zA98K9;i`*TizEYoqy{Y-ct2t6B$EO5H|?T-y3sfd5}@d~K(n=L96+ee7aw#)itXxk z0e)Xi|1CTDXNoysnfha7`_DWE=6;Kr8t|j+`oCqx{%K+VYo!6qHB9J(FH;R@Ubc61 z6*dXX2-cPF=bwi$tb7OmVQFRFHOL-#$fMm9G1$oa-X9;C;r_q3zgAx1-_xIkO|D4+ zP8K{{y`t6lCwEC-GiV=1{;xif@6F+V9g~_=0J^LJrlD2+mi|GSz{;38`|k~cJ3cJG zG2=ykMArUwI_h7~tY5#DfAKT?F98V zDcM*+_J3t-|4*IQKaB5h+QJC1c%5wv>|0qhzc6i9VG90z3laSXV!3NK9@Cx?b<*_G zEn4@n*w)cIy2U@gk@_8`1Hugg*ktcM)wBWj?>_0V&O_Q6mT(U(T0jpE{Ad}no(cX7 z6zqQA$r7w$kf&W+0~;xo&0oDs2oZuTcZUd}h~jh{AIZyhV8FXzuEVW4rD>pMrxG_~+V&HX< zf^D-4EQn3E&E-7^d1mUWR%0Z9ib6ZjI}(h(Jc=wGn~t~{i!j3W8!<$Z%xerWPQW^b zumhP$SJnlm*j$=__3PIy`TR!ywCDQPKeLe*GZc_;K~p2E{E&UpI$Nu5tAnC(07`KJG zFteiVE8%u#?nk3TuI&Z(E~Xj;$akyh)*<0}rdiGn&p46e_Zps6GjuVLoKWh;>{w28 zd55ydaX`faN9*;?~~`De<=*SL>&)5 z{bJwCOsNTu#TW0`#6LrTY>*XFzzYw&#ykBBEUwedZP;Bj;V0k1$eFc%4Lcp4v4cRk zP3HneuloW;YY*7Vr~rGbpmM4~&T@ubab>>u(6bmByK&C^(J&@swDxNL58u_Go=Knx z2RQgC+Sw@aq91yk9VC2|y)qB_Af-TS3xT0F%xYah8|Olzo-j4cvRh=Efv*$;gU(G% zw0lxKxp3g4YQ|7+H3vr zJ#8@-OX~%g5!GOceFQqO3cfso@^lnIX~@M5-w}a1#|YhZ`T zkwWSnW==N<7ef6suJiL|*|tPa#$*!TvIlm)pf?f(Of3zP$`He~=>^qVS_#B@aYF@{ zg|jZP1D7$K&xdPwi+PUG(_w{G8I-yNtUbk6yqwwwd<<>d8ws8iV{~*pitIsol%}6W z?a%0Qq^V`(q`9b<$1!dJX0JZ0sb3)m=V8;DdxT%sZQ#RoEl=?LZCk-$;}o*$%roNq z@udxN9e8NIEh^MRvWw@sghw6ES~X>kHsBXekja5ElRrNI(N+L`x&rtW^Wp?RpVL>LJj~kj~uXiKry> zaX^>)T`|!Mp|v2XQ&Z+s8|yp->%9bY3gRePQogvS5~i}0Iq4Sx7&k4K+xbnt<-h

    n3cNJ)Tgie^J>tct(IseecKU`s;EPQq5YRnV8#pwAv z-|Dgw1818}{FZPRMbF=rJ_<~XAj<{51OEO1Gc;<` zN)XTGbsRvV^#hIg&#UwA-UFa|{IAtp>}Wul6zPif0!aA;j>l|}K3ge}_K0$?X!VqY zAmpD+9IJu8&#ld`=`7LRZ;7%qM#-hBv!4J`6cTw7Ghq-in& zE8{hfjVAHI#_@P(3-ypWarL;|>@O3Wpv1uVloug`7fKga{2X6W7Avy-)}6I}+6H<+ zz{{`XgzS>B0f1(tQ^(s~nncO2)SLMJ(BUsz6S@;ED^X2wIRe(R%v@T{&qowK1&Kqz ziKs+{F|4f98RO39cZc-j^TjOvAG6CUDbm8x`F0mbp19hO;>CF^HBZm~f$k48{udFi zt##H~wa11UF-mjS_**g22@yWRKrmYrnCN3lN;h!r^VX9bcvvQ)nfMS7E%pYq1k&8NsdK3i;?&-Dk4gk;AeQ&B>AJg?qiQliqW$8n+U;oj_}} zz@75K^3o3!rCc?eGoJV6 zbCsrub+%tqjD!c^`yS|={=^N;BH8;?jt-nnZ&JO`q6a-*2%0I+n2vXQZa6bUAej+% zu$5QXpy#iNmw;;XSCxv$inX=bVJ%wr0gimokMB3EKecUuo27D4HQX0OaIdp@WqYn+ zBjmW|o)_I0nJmSUw@wFyacW>`plSXsT|f&|wYA{NaHlzAmzE2n!`oEY`UOSU?xp=S#6`FZs~(Jz}d>6T2- zV)qM6oyh4?ptD!L3 zTZj1HM_^U0*Wvnqj@ewX(El7})72N)+Ab&&yUS36GB1FIz9~kU-wSaH&WpE>?=NKqs+Jg>!v6BsI`o4kMHyl=#26 zFoAm`8@p@8R{!5Hn?yP$8JJm)u(_~)0sH~59H4}yC>}mGAUl`R<$~YJs6Qq?&|PLb zHR;~9LB_eaa|1tch~9=*tQePj-_BgSroOh;p9DOl@S*qq!2MQv=brSfFLq*9Y|qYq zUdyf(BPOn6NRWFMyllp2GZDm1#^y0eUDgYqR&LqqLM;-x%azQ_9`brt?&zo;+j2d*bX#wEGVP86p z@)!#NM%6Zkh0zmWy`!)f5WSWLmIw5l&~|#>W1#h6)983p*AQ5i^T^5f5JaY{kLl&? zv*QH6CrHO+WCM>rH@usmnKDLGnMrQXm;Q}*r&nkSDDP3Pz+IZd{F=*>c~CdRRlK;dq+gIDjqvLP-xsA!6C!}oS@wky2BC)6AZt|Ta_erjVkPo7)pHe zxSm$V_R`hy{(}q(Q@Bw@{JS^WqF{5<-`!U3;9doL4E&d173)Ee{O;~dRBZP#ZJK;K zQN95%NTUZ2f1?`e`)!zit`4B-b7b?^hgHH z9j={h3tEHl*&!8*siq@y@I*xTF$^u4qsJ7C9)75IDsXy}(&MB@U!6}>JO#$kG?w_F zK($wjUG@vvvTyjsy5Nvzvbwa+VdfCJdoKgF1z7D-nclbE-0EsH7*Qp4KBmS?c3Wzy zg}8;_ICM$viea01)3n7lQfKP93m3uL&U`@vu+&>1s?l-(fNmBJgVzg3+5#*2fARPe z8>2q+A7JG-Brp08#CtJ$pwBet^!aJDyLBU0Yhnk8Ni z_=tmMf8EgrrnFK@iT4*S@$<@Ff`F)2Jb2SH4cFshesx%<7PYpP?Z|G{u8;Ya6~@^6 zctqk#AV;eX!;VolGZqB=wiHuZ>kI5gtxQ{Fxdr;;M|-|@dQ9wZ+tE+xxabug0yrq# z^~v=onA1DOB$b#~!tn#Xsw5Ysf`)=*iIsV+pR-f|L&-HnU)hpX!RgUBN73AZeW%dI=l( zW29}VpTX`aEo(7f3e(=`y*0=nL@e6n!GxV==kTr@U`KTkG20Tocm^1LFIxnvfY8%< z@@4xf(pbe?X3Kh5X5jcO=;BMt-d!XY-ovd-SoARtV0!+b_WJ$E7ldVK$i+(_IO(#| zX_Y#)*9Xa)p1uZP%g0}SdJg;)L=$fU)Jvv4O6a)>_^0598xFq%jD*n|CA+F?NgIC6 z=Q&PI%oaO+(O~KGo+k1AAn2yyq}*9}VF>=23s0rV!rRMK#d~bWaan1b%hvf$9nYQ; z$XDuqa+3@)`)z>qu26X8(2#qM-#1tYF;QLAgca!ub3zdPk^!N|Cr58v)(+%vRPMQFlmdt?l{5iQ8<|~j zvyA#$tb}ahVE(OgUsZUXQa%!XcKJPXPz}_5e=<(dvI=rj{#e>{!KfZMH7}V$%NE1) zwQvZp%Y)i{JaX6{fh zNf{u5=qd=!xSB>FP)1oK`XIs7aX%=CeFJk`hYSXeN~69PlVMC3lxHdGr0Tj*xXWkC z(`jsaAj096N3kVxese)`5V<1o7`mPPd`0Uaa0-p=>Saw@g89DpOAh1%Wk+)=;A416 zwH*ZqaoGA(zP9y6KXLlr2iDU?g?Fzuuk}8Af_1E{@*UJ^Sa`&UBq@IT3 zecZ)UsYaYOCoooBHjsktaGuJmJ)4*!(x732rL_%p!3y(2VBBh}o*d${&_+zsZ*6C@ z7Ar;cG%`xb)gapoa>+y8*EUXu;7oGU2VG5Ok zq7n*6Mk5TpKe*)7uIG=-eoekB%M4hJu-~~t-CW?(>Wi^j(p1eKD;y@GT?pswZpmP8 z9Q|kR<1Z3_rg9-NbZu=FC-gIRiFCcQ+okYjg=L5)<5$GMIkt8|8%%Kr-I`LEb{(*W zbYA&7WZktrC&A$wcL9O3*tXW&FU&xa`n>P9omZxX2YXT)0gum9(J@^zWNl9iG>N&J zR{2z>C~}-NwR>=)na=I_?TKmfUuM>TkVJ`uQr4Sh71?6QVAJm1WQ$EKTu)9pciK?49 zHmJ;^)$B3ERnUiXK~S@VIQbQ30LjZH0Gykvrh%dRD=8E@AWbUj)h#UaZ)0JNW9 zta^l+J6-&mH*U_qfq!_z-^~^K54Ghg_6d745-z!qVg)i2T`NUObf=d05GYb1y@}cdcG!HW?ngSct7l*O+MSGEVzD6vYEe0W&DP z$d|xetg)17klMt)o-%w@yNP=pN30E4IC%b6F8`lbe7@-eCVeGcKC)0q&d~XVxB}!X zsHBXw1;s$U+gTW%j9#e}cS2AzZ-O{Lw_dma)?kiR5D@@oG4FQMRUIGyEIxmwtNi~r zZ2wPcI{sg-7Ptm4jV9sRNt`bI&Nl*@jFt$ zUQ^Z35SFR*7Jm!k>g>E>3W6g}PjqQSWgX1%w&8BRJ^$-bgVj;Ke2=rP-oRg3FOpx3 zw6}|KoO<%6OHvlZl~mhomEDbnnop)-AgY`;Cf3YM{u(x(EbA=%M{l*e+gGXG`@Ql1 zRl4g@Vb6HixO@@>Kh(94+O(u*2t|GtegiZhtF-cbkKp++_y4003mdb8u?q5^@89Lu zj`{w9pBCMHTgJXC3xDY2iseT}cjviX>iX0wBD`7FWkG|l=c@?&RQh%{K&mp<0qJvm zl|eWIjnSe{9D90tuZ5fhOUO@Y^1dxL|E5*l0`f6b&j;*JzP(A-MzdI1@%i`-oQt%c z2Wv3S9JEInFy$8T3YH~x-@pyd}U!tc>1-}^#L#WQnD@y9RL7v_JW z*LeJ^nV zaB$FU&zk6yl9FcHH6j$e*4l&S=5f^+&+823L;t7sxrJ!hX*dHuFT671RvWk z30CV5%){bOUW{J8O%_xMWYWgSe%NXCZ)64_Hqnr{l=En<8nHFrc70MxnK(W zf1$YlRqF#NLqRTOk(ge7A!%@p&xz}KRvn#bdbWScWDtc{g!SwJQ^-FFZ~mh;4#;5F z_{_Z?V7Gi?;wSPQ(3(~Gp7C}0FEirg0ri6uf*)tgy)Ul;XJa3^(U3Z z%t`Kdas-f?{To0Jq@T=}aqEIq=ARWBeYF2FS)4RX&xUv;krR$zW+*%X>06m?t8o|q zDp8&rJT$EO^J}(KY(DI4IcgxShA&0iMl+LhXnhVI9O?lX?5Ah)TFYVIg?Ix9jM}}J zqLO`LG;5~+(xZXI>GkE5tlA$jz_jXZ#O+)g}Z(qk{fpq$GmohlSrx~F# z0{E1qXxE@7fKPA=YCZ0KiwLg1&|V)kD9R0#BVB^s*BGHdN0kih6fTz;y*PXLv)sW< zw#)!(V{%f-3Cy+fL3nLatFM8tK_D`$XKegMXzupP&2OT`S0gRry9owJU9NPUSPDCH ztw4(ioKu~ZK-F|A0#Zo)1#;`W;(fmT>_;`a%$BUF0R@#b`S(u3g$*vX%UYGWEbYpD z7b`i$42}nDcX;j_sQ3U#8Gb)0N@gaO$-l+^dN7A_rolJY51x0XS9J-Zv8c55K!JI z6?bl>%x|!7TZJuraQh_tME`P$Nn!9lD`~rj`MihM``_Buqa=L1O;XPC>uq5ZSCjW4lr?9uEsuqIZL9mNFOp)bf9O3H=-w5xxArS06fEdU+ho_zO6EI z=f#^fNu*)_*RAiWnoYW*(sL`3#P(VPqe1Ccs0Wa~7V$nu4L%Og^YJN<^a?h;x&Oi% zbR-~-Fq1uhc96yr?ar38nE*1!W#&|laKYzlwiZ@8HJ!=KnHchS((Zk*LAI557Vzmi#{Z=+q^Rb z|89@1;KNs|;l=zzO+vZ{3BuvK3@BlMlCr0Lpu!VWD6D0h7vh(>b50ECdNQ88DR3e1 zC}#SnZQ#!f;}bV}pI)7>OcB_ux*8+w`?kAnf8E1gPh|OEVfhpv&=+1D0C;non7fH{ z*EwaU4I{4`-m197=iVEOk6K)03HRI&Y6%xtV|x95rj_J8nH^k&?1fV^rqc6jE3eHz z)3f8~{44>hXnpixBfswJ)z~R~Kh4+tA!v6!|Ig$Nev_>K0Bv)>yA>Nt2_Y--r=gkr zLKC)<$HfK#+|HT;wkIF^n1bGEm_VE6VtbGv&u88&A7R8Em%P08qV0Wk{ncji=kcLo zX|{_8xz4TXJM@Pv+-JMhFSKrhcSk$&DyUFL3bpH1MQJPI4osa$8&PvYmI~ zDZ(u~Uzqd#n-PMFwMqOEbUXQog(G9b8<{=yeRSu}0_oV-##1j>!O5BZ+UVWvZ_e2I)yNdzR`|SyC0NArtm%vG)3NtOZZb}gSNA2n9BMp@WdL>m$-GEX zKOE$Dn??IaUj?!}*s-Dg13WMg3QAqnwf)H=-Ve77zJw@824cF{`t56(QQ+gXo|C)7 z65QAfk{|!q?9uOr`0tb50gKSEXbXnOVoeSE6k{obem?VL!WW!jZ|CF&eov!wtKb*; z!^?Mq1iK6?U9N9PVDydI6^)D?ZpaZ)RJc3Bkg2L2J)?t84{@9xtdobG?57ivV=LF13wngY7@dB8U-)I0&=`?|3y!y>iw1sz zavq>jcc$j9#$9|dB#&6>Q7WDsiuZJ@FZ|gUIA(~>3Z-O~e98Zx`eQ*Y5zlK>-m9Cm z>nQzXC3&Ulw_-hB-JUoT@K;vf97`Sm#fQG7tSJ(%*D?UmLYdIe{2Hw2%0 z^2H`r7@!R$DQ2qZ?ZNr#KC~*^1|Kj3e#0t_c%R|MCFMG52O$?L zKO7Qz-gZhvy<%`Os7Fh2VmEMI^%~9`kmCQTs{wTzm2vq%P5^ub?NY87+&}Q}JX7|z?T42Bir=Po}RcAII0+)bw|7_f4;W$@wP9KsgUe{X5*RB^ z;AT9~u^VHN`f?*{bc#+o+}w9hnoO*mtFq09$KZ)D4YVsy#8#@8P4+83FILX+mfLHh z_&cC6KjKY;^|U_)BJd&?#ifgI*XOnd6~>0)?a5jtvp`ilDv13`mUEkZ_wnPbBT*j! zWt!s^txZKlUu#=c*xONvGrYYn`v+v5CqGjNoFzII$RULE#7H(_yc|rD1@(5iUEqq91w=&3zChrUIKma;z!Ww^3^j3%4On?!wLg# z3>rx*PGN#cABvTGN?w!E#?;3uN*&+knQq^l`Ytqg7xnL44?z!dEMcYGc!DA)S`A$%UZ zr3~-@hd;g1COVcV0x7YZ=g4Wk&Y*3=GJ^}GU?8{FI=ZArIZ_4wG5Bjp^Ok7? zL50eE8ZF+IsFNQw!RQ|}jmZ`Y(D()>R+o7RSe`S@ka9^`_;FnVFb(QWB)`sG=HPFk z4PB2gS0E0n-P61?VezJWU!}-<;!$QzPyrlT&D%Eew-$`>goE^9;HIeq!RyRyCQjcF zoaY!B;)O)dyE-D5bck3ZRJ(K&Vy?aN+}I15__}zz=E@>1!N~b4u@J^oG@<)mY6!uj z9-QLuEnYyI)%M;q6e8Q69NLs;K_X}gEzwP{7c_b5O2M z=fqSYb8RjnOjsflCw@vN-d+ zvLRr%0lgz*9cw(5^jyyI?$c&dMT}p($6?*;^JxVfIIM+fya1V7W|-!xQz+gW4`X~R zi$pUPOC};(UGY%bd=e{NOn0JhriIZ)T4cpll7$DMVgkLT69cK&xo^53D1B^5o1`{~ zqm#59$2LyI-P58|W(Rs~&zGgy_U9Tez71p8o!v+rI7eE7}zTAFS?1#_TM zN;afrVvpzC2cuW>pXOW8+L@v|Qp-JO2AK4k5a)q`Q!@0401K)+=^}wtRxnsgkN!lk zrOql_mvg5&(cLIq(#BY&E0mfYGj)k6O5`H$a<>-PG`VIdwVg2?fkf0!fo~k!FGuJU zFMV>XncDo;?0rK7E9*wwAwZ9u>)`Uc>rNuGOxg5nVvA1d5~ywr0yN8AJ+rOIsloSY z10S80{JaW{Ar;72Ae+l5wCNu4B<$>EZYtFUy-?Ghz}^WlT%HxnpxZ<%c9$HYGM4gf zG1=r=k|3kH++1vr_eEM?%jnBBMj=WW_{tzH z{8eRaAX zDz`N60YX-An-koly+`Kz#F0^{dw9;)q%tUlw5(}#eiI`&tazG_(=KvW9Q?CUR)#I! zD-1?aE=P>j4Ju2IQu@8hYO%CST``6d<@6~;`Eg1+snp3&Z)>Sn^VsxKH8&V*C8Pax z*A~xZ1VJG-aQuV?zKk#4fK~vTF2%c2SjuP6sQih}E@{@OIHXho=^1wy*_tC>W4del z3)%4({CMj^!??oyJ2qmq0;TPIrN{hGN=9!ISNW1kW`7Z0X1hKd9sdPooYq5=C zxFxqFM_tdU6g`>W!i2T$GmL zvTkM@c_iMjJ84%;LE#DQ=7f^IlFw~0r27B{yOo4O$Zfli%UZLBv7mnD)Rid$(s?Pa zi<9+89HCh#pQXK;26=oU=o^BvdlH7CG~2?K>2yMWBqgh7UWt4YT0&dymevYlWm=&)mCbc5Vb<(z>-}k#uTrL>Gga zuj83OMst@jvJ#XQC&unBHVgI5v?tJ-B*5T~R!QmClUUZilSQMUru|++`pHQ&jm4+C zur2{*q@!MS(q8Vf1>kpp%$gLycB}hd^}Rtcd=TFB|zv(HZQ^)|Vq_#QR=4?y%MeMyR4&gK}u6 zI)DxA&R&|6C}8)b_&!&I8gpg~QU=BR${bBI+uY}}^f;BMS!`NfO4oB>1}Bqf{q}P& zX<1a%%COSCJiMrX%rNr-DWb`B`rI_4_Z(zzVgo(-o&NgWPT*Y>1RSq&^P4<8Eao%K)MXT#st}~ z$wNu+W-T2#k^;mLhI7jI^01H#@d~q59c*AblTk*CruASJYx;~(^K9ZxWwboG%5(FG zl>V%*Mygt0_UV%Qw2f9+`Q~KkVZ=?(kzHt~xgzEmYfWfWD}M9@OG=~nv1x6H7%a7* z2M~9b&6VifUAzUb$HO@YSL9rK#0vU!dbX>JTETF!!k))N-j<7Wl(C>m#uPjLR2e*l z7>M;mFv^becro(Cq$6a2C8~4JJgq0Lc)qegx{q`tvu(nAZx*9-H*y=@#|oKRexu|a z(gjRbuh3wJfZ^O9aO#TAYUa-4hwI&3X)nGo4L1<8B|psxj3qlK5il#=06Bf zwp4T(c;v8Z0Dny+TnZa}n~+Y=-=cXzlzuq{K$#rslFmS3UKYi%|)UXr(wWuFm9? zdacoEw0C&>)7g2g^WRyx%ySx0I!v&p<^sq2a;H}DBa?xFJ4V{S;X_5ZAMnMpiTeL| zSgb0CS|d)fwa!Yfy)?1IXE-MzetO5F-RpwGMiUQOC@r;A z7Qr9uwgI7w8#AfJY}2=-mXjc%B78*tJ07!E0{QLlui+8@2A%tIysi17oVk3%23&BX z=geB2OP?8=c0u-c-|vn;&=hfG_T#{>z?`R}(}f~u#^FPaw!MGH^!j&xQrTkX?9R5tl8qKLW$((2-IfA8U+$LTqr+K3P+prYxdMIhE@v}0 zXDK$sh}%M}JGs=O!(!s&r@wuI`VM%Z)+P0TAi&VH2e5g3e_n&wx^JITu>{hgqF2hS z;A2W$dzV0C<0GX%+G&KT0~|%E3)XgkxYF1_UcsxQfU~{teZmYb!?Kd zZtg`~RkXnKMfW*(#dWY;(5u)^ws0+%6dzGwxHAwI_Nq34;v=T%lv4t~&?FW;dW5f6 zT(a#8Ygh87D!4sY5CN(CD6K1;x5s7?FpxQd7P7G=G`%dmI&sNdX z7PX%;-VMfS%kgpDdLiV=x+LK6B0j^TAXo_}$Lr^==HesAax}`Y>f8xldz=@s$3lk0 zmUW_RCuet`(7hk-TYIFdpO&6Lkzp*SLkLU#%3bQ>t6W{Bj$65r^k5dH%=>D>aa0O4HpQPj&~@m*FXjM z6)4DoDsqOqct5J)lrVm`Gfs%cYG__OT=7W}+GrPdJ6}r% z*IF=coLgQ5y|W!6gx!UWK{drk*go4Mi!0&7!U{P$$(NNT-tl1-dCgUEo`@UMtxGQ{ zPS1=tgFk*%$eS-QL?b64MfsdkYhfJc7TIU&YgrrZ?r^_U*&XwJ#F>t~4jp=iNVsi_ z{ane`WOzyL*gzqQNStMtrDdz_jV9y$)Lo}uayb+mYqip6F4#%fjpgKZo7+Q3rW_6s7Q@!* zniw-J4|&}&WhEVp-Q8|2t-)If)WY-5ZC)OA#+$>Nqj+9C74)upDa@6jsQR1b;abt@ zU}rb+A10CA*KKwe-n^g}YTsKM^0a*yTpxw{;2#~BSYB}1>rsvU(;8rso(qRki=MH3 zd7O=}+#BTUWAIPw3ufbz-HZyvtfr?*!(VCpqY&|aKW42 zyc(n>c$j6=4qaHd{{~{{ZxCwn-nTqj0Qft^<{CHB z=SQ+SUxLT!3!lhut46Y{-NtgpxCB^5@a~aL1s967L$0M-;cnK7u}Xc=372OjC8ylD}4NRt&!`IDCY+ zYr;S9%gcWvU@mCtA;C{4Sw7uD$18sk*cVSS3z&K|PA{PpIja|)*O zFYSd}K96GJ>y4qAgDIA3V}2P)*|U@WzA}O$w&gbPg^nwWF8bj_1^(3e#3Ote@dxeR zW4a?#AXi88^k=9)!Uzcbe@?=x9B&wssu|ZMv~VmO}*l zCfNB|W*8wi=2l7|rAD^DB?Rs5QZ_I7{^gi#jcuvNi@_j*bSZ7FRJViN&13k8^)p6M zL-Aw}IjPBB6GJ{1=#ul~1r6bQRqRRH)1a-`lFA1IT2NyE+PDqnh|ns_C+(K}IcLLM(UWHl*wk`lEr!^eDznO2^uVV1o7 zT`R9KeNB*-;y%$y&xaSJ*~kSF_UhUhQiU{ww zI$^fgXt>6QapEvPZRf)FmqC7So7!fGq6TkYwI2PF+AyHtoPt-|9lRTpM zQ(FJi`}-_itGO_m3%LutsXY(Z1zUoc6CY2OSi&VWYB}2*o6@*T{g$;5;@ch(7PNSa z{goQ|T6>?Gd6ygu(_vjvS@|G`bqD0563V0JMO&J|fRKeh5;QV%jXfX+RmN`;52OX?JqG#hmR#sV{@HWQ^Nh#&NcO zP*`WyQZ=4~+QFyhuEMpbpjoV!j810dAx>yu$UMZ@exL`hM9OY4@5X*M)c5E4p$*>pw*f)rq`Q?dus444UZ-E z@O&u7>XCHfNOtAPDhPDK-l(lvOYvm*g~&G$=o|GA7VQ|jf(s}uPH7zZ^iW-95!81= zJ^>=RL*_+gD>hh@M5$P-;o+8$JNwb%GbudiiNLY;($^@Jmc%#*ld+>gK~)hQPF0V= zEZHP`WslORHlh7Erp{~(T_P24pV}PpAKrR3&1*Mem#BfmZ-cq?(se4rHV7>mY~Vj1 z@MYk>oTGVC@KfVMw!|67ZRA@Jt@mgAM3<+^+ zc_P~2TPGo+=}Ty;DHP5@NY)2B5G`I{qBDMpXyX|1&!H`NzR*5|jvbOcp65@r6s{HR z4czyr^&uaNtBF-KzHuhGyVHAq_)v|gs$~dEv$2N~#;TtCrZeQ^P^^F1Q?Zb;he_7Z z8pmQ`v-ZKmRbv{Fug8qrnuUza-ksqZJsy`(w>Fq%pWk?~S`JMkOE0-US(_8l;T`Nr ztqTzHtRlU0iW49Eu(RCP7M)gw6p{@bXE>FQYGRhA!?5W5XA&$CR?_`)LMGC|QiCZ< zYN`sz9a<+Q^zKOsdbghu=4!H|B!;&-1hyQEgB|?+81Q8U&)z#6rgrQq8p6dHz-m|s zf8Oi;k)Ou?gfD%>%vt4g@do~|6cs+TqQxPJQmY7Q*t;f_pp< z$i6R76Lzo3EEQ0-gi2Yko{Ss2M+7@=t`E}7@7N%^CoSxy+9FZEBjEL%1>dZqQ zk~bvgPrCO--p&^qAc5^-xfMj!JL;{vu6*Ntvn@q>YHy^}PwX+N9XWBFPu%r(6d3*g z_G0RkFJHZ0)rzeSAYBVeRTPjCI_diLj^^0$I|({`iLt-B=PwEAxR(y&K9{d!tv|U%_!|@NsG}=pV=Wf0TbMQomAr|T-gerpZSYdv&@z3K6vxpC-e2W zPs(;Li#nY_2)vjEqJBJInQ>BzA z;CM@)74ag=%ukJaf;U64_Yh~1=I~Wts1BIOPaYcZ=@FZ`n_FiBj&gGdA+NcP4DSxW zR*~-5)8#ljgqjt*Dtx46*6^04*JHm%zAwj%vmJb03eF|u-tM{g^#?^S4xwD>G9vf<0 zj43wFk2r4wE$VOJGHc>uhbcV82O{`4f&FDG$ubz;am7M)4_WH1@9hQqI-=+e%{Y_Y zV)-v#KM|H_Z3$53K$PD1zghjs3SjL*z?MF+tU?I+GLI1~Aa zSsS6=;>AAy}! zoeewYKH4(R!*kQ@U3Bk9M@7C)=Wk`u!(}D?v(4pgJtP5FyHXWz5jQu@JhskgH$q&jZS)81@cf@$HWEwu zpAnDo6l(Fc);ZPQ$*yX(=@$UIgYM*^@0@@BQE=_O)_U&yzMg06^(1W>`Sr%BFqGd* zv0D7g9R>@l>NXOf%+;@LRc;9NZ@FT zK95Cbb`#RdLN~kO2Dxe<1oNRkCo8=Y=8n{N{^7mpo(z=3IgjPSe?2l>p&WhQ%~VzI zN;R%|Ki)@kBz@*#Qc~;oV)mW0;KYtWHQXYG@k(SO!eT1}$vF0QCpma0#E1??QqX$5}uO94orTCD}0Z5YVI;!H5YKE6WZapHB%=Xz3jTRHTSF}gA}K= zg&lvBI1?xxtt0I=PCn|D|8-JIHx~gfDQ15^Gsy=$5_c=?^+NUk5ySRPdHum(s?}wv z99ZNtx>04KSU39?eg)i&Ntuu9Td3S2n|D_P;LQ8-paeDlf7NzprPAMIP+&c%;>sPM zqTR}=T#H3|#dib+O52B*W~|4qH;uI&R;~G_XL&)M6mI5l1@PfaPC8al*K)$#_ycrX zUql(PXb z{ZU#h{SxLn>o4$3Za+!y$yh}R=g!fj-7Xe`D?jI*y}@S=yNbHoXQ-K|pQ_~8zJvcY zr8P<&+lg(4OXGWHE}|iuFtj)Le=1f+QlM+~KAH z5#9pgtRqjm)QSHdA3^4H9S@5a9;wzHsQP}V{Gu!cdrYO|In952chu$#Uv7xv{5|8OQKK;C$i z%Rt8YkCSD3#w4=>ri;5e07biKsLcSR8H@pFxn!nwzq$u~(+euhY zfEmMzF{0@HZg2Teo0^+CAAYCSp3Lxd&>UVKy+Yw$k02H6%lQI!Lr~GA`0ovs2Nhqh zyTQL)zDEt$RT7YfWKu7EFjbynd11E=)k{%s7~gp-RB%U55y{c~A6w%^$d z@w(kC6yNByLx09=ym7Kado7W$(zoDO+k5I*Kb~&RL8mOe>aOn*0x|g|Qp5;2EO87M zNtkUilnSi)__&r-NEsMA$c>%v z+ZPq~b|{g;1tt7_IErR({NljT;Bzdwe%cQENuVmDCtJ_Ot0HWxdox6m5Ask#jC>UT zz8*`5F*6g0Zs-`4*4MT2#9}$Pl%Hn*2~j>|_(o#)LA-E_6ft_|Cn@tU4c)R>hu{%D zWAYZKvR}%0z#Y|2?PI-ERP`STd=@0YyYa#AkYLk}4<15n--tP?hChKXc&7n*6An;kvD7OPeI(g?3eES7x50Lm{vkg`Du-5jlZ{=E31+fUy&w@Dlp< z!*9=vJ*H=L(DoWO`KZCje60gbo`52Tp0OU1V#TZMCTWPPVlL`_(Y`8WUFxkpRr1MH z01q6b`wTTzl9n<@8Xn=vKnBOXye`VFSs||;Zs0X^WUQK}y`@va={UxE0W-X)gPoQX z?4)QJO&ZFmroY^Fv~vyVeGW>A#JWkLHhL31MoUye_u$s7mig5*VJ$baYUqamT(NuTBM}&oI@?G~B#jevSa>gxmn9nEI=W@tSn}P=v zNf~GQ{Xa*vR=>UjtQPOq^hZV=8BF3>dT)>vQD98qnUN)&mAXx%zeP$QdKI=0r7Jma zg|1YilR4t)J{Mm1v>kX(@C%oSk@OS+?HZ8dyH8>T87Qd?c|PZyW>AlgioY}YK?t|_ zLcj$#G)T~4efE@kjqlpAgXBzaXy;49fQ(^KJ>3z5OcLN}kQ^Pix^N-oZxz4SNOjCV zt7EFGe41sa6WAvYfK<(aECgcw_CrVHic@d!`tuR39&r5Pq&Iwug{F#X1mB)DAVMNe z4-vk`y5d!>5>2yQIx}zO1K!qX6`Pg@ly>jS2KGhKvXmA7Lf+=V2&_Y>j=9VB^DrG% zzI1@{o6*q_U;wU*=Jv-i*OJ880QVLhc)oXSpAAoqrbHBCKE{}u2epWB*4-sE^+DN3 zX}*LFI7jvfJE3T2#F#f^WqiRcq@gmyRD^a&c*1L!7?z6}R2Ok^7I1p|uup`>-%mxM zASEu@NO7SI>x#ONnIXcs)=0SCrHrzcqAjkK+ANhp7WXs4LG4W@bwI(h^dZ*{eC1c$hPvG!Iw;49njTzQTbN{(A{ z)3H`Vk%B5iJ82^W;oh00Y`_4$%@{wi^AT^sC`s#%hIX}gSzm;6Yzln1x3#NQ4}%NG z-{i*m7tqQ!eGtytg71iTxC z)xn*>WZUM5=#`;w$~OQ$eHV!{Ofo0+t=o=itPPtA97ys68qJA71-E|J<_lQ0iJn`Q z529yYTJ~(RP=}S*bO_rR(YoT)74pQc0H%|)55{cxQAy=yyewX92Oc4neg5Rie7NHb zF>7`+=X5q=bWZOHmY`JB>Ma95bFh``|ED|h$p`gB%!&QcIX-XykSz#MhD{ zT?<(2%AEmtW3muz5Nfb{%&ggA!RebafvLP)M5UAW?+(r#U+Qa11o!>nnv*!C6A`u9 z3VO8QL)j9q3X68fjHA*TYpRke0z&A4myLrEPJ@p9U{w|i4|qv`XPJS2+kZ&}Xa9 z=W+54mjbgjifek>4yR*rh;s@qRbCE8a+_CO$FI0lf67`#9SGPG!j5gRuG_dKAHG#X zah?&9hD?E((fu4TEbi>sN~S1H@Y7B*0e5}t*{Rmo>FH~6QsNOk!`ic%-3~HE{0^@q z;rX5o-ECytWQc%Y%j$J>i;*GzAAf@_@8$&F$(ULyfWYGJ4LYz9myJUcz}sD&fxkjI z8uu`zwhbC*2IyTjSj}Hkgk21KCT_=Kb3tzFa+O4&(12o$v>9$c4(k6{LO1>U8B#3Y zmhxkySVl$YWTy6FU)zu@Wh@DZk!`J^T@`U@dLSi2|e+{YAmxiS%4&y6!GY2=vnPxr%tZ7jWE{cEg2W# zxr;u}X9x~8OV;({M-z`m(BhF9I8U3$nU@H<`6gdPR}?DQL~EmhZ_&tX$7-J1=Po!k zkwm!qWCm+_>%IyrzS20jFWnUBC8eDiooX7+2P+>x-~xzSvBtX!|A)fTZ;JHGe%!rT zdPFx;O9X6sM4_=-7ZAenrC<8orG%-ox?(5NVtl3H&V}!3`ijh^Q_U)*YN~wGJ0dwu zBrw;rwtJNmIEOzNI3K*r(#-tdcP3xL%3H`(YDb5Tv5wy(7Hy(d7J?#Ez|g!NRIIuVN6qIm=prD8pUbi>>l7CkVNwEh$4SrOV{HttD~5 z%RAb84vp7QN;OHJK|3yS*fkcp$AjUNfq|{n^S1y$FZkQPU2fu;6DD%e!pCa1*ony+ z`9N|P)V=0w4m04ty`k%?fT0^p;+O;~W`Z#3F?e4j-?udp+d1UJGEs25>s*puHE@kL zbO^~{na4VMMAg~eNYt4(1S+|Z!_?iyM`FBc%+=mH>SKnCC`hXbVj&hU;~8$x58`Hq z51V9X(gDq3k^M3L%W0xn^Xmf{)k(DW)0=06=0&)XRn5{q=C58z^;cba2Xk zdvQ-20hvBLDjw-WDP!x5Nx)RVl7X|&bsOOl9L!acVmvdqANfDsm$N$G6SWtixZ5JM z9sd@J?_@Jwhz5=!%ji63V1~A883C0}`nmkP`hxJ$oTMQ_!x12wmC@&9T_Pl5k^@SE zU;{C%#kXylCZmk_p)A)YldRKYM*-c6_*YM%nd`JYS;~fvS_O)%?X6cj+3#5bsgztc z_(WhOGdu@yJ11ZS7xk;rfi|Oj(aq1{)1JR0KJyFbsrOh|n~L(f)6 z!A5vv-)dsSG}DiVg-bLeXtzDC)%i0+7lDp!})3 zdc+*$Jh&hgVMp0o-KAHr^tCzm?~I`?30E2$fDc*LNjWh;1w3yixLdtK%sIKn-)TrI zJIixm&Q>73fQkBlo3wxHfKN}a^~+ADrTiSfUv{d@>K=7f^}xWjEa8$#e%xTl>kOkc z@fHuLlCPzpO{J-^(3~$RNzR2M&IZwoYRLR6n7H4o%?UBFjp*!qtju${ae?Qf!`^n+ z`Y5SMC5bKAk|ExAqy}88p%;dbb>F$7t0(R?0>atfCOsDOU_ukJM{$FdJ>n^jA>kAA$ORsMSmB|N4Wip-vmlk6dZ%4Fs7t2~P$HoDZE0g8B06W*_TE z05~Q0NryHs30>QruuErMxHFa#*{BYG0c-}|hD9hceCrXvaz*E8*qB9Q4d!iq#gsuz zm7X-lr4QFD0%&uE0yqyYVMT3qZWl3EN};A*`U2Bg^_0){ofa$a3Zg`I0X7k#wc*xiXrzn1O;aAFWVZh~e>FotE%{aBU z;KLIY$-U(wT%GtQd6~m5563E}b|)rw+rUDBQm)tduK|vZr~a-5U#W2tr)dB*h|dy4 z!BfJ>`zX>a+Wxm_Rfg3X!Gh@Y3go*d?Ip6&&FN6|XGM^Abue^bHP=N0)kPa+foQ+8C7b#?d5@f}^m%x)ApL`49%D701w8$k zM)k46sPn4jYlyzjh^`)@L0>g#$0?w0ROQL(?8RM}L2WIBC}ZN0O!Py-K8K(n?bt}M zNgWkxy#6q^`HP2JNuu!N9pgL^PW@5#r4{3#zFSYB0w$W0RXYf-Ta?5*d758nx@n5% zuu}jG|2Wkr*JOK;>ywBXoqWES*iOc zUkT?lyHInpy|m&0U3P}iEFtLH>5GjUJPnha+VLX`ELK~foj5`y`%6H!=JJ@e<+F2|F~)D@bK=;Ba4GF|s3;Xk zxJ@~W$1D3u{7R~<^|+(JIbz)^7_|GfB75E~7_vWjIerZn2Xo6fr828@cz`G;f9lHp zEgzK+K%3luz%|ZB9a1>kqS|0-@solr{xg?r?3_3LIc8PQOx~vBIZ&5`g7o#BZCSUk zIfk(knX(ssCv58DUhCgVf}GE=fwwaKsTzca(6WgT{7WS+?ngvS{U&!}z3ISQcN z=$m6WH$(o*C^NaFUe9hso$+V7`^C``D;N4ZM?ogpO+OuLNd+sQoKM5_P_pi$vHLu} zf<*ZghrOE?xwRX*ztN2QI#+x#cl(Ke4Q@t*UG&49jXuvODLwOzilRa>wbeA1qUx#~ zGESeeCuiRqq`&B+u#E`8J3zmdk;IVvJiVMfr=6p(8QZedzZO6Va;|nLsNYch_J$=6g>$8bDBSUuDO>@xXeE4x5aZP?=Zj;m94iYhg}Zvjy^A8@zI zBNQ#+SbE{}z@)7N}53vMSOWX1W;g8huu0tMO&E| zqrll*X!Ct}3WA>AI79!CqiY$hN+_7&T>6^cXr?;Pd?!ppQ6Ja!-=Q6TA?buT*uL6P zZcTqS%ZfB%6K-(8NiuwayVWxNlL%~Z*1e}#CqiiPCx(rAMLKi1yqz;cH|x!HsGSNz zC+CeeTySc`XLT}91C#r{{KlN@a5t`I3O-}@UmLF*1z3s17eqBb>X8)-R2uxKFJ@Fg^BZUS@IY3HM;*CWvZ z3pJZxyBxF5f9OE8e{xBVEQ(Js>X`v_4L__XuA(w99slJSU-XR9xlo&5 zLy~ktv)(+vVyXeC!iiCSQ*}l~*tBPnh{A`C83Xmu5%6&$I;&&iP1xL{aq1=(v{aNt zNPkUtqA0sbpKyZpl%cS$>v8JS5PjE@!&5N_rSK4;oBz3^zVo;05}^|pHOGUfq%!pO zXh*a!M4no2-27qV0B8Vv$FG5#FRBE!hyY5QAJSR*3wP}%;U|&JfBhkAa`$Ras*olJ z;sv;Me|UosDre#K+5^AUIT?84%I5cLXTQZUPy$yWM3Y<~ooGZ%cfE3zEwYe8PR^AF zl@c;l@sOvc z2<}U|AFHg}mX}|&W-9GWPG>l8L~NLB#dLq#Z9eaCO;rVrGqbn!v@!=EwJDF1#OrIL zxpf3DWX!@`TWp;Xs}XTbe~;~pN}$}Sonmy#^RU}24Ltw&o8hkHd(^fL1Ms{Q2NS)% zRZda+eV9E{m6y2u`Ubs4>kXpLs!_|Ap|cJyC#)>4muq0MUHxPL%;93Ej9{FU02+8i zKsf$kyj0qe^=T%s#rE02{40qb%Z#@>k9z?HtePYeFoFkzS;~@MHNF72@~XY*|M6Uu zJ8MLkzr+?~)rSOH4hO74{duN*@t*3&I|E{s=YJUan#6!yRDpu+9C3)5Qvo7J(==rN5>4az*Sb|%E7t2(qdfK5rBS{65z#T47~nY z3rG{U`%*))X#3_TN71l>?wu?mZ2K`IB*$F1n1Fh&n^t74hI!o!;9{!Rzb(`i%1qj$ z+=%z^+U%-k!$2CM6Zd6eT@+IGfaPzF&yAd_-FvQmY6D7LnF7k?(}34(I{V>qmx3Hq;*;F71u+0GUS83;>}dKe5_Am zPB2V#R8ifs8L}l*GQeqi%dpu(#xh>ta77N5Tx_le^B)nE3T7QYBHyvS8t7C)$)aAG z-Bc z3^0>2G2_?eQ!Yf1=iJo*XfQKYIrin9^+$b)h4YR{ky7RYXqRpS^{=1eekX5>DLLyl zcxtCQdxPpTkSjyYxc!9;l)3^D4Xa`J(+?#JAy&H69}e-~k2e(e=is5khsrFt@-MDrpI)VfAWEW3;y_2eI3wzObCt~s9x9>`y0?q0->m+Kcr@hy5NZ44QlFJFQ(H3E5A#-uFYbANSg}R z^lOsQh6GNDPF=c(NBvR~Dw-`k$pvK=QM%fMK#e9o?be&VtrxQ^wEeVh4!cfb9b>ah zg7uYd#}}l%UMs{_n)K$~7M={R5`w5=Myl8@cq+O3bR?&{5vmmwZxhi7&+ne>AKZXu z%SN9^w@fX*&k~F0pL#PuHsxfxkU~UaIfAW=v(WP_MUii-^ znxM|&a=deZFYr3}+=g(Q;owk=d38XJZEiDd%W@p!wI(NqpR~U)s=brBa0`D-8Y70OSkh z9*;jk>G}QKIFuq{vubmIE1yAtykgUCYEm;zG|Op}4_kT~!JHFLgIUamJJE){fAJ&S z^g-M-4Rf_SMqAQoiFY@^TFk>!YFSAUt- zK5=ky`sDNqX^cqN$QALsQlxcZl`#Xb9*MsMfNTuUb-ZG*WuF2s-Zvm?w!?;Kc5%;; zt%vTqHK2Ba+3Bw4rNQSpJy)Wit2W#9h~bkIfWw-1CCc$^UAMX{Aa#ARMA%oqdp@}< zL$-emo8-+uj=K+1ltI?Go`PJ=bsA{)bk2|)Z3s6xj~AIFD`W(?yRBGP=aN)NdZS~n zq*`;=z9q;fzFSzqqeliU2Z(-lyQ_73!+v(gU-Vx^?1OW=x`2wZp64_5^&+V_B@jPU zn!11PM|+OlKKK{q(=whaPXznwGpO=du>&9){NBfiQrZ&S-J4bWl_Ec_HE`S7&je!t z_v<}{j{3ozn;`WvG)u3LadhPTn-3k zKi&tN(MBJRmVjeEU?ukt_p$p{ov4zQMEm$F<0F3b6u$Iz|P^5^%YOi z+}yNO%vM1w<$Vi2H;!XXHV#X?%)qA4K$=Bz!Fh+T!H<4RjgUZ|6v~P&t(~3)^i}LjcvD!B!aw@MLv$f_ptE zuQIZqKC@$HK9Q`&Y1vlf=kpSE-cCrFi=U5*L8d@;$VDRo6+G>Tn$zL`g00TjeLuMg zoIitZwXF@v=&rv%6+V?yqRV~0MWlyG;pm(QnFQHhCv7E>vmyG*^nQJU8BWN!JDSTt}hz5$w3-q;m9 z$mJ0=06J2=;k~A=cq(uc&wLR5IJ06p=2t%E7Yj!fh~*H(+&nquRG?iT0PO0k9P07aEyY~3amBjU)yGqt zyPG@n-%cn}8B6h3AeTp;rB!XnO?Q2bn;&DZ(H^q*4R{0UNCOwAHlZjgcjS+Iyt=UE zx+bdb9(}t5gQ3h!C>f<>{@Xd`zW8-6t{A))tS@k@Eg&Z?7t>aAJ4xq=mc|s~BS54r zUoTxH;W}M_U+vOn@Q&^?N&2Clz$t>vgPgUQg2R=xqA??mS41%0h{M7JB46k

    DX8 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 YBTaA5?(e4m`<%DtV;$AXN7j-51D5?bMgRZ+ literal 0 HcmV?d00001 diff --git a/sql-odbc/docs/user/power_bi_support.md b/sql-odbc/docs/user/power_bi_support.md index 3e5a6f2c4f..4a2dcda292 100644 --- a/sql-odbc/docs/user/power_bi_support.md +++ b/sql-odbc/docs/user/power_bi_support.md @@ -1,7 +1,5 @@ # Connecting Open Distro For ElasticSearch to Microsoft Power BI Desktop -**NOTE**: **The connector is under development. All connection options are not available yet. There could be issues while loading data** - ## Prerequisites * Microsoft Power BI Desktop * [Open Distro for Elasticsearch](https://opendistro.github.io/for-elasticsearch-docs/docs/install/) @@ -19,7 +17,14 @@ ## Load Data +> **NOTE**: Currently only import mode is supported. Direct query support will be added soon. + * Open Power BI Desktop. + +* Disable parallel loading of tables. Click on **Files** > **Options and settings** > **Options** > **CURRENT FILE** > **Data Load** > Deselect **Enable parallel loading of tables** and click **OK**. + + + * Click on **Home** > **Get Data** > **More** > **Other**. Select **Open Distro For Elasticsearch (Beta)**. Click on **Connect**. @@ -42,6 +47,10 @@ * Click on **Load**. +* Select required columns for creating graph. + + + ## Troubleshooting * If you get an following error, please install [Open Distro For Elasticsearch SQL ODBC Driver](https://opendistro.github.io/for-elasticsearch-docs/docs/sql/odbc/).