From 7323b1428338dc615617ccc173e076273b0d88c9 Mon Sep 17 00:00:00 2001
From: erititan <elemer.lelik@ericsson.com>
Date: Sat, 1 Aug 2015 08:34:32 +0200
Subject: [PATCH] Initial contribution

---
 README.md                         |   9 ++
 Socket_API_CNL113686.tpd          |  43 ++++++
 doc/Socket_API_CNL113686_1551.doc | Bin 0 -> 77312 bytes
 doc/Socket_API_CNL113686_PRI.doc  | Bin 0 -> 64512 bytes
 src/Socket_API.grp                |  27 ++++
 src/Socket_API_Definitions.ttcn   | 247 ++++++++++++++++++++++++++++++
 6 files changed, 326 insertions(+)
 create mode 100644 README.md
 create mode 100644 Socket_API_CNL113686.tpd
 create mode 100644 doc/Socket_API_CNL113686_1551.doc
 create mode 100644 doc/Socket_API_CNL113686_PRI.doc
 create mode 100644 src/Socket_API.grp
 create mode 100644 src/Socket_API_Definitions.ttcn

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5226fde
--- /dev/null
+++ b/README.md
@@ -0,0 +1,9 @@
+# titan.TestPorts.Common_Components.Socket-API
+
+Main project page:
+
+https://projects.eclipse.org/projects/tools.titan
+
+The source code of the TTCN-3 compiler and executor:
+
+https://github.com/eclipse/titan.core
diff --git a/Socket_API_CNL113686.tpd b/Socket_API_CNL113686.tpd
new file mode 100644
index 0000000..cf6c36a
--- /dev/null
+++ b/Socket_API_CNL113686.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Public License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/legal/epl-v10.html
+
+
+   File:               Socket_API_CNL113686.tpd
+   Description:        tpd project file
+   Rev:                R5A
+   Prodnr:             CNL 113 686
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Socket_API_CNL113686</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="Socket_API_Definitions.ttcn" relativeURI="src/Socket_API_Definitions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/Socket_API_CNL113686</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>c[g]?_.*</globalConstant>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/doc/Socket_API_CNL113686_1551.doc b/doc/Socket_API_CNL113686_1551.doc
new file mode 100644
index 0000000000000000000000000000000000000000..917a3aa671e1cf66695a232de45a68f059c2d307
GIT binary patch
literal 77312
zcmeEv2S60Z_x~Kdh;&2{JpmCLz1cx5C{{$ph8!KGNmHz-B(cU4HTG`QSYwS{V=uAy
z-eVFqSYlWHpSOE^w|CqDCi(yT{l4EUd~SDUcizmrdGqE?+1XPkEpILS!QnPjJDM<E
z_OaNQ8HoIKa6LtETQD{i*An1kad9zuPXZ<baQ=JzAK}2GrF&VQJ;r*By|&s-g~%96
z7KagIv6UIC$YT4(_GPyCD{&a>*)jhxJU5)jtcv_2he%K~9L2@v3SVv4!UJ2l3kzr7
zP3OLz{B>z(8zDH(Q~=~0CJ!e*2f=?c{8Mpu_F^nj^xSU~8JmF|<iUR)&NjY`ox=Tl
zIMbniw)bbOtv+M%4NxOc9bPwN>^PoF0UZQq{cxtEJZD!tHxgBBJp%eo<LOOAcn!=~
z@MC`?j(mw9N*5i%S$Ix36J7D4&Q~Fy!ZYOdL;jW^oE<zHG~@56pNYN^(l5{x=%~Ai
zKjK56BlauLwU8fe^oZ^*q~{w*sSVEm)RF%MPf5t1Aa4cLe`7=PPLg8e4#EF;6W+aS
z1Y;zB!qEkMAi3R!GenM&{Lyg}&&|?h?C^BnP2m$kmE4)|65{9Y{`Fsu4)`L(BTy2`
zEB`CTt{E~W@L4zu<t4a<vk+d}S$IzUJW-x+;jAsZ;O`U6%bDQTc2<u^a0`4E+}h3p
zU7;M+&t=_LfBv6x3+1IP-P-(x^nU7D8$Hs^(h87W59kEQr#`d7FSRKD9{>9}U}$J)
zW@asI-XXMOM2C(oA|ks>og-6nQWKn|y=qI_wTNidqGgAOb|H~co6Z?={StDdAst&w
z6Em`;k&&V8>-kEhkr^4O+3+8bl9McrY#kZWzOJoVNNjdamMkvEEHXJITZ;dj<OFGa
zLUvqMN@h+<Mmk4<{FFpJq>(Ca3KgG_mynu~nGmmdULLDzq$xSFbP7%(GU9U664G;|
z*~uBXsqxa-1Zh@+EMA(Ek(7Y=viM|n%*u$*jmwcnB;=)JQ*v6TBTH#AE@{@%h!!oS
zeIgPPef@oc{QZ6W>q~oONqZ$rB{n^Md)s=Lg=VDZAdYM>F0w<Yv{#1I*}I+}IF>B!
zHAre>Ee-1qR<>>3K3v)>RqEU)G9%76C@8?&KgiGD8C1NDTjr+6QDm~zl$?BHYiY-j
zRxP+##gFn)dfVC}9_<tZIEo(L#;wybQxhofU{_{VMovZ?3Pua<fb!7}l+y<Fb{X+0
zi76m0OOKbPXQbCl5k&`na?wd!@F~z1Z6F`5PZ?PX5~B4nZjqG|mz|C1vNIFnkbpR8
zT(T@ZDM4EdLFJ2~J|BaRaWh$5zX7tWcxg&{Tt-?ZBp@~gWs;&b0>}ahLK#``_u?b)
zHSV0Bos*CTN$a1RlEoE|mZbZ8m5;JFQT8$Jk}XS0&|JFy-sPj@!%-s1NzcxarKWP?
zuZ5&f`AGWmBz=rgMG{kza<fXK>03UUs94Cbhp%yqfijXgZT#~qA33fD`XbLc30aA<
zI2E;|CG-9~W#7`p)}O11e#VgrS!pTh8L1gbT57hxy!MqvkE?xtD4&qn*eqx&j+feU
zFRxl<(d4R@zcG|sLRLb0oK|Ma>rq+cxOx;|9Lm*6)FFiy)xt@6?J0w709Shgkn;$?
z5Y3bV<h6w;*_x@SQ?xnac10QoZ7oYlM;nx%nZT(p_(0&%NW>>3rlg~`!;QpCWz@{1
zK_?G_o*N*`uPe>XPDxMV8ZQbEPl`fNL|kb|Q=yD<Q4{6Op}ZABWy%=9H+s2LPo)`&
zL?oMpO(n*hgzOw?W=2*{c3p+emZqU`f|%Eprl!PZ$+Dn}xKztBGgDLIcp>mG)2Qvu
z+IxnWeVV4`f@syU++FQD(yV<(dV-k-6=$Yw*Qp(sNy$P06XeZzc1CU%YF=DMe1bGF
z1$hN`WI56}Svob?x!KgrWJ@z;S>iw(ud;JfaF%AIr{;S|!$^WlGEOQ>MY3QDpq&DD
zb72e!jYpP94TA_@vb=_-SV1yl0Bnw|x+D%6S@AF!ax#$4v`nOuD}{uC330hOxEAuF
zOqN($`0NVJuu!C2e2Ez(9VA!Te9S6|O3Q^rfC<?s=xl0m8<@c!17ifsha{#2mk1bP
zNGfN)ghsTLdVBjW@bU7JMg)dP-Mu{mJu*|hY9SNS<dh_`d{6~Q%Tq2}!dI;HrLA&P
zP!!n-2~wr?;~n7R6%gPZh?*u?KR&R2q#aWeWRPU=HlYD;bP1{8rCh2IYASjv0-<FE
z3wbM%%TQJVM<`pGAj?WkAx=Y!NY!%UVa7FdX5!R}g-a|lC^EUhNX(V<OIbYG^74_T
z=Oc*&bEFCJDLENg4W-FKnWL!FWc?DjQW}tv)eps%l^{(>gxQfoHYH!?Reh@_q|0K#
zNHH18YgPhs3JWYAx7?vhqzQbBB~7QO>PiPDq{-s4Yk5dJ!`k4ZQLQI}<jWMYuR+Y}
zB7IzBoJEl>WHeGmFd#vS@`gAeF?@WyZV_slT(EhgPA=K%wsHn%Hd9?hwd2$nU%*^V
z<VA^NQ+xunY${bvj(_slc`d1|`KqZTfdhFkE;S*K6moU~XBJaLWeOsh;Yu5W*JE-E
zfpchV;pvXlOx#4HuOez)&E#T(Ry;e0#E8sYF42fBCo3aW+CC$P&y*nbzGlkS)T~8h
z=ho5|ouxir-qN5z-+JECJU<VA4{xbEe0=M9`PGt|Qv37?<Wb{D5qdX}hEgfEmA5!%
z-kwtL`ax3fz<TmJgGjwR{iIzI(xs+dvQeS<T1|q;^~*F$ikY`peW{Okz0mfY29X8?
z1=Qncn2JP`Bf<CgRC``rcTZYccgn1!ZD590-K=?J+s;a(Ufe9o;!%G*%yiAn^vvYH
zW@d(JeN<70%~`76RkcO0R-zuFGxT;AdRw8Xvh3`Vy<4FPgkFSUh>jWcx>UNw%`@WK
z%hEJ-jGMRU92(KOV`S?N?QIRstb0*sPAbci#oBn=O5Lq{weQl7ygEy5d~ItP8g|S|
zKy4xwAxq89kY?w`_J!1=4rFJ-4oQJxk)|X{xoTI-uziMyp?XdP0va+A8Ri+)BTCvL
zKKC|EmC!*cX|b}@w2W+9bsChJ3~<hw#3>Z*a7kj`{{AXrL4pO&hGe2u%S(ti3{6hJ
zfIz%qb6HM;A$rn)+^8&(Vj)bk{F2eM;L_Y&+Oth=YKkm9T_%lqJ}6t(yF`-Z@oA*c
zDx`Cd5&<Y-C7(t;^sDFPU(d(4L;ztppk$yB4bRFmTjF8x$V_znFCPQKJdX~b3+Mv|
zKy9E7&;{rUbOU05RA2y50E`930po#5z&yapm@#X>2B-&k0G@yk;0yQx{y<}(3D6Yi
z3`7E5fUZCmkPYMjZ=Srl`{wS=yKk;uJbUuk#Y6j!?LM?+!}2W~wrsdKf9B)~lM4pi
z9FQdDZ#5mG5xRXZ!pp!&Vw=3SQ!ukjUfgFs^J)`>>_{xs{a9t)zC=LXAI}=tB_AIA
zJ!9tl6TA!lCU(g`q_1GnZ7^mIdNC2+h(qCH%cY<Pp8~t&UCp_8L5r@Gw3Pl6q>YhU
zyX58}E4cH)n6uouz&?gM-_E|yozpvDvI@_|H*Ue5!>TUh&XhZ5E963%8l==loVv6y
zW4&yERS^5S(LA375M)3P*CYo*nNxXDS$zlSm|)fcxC%5fW$aJloN%Z()(XCKUM+U4
z6g!Y|<uOZn$=EcpW4ze$rPxs*b_~+$P<aeb=~rTA2lbg`ggLJ5MAx?bwMPYJ?1W1r
zrW0<q&yAVbEGc44&zvR2bH$}s1y@u66>OM^8#8T*k}Z5~91SGJA0CQnQwb<ba7J16
zi>Gwixk@UzN?Owd4%3;Q%8V{}(d?kR&5fGO&0RciNl&9>H(T=;%3qt82<&hHg~MoK
zv)EC2Sw(s2q`dUIV8A3Mx~WX|5<e!Dkw`8fd@7>hU=^vJ<pO!Y0H6@~0{9YG04xL+
z0gHhpz*2x@VHvO-*bf{44g!aOqrfrX7H}K51H1=503U&3fI)sF0Lhaspa)2S>VPxg
z0=NUUfNnq(&>hGIo<6+v@a&PZJC2+^vi8#2hbte>e)@1c`3xtY@#K>s_d!IwJ~#$O
zYt{$$Ty1U7-?uax!7B??9ahCQ`KZ0ATzhnAqsux0(QO!$wZY^kPxmy+Lo;2}Q?6cW
z*Did_kvs*Jn63D_tm0>^a8(nh%im~(deTa2xGI8fD4`9%tSzZSJk0@efjnRUFc6@6
zJ_r~Ld<)C~W&*Q-`M?5TE3ggN4x9%r02hHvz-8bHK)T`@a2<F9yanC??}1`~L60~9
zjzAS400;zvfciiKpdmo|rZLb2c>e3XUoRfMxO@BVm2-9<-hJ=adlMBt!{t6%av#LN
zcwRTc96d@)!AUA*z8rUBu1a$`@*$h?_f<lc%2het1G?Ji3i6?$w8Z7BUbv;SR!Rxc
zBtLvU!ua%v^HG=h*#qba^a6SVF@Oxn0dj#nU=lDHm;!tQOa-O^(}8b+8Nfzh6R;WB
z0{jSU1$F_ufjz(#;3{wpxDMO^ZUVP}+rS;*BTx*ye}4De^8?TKY~HhC^PbIf4$OJ}
z{`vTG&xept2KfvjA1YyO2cK^*%wCr$c`=_g)FWOpHemUaX2~e4W(V*g#k^*kN=8|3
zrE8q>$lF$4!Zp}3CFM*mfo@c<s0@k!zL>@R3b+7xnZeEj&H*l1*E0y%4;%!}0b9|)
zodnJTIu_s(AO&23robC<k*JiB${p<vl`tv}l`txIR2(XgJrO78SFz)^*l|tlATv^N
zoKali;)vLxa%aEz&Tg?o^R=E1EQxOiJIJkz2Bx>LsKFc!^($BtuV78^_J%H=vLaP2
zvOy@Mai>j;8JaU)S6!K_Zc_Y*P%IA7li<#~!KmzdR=DDfSbe2sqhj&cQaxiRZwa6W
z=mVC36<`h217Hp@PrwWC27CaL6+gfq=mbOnoq<T88xRE~0Es{nFaj6}i~<UQFMuxr
zlDE;o7+@*z9k2{o4y*)L0ULo$z-Hi&ThRRbw(eWCb>G(chv#3MeQ})JXPCk#o%fMz
zVX|N}*I`~exbpW^YARp*m%-H198%EVWoZHGNvUg|zoP|8*5mT%h1I<N)1Vhv9pdRJ
z;52XsI18Ku&I6<eE&`W;7r>vuOW+mo8h8U#gnlpwEP&cT9iT2y5AXmy0n#PjfDh0f
z=m2yCIsp+tXCNBr1H=G>fWg4q$9Lb}y>RHlu5G)%pS^3`uD5sJ4kMp&<dZJ<k@2NS
z@~X~hz7(mI(p-vsNLYC#LzdAxl!xoHQC&61D@c!q(iF%039Y{-nc{O-l~09=bSv8&
z=0<!T0t^L)0mA{(`y+snz&v0+umD&HECH4R>wyixM&JZ+5;z5%2F?Iy0ctzW0~dg2
zz;oaQ@F(yRcm+t%mgoSwfD=#^s0K)Z>VPvq?T;%^19<uL<-K$FjvYF-W%;q0$DY1?
zI-Y!HlFyLk$Ig*YhWr^QHl7Ct2&Y*##vlcn%ZLwIfxoZ9y}#d1Pvm7)Lw(dP8D-i1
z+BK1~v^7Xc9pY&S&<qF#ngcC>mOvEH9q0k%0J%UOFaQ_`<O5_E3<ib(Gk}=@tplD7
z%md~Fi-5(z5?~jw8`uNv1%3kd0c2Yo0LZ@J?7scacW>IgeADhtv-i)2l{b#;KKNvi
z&ya*@YEChdL5-VyoW`2(=P1T$Xn=+<#ka6g)XTs0QsgzqP(GZ7a?;LiK1QY?Mh)C&
z%Cae|e9NP8MuB&lrMaZ0kxQDZV9#Ab*bjgSQr;Vg0pfrZU=&aYYykwj?+mWV_A3Hj
z17rj01A-msf@{GR48?VGpc@bcBmj#oArHVI;4ENa1-k>V0_p&DfqH-!;0;U$<^l_W
zMZhxP{p%M+uOAiB-|L6>Ze6={?cV8Y_l_RCwfo17>sBpWwRqM1Z|9HycK)}kMz0z%
zlq5!cfCG>1XK+$PW|v(uXMDl;*QReVqQ;F33_wc3QM=@+4xu!Ds2B^ZTzw?D@ibjA
zoVoEiW1b576Yvq}CFOVFo~UY#daoFL6I?fkO+eh735YP<8PAZhXUF|g2r>fgxL=AX
zKbra$^1C<-BZ$(P-*En%Q3(I0-N$n7?GlVwz+JiXc<wBWAd-pbLAE-T4V4R(2k~|}
zunE|KVX33Q3E(1d6?h7~1axgtUO)?=BcNh>KN0g;#oE?xV4oL<IVE<e+&Lz`b5QKq
zD|YM<J2r|PYsHT5#SWDLNR`LLPvP3a9AkrelGnzt)2o_W7G8N9jdKjnN%7}fpb$8#
z{&tTMa$DTK?_n)gdehp0c!tImCuife0WKVWMSk2!B6pV?6qaC^inHw(H^<Oj1rNj?
zXKGnE?PD~~F*qm1b0Wuu;IF8UK!R4moEf-ExG_%{^43cR!k>G>lIoFA-n(&~XpIp|
zAPvX{3V^Y|5R~~WU^cK3*aU0_wgTIL?SLRJKjWHY<^n)+a|IA&=LN3+1W1M?kQ*I<
zWXS>`d1?*_GWF)!qX(DqcmBc2L;HR_wC~Wqwa->ATQFzkf@zZ{d^vpZ@SM!Pvf<Ee
z#B@9Emm8JG2tE05*N}UzAQbhEbHVpS{d=O?$Q2Qup$?QC_e(YAg&Twy=L!8V0;Hhe
z;EC1;zFa{md^s0<uhsvSyL&X)k#Z%UAE+9=kWUY<S6-mDae75fkErVx<b<9Oa*`<N
z37f_?IirpYscaj4f^}%4hmlD=Jb@JAY4Q_za4E)wzgDD?W+{~UXsdghxl!Fs2l@kf
zz%*bxumji$oCeMS7l7*k=@K2l8n6Lu0Xx6}a0F@q&4Ctx42T7CfdRlkARm|s%mQWu
zbAfrl0$?Gq7+3;)2P^}Y11o^<f%mVUK7RV(`l*Ab9{luR`xg9d*s^`?)0N8>&!4?`
z>iE(8Utz((G^((QIT0F(wM#zk?8s?wTW(~QcQ@kn^o@2~xf1)yW+z{A)FV)o1dRei
z(}Ras2TubX`lZqr<VbMO?6jZr-`UBTJCAMP%blZwJh=0{Mj_nUr{Q$249MRuS-3l_
z_6D?lcF704&v9jz7FH3nH5K)!v<*V1;7NLdN>*_PvZZ=QS+X28q*0J+epZNc!Ix7}
zI8Sg`&1zHmQ+ZRF3S~uQMCCIFpz@gyQ28tZsC<?J>g970ewP3=oytSS@u$)sW`o%A
zyV&tS>_8P&9{(R5ca*W<1uwDVlGt%Zt3!O_AHRl8h3O-H*2ctwpQ3tbx<}#1Bv2<3
zM9XP@P9V9KgukNEAWkUt9B?(k{ym<fD^5VIsa~B2F38L8GR{|ktH3qDs1n}g02}~E
zpbFpwgaXZh4nRks6A%G(26_Y0Kp!9mhy~(+G$0+w05X9kz*68l;Ah|j@C)z|_!amK
zaIi<bfG6MucmqB_SD+gZ1&jbj0<(bGz#IT`$M>(`=gHY8Zw~G{xcT5Nxr6sw{ba$D
zZvgK8{Wq(hycvxL!9q2yLAnFAAGMIzBJ`UU#`MyG>@aJtek%2g${o~C<(<$ru>H&h
zAM$T#G(zDf-2}J2FjJ!p2VX=_HJkUNUrOU`m}-KbT(haghxS!1FY@OUw8-sGb(YGU
z%A3koD90>ZFA+=fyz)7q9F>QPL+Sm0^UBzQ>ALDDDxJ(#M_ez_F!zh^k5W;c=xv3G
z-j)nQu}(HQE_Z4&gUTouwZotr`cG<yLAsur596kP?O*DeVh$L>#LofK*-_P5Mb+t~
z>Xgq3x1u@WR%no@oU?%iRNes9N2+^N&lZW3Fh{GSgZK_!QdAy6%1hx&%rj;|%FIgV
zmc^dxdhLw8O{`5{qUjaQQMV(mN?=H-aupo)lNe6zS}dPMcd{YYI@lOM2@>ew&IbFf
z1vl>tqlISC<!t=qsq~gS+Y<dG298Rd+?!H4!9hKht(f7|Tay3f<uB;dhA8h)APi^=
zkbYe+@Qlu@{;oqD{y+a(EFYW{kI^Q@=RT@Pu@k2t1gRCISYVjoFG#V`Us({MlwxKe
zw4>B!{tSEsYFEa3EFfQqmCo6J*C7u7KYcCMI$u(4tyV?7wu*F07Q;m9i;7M*rVb~a
zNVB}CNPHJ~&zDI}eZftc;r$*VoburP_Cxur9R}7IlvmQDYoR<zxsw2J3w*?9N6p?<
zG<!Q~_LeJuarslZ&jt1Y`+;M?ae!pu1n?Ai2D}G803;v9fE(naCg2X#0!U`+0G)wI
zfaIqu5CwDxdH_9vUO;ak8t4PW05X8~nt1W}&ea!>@hAR$jHQ2v_`iKBqdLU4|GP(t
z{v`D?sb8ty8zn1^Rpk4tp>1qfi?H{_CGA0CgkTSzHtH(xu`2CIEw&(Y7Rsp`_+Q?#
z8Z2gezE;No@ts_;L;D>SYUK>0@|ZXpwQDjAB(Tt^w={~Bz~d51pcQXekV;lj0*^T*
zK=i0mD=NN$8&~1!jedo{!4riNP(G(r0!lw8g%S|_I3-Ye{g-bZpimEgss782KUguW
zf>8HVy6S3-``7s&#sTFxfy9>?cuCwk8Z*xbDXX?_l!tWPp^)n9mgzaK3)FF$G*;gg
zsIiW*O6wve_UlgRRG4%M<Iw*e{~;WRQt4Vrrl+#%c}yo+;*!TC?lvxY5}nP~4Z4~#
zTC>dQr%Er8bN>riJ+13*gR?|Oce8c<3%X1q;mixte%yLvns96WH@ReV>d0^TZ?>JV
z96yqM&%#%jlIT&d4KtOj4~t+4ERp##f98WNb^N)rKdX;>{{xXnvJ4i7$b;|~z`PN8
z5c9+De{19cpEKv5HS)mEne)#YdC=#~`Dcy%vnrX-7`Z>UN7-jmub(+`@6RXg{%Bx6
zTf;)l>wjzHn8f{D#)LnNi_aLj-+yi7pV5XR8}>7n`DZkv{9#0Y#+-jfGs>TR*2q7j
z8AV;D&sgT4)r|U#kq3NE8}5HBa(-~Y8*0S|`3>Ou=z;%JIoBR}y4rwCD;jXo<p*4x
zxB-`L<}P_Uy6JlSuuCh^unRYB&5ylQmXE!3GlyG87mq7OUsR{~S7ErMIg3X<qk|iB
z<}dMUWtbp&sQa+w43**u{=%H;6*a=;dOedO8hw$_;slTiWu`^;xYP@wvGox&xNfl<
zmlmuTzx1R<k$fG)NFQccR0UqTdh_&r_PY%KzFqs5W__BS*xRL;y~YblM4<*2pyHKZ
z7E|4^s0e=QPkLb3C+7tgD}KZz(i<#J$2hqASW8xvtIKxbdG>MOoTcC9ckKF$?Lp6m
zGm_1ESW3EYoZx%<$MbsrJ-$u8Hr96P*na1d&$&GgI^Xj5C9MyQNjuZ_YSXu^5~sH4
zWpUBrP{E?nCM$X@S}Of9=FqH3+oT>v^Ik<yIQi@I-luvbHTb6Tu9-J?yt;le|78A?
z!Mmk3kM?gC>s+Pgam$)TrY<M-*6ukveb3nqd)H()-nc1kW|O|-&i%e{&YdCFRqk#4
z*sOKauFl<WnCDe3?s0Y0dmq2$aXp96xVh~6v=4jR|K7K_VV(V+`|3BGoAAe^U*>kY
z5#jW>-r4@~I`fwe%=pdk53{+qcdqf>S--)tW3H9s9a_75bGb>h?@sSoPbQr6%lPr*
zVaJ2{`*M6{-ZML&71-w3HKWFlzU=3Hxx>r#yUtEHr?X{LdjE!f=Q*yfpS~(_`;l3{
zzm#1aw{4%(l6Tjt_qg|6-#u$uRn^-u=w8V3J~vXHyWaX`%kx(o|M<gs*^w7#5@U}9
z?w=g(&~lM$i-wbvTVF_@vgC&;%b!kJFve<`vDK=^VdD$?b~8SE!fMUQu);6Hml(9R
zxj5#|piYA(Uh^5h#Q5S$x2WHL4n0>nWJ1bMO^<)OJm8m3{dNWKtaZpXyF#Ct5xoLy
zB>NbiP91xDrgK4I8_PvuHS3S|$TGUVRPTo@`^NW-?zA2`waH$~7cVaF|E1CX$yKKu
ztH1SO?fL`TuRlGx`DBaBqrXaYsk=2ieO9X9q&jYuDz&S6V&;&@nX8xk=?A5lbdu%W
zDZD%(F46PrSwmlsfBEsioW1GU`h$P&{U~rx$lD>;n)h2e=6r4IwZF9Ourt}}&-rdM
zlO`=PYjn5YlF8TlE?zO=WsAu7qu2C*;62Fnh}HTz@5guQ71DLG|M&;n?+tC4<K(h!
z-Vpc3e{LCnuR+Uaja&AwxA=9%#jj0&UC^}VF+4xIuJrlgDlbpoyVUl?Opofbs(=06
zu~01SK5j8?{^*eD8)Md7+o!X2+<`2|V@r%Pj@4T=spYCEv!h%BhYb5u?~kMY?^`;o
zi(YdlbnEzu_jNwHCq1pXVox>uHxuKl4XZi$(r(k=;|&j`9~vC7C%@+pT{ma${JB?C
z^JA5N{bGDk-6<h%8=6e7>@{cTihDH@55@QdKl2{l-M4UwProm{SGM%pKJ4($gOmCn
z|MB9I8PCT(jZ3_hGo{6YDf+2Bk9&vLPug1LK!^K5D{eh+y`$E&sOH;$X>EI`TXwYB
znI(4C_ZwZ@arjTq?6oVey}EgAx8;ZYt{?J;=`LTg_e|@~OILn9HOi^gfp)T0-+3qc
z+V8GwH9F&+&;4(QeODp(;FahGliSwtO&xn;^N|KO-F|fp==ALsy`fhR{%Yd5vQAoH
z@3id?dtB{)vFEK<FAbWk_kX>o>VbEgjru)~UbXRyfydJK`plkqAi&%-&Evu4D)Cn)
zgl%y2nm7L5^Y8%250@`~b$80+0N2Ypu2&w1-FiQ8`(5w;X+sW8m!6r|qA+dGhL=r#
z-|LX(vT63?CH*(nn!NeXMH7Z5_iK8k(df;~&P=p?QS(-xckREw(R9U@Ic??*wp~%<
zTl;Z!mW=4XHRQv!g~KY`J=fOky32s&W8BUhj=Hg+<(f_%%<hHvec-dHbF1$U-;8Q{
z<fX~i4Nv4JST!&3$uEezb2}*aMg8Y@{QPrTK3Oo!;rqp3{<dOaopUF<oeSUB+3)DZ
zA8QtmoEHA$$sL2G%c80#d|<N@0-r<#4p=_ht=7FuIwvlVKXz_k{ofW(X;7<XjeDIh
zn6CIX?a|d{&stafb4shZsY~0NteD*R_=gYYf-P$;ta>!8e*M<9k96PMExWDRp$ic%
zxpM~3+dOAklke|WI23tXFSnC(Zcy{FD<(Mq_JLh?`SViyrU7T?_xjDH=d2$l|1o_+
zqs3L`U3Tjm@94k2^S0lcjJfE1aN$(%719w=n>>FT`hIz<hIM*IycpS`aM+z}$4yOs
zDH?N9)~o2q-7RekBBrcby`<51LoXbEwmN@r%I!9?9U%=SwO?X7rutLYFB+Y6{LZs-
zSad+^w<eW;o}DzM^{E`|#oZs&pL^_T%C7!7^M06-mhN)4SF11IICRc;?BLzadqiOO
zZ7W(%uRr3=j@x$6?W(kk_TE0}XwUq0EB2T^sJkoU`$=u@v>yMa;gQhr@B-Jglr4v@
z51F`l&iNO8N1b$A^`PR2w`VtIEW7cs{oJ`#cGYWd`NOp2`{Qbcoqm#D(CFH|*{jdp
zsBvyohp`69^KIjX)Ule|ZD(_*4sMhE*4Erz^X{A8mwRv6@yBnep0jc;)Q@gu)w)^t
z0heB}nez_hoQ#=uaisMV?<#o{@36~{r^{yd{CdbMo2=`;hx7U!uF<5Atf%g~HL|Y;
zTaOsJd$nPQVS_(j9OZX&)F1V~NuB!L<eXg#ebatSyxehaLg>H^dcRk3T#~(d@wioc
zt!_xeA0^zd=@J#+;cjlvuea`Km-sAgzHD56+>kGgU$TSitE8LDM%UXH{I1)M!?PF6
zUtRNJ_rQTOe>c1P*5${G?v4xBX5D;xt=QjZvfiVV`AI8wB{iO7Z@sX;>zEgAL&N&`
z6x`h0)N5g6uXPpu$I2c^EGzi`Y~Sn)GrujTF8W1yPYA0%#`Wv{ubV$SyV3KTsvpKx
zemwWkz_k^>+0mozpM57i>Eaz;d-DCEUw4nLb<Fv~E0=v&$N6Q{JY;)k>UIO$Cw;4A
z-`s0Cz_#KP-6w4xxeR{2W7Oj>9^HJh!9d^j<_G@`zv?EQKUBB)_*;X-E>-ik&VIUL
zyV>I8Rt2X!6csnB@U-z;^E*GyE6Dm}+lW@!DW|3WihcB@TAVFK6JWeOc0fJ>rdT1Q
zF+vBqLAKx8^MWap&^ktLQ2<;L9Wrh>m%5RrT#7UGQ`2$oqe?oA<dbqvs_CE!Ga(&}
zHhNOHBsyf8m659Bno_0DTdOZB()3_0eX>@c;8#~~zphK3p1!pSZ@HGvuNM{h$-|oZ
zyaD@&&boTK`*m^F)7P~&(ZEN%s;@}D4sBVcaOvqQa;lxjchz#k+1_R3rm8$Qilre+
zt|OtC1r;*lCeO$dwTw9N8BrvU%a(%moOtNavJN^p7q_^V)`Y;Nr;m626q(e~Q-o8`
zq-aeC0+j!V)@#qKV0@cm$11X*`9qI0-ig0uK?qUWITLvoP}*~v?os^zlgFpV_bJbN
zQCZ>;c*?u}{Ur|gfH%~Y+=I^ODc}}RL>*H|yagZyyntY!BM<{*0tLV%KwCJX>kj$5
zg!=RlkmA|DLg&9dTo8B{1-u66>rVDSS6~=G3s(DtN%Uxo!F2gHgE_R-AdcoJs;9*|
zI9I^3J8mx;X29BG?L-z!V>0dwTp+=!uuyEQ)&VcLbpqtnjId#$5mB1XB%tz)O$U`G
zaw;|~49h=c7}`i-=`4v!F-2CFh2Yyrneb2N{0DNrC~;^wya3DX)hEF_2M)~0UjMbR
zg?WrkaOJ3~nJ(CcPkvZ0xg`m9V=fFYafi04!otI<s3(itN0G~5Fw+UPWY1VI($!R+
zF5?pEqS-SG?Dl8kCNXU(!Rxolhyi0Lp>6D0Bc>Z%9TXaYLa<f}G!ayR>4Jg|Q3!TJ
z+fDpx#Pou_<)H=cmW-cfaw;%Agx2Ll>*`YOSWBiK9D>j-MP*YmG)+iYU`4cvn;wO>
zS<(pcW6Qo?Mk9I~jgYl*z%m?zU<vXULHi+U%>xbZ+o0@C-1JRb>VOMHa$5RUl$s80
z@bVD=vb4osM`p;;>{u#I8aTH>yJg~Lph^=9zKOd6Q5mi~G9!VaLJ~{nmIkD4prK9N
z3{@#&m!$xb2z$K$CErQ2BQq`sMH=X}VaA|nq)HL{JaH7QloXq@keFx13#qoCp7FKC
z4lY{eBxAX#Ejf_rj=0VOlDOYYmJGj^s8Q*-OGj6h68yY)1I`r`Yf&rU8+S4m3knH%
zTDAU385wMqUP9gSW`%Ge-#Zd-hcdEf-B~~Bi{iaF(*k)ub%q=*DQk;bn9aqnL)%H=
zm?~+;)!C`oTB@1+=^41nK+ViY8X}RBfe1l$HV<dg1<jD7m$;v!xF<ZX^ts2?ZOVT<
z!b<VFCe?Mp-2%0*BWTyv5R;F{*H?6{OpBD`Paa}V1!dAFG?1GOjY8bb#&unGi*02W
z*{|$pT<ycvLtHI`ziKWhm&!EDRMHr$-~nl_cu=L1)0AQ<_=xxXnLfR|52bZePqWgZ
z-AAcH(GH{<HK{^nMX_q6k0nvi2SOPdC^S|A_=xxLQQx`EPwB-hiH`LW6nHf?B`CZC
zX{<+zFc<GAMlmTUTd7edxy;}=L6prvTSOUJmR^ih)%qnVC$o<kPm7%;$(&^Ia;K+|
zAG~`23${EQDw{irTueTaL=kr?qW;lJzg)Ced`XeKq##dJmuMW^8apxYyT7`zCbcCc
z8!|<fxW)|3+QXV~bz=|HQ|Kan6{>mA8C-K!Y$z124O*rq2O|+B4n@W0oqzK;G7$ud
zi9c>ayH`e`q%v#dz*&;YrG&~PQ-^ZU0h0n$bFh;WzFNucIB}z<iFu(%1<S%CA86-^
zXk5qOx;7t^veBov+xdoH!7o9$nlPK-P7-HH6OFM^`)Y?j^TH9>jbqJw>m_)<1lKXR
z=3BZZ%(j&9)VkWSN~MOk6T(Y`TBFP@wXb%tUbV;Hi<7G<l3pUYG6A;)joca1l&_E{
z+Nie+a?pjVA4&#kVGeY!C(2@xq^(N*P-<i|=D^DmZT+!Pi>)Qn5LDaNtJLEPoR;s*
zSyrh?XB^s`1pM|x&UKh$IqPv(jtkGIT|zja{ZO^yXlZX1<e&6evV<hEn!20_rY7xX
z%~@fwa{Ul1;;s?okZ%$BI-89ct(X%izv3v{aFX~+koPi~+@5{xFj;a((q0sYwZ;<c
zBG>6z;1lV0UPn|#%p{eV03#g%i`0iLlsuDoiFje4Xho&miYsGiT}}sJ7c#s-#k^6<
zIyyZ>AxuRf+H)Ez7V+_#R?3GZORLN>_hTQ;_o9CJiD*}V-s9W!ESzIOJqKsvDV2G3
z{6@0|qyu!KMWM{Jq=?Uv8FS`SrCXj<MKfp6e};HSOY(;y%2ftARHnrW(#OloK+d2f
znQ?*HZlkST5tJ}mERytRI9I@;ab6xPz<S6+E_vH3jj7g5S1u-@9kD<R{PrvAA{oO`
zj?jtWIK!vBqFTzOu%o(xqtyP_!Xs9!2B_QXla3@KI~vzy!D{Xi4dh~o)fp(_y^V<X
zq*>yiiL(&{^^SPEPbra=8MZa2t;-D&X$rOxnuu+LQm~EC#E+W$Vha5*go`;#XGj?_
z$AgQx3X4-2vlFYy$4uKN@iAL3xrXePEB0Yr>?3uCiDIuL%6Gb`7L=BIcRmfIv_C2L
zSzP>6bh647zcwD2p~N}vSLXUbWpF%?i*u1qo+wU7QJzaLYm&18A~`dLy~M?hk&zO%
zqK(kGA;k(QHlM7sUM|Ia{irI6SC!YA^I9_YI(+QZp<ui${iGsG+GEfx%Ozu|%f|o{
zsYL#`F$$sK7{u}QjLx7k_*%Z4nX!6&ycJQV*UE}Jngu|&-O;K$n?a7LrA>gQ6LhBs
zPrp)m=yzpaq&s!QZLPSq5YxvFFU*stZC6&h<2jz`=*Ek9W+jpdG2N0S<Hg5<0npM*
zhL;N~U2Qr>H5MOmNL9w2V1aTnZi4zf%78XW<8{m^1KKF9jM$qoC-m!`b(?X$a9(?x
zaXoD6$)rQCQO{1<Yozwj2mGMdbA|fTj8)>s2AVN52~UA+cELWTF%=Um?=>%+suK-R
zTg4B5&`3pEm=m<ElU_4sUkVKxPcgw8N9Ki@y3v3(8kI|-LE|STSaND!*j6tZ&_=_d
z6dE*QVuICG=7sM1(SSA@j-}9`F%lCjgETMHGl&K>)9_+lFgh|qm$#V^gn1dz2u?m{
zmkRb4*`x+!V>PP{>HnDVta!36)dE-6+vGX!S!!+JrD&m(VO@~@MDnS<eQ(BU(l`xC
z2(--Qq$3<%vN+R3y+nQy7};ZFgT~>P#{P+}3<zRX!IAa4K_VKEAvGG22t}hLBx4O>
zdy<R=v%bMU=&skrsG}lw^AaIDbFFV*gpZSlZv?(zqzxl%VQePiKBF5ZqClfGGzOE3
z6p)ptD&LLKALTh>fMGfVY(-|k<%0U=&x&vBQr}!6x1p*k#uJnyvr695NJ+^tTIGH0
zEhqFr#bd9aNijX8G=mp>YgDmBOr#5xr6{LluQG}&rzFuMO1fGp`D&tMr%I_Wo5eOT
zYrVd#0)|tzgf&1piTia@)(WLhHXgoefl;;)W{vN@psS629O)?ESqB`$&T10Me|5dL
zk_s3RnwM7xes?vDaw+q#J|-m|Srb2{KE@`#CmvlB`>T$-iSGy_aAH3p2Bl1i%Sk!%
zCFZ%(R~brud`=vP`beGlp5`$-@e|rd@5E1u$MMAenn(1+Pn6_<R7Ji@Zx2z+I!Kt0
z9@R4Jr*HKbzs6`yc-<g{mCcW;VgMJ?&y9suVul*W3Wd=mZ&w!N%EDY>c)vC_;)dRH
z!iv$?qCQbGJ#n9okBR1M>OngQ<GeI3ZC-fJ%CgY)6+iZP&MF4irROA_qyG&0ML7mw
zhBS-&bS)7_60{fTP3!=Uk0^2DNQo5@-wrd&!bTY35&B3w%wpg!(N9wJR#N5hrHbMs
zEh~;sISxaywG?98^Xakiy@O{+xiWX8nZ>cSVEvId8FaGHn|6kl;Bxr9Vu5+#{EC)^
z-QOv5IKN^H+}d-<_YR(63|$$grCOX~jtYHF%4--O?=_=f^TKOJs+_%MR61vK<ebeB
z#fw=NmAooBD~`3b5G%^_Q)A_A_Ge6Nvs<ghs?K3?+->-{xxIUL8>@19w{hv5Zo(R)
zja#qRM3iIg;~iw<8MAQ4*`e4R40|7P9Q#R6Ec@cVt7<<(b8m-ew&iJ}#VNh6`LL!)
z?-@O^O_k$qp<D|uP^b2)9m-*jMKpl9^>AHSfd<?fh3f3r8|J%duaPR4qP51kCw&AJ
zU&8GZiBD-~_x2c=mbz;4vG)7CELyw@dq3)ay*6{!2OHJ+b>yM14=oz9=kQEdyCav@
zFYEH|RogR>&6Z2;QtMv!eKoJ)-K?F}3^(nYF=ttuwa=Q>asAz~Rqv%Y13O$^-F3_e
z2m3~{rRFnUY}>WNJ@Bi7)?;QxEFJtHGpX(R#$Qj$sy1oKnYTeY$Ncl$3O*E6{5iMN
zHT&PkOb)txB=q8a-OcNqq8dNB|7M2kok<(FH4SLLs!gcTs119joO`tVP0J&8%{-27
zt@)?Nk~(7+{@nei$TyYOJ&aE9KkdK#hV+@~c&mNuDvarKGD%vw-h<r@=Z$%E^+Na5
z9oN5J|Mif7=;Q787Td)9+4Q0H+2g}|4hKhyi*?obwe-TWU-p1c0chT-gWCrmw$1kR
zpx?rYC;RU6s_@kxU+f%pdT6IJ`|NAvc`lt4>bZC*yX`(a+1c@`<L_5H95OK3ZdADB
zk5?-ie_S)}&F!hbNbP2QZ?Nx9XwzfKxAPkB9zOEO7fY7aFzPul^UKA9uWstIqvPqt
zjehoaTpG67Ynqk$=*t~;M678RfBJ~UnKmu1`o+2qUpBdapNrLI%&UAWpzYZ|?IJD)
z#;lpR{7CVJeO|}sb=W(6ZQc7V^wI;TwoSPgyKuSZ-Of8FEl>FVT-8&XetdJ`1F}*w
zqy6%y+l@j7#{$?zhv6f>X$hX9-*&QeeD^$yB&5Reb|(9z7QwfNE*voFa$wwc_ZG41
zkFDAMl7-H32syOi%>1ht@82C2c;cqb`Pt!S-RsUVG#i`nv&ZNyMMLT?b6kEUtjdA9
zskaZ=KKON@{gI6mtZ%kHoZV@t%lS!Ptlo58dSO$Y^VR>Tdp&xqYv0D>T6KGP_EoJr
zEq<@#W}*|MIq_cCLu)O^=*JS;l1)?My(!s`x_8L98ep^A{L%n?13a!~o`YfT*h@dm
zuGh|SfBIKdQ^ric)NxVpnbt!cuiPz=?As>$%Jx#)SF)ZX>@F>R=Xbe5s?({p>sm!j
zIS>^+CE(K7)lFQj-rRjxT(#PYl^35Js^DZ*y;g@S(I2vY4t0H+AN<X_$JeXA^jw`E
zR(p=#jHiVgch;JGW7C9JH@A<y*rj>w$e5wd7yDlwH?_^hZ>KLY-xn4ApjPXc^y4kY
z+wK^fS<B+J(ZhqODO<bt>^;`IU8AYD><`~?n7E?DsgB>g2*|qA*kJ9LDTDST#V%-V
zo%F?C1H;@2lR95c&~b{r@Uo!8o{3-H+x5(1U&P+#S69xQzhz_pT;sJ#<7V_&w|V25
zjA56zrG{j#OC2~iGtz7IE63G!dg>3=jp<wU;_rWM+c_xYBwP2#sPDQ?_xZWy@YOet
zq)ZQf*?(T%mJ6%=dkq=$@#vi6tJ^O-o0_mbYLP*FHOK7No38YY%f7tVanganUy3H2
zNZhjhw_9e1?{xd6=tG^==f4~mxM1|@dodMPJ6-uB>741|85<tAdF`<0V&BR`z8snC
zz9@Wy{qyGa#%{8|d3O=EVULeGt+yhj&B04wxj(rx(AE7yg`x&~msW0g@7UJrKbyAh
zb1HJvPV>$cDtj+}_1l|QYv(m>amak0Q`6VKzP`Qhu3^(2%}#uuHmC4@7th@v9-TZ?
zZE@3i!=67oUFrP5?gxwC?yI@`{rh}>i!(`XC&qcsfB*8)k#TFAeE6`vm2FYG5v>wl
zPdeCq(d>IhkDuGy_;&4Iqozy$UAFs-&ORIav+LBLy|cpgKg=6j<;Bmn5@!ymQoq6e
zO}CsR_ZOQC9GZ2~a-hYSF^g>H3|MqY@+9j-gI<w6WUZdpo|zxi`lr4RVj~VdjvEqn
zVEZ`hL%VmjHp%rh4{!A}y?GVySN82~Dz<KBb0+(J!6cK%Pa=N1l>6=5k>O3cKJ;ke
z)V5ALpCv9eXC;o?oKj)f%&xyy_?VZvVX$Ft(8@D|##PxCcG%>2?ZRqS4`w`VFweb8
zx5-uR%$R02On2q-Hi!2{zE0@Xp>|PDn0>3A1!3JcJ($jhhPS`Dx8o1BukSkc-4Ekz
z##W6yy<<duPnRvPLjr&5-{T9XQ?9k+nocsbSY-dWe;56m_tU?8IG{+kz1_BV6>EIG
zy~A3AEh!I2`<Yra_O-O#wWIxy*1Jd5a*T^@V`h`Ptm`4aH`{;u**!A-*zG$efm4rG
z>eF=1q<3lcF3(;!xXb<HFUK_7X*6JcqXAou9$xJ;cT17$WtT}7&wHNRe&_v~puxp&
z?(A@%@43tM<o8}S$=AnSYI$|z^`}3r8QiwA<MLWAflE?$)Ogf5q?*B>4YKdJ9;j7!
z!mUn8K3<ub3-=_NS@jy)yo=xHOp|tlub*w+Z06*OHQH<~+_$LmnkB2Bo_bwp@VV6A
zLPxKzVzsh&)l0W+8_${VZ{pMP`%_htvs>1gwWs^c)xD049+|#&->NlVH1OTB&GKiP
z7GL#TxIW;A`cp?8F+Cr%Zk?N-zfq6s>z>t~^Txkl(4&}^I%xxbUwp0JLDNdVI#<43
z5Z~m?pp);Gr_Y&s=;$2h9_Ee}-rgEG_I#UbJ!U;}%xpOBo1>2$OfTKPG1%JkzGb85
zRvjD8{JL(fnl-~ub-LQm|J&JBpY^};@?d8BFAoLjuMNN6D%S3&gm2asn!W4%&E@zv
z$7iqZ<sE4JTjrm#$4!>4>ueZN{k+}u$!2E0)4pKgel_b9XIUQ~)X5|=a`A@NKdd*{
zTeP;dBrm6T_`$e4E7xxbce#@H(!b8qA&W-aH{WaN@WYr(hi(mX`hG!&;2OOK%ow|%
z&#m<KJ+HRidZ2#zwr3M&?7iIo_!*<5`(2kM&pTq5ZW2*_RDPW?hTFOvO`qCucWt-(
zo?+9n?2AuEo_=S1t;s6AE4od3nVF8y`EFxlkI4NCO_o~z`A)~duyaFck6XhkeOG<?
zt&vyWSGw1+cuW1Hlo=bp3|(?%S#>L$moB!(&0a33JM&?~FQOV>-Cno#bW0!0E>_*X
z>-xyDzH938ez(5Aaka5c$nx2Jr%aQKYFK&rlflzN7IzG+e}71J?e0Ikx>Du!vWC@W
zA73!F=U44Qzqz{G;)i7O#O>er&Y1qo;Ee8;jlKJAaLDh<Hk|2t>gbt|{w;!j>DsT(
zg*gY0{oE_4=+2IVUQvF{Yh9~e{e$7lrnQG8?#_E?mV5Zs!p+XF2QC~Faw#~n&-w|5
zXY|ih{CYwE^`io2_|@unWmWE(uEzp@H+_<0x~t~+)ioN9+kG<S(W3g<m+NmGIQig-
zx{oeh`MRE;|G<~=V}Cjo)bz0Zp&2LR?|XJ1l4D+Fr~b_fZf#pzw=J66Cg$NnLpO8j
zn|iG_<lOZ{%T=;rHak6O{$|{9M6+E}t!?A25w4LIHP3SEq@Br6UN(iVMh-B_$T+*r
zVzS%y(Wh3Q(=EK`Zx+zhwbP@=W^3vid3+_?H8W-Vw{wqJ$NAjwPX6A(sKKw(`p?>%
z_T!_kgCp$PkGb41eqGGSuQLK4+a^s8cW>wB8sYBYJtM1P%{Jf6IW;!&O~IO=#S^>U
zb6)&i$l>j$!d~SLUGQ|aWXJ*6ov{{!&$G(YJI*TJ@FB=yOp<3cyWSr=g=Am;Lf?JS
z!Q;1FW`EyS?`Y3$+xFj7WL=_D4+B%$%vC%lIy4xs9m7=#sM~MK&|cuD$eL3RsBRA_
z16GEiD6)%q8%e}|bxP{SiIUO<O_VrOMV*Ga5GZM^#|nCJYDy7_j^W(ebBtQ+v);)4
zY7-*Us3}Y%X<kBBc1lKiV`py<FK1~&dR#_)N_tXb=Pr>g>jgPWvvXwW@v_v6^n}LF
z`3c$1O`DjRG?F!lOU-I0%anpZdUgX@W9Q_YoXiHEp4o9Q9%b1c8JP*`xR;obl_tx9
zGb_n6K1((Lgws+zeZ0H^Jkw+;>CV#FB=5$~sX5-x(wu>~itmT3*d!nF^C3T6#rMON
zEG`aR6+9uo5PWc-_fb6KEBN>d&-e*Geu9s`;Nvg&1PDF>&eG)6l=Obc5uKc+i5aP3
zyoYe*?8$A69g8<)@eXSkagx^i)0q}I!x-g2?>A6ijX+zR?Lv|70e%AZ0|$X40Cmsk
z%gy*o5cfq~`ikRb1fs9G(HFhwt4_<T(3`X6znnq4ywVP<w2*){8>i`XB!%nK+2D-F
zI7_$^&Ug&#MR>EmI?faqeI=B>6h!oB$9UQ`oOX_;-GgZdQDGNJN;9J6R&v9*#(E1{
z2SlsK7?T3dfD3?OYs^9-EMN`U@&J5*CO~H(6379*02Ts^fhE9qz(L?Pz}faVV=$QM
z0M0-ZkOSla1Au&BCa?{l>T?OW3|s}?0ghmPAW$D@05k%60eGL7O$NRJrUKJ}&A@Kp
zDsUaR0o(#;L5LOL0no~FZ@?Gm3?u?0fkNO5;45Gmun9N~oCVGS7l4<5IT%w1s0Vle
zUO-2n4=@-Q3Je1ZfCaz?;3RMwI0KvmUI01}sH%Vzs1CRQp+I*a7Z?Bx1O@@KfW^RW
zU@!0!uph95Y}Ez4fLV~OO~6)wWZ1gPx#DRB*1D1OYi3hy9W}Msx`s{hv^~>~|6jbG
zHr`qnsYj0RTSzseArJzj0|mfHU<I%V_z~C#8~_djXMyv8DWuUCXa``pmK6ZgfStfE
zfFP;0AbH+^FVGE$1>%A6z}LVeU@Jg1-MY&(J&xOj^55z<#kPgk4%{!50{kPnUrM=k
z7yg&`=YOYRw@+3SjOd|bilq3JphlD6f;<O#(iGRhtm;$J5WIdWW(5TW>=l#-UJ=qM
z3d0R4GvfCFz%{7{e1Nvd3zxJ{fIH3-W?V!B)DJ9y=fY7KNGS!-DVl<_g@_<+F7U|&
z5rzm-0-E7$C69<`ks|HPOp8bl@tYGIqYTTpDA3a-o!eAbf<!~+izonH6&L&9*NAn;
z$U2Qgw}vDn;@Xg#J)||k{JJvns!cO&Ng0OGwH(as($*#c7>)PA741Qx{azq<PuNY;
z2lGVr0oweDC{Q@zp88Ic;(I=bE07CEJ5l<pgj1!d8lNi7(&8&ETo4x@Ki}z#JX89;
zkq_GJ!@HEU_?B|dPvxF!I_s<4Q|8YP@dcpu6nN$bm%oBD;#B$|UB0;MhqD*b%g4s&
zKzxtCugYn03905zoJ!iPPPNp9O-e~BwC9dEr#T0d7oy0g(i`$oA9QGc6JNxojhDm|
zKIfX`i1v2VmP$WR*On4qQiPQ7X`m7(Zu1m{*u<qnycY9Pm0#L(K$OMd#5AcC#rITc
zmd0o8wIooDW6JobR+g3r)wGDik<@5Ur}o-KnuJP$=QZsxOA<mFh9p3FhvbcqkDj41
ze<2Kopq+1Mi(FMnFS$DorI3$_Vh|*jv{-4W*M5)R?uXZ@q@lf`TnPtZVGz#AvDFam
zC}4o5!Bq{-;noBXSSE{r<!aahD`kfoPQWeTDz0COpbN8@&;p?EQg0VQ2dzgeK;OQN
zBa;~iwGY&Gq74m3dl5|eLN>s0-oi#UsD;B!4R6JhJ%J>0GXgZ;Oid$^B1@TORpb_U
zFj?O)s1+7CS<o0<4_3FLUEp6Ga0Xm~T0jlJ4WK^1J5U>-6$14D51=mK2~acb4bVaP
z=n9bKO*o585KbTiWFu4qn#iHf|8DSChbJ<*Opc8>i}53vb3_gFWg<e691`%IU?B&6
zC!DYixDLor1_J1N!~;cTLS;aCq22`9VAPYy2B;Tt0H9t&brc%)5@rC@D|ib~FQ6w1
zlC1ts09pB%*5R!B2ox?^@!tVtwf_l_mEHl7kySn)SO7c+$m(te-jS6(6CkVl06<o>
zH;{-PR6igM$Od*HKlH6^`c5`|AG;Fr;s6NWPo9J8xd44Xc>%BpSPU!$z5`YO7l5mP
zBLu7p&=H6LVt`m66Icp71bzj)Ab9i*-q`@n^&JO(20j2Efm#sC+CU@_1CYEMGCetz
zSAx%{o_PvYK#!m=2VLuEfS9@=?$e*xPyHGNi37z@LJp`LdPAmTfH)up7%9gnoC^V=
zoP_U}3*|uHvKGpswDMSv=SnM+1scl22Rsi0%3CH~Q65pEve5-U%7zZdHQ`s_wUT@K
zxX+gbot4)Dw|PI_Uk@dvjm!TVYTM^5<-c0fG?%Er{l9+JE*XL>kPIkmo>C&p6Q>SZ
zsUaA_atKd+8P3Us_(#It;ojjsK0nZV!ITnxR&37yG1j_jEuGgZk`J_1_zCwcnB|b`
zI(7A552~r*-m+eC`VM{8jIXWX-i+v$X7PXKT&$zv-p7dWO0^ARLOn~|qqcolrJOp8
z+`Tp2OYPiLx}YG)#6!cqeD8{GHqCx&>#X74#*}7mEkow~;85b81^Z^uc(>)Pdvq6a
ztUOz=S5eJs9z8d5j?z!KvcQ^;U+UaDwY-YpqdZ%%l%9!=+Mc^&R#!uOzXgqI>ilj}
zOf3!fKIFQ!*k*O<t9lyl1q{8^vQgpKjb0`0p)Csw?|!hq&9}wSX{v{WJ<&N3ePPnI
z%gXc#R~Bq;y$^kUYCF<Fs-S5A2{hvDq&ZRDWd}_LHW8jyo-Nqwux06E4@VAjSA-Mp
zTCm#bY1z%5O|4x`!@Z0;mU*d%6Mu2ja1Z7H4*pjq4=}*6s!iXraK=a5gV^8YoIX}0
zpVN<ln{=NC9|rHc3dc=Y1aw$%Azxul(Zjb~NEn6Dc-t%n?k2TahCBNznVuUR#>Xp9
z0ofYdp`;^03d%=^0#k|vTGaZ{p`@i#Zdw$UXnCN<D(InQq(ezhSC!r?W373lpaMM)
z=l~^6vWt~8&FuBG(o|s@1rrnWfLaj|g;6CYO2xR&#Ii8zJy#gZD<GlkOk&_xAqvy8
z1W^xYD~gB?iLSn(u_+8R1rN-)a$b)2Sr5PCNLy3{>E(E*_3%3t(y$1$kTy^!kBTI)
zm?ysgivWXo^0zENegPH%2C0&V;ZO>B!xB+gszq_j!m==im((yTL~+X^25yxcPzObw
z<2-XH2NZ>oG8#O~AIUuDm>E)NUKoRS%Vyx+vKYKuHshlTd3uhZS0E3;hv$DeE-z5l
z!v$0i7s%@&NhyWV8L2H~CRQ`HE#}H6(+D9mv6`_h_94*`609}OU@pO2$Y4{14CWF}
ztr#Dt_S9OS(BxW!lL-qH8fgu^GE+-sAx|w=+*B5nT7?{HP3<~sMV#xbk=k|Ee4K)a
zX-{o|og!p`9YPk^@gW7t(azhBl@+P&SQ#NZR_0SH2!l{9#l@-1m1i<|JBin;$;8`a
z@OBaj1r;MfdvgC31-VN4KQ9XAoG6UJTUir%Q5a(YQ5b_avnGBN@15|kSnw5yW7mI{
zhTto^JbQAZh1U?8#o}L4_>UC@8uU~@YH}hUi^gI)uOVWov4}-uG5w>z5q3?&t7x=i
zg9NXwNbo8eh6UkPvn{q1QG=q1yoEhk*jr%1t>nocCF5`lEVz{)OIqsnxQ0m+ohsM_
z&AiYQt^O*WPBpRwP0{MFB0Bu*a(o&!r;SWF`61Xb&h}(s55_(wa+(v(L31$nGFc_h
zI!D<GxyMu_kl`*7_bcS7)j-*av$HE&S{7#WsjX-U$`vhR;HI}vJGSB90wQ**CASI3
z0!#pN#xSK=NUoW^K9ai=C51&K)Lq(1CAAYJrACCTb4{isM@UYXtZXG=gYprkK$-}9
zU`SqtIBaYsaoY8u9I2)bt~TOi0INn|DT=_Td=X$Yuha<0!lp<xi637}Mxq^+*OHOc
zj*dh-`VZEUi-w9?@|z*ZUo`w{wWJRE#d3*mN`1yU=ogo>mLU7;2VYC(pnE5$xy}SM
z=b(G1QcLIs-qLD`I$5|YbG4)bbc5VZtw6e=0(8S9u9naib=qr)yt^o-%h!<WC?$Cf
zxlW~Y9i{XsHAK`86^NVJQw=Ex;WBH8KwLDOV`fh^q#VS{RYMdJkht@QnLX8zazya=
zYsi09J0kG6obAY8t|8jnk-u0&%At)*Z9@bZ6BvLqUqi}4_^;QHauEM}HKZI7l(&W`
z+dn0b%4u{XsA8N_2&~IlQF}1Xa^wTo^zWf@mOU6}Ir0JagSMebWpFZ{Xh0x}53U#x
zh@#*nMk6^JK?uyBbvaw<BJ8ip{2<>&vcE3E{+djKd>RKJc~gT6FASFI@&l09Eejv<
zWGdeTnOE0i;075JJY3QS5V!n9O<z7zs>>NfMK|$gDNpRz+aOkS6K|FhG3~>RM1)%p
zOc&w<6YU&(lO>qO<SiKaprlA&>vH<~_FcuOq00kAd;6|@)bP{C3WXHta(de3fnuz1
z%r7A9@<2XT_z5F~v}>^Zc*TzZqk_^1;bk<o)p!}WOpWbjG`7`929$QKF6)V)y}9h`
z74S?Dh;e6*(7!`OB&RsEa_E2KXkjH$Uqu)?Hs#9mFa$$Bo_d%B<1hqc2COhemrBCq
zoxDj(VNfM8105+ji5b+9nt_fKk>Iy&gN#YArjvM9Nh^tD>~J6_kxb*{$=Kz9NEoB@
zX-qvO30uZ@HMNomvQ>}>vIU7C+fUAjk-dV1kv&Kl*?)3IE;%SjTyg-3OAeo$k>ySb
z63d-HV!6{NXJnvML1Lg3BnC=9IU`{%3KC&1AQ9%GEh8F4%eH)?rPMv830Y;1Sm{C*
z4PjGJW~GT7pSm(dPMkXJ!p9RUQ~1QhwAUv-tEG$KU&v~iLMcvNSy?SpJjKMy%4+F?
z`WLcVrr3&8C(o)@0UoT>je|)y4p!HVVq#@wHC(AB!%0hqt7yr;kX1*e&U7T5>8P$V
z#i=W+RDZWoRQKO)K<sxLHKijaR#sNGS5gq$UJ1muR}!nAzmU~&O07DMwCXr@ttw7k
zSy}C=)UQ2BzxGtuuVP|lWwnk{)7BwPTSrCH{)Mc*b5`)~oihl&b5_&4;?(h36)aX|
z`;29?oYMSvpr7kils1R`A2#PBS~DYb0Gv2c;5T69Iyosce9UhIE1n9Zt-;mWP+qb$
zbp}j0qMADcN(rS!F1)#{X`-8_p?ML3m_}*K33wWsmlKF-l(w*dr=fXaftW^VOAL4#
znuSSBqqM~aJPpm=2QiJ(mL2dkG%q_4(<p5L0#8Hp0t7LQ(v~9pJO4}*HUHHsRQ{b#
z5jV)pfg4CG$8?IC4%R+3`tLLf$Kd~rX%v1mCP89ZIGdk2PLQCLPLRaFt!Xqy)M*LQ
z;{~nsjxxXXv4&|ixqyiVR?0_^AKodKi7OEN>pgD`+5Ja)-a^X$v7Wa;kWby;?0Ksa
z`<p#)ff%3Ff1u|r5ahG^7kb`ItF=l~7V?E_iYW`#g=<=^RoJYGX%wXiOp8(GV_Q@C
zG|GH4RId5h*7V4SQcYlO6D&%?G{MpeD@)}QEUjoEaVxAWjVhgRiK!QEYK^bQO5(Ik
zWiu9^%BNm7)8f<3SbRG9eW|I|I4Q%=-ElDp5%5z3MY@)S7W_O)kuD-A(v5*zr4=gA
zs&G}J1$vf+1^n9T0@`l8KraSv6{6*xX;dX_fz`@I{EBJ|TCHq>)yhSxE2=+brcsqR
z^=IVEwG~UD)s}02>P(|*1YTI8aOw@$3-h8S3SL;EaO#Z;Tgp4rC?3-1<pwXma=o(N
zs66sUq&Ic-dSj(fnT?1*qVz`O6Lh{n@UQE9QH!KX>~D^?3dH^~oi7mlM|8d_vA?PF
z1!Di0&KC&&b)C=61o33BK`?jldPwWKb!DHECXopLj!4i8PNl!}@ZUTl!EYVF$(G`W
z9}#_nrFQap@He#7?hTgOar5B+&VI`|#Wf+C2eST?-j(48s5I*wv2lgAxiqaqdr6q%
zl_|xby~1vwmy${w{p3Sx9{v3H6)H{`Io@g>%cNJTwT~?GywyB{sl&ZbN1N}_>(dJL
zfD3wcR_vzNkHv0!rCRK!SAxZEdUaatrdMOdZhGBU?55YS#cp~{TI{CRt;KG7<yq{e
z*K);fdevC$rdNo?ZhCE4?55X&#cq22S?s1)rNwS~ty=6Br-$kYy#g-2Pp@{1-SmpF
z*iElZi{139yVwoqKYma;CrR*9yvBpJW&HF5FX$tXl@^++5ta9;Jllwssv%3dteC~f
zpNcCpV?9T}9ME)a#k`Wvozrwj9Kwo4y=-!=?59emqNGoG^H?%uNuTo4N?ftdu4HIc
zA1ml%V?A9!AJBIF&pxG^0?jTfc5wKGDP{A1<jY|_%6>|79ICz~t=ppCcPyJ1s^K)d
zkbZ1bP&Ta{QGN^lne<z+IU$EHltqhS8`QMU?gn>E>vrI4^&7MCMoO1c;~U0GS79Gp
zQ>CkW%bjL#-EA}ZaATsERaD+v5i!j|>DpxzZmWE9xZeQ><-G~rzK|+iSL(i(^7Qa4
zp*H?@9f`B@{=`0KT$C=ep}XrS>CSSWTTgj!PxwYpr7MiR^7aUq$=jCqwR$!Zxq9Y?
zsK%+hC#2$!tTSOsU-!muL@p2Mns8+*lyM4Sj|AxVP=<XU;o3v_%*pz-dMjOvhOO<R
zeDXn5rc8NnZOF+urRz?*TR&x-$}1txT<P#^C8ei+=W~@|H+fATqzv&C>YfJ2vAmbv
z2k4+>gv*_=`R6dke%Fz(y;XHsI~`q?-b9!6%hYA>2J14{p}K5BKRtG@hCaL4M4#nH
z8?Y6@cn>Vzkj))p$ePtMVxwCav0h=u>{5&gv%((1N9|3S)X|iM)G}p0p{DFsm?>MI
zY09cvS73AdRbU0p%~)o`itKz|MP?Fe&YE|@C+Cx~3Fi=Vws*J%>uzYt4n<h9E`9N_
z-QiYjNo^Z8FvNxp*SBS<HEr2;i5=@S(2ngIUWrNL?O9Z=J$vh2nXUD!%nlE&%)TA$
zz>YgRvZKL{tX?-qwz*an)}@0J8<y<ER#&Ua7CTpEd)=zCl&)3T4EJg*+)&DDnM&D-
zT2i)hxRf<$S)J|d<jflAxv(D2E-c^9l~s3jW82!fv6)eBEGoy1>6*H;**@;fv9~)5
z>F>_&RI0_sV%wAaq}t5WxDNZptPc0lw0S!CJg9SB=FzS$v#C@MpRo2|Q9&N;g`X!o
z;_t~~BD}FFmJfUB>C478@MW{&ec970e(akeeym2KKbxZ$z-HDBU<uIytZD5)_M(0u
z(`gsTb~O)T83TgYtV;FSQHT26$KXD6Z@^krZ^+DAG-OM|8nVgR4cSnaMl95?5lhHv
z#3o1^v)uz4vzY!(*sA<scCS$g+t4<IbsE$Ro56;%sScs+Y^zY#Tdz4=JhVBBZ`^_%
zh;G508?<Cob6c{@2CbMuKr1#;){2d562=_cwq^}_wPrqe2P36_8+O7zoHgwl&d&7@
zXLAOHv;E#}*#^J1tVZv)EMr((HY%wdo0-*)eP!F8Mdh_;XM1*Jzv*{kP8B<`2&YcW
zsB#1wQX_&L?Hs}E`bMx9ft^`c-_F?4ERwCLAIT&sk!<LINVeLp3rouH!cH4?Wk;;L
zvfjqsSg~0*)~9t8YuYo4W!rXVp@uzJaGf4(M*SWvQPPu5_3g=)1omXxLwYgqmc3ck
z!M&M-XEdvy5zSKc`mkb;K1|xL59?JSh85Vyu-Wc0%vDFm{;VI%Onbz#)#h<*m`xlD
zXdB1or^GSGj5usP8PBE~$Fna};#o>y0_z=?$c|S}Vy9h`SYCV*TVtHeatEcblpcNA
zN~?ZsrL-UWF({R#cSvP><5HRVz*M$Umd2`?r!&upboQfrCVSm9lQr&>$vW$2u?<F9
zY;#x^^XZbsS|(((n}c&$Km9y*w|X9%7n#R0Z3nQVngdvv?*L{obO5t$oX_f29mEdl
z4rb1S2D1+aL)dtyA*ioISY+2BY^TvsHr!(<`=QNHwkCEc3vno5R^bIKV_*T>X*h!2
z?lFQ@u0E3e5j>LhNgT;4w;9Dw1r)Ny%?p`c+!w4#-WTk0{ugXVl`olz%U7&Z_*ZQH
zkgwPZozcwDdNf-eIhq|c8p9S^jb)a0V_6HQv245BSZ2_0ESuV9ENj|*EW4L6mbJGY
z$9}LKhq^V68T1>+YzL2Hl{=4T@q@;*o5Los3*KL|DmD{YNLRpj5|iXkV$Jj>vzZ~2
zSwzdpY;ya_Y_ro8RvbQs4IVOujkN!UNo#(?&bRo6*_lmc-!_@bM)^-;R|ijH85Yx-
zPs8c#L+EsNt^T*{ywMEy*nS3U9yo(NvYpBL=FMbV2F_%8y=Su<DRbD8?sHjIkGbr{
zfVu2F(6Pciwz$uHray2#v$tHpVp}d?RihWOXO$MQ&I1;)-FAyvO4Y^eP}pK-nX!cB
z`7dQB+bw0|hAm|qdw$29dw<8msxD(8-pg2x^ySRH@(Q-R$_l0vyn;0kS;2ltU%`D6
zvTCDMtbfN<%)a|7Ho;*vOX;+lP0?S&;&a!qUUqBQfNE=5K!dgHb-%U$uf3}Qj;gxC
zXE)gpG=zw#Sf}=(A{dg8&7VOFX2}M!kc1^!0fQJe*#}v(*^RrKgg{g*($eBjJJg|d
zoPim297m@^3+gETq>7>)A!wkL3N~~Y6)F~mX~hER_uaQI2@xtJcG}v#@V)ciefOSw
z@44^(oSVD%h-c<Td3Nfr<*xKilDu$}e0keuiH0`IvG&a}>$}fL`&G}#@Hx-OZ*!lO
zoUzZz-PzB{bK{?v56YjHmr7rdHFYn@6J=ZEV||O1l)Nafj($m&-1(C1zUF0lsOn`o
zQt^tcuYE<lwhnpn>JIs6YKLStbjWMAS7lVutCDWpD!-hwRmRr5E)OJblRFl^DPwMb
zQ(S3pNlE2fQn2tXWu$a<{_o_qo8Fe`HE&C0@pgG?(RNvzwnGA!?U1tDc8EK<Q`Tm8
zN_}Ccbf@o>_b0w1s|w$dXLH|`dmUXeVosO5v8YSB8oK1JWnJ>ReV44$cgYu-yXA21
zZb_})EsbTrm!i}^$bqTviRX$vvMqOy94y=;(?+~6J1==(7Ub-eHHCX+)zrQ6*pz+p
z+O&Pra?3tx2lhwy$+m(Iq^tc;lA7EtH(b~)6AQZK!NP8-3w29b!hWf~@z1hj@&P&2
zbU;Rg56Ir(A4+HShjMH4$8zl2gEA@opri#4$+*xVDZBkIVjcU5MAAQzo(m2u!-)?}
zJ}j$KKb7PKf0d8ipNXyIb7dH|wd^SR<zw=A%Q1N}|8Me{?e8+K{0nIweOwwYJud5;
zj?2NDzLfjNoREEuCuE2Hq--oaDf#s$<?`hx<z>q$dAI$P*eVP~(L6Yi<2p6Fo}!c$
zq<zjjwyDqO@OZ2F$7G(eju~E>6d`I4BM!r9`9Ta<v_IU6D}6b6Fr5*Kp}E8uJG;Bz
zJ^!XP<I10cmDQS*U`w=F6B2vUrQ5MoI%136>P&3%^T0M?BTl%Eh$a=Ft)P`iw-MI;
zs3+%x4_4f47OQ1glGXg}lRDUx(dkz3QU%+*jmkP@08hDDD)kGK60LM9_2M(6?oc*U
zX^R%8^BZwS+87}LaWFIOd0L9h9IvNn;EItm+NP{kadD#e6qVMngyB}J&6;@Dv}kXa
z=X?86%5ZOKk=OH<6r|EyK8QCFdCijj3l>Sobw(B;T_dx!idY|$CUTCHRx_7oD64Gv
z@<itZo)k-GiHX$>JAH;d-7-*GPS~ht-<i62*TW)Hkn#!!jyXuF`yVH_VY+6x_4p#_
z%26X4PB5Q=)T79QAGU#U)_tm~O%<Zw#rzcMwSpJgQ4Gow46+903Xj8(Q=$z;PBQAJ
zyXP92#_)9g>xW+gCGABX%5h~5c#3VJ*pu%YBS&^x4<s5t-?``EapV14#ywH9Jn4yx
z)GzSnq5w|(dM-ho?um0R(`Xa<bYJ?=jZKg<9zSoqjbHz@1RhW77`9n9qsm9+ogUJO
z6U_*^=jZ0#WZa$K)%Xq>Cnaa)9jvG1y*)JLab}lXTErK_kMxYRBwLW;0qRU}Q1|aP
zDep~i`hyP&Cs+4(7G=={Uq&o;|95FPVwu13G~7}U!gL#A&62$*-Cm%l$81;WXip)u
zp$7CGQGC@7v@I7XEd{VQ@!(%EdeBUq*R82%+SU#z>j4bkiq^nZz>qG$fv_1kyZPV2
zwdgdi87fV~a(V=5_T@GAv?u1AZ`~*l`wW(rC14At&EaO;>nem{cfhXho$!kwBwKqE
zVwsk1FNZB(4{Rh%lKD~%Xm}=%{Rrv9Q!(tia^$I1y?G;2h+vF!LoVfbI}b5kcsi5A
zSgFq7HkL_gi=0-%Y2P~qpF;|MPn?4HDHuglz%d19PNtyNQ*b7CiuyMK*HmC6kOo`?
zi~=qOMgx}smjagoV}NgqJB1lS62|g@&H|6_RqH=LKD$2csh=gw#POT<WW%orLHYIb
z{VxE<+yHPl(k_4vj9aJJY%)NTK$n7Y-_IkUoUv>K<@mi7l)QF=vIQOiWji|oN(u89
z!~845Xi#=L8t6#S37{ODvO#%%dLbzOtG?k%&<vm|RM((KHHX^;YfNFy<0-Dl%+)kc
zC=`gmzttbD*E}wdqXK~k8wVYSlz2)f&99!XmH3+XhkaV{GJj*OH_#a3*hs$4-n?XJ
z%4jYK@{((iOi*_?1oNVyfL0#zH3#$z&7Plc&(NHDq%Q1lio(nmSSVghk1sQeE6Oyx
zJy$CzEYNP&gCi>S7R_OVq1-BHK`W5u3q>1MJo>pE<=VVbmufuB7wgG>y%A>&?#umk
z;ZP*BII7KFyx3o-Yx6>3AN-2|d2xe|DlzUqe{}AlncFSO|BXK`EsS&;_n*%BV0lZY
z+TX@+f#B#&YK+^siMzN2;u45UATEKp1mY5iOCT<RxCG)7h)W<Yf&Z8U&ZhrUpSJGa
zzWb4^E7I1kgZ`g!{8!XvZ3Fz8pcqomr=Ct7k?Szj(Yc039rHebYXLt8xEAmTz@L#k
z25?8-(*Sk;%>Z@!7Xj+@TLG?szYUN#*A}S9(#9(D#&tmIvGgkm`|BbRLr<o@DGyte
z-WkQM(nDjEYnSRhRujziytC0Okr|d}B5)pS2`Pxi>@jOBuE!q@=qgb%gX5oCxFwJ7
zJ%HY85QCA{;==r`$6^U(w*{24>jWjUqoDXN7h@5H>nOC(#&wiQpj<zx17&$app?r>
zP|B_ol<Ox)L0LB!A`)eN87S)_7nJKTGe9Z(d7z^~8$d4sZ3SgrtORA9tpnwn!K0vD
zZ`%}mW*L}njoam{DJ^qV%&Jo5VcJ!CU31tUZ7U9VBN0_PWJa8!x(aWju1X0e;tuOg
z-mvad#buEhfJRr1f?}P+PrKu)^o(CzuVb0Vr=-v)ZpwnF)EDbv7$?`2R47TOH>#^F
zGV(0Ft(A)$6cNSdXle?FT6EvEHYF{3d-TSp0OF`jQgjrX={eUhg0B1+7<p}OgvD_#
z^C-EpL}lLKl4kD`T?v>T)BOS6?TyweNi&zFy4P0~ZNq0mnNxnQpkV`@C8hi+*QKfk
zScWS9GF?>ztIo`e%ZG#^UR5tFOz#V)sv_pQrb2I}1ohV9wmKw7wroZYP;5JtMWFor
za`1tY*2bPe)H4(R9uWJI)jg}$G`339m^4|-g<#U`SiBtMfc$QaJ%bE_9}Q5N`7`*<
z9U{NN0sP!U<cHNXRW7r<Gl$5pU;sbo5c%Z~;5T)M{PG6yGvx{ILDg^W0Dd{K=fUzb
z<D2!7F+_g$0r|Uji2VB6#~39qZAkp``n3;(ABP#XJ37+yYrlDD!{+yF@MHHh6n=f}
z!{EohV<`Ok+K0i9efm)Nv3+pdW;x9%h2{!I^>EM|h`nR?>@2A&u5`IQuGtkTJeTFa
z?#}=mF3+@d4{ybT!#(?9rq6PK-wa1pwR+}vdmdAeUVezC?wRMDY<pg2c7A3K8X41I
zUt;k5X8tT;l;5c>nAsfgdxJr*R(W(;#Jdp5sPs7gOm{dnd-h~4J3F^vl0Bz4pOtop
zx~JT$qTZm-8}_+F;b_?FkDBpWhLYftfIm`ya~1AQIZgNC&pEMYhUptjjWCoe9mDgU
zZJ75AYo>+U-uLD`>!3exlMmm=U0ecj3B)Dvt&jjG^Hc;laI%x*B!QX~RW5ddR9UE{
zP^Vz0NkxYPx2X(K38C&ty^$R_^%d%h)Dt=AQ9tBF<O+ZT<v?5JW8rrda5ZoZa0(lF
zII$WJOaQI}(t(LU29OD40h0hupxB{vqQ}W2<8lz^#DJ3xPGG1s+yLANd>@zsOa-u&
zNQwXsy3>GSzzLK9(}5X4Dc}M)k)H*W0p&miFdLx4FbAjvI4F65n}NB&JYYU>3s4O#
z0H^?QM7#~C0TuyXpcbeDd;kZt#lRAv9`FOV0}Vg`Xas^l2xtQC0Kz~7;Aq(lv;eKZ
zQlJf31}q2Kfjfb_fV%<8>mJY_04srefmOf{fgb^U|6|af0BeBzfct?5fCmA-KN-W?
z*fafzxclFb0C)9rUzdh2KL{FDUkobq9Nnd2vzR4KK%AuERu!|uh|i|f>lU?rA??^B
z@(_Gh#C)A<A1GVF;M@gb?M<KgI2SJC5a?ZYL~wSrS}$54cd-q|r6PR`A|?UnntmR_
z7Opc=n+NH0@0$~}4y~8Fu2~P~>b`^YDRCQcuIZC^K07x!8+tCL%AMV;dlynSb}!PW
zZ|9y7`m5IogOL9UvY|!*XZuRY&o4iPNIwyLSav$a^lL7w`97Au1wB9awKt(huT?$m
z*F+xhdK5-aBW2?{;PqJ_*=K)KZZPSaY4h8S_t*U;`2TfpLG348V6>lseYb{hqi<gz
tHw0>vug}bZ{;rv8-D+-FUd4CtQjLoDS?2q!Li|ATH=Lxz-G8M7{s~peAbtP<

literal 0
HcmV?d00001

diff --git a/doc/Socket_API_CNL113686_PRI.doc b/doc/Socket_API_CNL113686_PRI.doc
new file mode 100644
index 0000000000000000000000000000000000000000..b22cf4cca950d27281599997ce19ce14c52695c9
GIT binary patch
literal 64512
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
JJBsDN{{zk9KTiMv

literal 0
HcmV?d00001

diff --git a/src/Socket_API.grp b/src/Socket_API.grp
new file mode 100644
index 0000000..ffd229a
--- /dev/null
+++ b/src/Socket_API.grp
@@ -0,0 +1,27 @@
+<!--
+/******************************************************************************
+* Copyright (c) 2010, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Gabor Tatarka
+* Gabor Szalai
+* Jozsef Gyurusi
+* Laszlo Skumat
+******************************************************************************/
+//
+//  File:               Socket_API.grp
+//  Description:        Socket API group file
+//  Rev:                R5A
+//  Prodnr:             CNL 113 686
+//
+-->
+<!DOCTYPE TITAN_GUI_FileGroup_file>
+<FileGroup TITAN_version="1.8.pl2" >
+    <File_Group name="Socket_API" >
+        <File path="Socket_API_Definitions.ttcn" />
+    </File_Group>
+</FileGroup>
diff --git a/src/Socket_API_Definitions.ttcn b/src/Socket_API_Definitions.ttcn
new file mode 100644
index 0000000..a784f73
--- /dev/null
+++ b/src/Socket_API_Definitions.ttcn
@@ -0,0 +1,247 @@
+/******************************************************************************
+* Copyright (c) 2010, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Gabor Tatarka
+* Gabor Szalai
+* Jozsef Gyurusi
+* Laszlo Skumat
+******************************************************************************/
+//
+//  File:               Socket_API_Definitions.ttcn
+//  Rev:                R5A
+//  Prodnr:             CNL 113 686
+
+
+module Socket_API_Definitions {  
+
+  /* The connection ID is a test port component level unique identifier of the
+     connection.
+     It is returned by the listen and connect functions and in the connOpened
+     event. It identifies the connection in subsequent function calls and in
+     sent or received events.
+     The SCTP protocol supports one-to-many connections on one socket,
+     which requires also an association ID besides the connection ID.
+  */
+  type integer ConnectionId;
+  type record of ConnectionId ro_ConnectionId;
+  type integer AssociationId;
+  type record of AssociationId ro_AssociationId;
+
+  /* IP address version 4 or 6 is accepted in the dotted format.
+     Examples:
+     IPv4: 192.168.0.1
+     IPv6: fe80::211:d8ff:fe51:4cca
+     Host name can also be used instead of IP address.
+  */
+  type charstring HostName;
+  type integer PortNumber;
+  type record Socket {
+    HostName hostName,
+    PortNumber portNumber
+  }
+  type record of Socket SocketList;
+
+  /* ANY_ADDR and ANY_PORT constants */
+  const HostName c_ipv4AnyAddr := "0.0.0.0";
+  const HostName c_ipv6AnyAddr := "::";
+  const PortNumber c_anyPort := 0;
+  const HostName c_defaultLocAddr := "";
+  const PortNumber c_defaultLocPort := -1;
+
+  /* The protocol (TCP, UDP, UDPLight or SCTP) has to be specified in the first
+     connection creation operation: either in listen or connect.
+     In subsequent operations the protocol is determined by the connection ID,
+     therefore it should be omitted, but it is accepted for backward
+     compatibility. If protocol is specified, then it is checked.
+  */
+  type record UdpTuple {}
+  type record UdpLightTuple {}
+  type record TcpTuple {}
+  type record SctpTuple {
+    /* Specifies the stream number of the message. */  
+    integer sinfo_stream optional,
+    /* Specifies the information that is passed by the upper layer in 
+       the peer application. */      
+    integer sinfo_ppid optional,
+    /* Multiple remote addresses can be given in case of one-to-many
+       connections. */
+    SocketList remSocks optional,
+    /* Association ID to identify one specific connection in case of
+       one-to-many connections. */
+    AssociationId assocId optional
+  }
+  type record SslTuple {}
+  // DTLS works over UDP or SCTP (Datagram TLS)
+  // SCTP is not supported -> CR if needed
+  type union DtlsTuple {
+    UdpTuple udp,
+    SctpTuple sctp
+  }
+  type record UnspecifiedTuple {}
+
+  type union ProtoTuple {
+    UdpTuple udp,
+    UdpLightTuple udpLight,
+    TcpTuple tcp,
+    SctpTuple sctp,
+    SslTuple ssl,
+    DtlsTuple dtls,
+    UnspecifiedTuple unspecified
+  }
+
+  type integer UserData;
+
+  /* PortEvent is used to inform the upper layer about asynchronous events.
+     Notification is sent if connection opened during listenning or when
+     connection is closed.
+     PortEvent is also used for notification about results of operations,
+     that need to be handled by the upper layer.
+     This can be a notification about an error or
+     a notification that an operation (connect or send) on a connection should
+     be retried later or that a deferred operation is no possible.
+     The result event contains the connection ID besides the error code.
+  */
+
+  type enumerated PortError {
+    ERROR_GENERAL,
+    ERROR_INSUFFICIENT_MEMORY,
+    ERROR_INVALID_INPUT_PARAMETER,
+    ERROR_UNSUPPORTED_PROTOCOL,
+    ERROR_SOCKET,
+    ERROR_HOSTNAME,
+    ERROR_INVALID_CONNECTION,
+    ERROR_TEMPORARILY_UNAVAILABLE,
+    ERROR_AVAILABLE
+  }
+
+  type record Result {
+    PortError errorCode optional,
+    ConnectionId connId optional,
+    integer os_error_code optional,
+    charstring os_error_text optional
+  }
+
+  type record Extended_Result {
+    PortError errorCode optional,
+    ConnectionId connId optional,
+    integer os_error_code optional,
+    charstring os_error_text optional,
+    octetstring  msg optional
+  }
+
+
+  type record ConnectionOpenedEvent {
+    ConnectionId connId,
+    HostName remName,
+    PortNumber remPort,
+    HostName locName,
+    PortNumber locPort,
+    ProtoTuple proto,
+    UserData userData
+  }
+
+  type ConnectionOpenedEvent ConnectionClosedEvent;
+  
+   type union SctpEvent {
+     SctpAssocChange sctpAssocChange,
+     SctpPeerAddrChange sctpPeerAddrChange,
+     SctpSendFailed sctpSendFailed,
+     SctpRemoteError sctpRemoteError,
+     SctpShutDownEvent sctpShutDownEvent,
+     SctpPartialDeliveryEvent sctpPartialDeliveryEvent,
+     SctpAdaptationIndication sctpAdaptationIndication
+   }
+
+   type union PortEvent {
+     ConnectionOpenedEvent connOpened,
+     ConnectionClosedEvent connClosed,
+     Result result,
+     Extended_Result extended_result,
+     SctpEvent sctpEvent
+   }
+   
+   /* SCTP type events */
+   type enumerated SAC_STATE {
+     SCTP_COMM_UP, SCTP_COMM_LOST, SCTP_RESTART, 
+     SCTP_SHUTDOWN_COMP, SCTP_CANT_STR_ASSOC, SCTP_UNKNOWN_SAC_STATE
+   }
+ 
+   type record SctpAssocChange {
+     integer clientId,
+     ProtoTuple proto,
+     SAC_STATE sac_state
+   }
+ 
+   type enumerated SPC_STATE {
+     SCTP_ADDR_AVAILABLE, SCTP_ADDR_UNREACHABLE, SCTP_ADDR_REMOVED,
+     SCTP_ADDR_ADDED, SCTP_ADDR_MADE_PRIM, SCTP_ADDR_CONFIRMED, SCTP_UNKNOWN_SPC_STATE
+   }
+ 
+   type record SctpPeerAddrChange {
+     integer clientId,
+     SPC_STATE spc_state
+   }
+ 
+   type record SctpSendFailed {
+     integer clientId
+   }
+ 
+   type record SctpRemoteError {
+     integer clientId
+   }
+ 
+   type record SctpShutDownEvent {
+     integer clientId
+   }
+ 
+   type record SctpPartialDeliveryEvent {
+     integer clientId
+   }
+ 
+   type record SctpAdaptationIndication {
+     integer clientId
+   } 
+   /* SCTP type events end*/ 
+
+  type record of integer ro_integer;
+
+  /* Type definition for the user defined function to determine the message
+     length (boundary) in a TCP data stream.
+  */
+  type function f_getMsgLen(
+    in octetstring stream,
+    inout ro_integer args // variadic list of user defined parameters
+  )
+  runs on self
+  return integer;
+
+  type record of charstring ro_charstring;
+
+  /* 
+    Type definition to query parameters.
+  */
+
+//   type integer PortParam; // (PortParamMin..PortParamMax);
+//   const integer PortParamMin := 0
+//   const integer LOCALADDRESS := 0;
+//   const integer REMOTEADDRESS := 1;
+//   const integer PROTO := 2;
+//   const integer USERDATA := 3;
+//   const integer PARENTIDX := 4;
+//   const integer PortParamMax := 4;
+// 
+//   type union PortParamResult {
+//     Socket local,
+//     Socket remote,
+//     ProtoTuple proto,
+//     integer userData,
+//     ConnectionId parentIdx
+//   }
+
+} // module Socket_API_Definitions
+
-- 
GitLab