python3-doc-3.6.15-150300.10.118.1<>,tip9|+&TgC֚1T% ~ @ۜ{R9SyXQ-3j%5ZK Y-AM3Jߧ >0T^`a&L(U|+э%˷fKJ1ͽ6!p2wKCʵTqzuu}Vm MT/3 ,@ =A/ Mk)|vYحol_0Ra~ZUXOF Gh%y97 !p{$Tc >A?ְd % H  $=^i !8! z! "! 3@! 7! ;!LH!`!uu!L(8 9:$BDFDGE!HU!If!Xj<YjLZj[j\j!]{$!^!bScdeflu!v$ z@PT\`dj֬Cpython3-doc3.6.15150300.10.118.1Package Documentation for Python 3Tutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in HTML format.iibs-power9-17 SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxppc64lee?M(a- +CC5B%Aq +,b ]wW<#mj4W Y  32e̟pOih( Sy , GZ)y E0 ] d6&Z A KOuXz(A!R!w%@12 .bD a=[Qf zLa/̡]$cA7-WH+{`T%>}.3O/H*<(!P4VYbR8<#vc>58U)(2"y*X f$n6d( 2=#B& Cn @MZ%#8 *m9b7$ut7i$M# 1{5E#F% -7 l%{cs -3TDmI%Zd' q mg4x', Il!EczO z<o U`;oi hc)^WCO8'&o,t cH(.S U5J-,@E ;,u]KO $% n;*mA 3  Pod HG.P0 ]*n" @9i;CB%*6[ j\ w&M; Md",|6!fH)?Y/2gX}y /'EVII5' Rlhu  S"8PNSP&7^W'BS_<'/e=Z:Cb6Xv#)S[  wh_:+ RC lD]*M;& l''v^C ,0Unk+K*= $a6R*_Z@Z +:`/lc !a1&W9*^(:;]cU&/ 0XSwE%L%Og/93;G^p+T= '.XKINB5)BX"3aa4,q`z@4$LuOK7W#iՏ5r;I y!-?:dISdK iD)&c%CC3SJGL:J'>'{t,?)U1)"/BM6.&t ˅C8n??!8>O )jV"vh*[O &H{]p>#$LZn5~O52f`eU]Hcm5Hd2a -de-y2@BKmQ &8CS]1nS6z'E[U7Q9O+ b"A"]:7tbx2)m*q$gQu8OzYl5CURT,Y Io M[kb0+u4BDuF5*#scl/+H}072XF,+Ex'FH)Cco4|  y'ߞ<2<@#955Gp=$f>KG{ 'H+VHD9K-;=>мb(s Z<ǼC7>ry?E+- E3<@>[CPn6'b+8hRNahp({~c 0P@a0yhvIA*|p68"fc<vR0Pgw-Gg76=8-$]$Ev'HX}r<{)f'x$@R.g8%CJTCg0}8!uuix)6Swq:}j^Ld Bt!FZo`(SWonN?jHk YgY¨Y ~HAA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiicf75f99572d34f0d8fec9c0ddc20f3e28e5860c758cf2947ef0c47b82099f27968316b92abab82bbfae78a09d600a8a043c8feb37b13f75db3fa2aea444a6e9866ca0604b9e41bab114e68b7407cfb2a2ee65558d3d31ab364847d9e0cb3ef26667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a36ee1cc2e08d6f0ccc0714aea55b412593635a4c82e2688034be4b2eadbc8e33f9e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e61240056ffd112649b2ec6b0b90451b5ae86322bbaffdbba6a54acb637a49d73e15b898d0ebed85d25349a766fd0659270a28d2738e8cbbf8a899cd7e3836c3311d6c473871ad4562764fea7c62a09e90b4717f1e3c16e2afbf22827898eff6f104095440035b62dfaa19cdf5d2a9da10932252da5fe4596aa67fb5dd493c8f5ab39d309e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8543f067633c754314e41b6590876b310fc14120d6b6bedd4ffecdf965bc4ec375e962cac6ec219c7e6084346d85ddbcc5c3f81e7c65404191aa7b69826225dd8e1fc6e043509f379b3405f36d2ea1f6ed3b90aff3161fded688f0f87c2a8b95f47db348ef82ea1481286c12ad68a788305aed2d95e17183a7640526eca45a9d39042918a36fa26b1122c0254b1acdf0999c29efa41b701c3a6becd6cb4c0c8964dc395f3f94b51c3d8cadeea326c225ac86d768ddb9418407b8d8aea50b1af487f9b923ce8865b8136978cb0257b9087f116d1ec236478f6c165e177bfc08efce1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc1eabc9e89bf440e9453ea8bf223cbaa548b1dc3143b0b8071b9a6d5f501b456867ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467b170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f4e386ca84660e741365580262b3da0ac58b3358e2a89149606f977eb3842ae710bad158062087b225e669c2556360d882b6d1c883e181a9b2403c8897e49f2230c542f1261829858583589813fdad1d0473612aa681571d4c3b752459ffd72509ab24df71583315c0c67a95bc8c0332130bac7f2ed3b5f72acbcec57a63e027aa33bc1ebb5f3dbe444c9799cec41b49d3ba713eabf8b793944d9c2d2f070d0bbf28eef505e6842d8a7729cd633e757ad89784712b5a025afbbd416f325cc282ba97eec1ef77d1e3d73d0715ffe8c4fc295d91502d7bdffde9e9677415df5415238cb26339911b2d4bd54c1e61fc2c7b2a340388a24f735b0e9070f3a0e8d87f0e4ffdcc85bf073264f10cdd777a30022292ef6b71b68bc5c00aca79ec6b8f0b65d399a5a6bfc45ba067160cfc0b17b91e2472eeb975e7892db2fcfcd711720063944c4773641b23bf1cc98dae1ccce6f218d817419df4d94e2b2f84fafb6c28daf0cc35540de3b27128b4b22bbaedeb8e0ed84e2875d9d65359937d547338e29da7bda50a866005b2dffb1a1931a079bb1d583c434528c643f812c8771eda09fe752387bcdb9cc0694293ac434de6f1cc0d5a77ee1d9fe1d285d699df753c8a41b2b7000f4d2e6d44d9dda25d3e5080bed8f855b1983c983d6eb7f65b1ad96e9310f72f7446921a54bff08c81ef4fdc0b54f6241d333d93db7af76508b51ce4384a4655c83fbdc7c9921fe174b47d640b3f786173a8c27a34941e91aa83850bcbfdc0ed1e29b11e8b56bd1a84cad6ded4052cb2f50ee9200355c10f522ea2b07833083f8abd8a53b0698027f1fe450df39cc527ff808a9bdf6a6e01f673076daf68bbbd23e11c1485428595b6a70e66cd42b5cca5e711957c824f6a9bdc697babc4c58745fb9dda6ea1e64e4a2d59b8e412d49fb0a7f768f624d9120a9ea4a49f549bb4de45482506e646e55ddb9dd84daed5b18b92c341095f835cd37847cdc968e1d4176c5e824d7ed04b462766f63a462ad11f847e765befa2eebc36fd87775ae6f2248f4bfbbeb0902a9495c7ec91b814930cc566958a0df889d2e6f301f85ed47176ca644cadc170da60e5ecfaeea3658e5a55464f491be0df86ab10d7fbf9bf7fbf2512d9977ef1816758ec374b96743f8d3d81e486d1974d3b3f021489316f58cd574597e58996fbf425cafa7594a275a72f3aa5a9b0484d94a3aa3056619bef4f564ea34bf31576ec0bb23c3046bf2fc6078565530f62c49f08c212c67b103c6aebee15f6ce38293821ce56c326f0ce9e88b0c306c8766ec8edb81ff3fb11cd200163e79d68d9848e727c715b727aeb9974f7ed5754ea680301d883f471b8f34804c6ba5c3aafca5f7c75b0e10d2b4250668a5746de02099c0f4096fb7580bc4174511c7a18cbb47fc65f803e2aab7db1881e61c42315925c9b21490f80a8dd784c3beeb273224a2ef03a0d9db86b031439f0e2b7b9d1026020b85341dfe82739272d573da40be79c19cadfc9bd7ad4226325db8e1a8934b470c2aed790b807e2cd7606defb6436711bf53e2d7b21adff9d77a2082f184e626b46e9fedc2db3d2630e78770cc867deaabff4dce6c70837f9f92e342b1887c35a754e2b68b4340f8c7c991fd3f3ebbd04bf00c86d1518741cd31015f8ee9f64e1bb5de8a4d1df78dd13ebab63f49b0fec91d9ef086d4b7e4410bae16af822eeec08e3216f4cd0268e738a0d9d939ebbcda8ebc46d67d173cb95d25bf86da848569a0582e5ab1f12759ffa9cf5d88eaffc3c4c30fbaae41d11fa76853c647e6fe32ec09a928f3b1671ee52aa367e3ff50fad717d0a3f7c164e320e8892df1b67f9f240f9b5937ff2f3ad94eda3e6b2eaa80edf8b7b31e6c66cbb064f7791d647e49598538dc4866a6fce1ea1f892c11a40718670a32545d1781f84d5771c8adab1bc2a2ac3dab410f3db7607029aeeb1798d3849dd82d6b7ca990be426ea995b20d049e4d66563ba01a4733e06446f2239370da2b1c0a6e3856c4ffb24180b8af98996f843beed7bb572dadb631b1f5977439e2be8b11e081ee894adc7e62a803a51d83a193424572a5af88e40c62fa10ec94f4ff8853931d3a0b616fd9485dd20f78255dc1c6157228a9ce96bf01fc7b84aca888b8e7b844c11d6931da22e8896622fa41e18cb070632b93f4b3ca004ddbf6a89fc45bff5c11c5c95a4607f0dcee1f602201cbfa1806facf7bab9f4aeb9f5c053645007ab3b455d78dbe2e25407960d625b5a7c7b881316648c849a3012af7146813d895fb2679e4de5172783872e5627b62431223107c026252bb67131715f504dd384a9517333389890c7cd29198db333adfa8fcdbf5af1b841c4f60601e1b9e3e72e18c738d905352d838e25f95801d2990ffeb955cb629cd54ad217a28f924bf84c9d2db588516cd988eb4145283a3ded08c0da413f6083487674133764e3a7f9a57084da7668c0b946e276eaf4646210c6c26fdb60e716b2c1d706122b650d4818a154fde60089b0f8865bd2f374b3ccc78df8ea507f88ae713f4d1cd8c6ae2976f7d959c7e962487d94701dd172796b42d485f35733eac7f375ba8b0060bc371e6877419dae8dd4b7e329eef77076ffb742f86aa84a75ca80e7e46b79987343e055e6f5b38dc24628140f55ccd22c44e1ac1d66fbf70b249d807c87032269957ba9938f5e2233d4dd66d01c3e459ff5bbc59fa14c40e0fc76574e2f80f7951e2949dd1da1078cd367e3ed6b8cc36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11cc3e06d9a0f7f4ce7bb72638fad64aa1e599e77716b8d26e2ab9c6e81ff28006a258b1e3bb1eb3cea355c145dc7c65205046262acc28de1f33a28c5ccfa99fa044cc961455aa44392595936ee04648653ccc657b54b238dbea6e7b90998a7a306a7f1fdaf9699362555d9845ebc7752600aa69c9161f77b6dc3187ab2b1c9200687396ef8203eebce22954e6a29a91ba6c5854c323b25c798ce3b33dd6ec246fc72bb59163eda5128d4e6962ba11ccd32c127672dcbb484690d73e05adf1550abde39af8366952ad547a64110c917634cbf4a1685dcc27e1da1b38a2d5f20992e0988c3fa0806eeaf9605669fbf7a2707cbf4563dde4869615abae4c0d50e0d78f3e3cc782388fad6b2ce913ed808c4f3688dc043254b0e913c8d6bcb6d90163cff669f30c2af8e6fc8724dcd2eb00d6d73a8be3d00e4eb6f1e3932f5e97b041462a7b4716f756e1b5fe8aeed863cbc58c7366d4376b463a06714ab6e7c6db4b947fac54c39462ea9e2006e5a5631de78acfebf77deef3e836361c0a31cd2346b7d4eb5b1740fee0a1197988b1d4dd3fc282d60234981b76af8a150a3501046f615ae1683152125a1bd0901dc6fb8444d6095f03751406d5dd799a1d09f26e043d6e6d441fe8ec639bd9d428fe838194e540fe33e12b2dd2b69a8552a44d05ac4de309a6bc55496ddea34046fac0ba99f4a08fcd9b97df8b29a539e414c4c0fac3afb86ac1927ab06ed4e4e103e70d7d1bc8ac9985454643f89b7028a44d9048df62fe7902f659b50572c856ef718720c83b009d9aec25582fd8809511773b62b817e575d9edc1e757b28a35f897f12e5c7ec0efe088fac2d1ed9ea6dc0c31844eded828e3507bd09eb4b9f52c4a1b95849ea6a9ab6f4ec0b0dba5d9cc33112ed74fd60f7a2dd06ec5017b8f7112c200c74b285a8d1b7a2361629dbff3479ab84df8f70eecc732cc09f3538ecfab24a3f34c26e46bca5fdaa66513f345d20d93ebf44cc903bd7b14e7a7f614030d0f9a287e6550ae055df68f63b38a5719033948af540a794a7d038bab6717d35deb7f4b601036de6337d7cf2bf54ba04a5bc7bdb9abdff94168fb1d26fd6b607d93a2f109daa5da328e41a7f9dc56db983ae8d3cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56c7a398d30665f67d9f685e144476c0de832c19b9ced37215982a7e5a8620b57290656ee55c64e58e5a73aa24ec12c8e673f1feae56b68230d6067b7a8993bccae08be16edf2262b224a99fc8918e4ea6319b3a9e8f6821d023e717826864251bfb992eadfc05321955787a4a609e307c00383812ea9b030ab9906c1c433e6a1d3f27fac82d1c6521803db86be6bf470590cc76ef60f35c60ff68ccc3f871a131c72c370076003f0f0770c8b0ddfe4be2c9338ead06c792de1b4140d5501fc940aab75bb93e8e8a71d27e457dfdb451db4280893fc788318ed3310251b9abb5d70982ab1202f44014912e52922d038c7b7a005292b12bb4d1ccd417dafa0b6a296dd20816c9b6d5ad533e5d9dfb95cd917c168e7db9905b4ab69483fbdb3b5205f1e6f33af887262154701a76a9c0dc02a0758b0aff30ab9058dc682d80b10f88fa743d20aa3a24d7c71c023fe271673c4a87928ad6808ae1312ef44f748148ca6777f20e255e0afbbee50b6b5711ef200e187b758a66cde030e55dfd8cfbb875ba12efe13ff082f927edafebc42682ff5681e61fae41057e2916e1f2b3e73201f2e46b1fa59bd296e74e008442df275afaa26727de8049b328c1140fe25a6fcebfb33ad8e344750fa1867e1dbd89748013cd7ad2f8c6ff41b198991af0db4521e1692f92ef264ba175bb6724b628ffb2619d489ecbcdad97b9c9d2dd11b07fa0810a5fb56b818b335d901ded9418a45fa32651a5cb5ff81d033b0cea732758a557b6e31a04003b5ca235931cb9a1aea86c94b8bbbc2d9ccab380e954a60543841d86b441da4c63e4e009b7115b9b9bceb2697980cf3ebad637a5e6f0d979c56c9274416684bd397655bae2808b5545644e3450f37ea1667794de4522a3c2303537eb1aced93a7fab2087d2e578459f69515033aef9abc01ebd5991145c14391a48dfb8ad3ca335387e86cdf43dff216d5a8fe2e551fad35dac46e66f6e3325bbb2d6a097a8cfc2851b3b04028ec37e6fd5b890ef30dc74f07e5512522c867a21fed711a15a77bada38eef358a878965daa56db155a7a9b1712fcc664e12358c8d18675e24dec81a0b5bc519aa5e135e88c70f6e6568e825803604f93049e5d2c48c35fba87a7879d7a53c45795d1201b442706114bd5eca64d0f0821357aaa8fa3301ec229e0bceee647cc4aef75f2b9368a1b60552ebba538d0a40fff1841514ce188d11fa51cf46355d14373496294d675ea5b9f894dcfe518d5e703a8ae4830dcc9382f4f10da514d6664530a6bc622dae75758f9b3dc97d249826c4af4b94a26c2f4605e4c086a7f04705d36ece8666c8f575a817622ab6b695cbe18618817b5ce177a79da922744d7c1a149bd161276f535ec550dde37b478a1014d7f45f34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c909d23baed0f42db8e6b2743d322fe1befca35326846c6f27e71a01a526f9dc75d5152ca230ff717600e760fd94e3addf763c471ac1f315c5f1db97d97ebb756e95db9ca214de39dfb3d146100fe450fbeb05b5fe8ad499a175e0c5a24f901c2d36a0d3da83d4a21c2350f81e8581e271e7a720a75d18beb867bcd924287796ffa0fcc2108c8533ca79f601ce90acfedb0afb0d43d53bdb37be69afe4d6c51382feab78095c51db3b6ed20f62f38e41b5546d7ead75faa5b4f46af5604549ee081390441f6c2bc11eb44f13f327fd188ac73f4ac8607177908f06cb1e63150dfcc9f83d4349141ec171f99bf34dc22fe280e7f42973cc5f7e621aa845576b86bf1eb926f436280e4e3714bfda069790eb32b3b2287959706952d95e0e71ca28b1d173f26bd44cd30e04a458f81939c999340ac81e244bd61c072ace38be403948c7238487d8a4777503260cb1c3869caf28cec627141c82344814b02c0a35e22aceacae1d7e9ec474b38a7a3cf310593e1eddabf29f668b4c08df503427bfd65436067c88594b8024a2c8e8c235f0cd64f6c5083e46cfd9d3c6b0931fa434755c5e017122a5eae671670759ec650be761687a856f65208b27545b40e885e68ef557a2fc646b0813635e79b00d1f9cb8126f267f7d5d2d73e06341c5bb9b42e78a5b2a001f54aa58d6a179bf349e1c4defc8d6812dd62ac1bfb9f4db991506c6daaf898ed3bfa900d7375d49f48dc72c68e8360ba8c6fdfc5673c65b131c916341be00d98de520493ba5a2867159549023b0bcb59f18d04c143d254cc77f57090a1b46955a14685abc96d988cb909435d21e57877b79b28fa0c538e0f2c75882ddbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da4ae6506f4372204ae1bba0a7eaa9e46b732a7ff632d8ab6dc31cb14acd25f8096858eeacbe175a60a70612d04864b738b2c13d4325b5792cd38d2a0b3c281f17653e2d3ff9bf0a699885f0a8348e6a02458222d60b9fd63590840f572cb39992d7516f4a59f86e41c77b8b3753417a2931b43ec8a578b7cda3d05f9ca6952a69971c446be1207f81ef67388ba7206d10076e17fb9a5a773f601cd243ccc510530ddb046fdcd9125dec6f375664c655ac4a669863f544ad88f313490c08b5b835b8f5e80976761c96d55886d7b209375e91d8fce830fa409f7c219c46429ee284353cb2e2b3a62844a6bba7a9758008e26f2d69e8e370ee9173b1560f3288f5620d1e22bee18f31e423dbfc6b1736831445ac086279ad549cdf59b60ce7ed05bc826c72dfed65593b9e9291021693b3fe5b06d1aff6f0c3fd87fae9238bab602c74e894ecf6f62835db74b4a40a1a0108a4fac847036bf928609d36235fabfddae3655e364564879dc90aeb6edac6e0534cdff3cc9f056977dd061887f45ac32d503dccd215933addd34f1f14a1676a4496ffa804c2019af0f0b9f1c89e6e6954b8f1203cd71c25497b86aca7bf61a925ea4b0bf531b72cd4611cbbbd59efbc5b5981d15a3976c602c1be1c1e380d8620057ba4a39751274a60c820b16556fca567ef20b5c948610cbc2e9177424e8bf119f8ffb7e29127a0ddd73c230faa6dc41a3f29b3f5c1095f6be2674b8478c20e0d7e69ddd56adb0ea9a9c3b52a721f4e2fabbd20a51dbeeb6f93b05e330f92e056ae35f19ea292d624434d40621545a44e8c51cccc64ad974d29eb7bfa2b48822d3c59256c2ad4cf2614a68d617d9584bee84706e3e511f22883e4462ff36c9c7a1d392bfd6dc5fd464ba8a135f20bbeefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d028020f45da0b6d5add5dbf786e62d0f7ddf0d6cbcbf63fa4eaecf34b554f1a6658f1f97d709bc7334c3ef56b753bbc168ccc26f6dea37ffac38734739234129ba9ded050f82b43eb0a97827d66bb8226899aeeafa6fdce79848dba51f72b2b29d52784e383ce6120f3eceada2d4913fe68439f0f01373fce2528b9c2c57f7dea7bfca2413756b2a18d3b8650b76465ac7d9ddc42382503a1f8908f650e08f73b40faabc3b0fd577bab77ee42a211bd7b74837df97acd36026ef6ab856a2922486319af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab39381203e0c8047871a72ccf55c9e377fc789d36ff514c46ef2ebf3d544c49c3c0b05c13772af3f749ac3064058c0da5bbc96cb80d5eded98e0872bfe309bd75ccade26097d318fb758abed5ff39912ae6dc993310abe249c0b609c6756c3d9ef279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b81931e59c0625e7645ce86013019a1e8b554048b27ea4458c46c1fc2bcac5dd2b1fdf0a0c9bf3393b7cc46b6b1b5ff2dc9bb3c7d38fceb398fc484a6775b99843098a4129327efc5923daeae586c90fd98b4cf305a49d488bf1a28eb09a87522e3584046b4916bcf0342d8b4c080b7ef61aa6c423ca3f1eac6cf9220fb23b9230268c245c21d753cac86eeacfd6454331105981d19ad1c68a4e75c6ed0f3004b951c72b0d9b7008eec7112d14657bc54557b9011157e278e800d86d3ef644e2b9024d64edff3911360bdcc2fc34b3373ed6ddd7c1b526b01bb150b4ed360b9c7c93838f448e3b6c725a5f8c69fabdcd0635076b884cd14903bd102b2d80527fe44f891fd89d80bd558d93c93949666a129f2e785165af6913d3ee6cc0211c622e1c7e7496ea8d2bb0d49ae2915b12cd2c5891e3e91dce823168d030cf7cc04bdbed9873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b459d008de14bb1fee04a35ae49e5545ae8095d1a8ccc354f95293cc2b832be97ca5312242506b8d70bc7607cdfcf8021e763c7e853b9bef3ad4905e4ea313da685307dadcc494466684a7bc3126dc76df5b27f0186b684d0debe60acf3bf5b8c46b0cf8d550bb69119608ee777c26d48d2d7d5cd368222aeb79c381dc3016387a5a8a460b3648f4e8d9a45208badfb76056ef60ed24beed2ab3c6681e100455393a63e2269b6a0e3e23357cdb51161d990b1de1fd12d304a974bb0be13ca1750f147c5779e0dec79216b17b8aa24245c965eb288b9f8db860fcab69af8abf2678f2813c71e51d6a6504975671ba1f1e669562f95b907fa784c5df286ede1a71dd70765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f3925f3904d2089cc9efad42324bf0ad49ec05d637b265230d8e31d8db9f662e4a2244cbfbb47859ea86adfca4708f92610e5cc59b2ccbe31eab47c2edeceef413e02e6b07c4f5ab6976051ecaffc1e3d9227e708fe0ee0af738db7a6c073b02a795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedeccc15746b56f8d7fea5a052f012b48fb0ae19360c11f1cbfa7678e2b1f194f1571e90ad76bcfe9bcb7061d3265a0ad08925e5d5724d9e63b8636c3e876c0ba43cff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2dbcde702ec7b5e8b0bc01e32c852745fc2dccafdfbfea53a48cd0c656f8a03f2160b03ae256148bff321813b0b16f647f3ffd9e19b42d3a591e9d2241f4cb4b22851cd1638d72118a9dbc5c180bb6efc2a363c180a9bf41bc8a8c4e8a8b41bca4e2be43d0cf890ff792bb1ade093b3bd51b72beef39a5786c52a67693a6e571b65ae6f4819a232c1257a06566f426ab5564b2ccbd9a9934f1541b61292f3a176dff145f8551eca72cb79a0f24b95eac3b97a15ff58aad7ff1d26357e59f111bd6e951def8128fb0b539c719312ae9acef4ee8f14f36b0848f7ee45eb18c3afa6d5246643597d98a9039184be8a28451d287d675314e34b83e567ccd6d00fb085588e36cdd41318ae4f2aec931182e95a13f8ac2049837f6e60a6ed9c18e97dac262980ad2d3c7704648daa5800f095d6e862f79d4b1b84a80470b8d868bfbbf2b429c5e51e9f0663a29b057252012be8682301a83e0813731ddd3800cff96b037073fe50d5c1f6629ec375ae45f7be412e5fa8152fa03a70e6f121e3bc9b7d21ba4d225bd41b115dae37b92803892d8ddf57bd89fe544d051e12ac0be39045cb5118aa62af31840efbc41236bb009ddb75f732d65d74ce4b6fcbc7205f68883986ef33e8588805b425d492cea4b171df8d491e4c78acbf7ef4fb4f04c518958a01ff9882d75059baf6d1260baabeb48ef5b2946bb065452c1e18f10827feda5f9af12def9559f1ed7c56c23c3d0ece44534a2920b6525819148ac1555ba957eedc238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fa2bd1231f214def9a786e3ad756df7da2b51a50364398ac509778baf79d617d04ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18841c8b6db6f3ef37a3da7c68e382145f4ba546242ccf479f24552987856cdbf14d9ca73c9984b439e26df2a16d424b0bd215f66bcd47016207a7c903dbeaf4664e39092ffed737305e467ef97fbdcf61cd718ac838a4fa09c1514d9b9e55ddfc43710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31b101d34f71bc9cd19173a240af5a2c64fc09a6360948b90d1b40a7f0aa3d29a5417933b3f0ae5e64ce7cae68ad3be325966d39d3f7df12932892f678508e2c9fd87bd11632184a5d4faf3025fa193a294aae0b2d2a18e1be1d95504ef727a161c8bb4b4c9722f2c0f4e30b27c75e24377e525bf05db0d8725c71a71930590f4d9fc6a28fbde1c4ba22525aa76d16e573a8230dc7f0b9fcfdc28d7bf47b46896f256cc2cd88165eaf5a1674cb42f55f5d87390c0c1625437c260438c76985a6ae92e004480fd63000ff2e31ec8c7bf3c6f8ea1d4a824f0494dcd612fdb610b14bde752d386fc98c48aff1a57baa26f4fdc6c232d8e451899fb6a673b7b0be112003f4d70a952dfd6ea7a1fd77e28a70b94e05cd9816ea3ce6da38d6095c6bb84d68f1d7e14adcd9ee88cf25c1c100d7d046f3c331f99ae7ab870280671385f28e729a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf65eba4e9db6903e21af8d44230877ea547973b370ffbabaca760f6525e1311083e43bd80c454dee24e899553bf6f7cd385a23fb3b93a613d5cadc075879b86983a29f599a21ec73be48f56359ca2aee41b8e2c408c1517a9eb6f825f32473b79cec3252b17ac95a2a6c2d41b8bc8c282372919763149f858703add7d103fa55f5f143611012cc7e3735e99b5e6745e2d841090e45e91cd8a4a8a7c847ca32e78269096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b014c62b6b70d23ea34f28b845d1a969ca4b1c8175f78222774855ac3aa6f8a690b586155c0df83be429431ffcb0608b7c328180425011a00597498ba1f5a588db056c44cdb435f6a1f3263541fa3fe1cb004dca9848cd8d5b591e6aff223149228836c92b2d006ddc5a163b5590220737e3e5c7376f7598a3fd2f3f625b9cc1c0eecbea9b45ccb5545746f98e4037c541f48f994c46674dc139f10d7eafe7b2b90416f88bd8c31aff889b8424eeb05b43cb88687082f5cf145c41ae8bf546eab45317e269b02078077e22e79e7399ca4707382cb684e9eccc8f8d650a8d31a3329d019b123e504e008eb2624ced96c52e60c4e5f8c55ce68e4e382606ced23b2cd0762d0d9d24ae2a7eba2bcb1dc8ca8b0579e9874a13562e0c089a9e7dbd3e7cc1297e10dc0805ccb1ff032f3a3d04a5f55bdfded4754ee7743b5df1628c81b63ef8c6fa15e6e08a8f4ade4a66c95c89307a0f7c3864a1977ba50946fa77569f92b9630ffa5cd96abf3abd0bf232d03f8aadbc1382d72e19d21531c2c8ff1b1ab66e56797ddfc1a3787d78e7055b551b73403eb526a845dc830ab8b4a4adbc409afb32f38dcd19822171a5e98d2c697b55056333c2b5a5eff32b697864b1c56ede57bcd4c2fe437f8ad89ee5a1781db9dd93eeb6ff0912e23634d29d96f0237685e2f1c973091640e309ac6e3c66166de82dfb39c2a866672320cd21ee66ee2ab1d49e3dca20f730fae2c03ce02a01f3d1a4b038d596275aa5fe7a58e5af4462a17e0016544a8532403bf11c5c12b84ac2e41bae3ff86dd3a6cf4d441ed6a56a455bc7f5e16e2f90148d6aad05edb04fd253ae643c796c94cea48eadd9c7f77fc2f0aa8a6631755719496d1337685f7c3a35f32abf35b5ce3d7f0ba71b9e11375427dcf88db454747fa6416b50be91dafe9c29104dda1c8d0e2b2f6efd649a003296bdef07f50eb063b937c54adb08edeb615694286f3aa852fbcde925983c45b6157aae5d02448443e015dd133b86be1dbc1c44b30715c739e3696818e2778c251d9b0c9fe48f89566eba4c3006e5d67996101ee5ec0840bad49825a6366152be46b5135c04f9efce7cf8ae874228a1f33b80fb6d6c5fe675f3a5bc77e5afdc4bfd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08dcf681aa328c817c070cfbee2f94409760dcf2f72a66c7a87980079d5735cb34f703ad89e8305e0237d451c54469fdd91e21028a80a50e158eb641c84a258e9e8ad9b4f2ba684aa159f0fe9703626bcf04cd64accc64838fe71ed5067978dc1456a16aa8b0b823af422f4a104582b44178f4d4a112f313aadb2b31384c8a7904eeb0b253cc63ca9ccc709dc59f6323e63be98d8cae5e2642e0a131350224410eda368917f33d208cd6867930a7119519ef1181373f7e6a593576bc07864306afb83e96149a56bf3d085e268391ed28378332e1b130023e740a34a7b3e826faccbb13a8b1224867f3ff08078df7fa183b6efbbc68323aaedd1214c0d6de05b80ae6b4ecf034e52cd897abaff1814a659c5083aae4d609010ac6efbf36dc406e0d20e4938c9eb9724804c8bff9e00e8564018f5e6fdabf36a86a3510440108c0160f5aca3537437e34936a6b00c5c467c44eb747c94065cf6938d4aa433f50f7728e438555de7ad7502c338eb97fdcc3e4869f5ce436b2417b110b4caff907cd525ba4d1a191fc7d1a96f1698a2ea141b49d16c32016deb90cb6afc9f16fa08943a558875e65228f1508a21dd610502076a77b0f681d99764bb9199708bff3ff0c7b846beae2820e69d1dc4046ef2d5bd58091e55bea962ef8ce4773816a87e275418defc6570361a2b497afe14664661e42269109e2995c37c9fac34a2e3e174c561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80b12582ade092198df9ba358ee66321262071071dd5690e0a486cacb8a705205b60f4222e465a10edb2a918bd6a485600b9723c5673eadb600c5b64c692b62aeac0a27aa51596a664bcf1682eebe15ce8e68bdb8aa13c5db12cbdb98dbce6809b71c9017ff70b120872ad84d44dc8d4d3954845870e6b40c6767cb7f5e8c71fd2312bab8eee6684e3de7e6d0b6c300a6d93c01394d7f78812b3b9452a3d655c3d01929c10894e39e745696c316779c4ad18f64532cde25b1a1cd3b66cb073456d51fd7bf77b6c099752e2ec536f3500a170a6dba06d3526267fb00cf888678e67135dd69a551a723650cecb7718cabaeff7183681107af0443e5715f9b200bc24c8f4ab44de020f68511a5dd53615fbedbed923229082a24bee46c127331b8cb341ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361e0b7f88d39cbb47f9f8d66fdd0685245c4d0b2fbef8fce4500bbe1b9079a4970b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3770e8b3de4126adbbdd93dd62163cf4881e7ebe04f9577ebe9f470abd19403be0dd963fc74206f7803d574201ef5663b0e57c972b5565ad5f02db22849cadea8d46a76cbf0846a3356b103c6ec4a921340ea69aa59b1c2d3b5908d159f152c75caa8a2cf5b3c84f14743c7cb8fd279241804976875de59845e9b63f2e308d9fe91b3b032dffa0f68c7bf7ac91f2f635b5949223a4b3083c97e86f512bec7242c1b44d5310b82c85531ab7bc1628689ec828bf3ae42593526287080ffcb94f3a884783d4c370c0df2e6629dcda7cc7e82723eec4f76799d0ef013ad66a68323b7d8ee28d81cbac792ad68d8ed06c1533daa50e56377c52dca0d05266172ed988533843bc144c7977c1175376d4d6548ac32bdd084f93ccb69174fa42cd070d833f5356c4403d215c6dcd618c9d29c85e300a6deab3c2dfeca0557eb5c28c4b83637872e8c16ea2be47c17c7193602e2e5bae1bb3297d75183c97b344a1de5fa56aa2a75e087bc6fd77da868d9606ffe462ee29a18ab8f842bbdd2c9ca14c924e50eaacc908b958c72858906c371c8d18d9915adfa759a6d4e3dc04c9bcf6057c9e5cb4ab721eefe488404d69167151bdb0488d8d41ebf11cd916e1edb745376e1437baaf8eec23065540fc5dc1d48fac46a7e9713880a0afe5f8a8ff365c35cb6796d12a4c79fef5c6f0c52f038c5b5753a1d678c07a06937fcda40f48bb10fb0bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc7a5d6d4d6dbec62555ffd1ed2463748c663de51ed0af22b7e45d31519de6c389764338c14445fe952197c813fcf19f337efa26b83f7adc0c48f48925533e3b302f605ab5c0e02c97f06bda62407a066b2f95f71d2591e295a7dd3eaa1fff7debb0ea2acdb5d3654a6f1c5daa50b66d3f281fb46b0548426a70d245e7000eadb0c4e36b2c68820728f360ed225b7d011349f2d1190c5e46484fd6a3a1f7bd56599a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ed81292671a0e73d69b7f8dbe003e7929c18c3d51000cef36d1f203831aa74806144096ccc89d7de20fd951f07b86b246684bd1dbb43bf95f49d778e3d3aac23f7811d988843590806e67993eb372b7927f4dc1722e4bb33bbf4ba8cce89f9df6c42a2b57a548e185e1b925b60ce803a9585464bbefa142be855aac011ced8c14ff3cd6f97fe156060cfe5e41d81087764d7dc6ce5858137ae20ddbf0f9a551229757f34fede7795aaa8bd09c263840a5e5a92e28b7121d8e9ffade5eafa02493f59daedb431760f285c9d6d003b25f6fb235a5f65e5a9a8d6888680ac0c9286dd49927ae32ae90dd05ab18c9b8256bbefc705e2dcc04a0cf6ed218405609c5127fcfc5a021d147e30aa8464d6449b99d07d6b40ac8f890dcaa4e5e665cba5f7fd022e895e5be1a8dcca3f6890240b13d5e10a10d7e18b26edeedda3b0ccdc3133b3050aaeffee4825ce89caa0b07cf09a7b4bcc94aca216d75bc629059667533c4035ad627bf0d1107029da4a52a951e77d5b3393d4233eb75aa0c3b7201b856bf752753f0550d5925396b62228fbca5f00c4da96c66f179c00529fc41ab9c99e8473dca4e4e1fe8c7021206acf5ddf586fe2b9745ad3a84cd0ef25da7846d0804abcb22ea21f12aec51e203e7b0ce68e15baa50466a532cd08a7cfcdf7dcdf2dcf6b1a9bbb07f175dbd0b630dfcdc9022ad1fb2c94960624764df87502b91ed9445e6ccdef332a6ca1cf8a791902ea05f72fe9fc66173a9b6e4130cb60210f464d6943face7ee082d59de7717de05da3055f67056d39eb502472df4891346bc58692b536d14d75a837fe2335f9ecc65ffda4003b82e6554247dec9bf8e71a94d1db1e526d28715e680a5766341b95bd2b2a998b4d32e14c887c010819fabd428096d833154032b440e77d1ee6ec39698cb1462fbca20f43cb87a2aae139381da29f609e24ac3f2c7be36e2d1d38be61a6dcb20d6add36f246a1c15a2d379646439535a6445e9d871115826deb704aa1e7400de5b245be82ab80fc35d5c4c1ff61019ddd959193790ccfc4ab17e106244aaa3f75587e11c654bd13d8897778fb68b785ac1f1baa4b29c91b51ae0504273cb0f1a0caf58b6fff763641d68b6b7bbafb9fba9d12ace06f611529e7c3bc39ee33680e77884042e43c81fbdf15e43282b9a45f13413f81651522cbf193246a2ea03f1b272001b2886c9514c54f48b868adba21172eb4bcb516d176f313f3b129a89c8d5b7f6d86694d63379ff3603ea517145ac0fc6dfbbb6008d528dbfd8a571ad7e07f8c1b89b25cee3aa5295fe95caac01d5fbfa6abe6cc9e7fdb67dea8d42893e3171e368f3e5e80d21d7b855c767e316a591e18ddb764e7a46232a903e216f1fff7a9ee03588dc93e37a792f67d933b9229970951670306512cacc5b1ef24131c5288e9499f2bd8e900484113ff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a3cad6bef60abb2f37e5aab9c56cc99e518bd49ef1ae8218190864c1eaa29a33675706c4a3a32cde59d5379097d2494c2c417edc168864b26bdb065349c2bdfac837a60806ccc46d8fbfa8ba258cca149ecde3c496b9c1963fe094b7046cce33b8a1c755cc97f0476c446372b2707e6429814b861b05e329accb9e61c322bccdfb3ea918e73c85189d053586e45ce49840999d039ebfdb1f1f578288d03d58cf12a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bdd938b1362b9418822a521aeac86398d0b33727b685ef6e230e76c755c81fee9c37998992de898358ab47f7b09034844da203124a3f862ea4bd4c96a6334f52cb6d2202359c68746df968a7c80543cc23b5d0c6806827380ba2997d724ba6e020feed56bced02f2172e9260607056020df1450a8dcd2ec9abb8957046a9ef71a51057ae6c5e813b744f4fc058ea7daeedbf756a94c1e5c35014beb8e8cd2a37092d6c35d5cf3499121cabbcbac056fcbe3ef63bdedf5530d6c18175c0946abccbcaef7912b5cfc5deab5ef88f4577d5b234c1ab85e5e1d1f9490b21883c880ce430cc751413d38c39f4212278aca7b7fa54d0e8795c18aad573ed440efdcd24c22044722c93608580199405678d8ec8cd23cf2ff73d63f792321f7c4f98a5fb83c17122ec1596a99830cb143052f657cd5ae1e8ff400bf3eb4d1fd9c11853d3b75f82f0740980fa015cf7f41e03bcbdcd8cd22b0adb429ff5b8e38ecf5a0de909cf6696ba384eacff2858e6ad7864250a89726c4017ec534e7a6fa3be57270522c15e61eda7ac3c9e0ad4e57770ae0d292ec5af8388d84705c74bc7cabd97c36970017be01daacd72831528515ef30f0cd64fd77f57eddd6331fbee9d102c583c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbbf420fd490033c899ca258cbfbab8fea5fb2accf9033bc1479cba93c8dcbaab89aaf4282ad57b8c984b720c24a7b9f3af637bc6a47d4a9a49713dea594e6babd7844197485b5351859f0eebd611a9f35b4dcdb0675a6e6edd765709e78f0b5a80fa7207279e96086174fba8dcfe72660eb404480c2562e8de7875f669e336ad6f83af0226520e0952ebf27ee8cfc4622812cb48752a5a85a4155d5a2dc91590c5d8608d40c1f69bd2ccb74d1eb84aeaeda7db74409224d61ebe926eb13ce006942dd2a6d62eba38e8d8cfbc4032167e3e2bc698ac49e1785444ee8cb2754e74ed2e204c6313cf71b36924a6851f48ac97fbd0771b91b49790846633dfbbf258da7876a0b2374fe0658acf878fa1c786448f7c687dd17602768c5318f0dcb5401cbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67c241a358483676da9842820b74326dccd555a008c19a0ba134cbe4217a4d1e585dc3e021a38b0a57a51704e1d223d289acd19e7b00987b0aacd731bb9d22a8f3590ff40665377ed47ce2499db248e1c42a9d35e2868284b31612ed8d3bf28192a35ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c41dac8f98872581bd86d2240768329c33f97d37f4a4b53557b75cf00b6afb7a4881ef6d9cef1a834714be830e60385119361806f60fb79c186c1e7747d6c272fd5f467e098460b4b7b9e84f11accfd45a5175e71188b7987dfb37d99dcceb6f614e4e068e223b7c488fb53ea70d6382cab3ce9af327533ff68936938894df857ec4237f25a634bc119303985ba419c69424031ac9cdf57bd66ff2b09ec1d743438f7626ec6ca5f1c3117cbe3782ac41dd6d98ec9ac0b668ffac6881f1c881b9c3c9a844da5354434c66ae81c7d6ff3a214227ac7585d93131bcc23f645bb1eda4bfb29d052849e9e34868f70133b7ce3c6a88315b59e7efc361217861ca1e48b505add292802d9194022fe5434eafe4e29f77adcc5473b5446f49f0b37e7f20baa8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a05495c8df16248ab5e08afb56044235e1ab03c45d447c4faa43dbab8096caf2a43486ce96c886513c186e71df0e32bd9daaa334ccf246f4575cdc9831da363a01d59daba64b600652e0e567a32a62996359b316c267a30b56b30817bf3545418c3d8505e4448dae071848563a03dbe56e1229c15cae2fed47e39e79b621c70f79c608bcce447a77da7be7f475e1865d6d795aef7501121219daa80021b9a5b13f3f988350bfc92aa21e23a2bdfc37959789a00f54fb7fb20211df7011298c687e665d43c1163978f436952423a8f41d5787c7037d8c0d3226a50a9072d377741188fff5da07bc84cd468abe47d5db558b66e060861211dd26f1baeb47548427d55a2f83c6cb8c6f4ae651525c699c1a9471c87dd4509ad25e7254db5062c86d37cc23034c44f88e88f1a9093c74566dcaa5db6d5e0d6b8b2de3c8b939271fc152d20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2888f2079db7185150388a48f47bfb3f02e1618034a41323066426308d84008786279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c9fa0ffbee0f9b2b2119a90f30d5a7e7878b002bc49fbd61af4407482fa756d0909a41aea5c642d5f52f7a0a23d967614c64db83195b710b87c110d750336ee104dba80eb28301d9b86d01ab2f27c5e1424e3a505ff47ed6ddb8980015957535f57c30ce192b61b468ae2de064c31f641d2982c5972254f2fc42b68cc83ab9b44a525c673c33603e4e77bc24d156c8d346bced7003784ed2dc44f4db43f6acee0763120aadc9a03abc9f84afc295a1ab7e940415ee3d26da585355fcdf0e03378f648a2fb3673a5f7a91cd17850941b32655ec64c314ffff8c2822e8b3ae1a1607cd2c1b9f87687875c1eede8116685a48147de137055637f86fdbbed8fcf1893226c0bfc1461bdaa39a206a0fac0c8de14b6c105d6b0eeb2ea4a40a4b9107eed73681d72fd60f6d0e45152394c7becbe965e1285c920b7a54cc1bb373c6c4d393d2585917560bc57a1a4f314e64374c553e5f5eea90f7f6a58b69c67c6b5b95929b6b82f6d0bd9db1136e1505d68134ff0266002db437868155b7e355af5ca2975dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90db2917fa00a945133669bd1c4ed46f24f3eaff9dadd7732eaf38e5277826899ee344e0af93d7bcaceea338aedee62eb6f1baa2ea8c46052a7110bca75e0f0c19ebeb5f16b709fdf5728f8c0b225468b7ad5d662d6f6bac8ceac8c3a2d3c47d3bbea0422ecaca746530f0e647504d620e56242b9aba26c0acfa498ddfcf8ab5374b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c588cad20e0c7609029e68e96b001ad526933a013a9550f9d3d94aece7d03f93c5a44a9cf69d657510975c4be0119e51dd6f76d2a59036431831b5f9ea79b39c71c0d58ca31f569d50a8e331b01b0f899c10f9b4ce8129490f6a74826e0fc209eb69d3e18fa4bc4d51c9771bdb5850376f3a35fad2e0de520f392c8a0cee69a1e35d4b20b24f875fec58d6cbd0bdd2c8658c7826b4c1dbf70197b2ed1eb6f409c080bf3b4ff19ff0075209a2add76883140b8ce67814dace02472c798fd60172faed12546eb730d0160b69f2e1247a308d21238526b6b5ba58e7ad4d938656d67ccaac5a6f4e453935ab921be9d74f29d47856fce04d8860c28f0e6894849f7ca83dc3c279e42b7aa854cb125f1d41aef3ae9f5e1da72f9e54e82fdaf5ac3ae931bb292443097abed4fe0b0f3bb02baa7bca99153c16037658a616641a1168a05bba2116b9d7dee683295d12bba5e5fdbb42caf0b43c0178cdf8cebcda0d0255649112ec2ddf5c741ac46389b9d7af9a51c223a6576ba2b912908a256ab9b813f8ba5c10cf764a542383136ecffeca4c769ac1553a7c17d1d17b05a5b06d1b48f54e44e432eceb4b145b7b1d8459c48ecdd5b46385ba8e079762ab9701c8bf3d840900ab582d2dc5ed0b156e2be4700ea61f4111bd06959db8ee410373d9d6fd045e8acaf07c6c79810a54b93c63d96b5ef854984bcf3786bfe1e878e310b48c5abc0d7f02b785236fb0824c9e46f645b00f199d8f7f63dba2e53012fb8269078b8fa1ead8eab3a201d614d6747b22cc078a63cd2d828c642560712d4e05660742beabd55ca40cce142dc291436e32a6260c4cfaf80ca5377195460ccb7e2ed764ea6c07b357a98d25805fd77909115cbdf32ebf6aa8ff84ea85dda876c10932ce20551f2ee873c9b6bb3372aff7d30bc0ecd94f9dec3ca719734fff4709bace8b78025aa2f5fa1f500f7e2d043941630305e4657fca6fcbdd83d580a21272b3cbc9e6fd5bcd440b93b571455f6bba0a9688b19a1f224476f730e000da0e59f9ea187ae8a15d5de17cba62ccb7580219730c19acae623463e6da0f2807e1e31aa13394ed63ff5065fe3aa0a240a9cbf9acae4bd84075aa1d49a3dc3c8cfc0c50ed575e25280f8ae0b397660f0dd7f58b3482d4dff82f249253eb283892b614ec0b84ac85a14a1f6a63b467908735eb868002e6f7b9669530bad0c6ea7f83967f19e847d1f1c8df817d940d5d0134be07769fef7d5d80f935d5cff1ef9affa61f135f0b6bca402f969a7626eb7e90e40296e36ff4087a8c13ace15008b40be46596425fa091c171eb6195c71065fc20ba0c076a27f5652f15331104358d4a0590b57fa367267a066f0846d3832868b14f4354de8f265dde5d5262c42be930d4a2d935beda0555c4d9b84cff79eaaf3fa97b0be44e332656f767c39e3939562f027ef914a8ced5aac4eb4423fa636841342ac410e37ed221e9b88d117ccb21a65097c68bd38bd23666e01d5b65d4da0d1d0b1af302b0997d7790f4479bf2ec7c2ffc69a7fecb3efe2e4ef6c57a6a50e9a2f5842188040a0042a63ef8abd7f70bd3f8e3a0d0adaef30f7733346c8d99f224576020b2912a8fe6e43e352d899c2fc1b3450f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa0fc39011107a05f1638054788ed49e9d65533f29989ce54a4bbe8d89e73ce8a95d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2fa3d6cf351f97f403ee8128e55317e4ab17d88010ff3408bf10224deba6d7786acc84d1ad3e40648425cea6402468fb4ae5ede479b5314b2aacc6e164272dde80737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1f63a9274a946b68069af217f81e270b89473c8c61280d4fd5dc663d46a00bc6e576cecc8f40d39334e3e1ed29274bf78ed761fc754708f78d82a7dad2e2814c8c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc008f85ba3a086cf955d3b46e51a00e19adfb56c1b984f7cbf05137c6eadfdae7dab54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835faf21e4e3f5dd5c44358c0e41840e73c7e9617bd6c5ef05ee30a46b2b9c0662597047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa0d55104d7739d9fdb738c8151837b9fb19cd85b03885bdd76ed0a07c03ba35c1bf808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e93502180fb63dc404b6f3d32584692fdd10755edc8f0a2b79e60ff73cf40e689b4c1fe6758e48f80245a0608dc68b6a0fcafe7451ae22bfa68116b113bca7516db00daba50d7cf142c35288a4243639068848b4895341dd7cb84929da5bb12b258ee871239d006592db8bd75a8181662b4f083a8f598c14de313e2db0f329237160c97f465fbabdaeba237630ffd5b450031334b15abe457d2dcce8b763612bc907ac948160f91c2f1b7b0a685cd626b5c401cc03e90d6c7f45a65f166c5571d95ce979c8bee1c48c899423f951485bf5db03e33adbdd73942917f5c3a9600dd2c54a0e3944576123e9ff2eaaeb28432aef0b2bae779ee826a35c25cac6d06d198048af7b37d8498bb9e3d37d412da6a584da77430ece5fcdf162a997b07907e1297f871e14b32e706f4faba47b06c10d655372617503f89a16c428a9a450e104d3fa5f81cdacb01202b4b76fa1bbd7fe5fdf8b7eba090198fb51b88f735e6a3f6c767bfd5ee8de1843b9aa58399e886aacc3c32c5c5ef993416393048969ad4c9d6d9103d051b017886aa7cbcfd2178ff0a90e12fd479aaa295780c48cc690e6319ae1e3f708240e52bbf43bb8c6097cc405629ae4b04733443784dc9c41525fb1c408e2e9e9b29dc4e70ad1e77f06f909956b4fead18061c24908e1ea182cc23579f5206ebe257a4cd4c56823ee675f4909c3edfec6d6b400a7e64d573864bce0b7c667e812015fe4d00e1c1f2b3a1f2c08f0ff78f2840709a114610685e133eec9ff0f2735e4aa38d06b92af23453b7bc88ac11b1df0c9499d25255ffaac5421db401d34189c5fcd32213a64b6a2082302bc46afe5664338f80008b95ca7f49164019d33deb532133d6c0b9ffc3f9cd1d95dbfbef88aea0cac2b9a359d23ee1d3f59ca3ce34c07e1dd2a4bac47817f127a0f5c1bb3ac46b0f567284cdeb969e618307621dbcf16634b45fedec9193efa14478204bc94c58c9672f4325e240a9519614f8e4ad78ec6a0ec307d63b18a17ac4619d9afe918f9e07e008413220910617a1a14de13711ed2d6983d0a0bdf3c5fee1804dd4fd8e35f98ec6df7794a7ea2ff01bc6fe2dfac25c36fa09a705e2bcccfeb480764dfe34c7f6e761488db8b63ce006f84e156d2fb077a0ddf39b5aa9b3a872c3731e5c83e5b6fd2413633ceab467e9421b881115bde1fe9706681e43b19a670bffa2705c99c8f4f3a93f9a0e479751b7625320606f5dc1176520bd2973b51003d0464880b222815ef60631d9eb4ccb10c1462bc7346367607a638af9afc8b6246de6c26e4034d2f51afdba88e9988e1074c377c78dba461a9001caf2a63f02a24c1b0d6ea0c4804f133531b203808410ddc69e9448e07546a034304dd4e027d9f47d1ddc16a4316e2df87f31d6ce91230bbb48daf29c1ebac6463ae62f3413e32dc6a6aa67e95e88efbb415b4380a050aff8587ed33170b5adfd9c69e4a6572e03a083f9bb91851d8b28018bda439f1f76acf02daf78ea458c29ac71c7a4f6722c299ab87a87c8cb5d4b6cb2fcb62971d46e4dd57db5266c7d751b2db16bfb3caf69aca9421667a5e23a20b71ddce084779a248e907229d64d49843cd10a9cc4fcfe9906a180b4ae28c3130c4b338ff8602f292d433b70c1a1df9b389f8d4d70ecbe0e0cda250133260ca1c1cea124d5947641ec25e8aca24300da0c167559edb431b4b93906da5c9395b832c7d8ad0f60592a0be0c75c23e682358785b7e8ab9793fbdbb4805af9f809306ace199e392edd004433222db228e447fbbc9f7354a1628a2d481d39588abe7dbfef1251ba2236c0db599a5d1d830711b1c28bd195c13ecc516d04ab731edc7af40b8a2a9806c9e7bd0ac39b9ac8dfbb06a264c6d96deb286007217d570012e1faebd60469592d32d077315efc03e97d1101064b00ecae89b3d5b340f2a40721c245dfc799f1aa5bbdd4ba821f47790ecaca29b42395fe32c02e52dd0acd030c5d6272eacdab29c1d728cccb13d97edce7855e5dea99f876c452d183de3918aabc2533d212e6e0d80f85e188c91b4609c0b97e1e7b02ad69895ba797b84f971e745d7c6b947ac9b0395aea2584de5cb5bca9275893294227e9a73cf3db796e2f75918b451f4d2308d2bc6c4e1598083fea168c652984ec320943a0ed00cf578e04f64e91ed4cefa9bc8e9e6a9ddf04236252986f18f794bdb254b8756f1f1ae344de63c92e30188233e2abae20fac189c7b098cbc3f1a2d2a730e9041b26ccf05e2ecdf3bcb60f8b792fc3567cc2841fbed889c6c6dafb4c0204ff838a68bab5b6167886528b08f882233476a493b2a267035f99d0c2391a876debb79eedba5cdf0b48ab347572a0cc083dc5ca1ad1cb5df00cee070cd13a116b6a899f803b0dcd8433de2e0a7ab38dd3d101dce667b64152b48175ed3b9820f62fdd1b79dd5754af865b2d05d609c6eceff0dc4d7d5498f18cb38ca2568c74be59a5235e1aa866398269f16ea3477138f2d3253e146551822a231c5edd707d539230955c633c3e8310f82768b325743e01b3f216dc8193a77621b10eb47915f087e81f6f9c96905c5a0620d303d617fde42d78adf9b5290d7cb60ed697b543d2f8ee4bb73eb2c2b264b7c089b4f34994a4332a6c18dc69ddc309e51c3af2f6ba912cf687b65aad997f4eecdc162464d017e92007584c1f5c84781bd475f262c47799db99dccf7304e49afe3d50f0c171c0ff12051b2e3aa1aa4bf27a1997d3b722d37fc51962a027373bd786c059cb5ce2a7c77fb09e168c1b74dab1b2311ab4363dd04f9d850b680d584b96832b06291b14446ddd73475f5bb5b102aa9a4dc674edca499b472d9d2a38cf44308b4d32075b9f8bcbc5b68a78b7df7a0fbd3d7ac74356aafda9b95af4f33aad3d8b8b00fb331fb5cfd25073a47e0c2fc4bd14e3360f139502c31c4e59469c4fc8f1816997ff16a1280d7ffec93577c5be7e9f4ab175b208209522edd3f636a35930915edf9900c7be23663599012bdbfc0a6a7bd3763cdc55293a21e6d729483e35f3aaf4f708e31356c1f345d66e17c33353fc75cf053d8e0820c3b6b0faeb8882c110f7c9d367dc3f2a72d975e7e6406f27d3ae51bcac962ce092a54db27f40729eeed2e359e47ffc17a850a7de177445096b2d9db9b52eb0db74bce659fab05844d58e8844cb7821493ef16b26b0d910cb042c5781b755e2af1533926c5a766e74e5115456cce4a49f822c25bc437d3d0e3c36e113bfea2b3088aaeec23264658f0c01c874c2f47c4b656bd0e25cbf2d6d3e2afcf6601769f518ee59988ac93012d14b860265932e81ae97b0147e8a8c6c58a11092e5d1ffbc204f7b1b8a4b258d7b99c51035cd5aad6b8fe4eaaf5ecfd17d8b8eb12e475bfb66dac4d33704e95c58358d1cdb150c8b19303bc32eafae545084d6fbee749c3150f8b10db19963f354cdf2051ef37b14148cc3ae36267a822fb2430d0845525ee2f45d7a914ca4a119ad2d1a4f03e127d98f91205273b7b48d9f4089a3ba429b4fd0e905407a729188f922dac0fc2eb684a3ccdb324b3120330bc1f09a635681caee8c8d2c39c310883382e46b7b9aca3cb5033dd91734df9aab1837e4df0d7c0f5c9ccf6cc39c5377287b2315c2732540b55f9ea7dedb9de6a8818a688a3c561948f9e9ad612aed48465c4564b45f84345d974cdc4e4ffcbf92a99224cbe5f8381169498b8c4bb59fe0b59f14801b5bf9145935f4a3811fc0a4f8cca5c64b6bd4e2b909208ad62ad68b6de0076f314ca2164570002c866ffb440294253de3a00af44b3eb3787c9ce70f0a57bf0ea49659a91bc8396aa7077eaee07968d06f1039b65d1f2ace3ba32c186964666feb63906299bca70dba5e901e021941cc01c7018c7ce077f30d7d30c6ddb44390f4e36464442e2f8c663b77919d56509110fb1121e90c551355b40b0253c577aa96cd6aff7b6f33337a7459d86dc604b7c625ae7ae5d5fbf36c92da06f1a4b3e2234de28027cbbd2ae1d25d3bc4b3fbf5126fa8cfbd1783919e6fe9eed236dbf91292600bf3b21fae86f6c979b9aa5a553d2a8f7766478e35e39171185d4edb2fe4ec00560fe936a2d733ca0c2c603f54fe1c6e554da69620d9b5215d00145ab5da39213b981f0dbc21064cf2bc4ae7abde74e4e46aea5b8d0bbd41c546ffccffaa751c5032cae98bb66979fd49719c734130d4c5f7ede22530619d463c4b919e485a5818ecba3d68bc8163ce936e970a768655ff218e7a464f8ed694db220bd8fb4ebd47833cb0507c8e3c662dfed7068c0c57855b36415547d87139d9b7d88771b86e9d8cb97fb4ed72a05c04704570d900fcb7a3eeca32c6e1fb84e862f0a3ba438690fe927a545e6ecb61970e5daaaca1553fc329e5a5d2dc21fac8fc53bc241fc89249c333e4960e9d88fdc04d08ac7557f1a79a071d0cf4844a205da05d070c4f451b2aa43e0010871ab2794f7e3454d02cc89b9c70a453c186ec2a359aff6167e0950eca0aae258530e1ef3b27a2f88a072ad591fde16eda0419f8948a59a606bb17883e27e650360ed1f7729c03c8346d6af5323b5a9b29fdf1eb25e8f7fa24b1890019ebda69d5ac1939b7777bee10ba4263f1a21838eaa7c99a90a206d574f1594018e8e4705331718502307aca8c7b7ab9f96f956789e9c4d78d2e83ff5ac812660a90215b3759aa36101a0b6413da1a7521e8e22aea6e153d247579550f20028cd119ed70af02244705cde2d21b1caeced81245a6f200cec90fdfdcdc6237e81af534f242d042054871ba0004a3e820adb5b8a1cbd1b190782e81c9d07be9bf46c6c604ca0eb09b056b7bbe599af1f31b1c549955e186627f9d2d7b637ff0df96f801b5b16ac43d3915e71ed0a8863588011b959dc97bbac8c490e9d5d6593c2d80cb914ff85be47004e79d378ec5d4c5c100e58cc307d0af81b5f34f7a74042785ad7d60411603679616716c318783a334526b0a5008fc6f54d780ea886d9a3fe4012ccb73bfd0b4026a7a291925a71d0f71a4a452b75acd8590b3038c3916d51a666c45236892f734405dd66f75a2c567c1c3b9d9aebacf48238b18293a2d88b41c26ff6f648be0ade70388b64248b975c902795cc43085eed6dce1d1b337a126e9be1619c548e60bca580e50d9f3ca76f3a8702f8fd4744110a285476942c7acbb983f917ccb1bc3c51700abb3809a542a21b1feb8a43c2d0d30cb633665ae015e0d26563df44f989ab55b946c1d5081e55f5d93ec373d834abd8aafe5715fcb00f764bf66df552ab4be91226212a17d88b9a9bf0f43a44d8975207db1a0d6250d90de125f4f2e94da692520a1526fd3a9d008442199601e3c990cd04ea688089f7fd6b66600f1e4a77638b2cbac0a23a846b3cd43e1609a3be822773ba2b4eba8c13834a1dc89443b5edcaef61fc8e991dfc7507a99215398d5957b9a8a4adb68b5f98c51615bc6878eac1456c390d1a0802057506b62b55d0ee39d07e34d1618ff7a02620a5f8372c699732e1705f8b7612f8a94ee816de03496541ad0622a91c702c1a39358b2598524ffc4cd0428b635081043c899e5caab52c09e551284fb1b02c703d7e6bb40f582b97749b2d8836d2a3e16948acc6cd10b15615621a1d22ec65514a3f0c2232c3fe9fe80f969e6467712e429012a9a0ed1e0c65d0bbbe5bcc85ede30418f594ba9b94c98d45a5b148174c129366bb0551235b215d006e7e51f9a94e816ae25ccaaba5bd4bbde00d0d29641ab4f9c1dfe7f6c750a5e27e159b048614628601240464c614dd1691ff59ab0827815758bc72817a92e4d4041a16aa442f5be13df63dec4d38a4e31725d5df58dd3daaf0408d567d3725e2d77f5ed604ecb81e317ae9fc479258ba1220ca34ae5a1b8ee904f61c35874a80eca97588d0486ae3c1ffdaf7ee04aa0c4ec363e97a18f21c756196f7fe2eea9f5281d3d8b9a1b0d66e0318362c6a7c82f9cccb9bcf43488e084aa3ad255cad33d2fad69ac273978f7ded44582b1b282fd867f4cb9ccdf3a0a8c4d8913f6ddf9ef3d475edf492950027e7016aa0782f99e31e8c6ddbdda623b73e116d59acc8069abf757e301629fba45b312e36985b84921f4c18319a89dd76a1e236a7194db133323fab91bb2fd739eccb2051756294201afa666960c2497921b7a3dfe81acc378800e2c212120b305c168aef4b40314b80f906f95829cff1a8decea385b39d22238195fbbb1d86dd81fcf9c20586247572cd996ca9385d961fc1861a64ab8f8226bb81677e28640a28b7f00dad9c9bdb15efbaab1db86b4e692a9ef2f8b7f231abeb67f80ada9ae03e473459d0e1345a0bd7c5b4ab471e153fba96648ae70747f8fc621c73e27a53b1c43dc224fd6877d034327baeeaee820d675b1b95f31df11ad55118721e285aa6683002f1cebd681f29a129baa29cb98e3a900c5a74916399143f2c56139ec4836a7ff8857ea13c112cc2b53f779c97dfd4322578275e2766c3604cabec8908be4532c172e4a1b4df553fe3c96947e044f1b1dfef7fabba6c997e8de3c34a83bac730f8edfe41de3db0aecf4acd67f7e4cbd80f6b41c2bc8a5813ca588a23d79de9406b4762e9ad9c38d99d18d8688d6058c8b9e4981dff7e9fe2a8e44f7b558ba611380c360bf8a33cf4432553d89e29efa46aa0595abe64d5d0c5d1a02f3e4bac0612e2a27cd5aa34e92594ba708fca726f1495d084b5f759ab4826bb09d599175e98ac176ff62c03b835fbeffa36d17217795b927356c292304dd79193ae06657bfa84cd3d6bf8ab5b534551a21972e3d579a9c9dcefd99993b3fdf262d080bf7ec14e1db508fbd325cf1184efe60a0f494ef4449cd0d6161c48671c5c38f84ea9b216d7fca3ec90c027a7defc7245e3b8994362d4483ed3b34401f342486b3cd98581b440cf5b02ef572a6d39f98ae74fed93c4483009ec62463486d17d67fd47b9593a24b3d675fe99747aa40556155aebbe7504a638612ea85aabb852df839df2a3afcfa209f1d1ae9047b2e83f457e0aa6782cdc35cb73646feded0d4251bb902dff803965390f1abe0d268ee61776cbf52038fc5354a1851c9b0fcab4c0af4b1e35af3d2f4065230172e5b268d9b8774d920851b9eed2072f80ba1493977859e2fe5c318f30a61d0dbd20adc87b9e951983826d07a1cad66a591bc83b99bfd72e2e01e4fe5c6e6886dc1f1bdc21ce56cfe1e359d3b8feba09ff5b701559c617b3a92c4bb502956b767d71d50c84dca95919477454754f0412303de82b0c404fa66a572ff80df4880fb7533b58ab3ca690d2aeb15d13a199df1f9b8e43944657253480054136262411028602d5edf4f527d63fca12136e750cba64db4c8ca674e479db18b05d1ad9fdffc0d2f2b25b8ae5c42caa172ca9c174d8a9f9cbdad300222474d1e008c417d249d7f96cbc4727c2d1b7293e6c9ce361ebe75cff606afb331328d80c3bab6cbbe7019e8eda6d50d4cf9dae274a0ccc4e692414beaa5864915d01f0bd18fd879f536993eeb8e41ff03217e310b0e985b79a55c0962cd72c82679ca0f668ace0c4a2fa0e597b077b20d39e2e0303365087dccdb3bd9fc2bb7d62e9b12ea07373d173a7e26f9cc09ab4e6083bb16442a71295c3dd05854b8bbc7d37d3e696045e7d077de4ebbc2d126c47cfcff5aedfa9ab68876f923a1d5dc7932d617a29de0a8eabaea2547b526cb68f4b5e13478db631aee63e7eb5314387876cd3ceabad601e4b84e356d2cf204e0bc1cb7c3e222a3c8188f5e887b19bf1d87e11e99483c8bf90e2a8b7d5eb181a050241970c72c09cdc059b4d80a6a6da2790378964ee183d50b0486110205f7c7cb8117dc2345c8720fde85bd404ee969f7061a3e501c37a4f1c31fca3d939d675e1d433c49979496b4a7e6c2255e54d47cf63d47f6065334e13992b66c60c6b0e973188255fca4482434a77c34cb2ce2b3c5bbc8b1f5de42852bf4ec7e2c734576b038ae23fb9649af53b39600e676f53dd98f94415ce3ce77e07cbbf4cd4b45c47286bdd2b503735926a565eca40d1e54881efd52ba2be4fe1141340fd2591115840b8c8172cd0c22f8cee487e38af007d52f155bcfbe03868606d45162d0922d1fe82144eb6f29ca6c1b26ef73640eeca757fe2dc7437528a1fd9139d6fd16031e019c7e4ed5a56528c3d96c807cf99da1519f3283ee8a35ef8aa9bf83237fb06bc65a50a898a3507a15cdef6db7667b6ad52fc317a4ba177cded9b8bbc519dde83a27bbb3b8c9753af7744d1535397ad8094e9960c44e618aaef3f115ba22cad5a332aa785acaf4cb545482994d33bab0a0df5258adfec36c5d4b3f17c91eb9fc2cdaf26aec3650acf824064c6ea2100c5b1fc0a226bb410579e9a0f6415e19f8bb3d865c5a2c6a679837d98ea186b9a64353f558fc1b74e0e48a353d00f660581c925ab7129303c654a298d690f62eb441232a4c6fd5db7a6aae08d23809b5b9ea6f5eac497b857ed1171a1e76b6af7330788e9970edb682ba534ffb365946a9026bc3b942e2a77dbaf8f6f37902a861729f97b7c3efbe036e49a47ef5d2dc8bbdc8f48e1f675326fcef42dbf3113d59a889e53d3f4947250464730221ef479e4ed12655f6ffc6ef77ebb51c141b7864580b670dec8ec371cf25eb195d626bd3d3d749fcad138d0200d5571ca84cda2cbc746aa6d72d1bf6b9b35fe13a02d3ed865e7a89a17df61c268942a02637795e39e696e179da64470565ff6ba58ec1819e07fbae4c1606b72202990872f5ea81f371957696584e23eec27b2b97deb1eeb1cd73b772b9dcb0dc846b893ac11df7a4f68e62e3b58c77140bb96f3d18728b3a5d175c34896034d9ad2227fd1a37cd44890d4b32f22c32d08d5c58f5ca32ebc919ac7f7d857d82ca5b252ff6c1ad344ed0665fad608b435c5e436ad2f1c119d2da028a606064e2a0a9ecb31d7c0c8d5491bcc48ea5c89c606c641a0d24df6a117dbaf3e258f13faa4a46dd118a138ba11cbe57efe1c334ffaaacd2b8edf86d4cc811e81db2ddb44510d1bb7afbc6821f91f3e90be2664b9e2c4db866f42bf2baccb4ebc5b067d7ac770b2232bf402dccd283331c5739329e5b86a781f05df97612a95e0be09df690f176d03e4bd88dc846170f65349473a29d9c8268ed24dab12f771827062187cf2967e0a6caac3a2821c990a81a2f2878bc03598ecbb183b5f7b974a806365c6794a1a20ac0d6d3c32002b4e707d47d4671aec17f7b31cdf13c9e83fcdf273687f74e49edb2ba13f0a5e07f57ed2a1b2e2f3f786d9f6625c9d896e6b01572fd4b061c91c71f804d35436e88cfd37a6611e77a02a3a71a6baf9160dd13d08b667380cc1eca7c78089c88e7219e50dac8cf3f90e7c75e218221fa0dd7f2f76aa6093bd6575c748b0fdda885a9230ec947689e694f600f1312872cff466a3331e8f6f4a439a7aeefcd3f2b6e4b5945b73e4a682f5667341cabb466b471bf4ced797ae492c35ba384a29302e939d8bf57622e57aa5d374a8ef8aeb14de82ab666ffb281a96ef0ab65a516697ad585661b107bef7b33ba9415c1c0ca6e21d40efd90a8302ddd6bc3583d8cbe0814d497b0d99592310fc8ff24e707ef6a4b20cabd1ba3862babf3313b4f2aa8b3314148311c81e4bc9d08e2dbdad22031d5ace0de793a455b48acb736719086c756c37ecd369ebd9c0fa36b69c9dfc71bfa002d0a529f2e6b791f19ccf0d0438777883f90079de3a845420f22af70850d2256b32b6b7769a721e2d062e276e3012a8d35960492103f7e35e5590f86a79b5662288d563266d60236da19d1b44a632774b0f0bbebd690055c1bbee6ddd8e83df00ed9f6a12a3d2ac752d787fbd4698f83e2d3e8ace58c071fdeede0b158391b93da10a6cf4a6b45ded1e8a5fa85770884ba823a725edbd60f9e1628b4fc7f65bcf4d1e8766f8ef93ef40c47949c3943d99668f78c4356dd72f680b5801fd302ada1836aa2c64efe05a293e3ae57d7cc6f70816f33058af2c6bf3690ffff763317bad0bdba4487dfdc314c2a6f0a4d23a667b92d19cea56136f0233e48b74fd8c5fa375ea9a411fa41e33a07025e50d491f4846c30d2a2ab882facc14caf84b6b3f5dded80913d1e3e919adea119209d433e407bc6b39226ed51c488da37ef1b454084744a064c0d0f014adb4cefa99d220a5f854fa865caa45d368ad62f1e7e03457abcaf6d9910e7e0db82826fa69d1c2abd79440a564b1227d13badf591ead24932bd8c4d1c7f58a663abafef45137855c45bdf7ab91fb45e315a323abe87453e95d8e0e11fc658749139a341b0f4890c1f44c7d6e2bef464cc85e7797cd72a541d2024b4d455e4ab0f8e0d4fae882dc5581d2128c055246f10968e0433dfd512cd68939088f7c13dceaf31ef81a35662de2cdfcf272d78fc5d5428abb01a156be096c9de2eecabbf14738ccb96f47dd3535c4ff7ed66335a5bd39ff5cc5647a6c9d3c6943f673dcb83bd030ae50ab8504d3a1cee9644d033735ad4693235e334a417933fd7ff3e9f8e2d3c3cfe335487fadfc816385ffbd043694c87aecbbc2bf8e2e68848867dc594941c5b8ad153eda643eadb866a4de8e7f921fe5cc596de0e5825d02dd3a81c6c82dbcceec008a2c05e44746769273069638ec11d51e644649cc20b464ec1f7a9b961bff469c86184ad13859672974545583082a614ac83851b58a2f6ab9730a5a20df3e06956dd4152516aa0caa38a6def72488aa43dc43ae12d688f7ee24e5f1aa85205138279299b0d3052bceea2aaa3fb83418ca59c2348bc76752cc8fb17296f9b806647c039833b1c1b8c3ef019b8e2ada632cde2b0b4dcc009facda4673ac5b153e481675d2a682eb4f4e720c41b629c009986ed55f586c58bf22543d8509535d9867ff17a089ab9059828f9ea90d3977edd1a092d9f7aacd3d46450be32eefe940a786fdb4a16034074b45f87f6f542c55beeef9d39eb5820a4b1c02483df0c57872188202d87f006739b36d04450d27a295e1a03a9c50f401ea7307adc2ba67d7e78d7ac0b087b7803054aca058e0e9f39e89cf305a9f775367215aebf5e5595fa0972bf8e542105680ea23d9793c851c7e3e0d7c208691c3c3cb47475063532e6ad0377afa743282700d88ae5895b76f40793974a765024401d32dcef833c35e543dd15253db651963fca8e441f919025940fff8a721b80f1f1ae1c272829d504791a2c9c305c27fcb76cf95ccb5a83549cdd5812809ceb89a93415c5c48e4c5986ea6f8168eb32265da6884a131164f8a5da03b5b675eab38208b0ebd7cef1d1953b854b072f5e76c96df28ace60ddcc54df3c9b64ed5d017e30cc4b11888b044714af5a681d2147ab9f63c6007fc4b0293eaece8e3f55448978c8d9ee15e54d94dbd353219143ef0afa486cd6f61e7c37b403ac75b17471929d46d261bf82fc9d4339da145670e528103daeaf4f1f8e7aed5ae73df53493c9159e8dc9755052d819602010aa74b976cfbb56d14c7c5fc85afca49c5aa763585c20428171e150b328b44b41b1c412c49a8341954e47bde21c9ba37f51692a36c8c7edf1b65b9ead05070fd1b22f587855e50251e3d5d8ed975a1dbbe09e2c777e66b6788b9b2b37406649007949a14ab7a7079f972f2cc6679c1a6dc30f626a50545f1c1617495724299d37042f8699cf001c44f6631eae758ba0db4d8002aca08d87b12b302072b733f65b262e8ff0298e54ed690338a36bdda18e82bb130d339c56405461bc7457b73b32cc6a76c6ba8d7888ca4f6a5e06e9f4b746d92d9699dfb284374bb970803c37ccf74b895e64e4d376e93ddcab6a96ab134566cd8703657ec7e6deedbc8b80792011546ef4dbb216621dea812b2abf77f90c12b1473a6e5a1afa64f8d291331b32c3d859247647d4b912864d1c2c46a36dcc651432d42a488081f3e517e9fcbb2e6d8083b6f6197089670e467f01f95a86f149e9f20b698966268517cdc8d8d459cbf52d44a2aa371917343ad584a0ee5bd2e98db8061179dcb51364bf93ab5354c80c544125e93afa9d423d6ca3bd52b15947318784255926bfc0702139c5d2d22501b5b08f89a277a6009a44f89ee51635a878896b84f2612ea33e328fec3db421810aa8511b7218d03bf9571a5939fa57b5a4138d5c6aaca22ab89414c08b291ebbb9787c76512be2ab7ec3d11efd4dddf3d69e527d6cdd3e3e78095d9c99df325087bf6ae7106a79ddeabb997f94dbbcc6d443cf2b58b67bb4fe5d21dbb5444d3122b6c8355519b21d64c5c105d4a461a8e000b4f927969ff374b3b41320ea9a3bb4102334966899a9d09367730925e8c8e2d03c5ed2ce3e8dc5c13dbe2da97483b7bd590a23413d4e4f660ea61f576e9991a386a6575f39adf340f82eb0e8a1cd27facdffa6ebbd9d42c3efcaffa0623c6ec5661c1402fa85c950b95656112bb307ee5f61dba5c6223bda4cae0c744b0fc5d776ea0b05eddda090a5d83632300b9d1203e645520854c2ae03534e6fee83ce31c025cd405bf4f26a5cc4e48a09b00d7bb72c93c84cb0cf3360143d17871024e6cb067319dc935bfbe99b5f745fc00d25864a60aa07e524dbcef581967515df52fc3f3c76f5de602e6f866ddc319b220fc29a964108cd06c66960afa890c4200e77b6b4e62b743ad3de8fda3f4eb5d5ea307b7217da1f6e0ce88f34b6b76bbefa4e175b8f695d49de28c58d36c25ee556736254f899ba66f889ff6297a4320e2cf490d8cad91fa6bce78bdd366f4583d260b3559f9752df8dba8c56aab38de895e8a126ad93b5b1aff501a6d81de4ef46ea6e3d42f248229e3773a0ddc590d68a496cbf35658378344de77e03521116493927427d5c1b738f499169e2e8d3d2262bf713866587155b37478041c5eedf31cbe97fc1786ba6a5329f8192a90cbcfa6415c859a2989699091521a5ae56bbf575b6bef56417899158f8c3c5b8682d5cb8ab47ef1133c6cd65d4e67c0d6dbecdfb24f04eab5f2b1254eb3791cef29bb12965bc7c733745b0e3850b57bac9d25c0a02e9dbac1b1d03b1daaae4fd83d50345bd0da5e7e58454362869b405ad7eb4139705244c8b51dd23d27ceae54e0e16ff651f8bd5144db22b10454996076241ef2bdaea88b6139252f89f88555808a9a9480841b9a37e5e26ca5384e87ccb512d8ee3ddec2ad5fb9172f37f620a6bb8b96f378da659bae9a7c08e667c2e5977cb782ef5d5543a2482d6aaf36c35e45ae02404b8ba7d14397dfe05f5f660b18f79f42c2e1e99d93e09aae144399fce882648b2739613d5e30d18662b9ef6019fbc70ccd5332c809d18beec4279b42373be4c8e8e37cde190ed03550cbd111090fae0cbd15ea41e2b20a3c2f93379cc697c5bc94e8ce733db83f9d53bf8546eb1b34907e84932f7c949be112f79e894acae4f0767698480bc0032478e0dedd0ce9c35492b5b0024d1b5591c8c08d8e6e399e8a56d9829001273ff9f3e8bb98dd2ac205194f0e490e492215316ad64a55e462ac8e288df63888142f71bf6e89a79304767200587d9657371740557d5b922e93b51ba2dc3a5c846d27e4296d8fbffa6450370c0a52b1f85ce1463c20896d7c7332cda99201342889669001d13cf6946d1dbd7d859b3b9bc6eb56cd2cb5f9ab609cb86aa3853709b782c46ce4a3b70acd21cededea571637faf2113da5727ce8b704806c9fcae1c5e7fb46ee974a6ffefc078cdbe9ae30b43f6f2a794be3cea623dca9b19c0fdad545c11d9468b7614cd2d7bed84712fb0956354b7833d6068147371fcbe4e2b211d4a992b425110a2f84486d97e6731f6fed4d5d0e67dd698fcee3644343295bad65b13b2b22590167caf6af18908f5fbf8c912e1cf9b9ba94ae4736722ba68d7c014217fcc1773ea3ee01077eb795db1d853ce54d4fc36f387050064036baae8f98347b08c645f5ecc8f4b81e1de6bac7e5be31496f5adad0542c2fe11db995e3e618fab23a93398dca5be3da2ff68dd138e62724cf2a514c87a3a5f1912d7d6e3a2f6bf1e183ad27c11ecb33b5c5aba38c0875dc1d7f7e5fe84aff2a1f4a50dafd85244ea33be477929603be785394d1056f0aa85aabf0273c9554b4da8a7ccf442c4e71e6db6c853aec396d6807e7c7695e073208a5cbb2f40f81de3a89e4748d15fa2d2c9c47a5cc09798666ec584307b19cfcf2d1817a1a38dec2dc19adcddace196ed935ce2188708fda773db97cfe616b54a7f9c84fa41bcd72d405648540bb0908ba06281e5d95fa00d354fb010c8785ae5d53554bb82642e2920ae389d54b5e650771db3f4ff3549977807e83c5e66f5bd84f71f74893d0f82d31f4746dfbbb5192b903ec3f17a73df00a1e324443c13b7aca491f59b708f3117e473031a8c2f0867f5a10eab27a3c34fdf28f05a3890cd2278f3367860124dbe47909df252f2bd1a193e95385df3096f615fa8d382d33c949a26428615a1da96494f6c5ca72c440fd8368e28c7aec55b8e97599e1f7f682dd2c9d5aa3081fe722d4f30f88645030562ab18db25f723b4c154e2619f0a94f936255c7164cd3ca62eb61ad28bfef27575445f3a6898c41f2dc8debb97727974f761e578077a3aaafbd98028179fcc3a40dcbd6ed95ece17464469420bcaf891a0754e85c67fd483a8b481958170ca5005d1d9f6900c33278d842f92c01ecae2fc821e7f534c82378c0f2e149a622fc7ee22846f4f3b497f4ed444254d043b15dba1fbe0082f754a4f811b9751b5f18fb8891a6873af61bca8f5a967e4c47dfdca31d5e17b3140b1dc94abed520c6e8f5c36bfc598ed396c5f740487060b2017e99643a8ae8fece7964e84e59409c3a5c90e32abeba9d8e641d6f1da52814cf16ae5465a595d3005de37adce1b133f327d95988bc05ef470a5c874d92a56144acf2c5ff631432b54e28cc10d63ca8533b2b1000d9c0861b5af81b41f1021de154c9182d49670f65db0d58d325db607cd5842680fefb9378157539ad4b7b8e2efe369e8362388b0bd61c19fd953b09e61710b5532ffa8e3f7f0db13c5f31df5721d2411ce172938f83eaecd09032618c81c743299134cf1a1dbe57e85dcd7314cd17cf1e77505254b9cf3c89a2d658f10c8ff128160b49c3516b2fdc52d03eeb75d295a3d0c42cb7fca4a13adff65afadca79b3cd1bddbce00c07c566a677f0d1f53b48e1da50e3ef982e5584515076f7ca8292b37f7360057b433d1aed932c8609a919fe3efd9f09d63e6f5be180cf119628caa00f2d1ccc27b00754c493ba222710ebf0cc5c2d540842a2a083a207ce301190d25ed73481faf580cd8e5faabb13c8ad2e338c1ffbec6f453ebc28dc981165cb70692a8be9f7f7f97b2f5c255e6a32381122d553e6b05b53d7fb09ece630e0174ba69e40a035d2377003bd55c85458f09afcf515dd400bcd6343115b77ee82f6ceba0c121071c7c556f28ffc791105bf9489a6a0b142090b31849777ca82c6012e5c737c3839e74b548632330887504dd2a043415f860ca94edf74cd2c53b499fdfa12b5b51257214f18c20d7351c85c626ff0adcfd6173796b4fd41c0cb0c4205a55f0809b04a538f235e4e780f75ed3141e9288903454165c456772ed08a45672f89bdf8ae2c8d8ea625f98507e13372be3b437da14ef853222b4d4c93d236be6a46e4b0121c414c29140261a99d3a4e458f83eb724a886c348919326bb7f01ec56146cbecf0c7c7e38726d6b8258cc5ab9d17adf3bf4011201b4b69935fabfd8a1f6964736d60398a9e674380bd94e67fe3aab31fb71e339e187c2ea9bbb1c70b9626162c4bfff1a6253fb362b8d297d99680d79bd14a85abce4f1a47da398d60a7936abca1223703ada5052ef27e2494c7ee3d6ff6799805d73a91eee7b9a64dd2926656d6bf68d73117ec7bd59206bdb83dcad5334d04d3f19b10d2e4aa0942cf9c01f984d0e85ba12975c230c870ff412672a111247062d203c0f56e5c9bf824e28db78d8689d46fb93a9903d1e873a7517b7b2d26658315591d0936cf639285283ec805ffdddd4d2c269eaa5c5a5647602dde77d59598f3b72e9eb39f528eb62556679b48bf176fd684931181a129e5722294556510a31a27749c5ee9e913c310c63fc70ca6ca73b4e5b2c32879a395de86345743ba66aef857be4c675e0c886ac5839c13c4a1771786ccdd87d36851dfe04d8a7edaa41c4976ca442c19831d494b0281753bc1f1cde6ea56c4094edd23326784536c4e52446461ae7712c9db28689c3d975da646d258699455a2d641cd9fcb313b50bab758864e3c29e2fa45a9184e418d1db14c5ea79e19af0ff25962e9370711ecea22a1c7fe90af6e9cdcef1d02012e907934e5a2508df0803eb14f9a491242f70246a8251f1d9284f80b6f26c193e9498debbb68e8337614e8625e24c3ef06afcc5dacf2c0c97ebc729137abf8af38c453f710d4909b4a18113672f1db320496e3e20e9b056107d05f011ec5db9498a2381bb174d44bafe9254067b9126ad2af1c19e81d64664cbd9cdd1ca047d567df13f30f25d5c35f43d82522ec4a03ad25f55d4f0153960146ecf3e4c2457b668a5e5d92d867c21a9b3587c5136b5eeba6d36e76b8bb0c3d66706b9831932e430c3e8ada7cc74c30917578a10c81e8ecea759b9e05cb48940dba5f95d4bef23d090ebe6342f060559cdeb83db99d42887c062ce7cf934550c1e117de15a2fb10cacc9ec9375a8848f21935e91d702a7e9021bc14e7830215b0c264baab77a261722f03bfa5264343ba18ebc36522ac82862aed08f74c8a2cbc5e0588b729f8a5633dae28ef114ad519d165c8dce42860bb1ebbeecfcafc52263689261266be0eea40ed4d8e8095cebdf47891877ac7f34f684675783e7e02f150a038627fa15dd21497b1a82e5c3704db352d6f66a540bf45f2f0e5f59c8bcbdc925605bc87767902628470b8bb7247825d1be40738aebff9faa5d3ae62e8ff9220f8688265e4b6ad77259da5c3a7b6575540827c27e341558b985ac52c942c14cebf1fb0cf7bfec066f5878afad41ecda17dc704168acc46000972baa9a4d688e0a232497de99fe155d9f8d90ef71dab7b7315ceb76c65184e38cab072c1aca45447fa41c3b4c1451cf0a9b4d5fdefacf98f104b8836bbeb9dcbcae24318836fde7af3b3f5f138525775b75088261de9db2ae7fb2827db78ff65d10196392a6e29c12bb5eb90bee085230da7af0c530efd71e47857561b97bc551d5435fa09f25515f1c9794367b3e9091520fdbaee3b9ad1bad1298a73261417f9c78f7010cd5dd95260105de9e306dc00d32d24e6ec035e300c6551539a0d4cc17930d2534d08a1a2916938dedd851736f1d19788a9e4fa2fa5807c8de559813a1248bb2957414d7c835f206d0c75cccca74ba5d3e86c662be2485ebc297740a624da028d4eed1c97226e7c674041c4502f030adf37c1bc67d700cf40bb24162f5b0672c565e4cbc43fd84982c491199fb664303fb5da1a01477bbe22184fa646ee1bd7b9aa96bf3bf8cd29e7d619b26d5393155726163be0b61ea44b559ae39ed209dd2abc0b0a15ce8ad4220d2b96e2ebf3aeacb386fb9ac00fbb93124531cdd4fb49eab673b121c617e26928c98bc37e70d7678b3601faa470b7424015b6627cbcde6e4f97ce6c25f8b9b696e1befdd23e3cb95f3a4e6ab5a3d487166acd3ef74775f336bcefa79e419b667f3ba8eb81a9220902ae1f9c29174138acb39b3084a067128d8ae569498f4d962ae3282099c8ce848507ba444b80393c0ad4e90d4208799ed5fc349af9c6a2afe678d0033e0ba3c713f30146936567575fee9630644a24f61a2fc741ab0f34f86d92aff15a0728f5d9682df1461d2ea022dee8c4712fb6b72c4f8035a5171874127d5bcc012ae653714cb13f5c8ad8bd7c27e8056b4d27fe61c4695c7ba6641fe66555d460e3893100647a530818a957e23080b3c29141b931bd5edb50e252bb3b5204c64e190089b6561603dec8bc1efab7fdb4f0bc6331459540de6e1c0db5fd49dea5429629874c389edc8294f05c12390620b66b154b4169a2a9fc1b30fd3321e87a4e6664cd950e475e30bf209c8d6455f1acf1d7a940a1e81beaddbc199df918896efbdc543d15048292ed5d14309deeef9a5ef98fa54580e8e8fc38e8e46943693fcdc30fbf6e90e9db21b6b4fd7a01ee6ab39a8c895fb310fae52efb211c050029e3514b28c115a5f1388bc6ffd41bdcdf479ff46aa413bf08b4e9e5413ebd5d03ac9d0c78c983f658b71c22e01420ae47af27bb717a7960d1adf66e2a3f50b7919ac131935ce6e8fb06bfcad0b8310086eab4d2bd755be82580a184c1b3734ad2b8bbf8e3abfcc696503d40fbe2282bd2b54d65784ab3253664b9285fa51319b8caabb5f575310403ee04e36590a712a99162e02253abf910f458743c4d51bc5c11c876353f8ea63ba42d1fa8f1a95dc45c6de9b90bf898f7ff0914b9d7c6bff4c770d1dbe01bdc8ce6b76381cc38447cb3c488a153a4c5f767f799ade17deb4f0729c002663fbc45f1c5ac61f262a6bb4ccceee62af375e049027c9b8c07a4315b23570896d115b5d5a861a5567dd120267bf98bcd63ad65639c08326e5f73ec661f0cdc8675e879a22c3dcd94759ad2b01182a758280fdefeee655fcd8ea5e14011ca0b80f76ff796ec83fa6d3cb30fc87eb050319099f82448d7e6fc0224dfd26442a19de4bfe95fc9c13c504a0668a2f6cf9bb5a965716b88679bf3b60af271a78c095acdddeca9fe4e2ea58721b98008b245adf84e9f70ab948a5b463b29e8a72bb87158f9fffd46152943d8f51b0413cfbd3cfb7f4b7e43e8bb1cfb49a054efedde906cd84babc7e194561d33b42674a5b517e198891aa2f2cb8ead73d8fa359008b6c3a6c7249259adc2b6b69f9f6f7eed154176744e6c811e120bf9727cf1f034fbb2503bbecec8bfc29308e270dbabc2543facac7434641002e1d0a24757d0dfd7d5d20bb6dd6a1af29b380825a223a0761427ef67d9638f38f16a895ee1dac58e65e6308a0ce9f7a46ba34fa14e9cb729d1a36ea88140f07629e1c67187790c08d5d18779c6e4e7b211835c0aa550bd6773b3f5a3426cc17bfa8765c05dae6da130183946f2479c42f7afb5c85859722b81acd27af80921c292c942343b23b8e62396af15903c6a25c6e0365b216707881e90618c51557a9c5f93edcf6a0ab5a73fd4f8cda64619acb4c1fe899311ae440204c7d0faa8279615ca41bc012df75e91a972f08081688c1b64c38332ac9ab679a96b6bac9edb3eafae4eecdea451299bef8e8ec07409bc4c68e73f950cf3f91d5dc5bb39872dc314542384d25347551b6c501c9546ff3b5913ce82cec6ed6d1adba4854c701527bef7413489206825d75647fd07bff0ec47ce664f97f801c66f95332bde6158b0c7647923fc30c01abf5b6ac8a350f3d289a1d29aa2fb8fcd8eba0f6b8df45cc978f26df72ec4b7f511bd7a04c7b7c2346ad802631e6d657d355ba330222b542bd7257578f147320341fc7242b00f8b0471b1419e59f04ecb75769030648115c7db547fe96fce82a1c06a7cad9f08f0bad4c92524e913790a6a272a68ee461ca605b3079733c0e6dd109869c258cf8bc7443f9b1380f6c07f50a1bf66175c2083066773e9a87d505165bc25e2059f8c7a411f415673e3cb26cae26c5320170ce2bb18de26f3a6e832b1bb1e06762f6e2682e33227fb904199c7f3c03f006f931b9f9c8e084dbaa0bd1cb9fd5befbd39344149f8da59f69275e945fc4bd2c40bc774076cbc958eaaa21364ae8ebaa663bd368370c24f1586ec1c7a0495c0459fa8f7106107a47433eab1a7a405d0e74450769b49d813d821cded6962f6efda363256675dc0cdda50c6f0f910df908f942f69e6a0ca0fcc0bc2ed40c64e3f7fbf7d00586835336415051640f84b525934abb94e2d323917199359a4b63e65c10ee2c9e0e0001dd7d99ceb10847ea69c597ff8ab35454ea0d452232f7ff12c9e8e90b613f0ea86f1df13b56de9fc75569adc60d996b982f9a59c545c1917644294a35b96550a0d627ceddaf3a4118900f7d327ac5685a6d7813f35766683540e392fe49dda916e05d01cfd631e41f1948af68d97529ff8e165d4a66ed17673f0d353fadef33a4d169f1330b03e5ca228b33aa610455e65060469a5446652c2edcec20b0d9fdceb4070208cd50185faf0e3185448e8367a4d2d76c182c89b43aab08882f9fc3a63bc5507f3d189a2cb4a5eed5388c66d3c87697563c491ae8c8d945aae86656fff1880b428dbf460c0e3fde87e21bb726f739dea4754b1875f375361c323cc525da979d435902c9594eb454f90ec5b4d291524515c712124b639faf23f46e98e27d4418d5bfa49c587f060aacc728f25b40abd6ed28b995bd17bfcef5ca022f07a64881c47059d2c3ba41ee6299e91c00bf9d24f41cb103910924c2bc4852b414aa7c6d88e39d8baa7b1f76c0942990610be593db35a4d70c22ca648c6316e99bbb125e63df2d3d7d5851a20fdc3ecb13092eb49b6b6b23c0ef02c8240a0eb0cbcb30aeb704652b0f1e54e77aab4b3feebca94e4bdb73cbb4ed0a1fb34ce59a2816997d23f097b84a30b746c05b12411396185b39f82b4e51f157100d7ea04c96e6282211d6c366755ac599847308ed1c674f9776ea0c07090923560b6d4a5f97cb7ca8e622366aa99ca3809763d1b52767e33e743526562cae1f4c949e66fb518a115c7928b26454a54fd40dbeb704361438f850a8f4397fb6778ee2c93100f5157b72184297318b00e18fe29d845ef6f9b1f8d8ed4b85123b44981a459cdd842c47be87c0a0afbdcdf0c887561236a0e07de2fe42d8c5a0099fa2bd375595eac6e6395744295e7dd6cc995f1f0050e4475e1b06b9f96de2049b875ffa2301660bd664429899d07513f74b78002305d96bb40aa5167adfe7cf7d89af7f784c1b6c9b41b004ca2342d828890e8b15ceed86c32f4e22f828d4f8ef98150a10079e3fbeb003d3af3613ec2a68ddadcbb476f3f500d5b1927f4e516b67086e5453a8a110b52b99a840718a34b74d01a33ce7914e54fb936c31ca439fdee8f320af86e5407a51e8dbdbf40feffa36fff780a5e4c703b410295293c567f595f9774cde4a321206d20bfc79204d1ca8f1c1e421f4404c03fd0e4dc2402ab46dc4cc7ad43b5b5a678b443bdfae75c3d230959be76305bb477b09ea3490f19d3e5cd6137bfb967067d683d5d0acd6e616b2c388f7e21933a024611b4776a65d991cbde49cef4ecba7d16fafd59e1ff43f3f41726fb6e8ae730dc724db1b6c6bf8bcd2597dd4112dcb6c338f24ecc01e6346e52ea4ecc28fc578f1e59b5156a45fc382ef1658540fea0fce5283451b0a746bb8a7e145526deff991858324ccf4b2b411f96190036ea67026ad9c066507706986bb8b7d1fcca80af9a2d984dd1949665f9dfbf6fedbc89f1772b61463b0a7c4879fa732f90b81f83c2da64ba68e5f741c19df0563d03bfedc83dd38756b96153d8fce08eaa69c714e8e3a0a20b81b13224167f7c2673cbf72b5e3c0a979c804473aa80ba745ecece64e66c5013ddeed8e0b0d9e63fb20c89b857649c14a516629e4ea014a0b4ddb63837197b0c3d2844f787020a6745c190a78485fc18f8afa4f7943581d6f1970ec02afb45cea84a153f10a6ebac8e6db668b3b686d51a0b09c9f82435a564d89fd7df98f3ed7394a98e66d063ff979c388a0571d82de4f48fe6820efd2855869ed07b851e952bc399181c6da7ad1a9c16304570ab670e91a9ccf94ef14e7242cd1d0a2f64c42fe08fb550fc15d6c108afbf09295cbca03ea9d0ced64583a23f63c3c23033c29c7784548833659446f0501c9219dd9ba019cce10cda00ef8e7dd7862900941305233cfbe50e3b8ce0e6818c5d9ade5b7abe722825ce8cb7118738480ea806380d6b49a6c0d7e13ad94941462ff2bb3afe9a3b958b116c8b17361aea6486b7f109121b097cef6dfbf921a657efd0cd120cf40d859f2ea90384d77b6fbe1c0f688de3be204eb69c7b735056c015f32e3b0caef576f48ec07b720702310ae8ab3b3d99137784c9c763d38837ac0ed1941615e2092557148511aa7c755a12c03c223f9f60808976a1181f70646e20c659ead96275e2fbe431f7a30b0012bf04dd054d1a2cf3345a76456fcbc2d5ad7288fab05adff7edfe0ab03b0777cf3027e2dfac124b5f323008c598cc0383f82b05f2642336804a922f17d24e89690d20afcdd53806168d7c5dd855fc9adbf24ca7101a85b30726ee7f756593624b6dc5d294f984673c60b5e7b10cd7edfe12df8679f02fc2a9748a8fcc60fb1af6ff9f9adb130d30138250d2279b250d3219f6d8c2cf2cc8430ed1466d347f3a36a763e41967a9880384a93942a53e1d28f69f321489a8cf3e1b9671b8670c2c21f20f6ce245da9a5be2628f25625df2b642ad7237df0de3059637435fa1671e6d2a1ea4f791829f5745b11aef64804e07a56117b271b490c25ac163f232f127c8f85e784cb7ed11d05ccb327d226cf8d5896626facc7e6cb98bdcfa7599d853264d0b3a4bc28b1fce65bb2d231506f90b259df26e5364aaa34be7f9e953ef54b385e08173ea834319fa45ac7b3c64a677a28e83ac5d943e8ad65b5e6ee06eb6bf6a4d9325d0215a6388a048b5b31e542c1e9bdc885cd71367721c352bc8cd838ca5ff9b41cf6586rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.15-150300.10.118.1.src.rpmpython3-docpython3-docpython3-doc(ppc-64)python36-doc    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3iOiii[@i@i}iZ@iq@i@i+@i+@io@iCi@i h@he@hJ@hH@h/gw@g@g5@g4g6f5fff@fIf@fz@fuk@f:f*Ee؈e4@d@dVA@dRLd>@d@c>@ccv"@ck@c[@c$e@cbb@b@a@a*@a*@aaaayay?@af@a]aLl@aLl@aA@a'@aj@```t`[``@``/@``U_T__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;mcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comschwab@suse.demcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.deqydwhotmail@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commeissner@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commmachova@suse.commcepl@suse.commcepl@suse.commcalabkova@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comtchvatal@suse.comschwab@suse.demcalabkova@suse.commcalabkova@suse.commcalabkova@suse.commcepl@suse.commcalabkova@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- Add CVE-2026-6019-Morsel-js_output.patch protects against HTML injection by Base64-encoding cookie values embedded in JS (bsc#1262654, CVE-2026-6019, gh#python/cpython#90309).- Add CVE-2026-1502-reject-CRLF-HTTP-tunnel.patch which rejects CR/LF in HTTP tunnel request headers (bsc#1261969, CVE-2026-1502, gh#python/cpython#146211).- Add CVE-2026-4786-webbrowser-open-action.patch, which fixes webbrowser %action substitution bypass of dash-prefix check (bsc#1262319, CVE-2026-4786, gh#python/cpython#148169).- Add CVE-2026-6100-use-after-free-decompression.patch preventing dangling pointer which can end in the use-after-free error (CVE-2026-6100, bsc#1262098, gh#python/cpython#148395).- Fix calling of sphinx build with non-standard Python interpreter (including new patch sphinx-set-PYTHON.patch).- Add CVE-2026-3446-base64-padding.patch preventing ignoring excess Base64 data after the first padded quad (bsc#1261970, CVE-2026-3446, gh#python/cpython#145264).- Add CVE-2026-3479-pkgutil_get_data.patch pkgutil.get_data() has the same security model as open(). The documented limitations ensure compatibility with non-filesystem loaders; Python doesn't check that. (bsc#1259989, CVE-2026-3479, gh#python/cpython#146121).- Add CVE-2026-4519-webbrowser-open-dashes.patch to reject leading dashes in webbrowser URLs (bsc#1260026, CVE-2026-4519, gh#python/cpython#143930).- Add CVE-2025-13462-tarinfo-header-parse.patch which skips TarInfo DIRTYPE normalization during GNU long name handling (bsc#1259611, CVE-2025-13462).- Add CVE-2026-4224-expat-unbound-C-recursion.patch avoiding unbound C recursion in conv_content_model in pyexpat.c (bsc#1259735, CVE-2026-4224).- Add CVE-2026-3644-cookies-Morsel-update-II.patch to reject control characters in http.cookies.Morsel.update() and http.cookies.BaseCookie.js_output (bsc#1259734, CVE-2026-3644).- CVE-2025-11468: preserving parens when folding comments in email headers (bsc#1257029, gh#python/cpython#143935). CVE-2025-11468-email-hdr-fold-comment.patch - CVE-2026-0672: rejects control characters in http cookies. (bsc#1257031, gh#python/cpython#143919) CVE-2026-0672-http-hdr-inject-cookie-Morsel.patch - CVE-2026-0865: rejecting control characters in wsgiref.headers.Headers, which could be abused for injecting false HTTP headers. (bsc#1257042, gh#python/cpython#143916) CVE-2026-0865-wsgiref-ctrl-chars.patch - CVE-2025-15366: basically the same as the previous patch for IMAP protocol. (bsc#1257044, gh#python/cpython#143921) CVE-2025-15366-imap-ctrl-chars.patch - CVE-2025-15282: basically the same as the previous patch for urllib library. (bsc#1257046, gh#python/cpython#143925) CVE-2025-15282-urllib-ctrl-chars.patch - CVE-2025-15367: basically the same as the previous patch for poplib library. (bsc#1257041, gh#python/cpython#143923) CVE-2025-15367-poplib-ctrl-chars.patch - Modify CVE-2024-6923-email-hdr-inject.patch to also include patch for bsc#1257181 (CVE-2026-1299).- Add CVE-2025-13836-http-resp-cont-len.patch (bsc#1254400, CVE-2025-13836) to prevent reading an HTTP response from a server, if no read amount is specified, with using Content-Length per default as the length. - Add CVE-2025-12084-minidom-quad-search.patch prevent quadratic behavior in node ID cache clearing (CVE-2025-12084, bsc#1254997). - Add CVE-2025-13837-plistlib-mailicious-length.patch protect against OOM when loading malicious content (CVE-2025-13837, bsc#1254401).- Add CVE-2025-6075-expandvars-perf-degrad.patch avoid simple quadratic complexity vulnerabilities of os.path.expandvars() (CVE-2025-6075, bsc#1252974). - Skip test_curses on ppc64le (gh#python/cpython#141534)- Add CVE-2025-8291-consistency-zip64.patch which checks consistency of the zip64 end of central directory record, and preventing obfuscation of the payload, i.e., you scanning for malicious content in a ZIP file with one ZIP parser (let's say a Rust one) then unpack it in production with another (e.g., the Python one) and get malicious content that the other parser did not see (CVE-2025-8291, bsc#1251305) - Readjust patches while synchronizing between openSUSE and SLE trees: - F00251-change-user-install-location.patch - doc-py38-to-py36.patch - gh126985-mv-pyvenv.cfg2getpath.patch- Add CVE-2025-8194-tarfile-no-neg-offsets.patch which now validates archives to ensure member offsets are non-negative (gh#python/cpython#130577, CVE-2025-8194, bsc#1247249).- Add CVE-2025-4435-normalize-lnk-trgts-tarfile.patch Security fixes for CVE-2025-4517, CVE-2025-4330, CVE-2025-4138, CVE-2024-12718, CVE-2025-4435 on tarfile (bsc#1244032, bsc#1244061, bsc#1244059, bsc#1244060, bsc#1244056). The backported fixes do not contain changes for ntpath.py and related tests, because the support for symlinks and junctions were added later in Python 3.9, and it does not make sense to backport them to 3.6 here. The patch is contains the following changes: - python@42deeab fixes symlink handling for tarfile.data_filter - python@9d2c2a8 fixes handling of existing files/symlinks in tarfile - python@00af979 adds a new "strict" argument to realpath() - python@dd8f187 fixes mulriple CVE fixes in the tarfile module - downstream only fixes that makes the changes work and compatible with Python 3.6 - Add CVE-2025-6069-quad-complex-HTMLParser.patch to avoid worst case quadratic complexity when processing certain crafted malformed inputs with HTMLParser (CVE-2025-6069, bsc#1244705).- Add python36-* provides/obsoletes to enable SLE-12 -> SLE-15 migration, bsc#1233012- Add ipaddress-update-pr60.patch from gh#phihag/ipaddress!60 to update vendored ipaddress module to 3.8 equivalent - Add gh-128840_parse-IPv6-with-emb-IPv4.patch to limit buffer size for IPv6 address parsing (gh#python/cpython#128840, bsc#1244401). - Update CVE-2025-4516-DecodeError-handler.patch not to break _PyBytes_DecodeEscape signature.- Add CVE-2025-4516-DecodeError-handler.patch fixing CVE-2025-4516 (bsc#1243273) blocking DecodeError handling vulnerability, which could lead to DoS.- Update CVE-2024-11168-validation-IPv6-addrs.patch according to the Debian version (gh#python/cpython#103848#issuecomment-2708135083).- Add CVE-2025-0938-sq-brackets-domain-names.patch which disallows square brackets ([ and ]) in domain names for parsed URLs (bsc#1236705, CVE-2025-0938, gh#python/cpython#105704)- Remove -IVendor/ from python-config boo#1231795 - Fix CVE-2024-11168-validation-IPv6-addrs.patch - PGO run of build freezes with parallel processing, switch to -j1- Add CVE-2024-11168-validation-IPv6-addrs.patch fixing bsc#1233307 (CVE-2024-11168, gh#python/cpython#103848): Improper validation of IPv6 and IPvFuture addresses.- Add CVE-2024-9287-venv_path_unquoted.patch to properly quote path names provided when creating a virtual environment (bsc#1232241, CVE-2024-9287)- Drop .pyc files from docdir for reproducible builds (bsc#1230906).- Add CVE-2024-6232-ReDOS-backtrack-tarfile.patch prevent ReDos via excessive backtracking while parsing header values (bsc#1230227, CVE-2024-6232).- Add CVE-2024-5642-switch-off-NPN.patch switching off the NPN support eliminating bsc#1227233 (CVE-2024-5642).- Add CVE-2024-6923-email-hdr-inject.patch to prevent email header injection due to unquoted newlines (bsc#1228780, CVE-2024-6923). - Add CVE-2024-7592-quad-complex-cookies.patch fixing quadratic complexity in parsing cookies with backslashes (bsc#1229596, CVE-2024-7592) - %{profileopt} variable is set according to the variable %{do_profiling} (bsc#1227999)- Remove %suse_update_desktop_file macro as it is not useful any more.- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- Add CVE-2024-4032-private-IP-addrs.patch to fix bsc#1226448 (CVE-2024-4032) rearranging definition of private v global IP addresses.- Add CVE-2024-0397-memrace_ssl.SSLContext_cert_store.patch fixing bsc#1226447 (CVE-2024-0397) by removing memory race condition in ssl.SSLContext certificate store methods.- Add bpo38361-syslog-no-slash-ident.patch (bsc#1222109, gh#python/cpython!16557) fixes syslog making default "ident" from sys.argv[0]. - Update CVE-2023-52425-libexpat-2.6.0-backport.patch so that it uses features sniffing, not just comparing version number (bsc#1220664, bsc#1219559, bsc#1221563, bsc#1222075). - Remove support-expat-CVE-2022-25236-patched.patch, which was the previous name of this patch. - Add CVE-2023-52425-remove-reparse_deferral-tests.patch skipping failing tests. - Refresh patches: - CVE-2023-27043-email-parsing-errors.patch - fix_configure_rst.patch - skip_if_buildbot-extend.patch- bsc#1221854 (CVE-2024-0450) Add CVE-2024-0450-zipfile-avoid-quoted-overlap-zipbomb.patch detecting the vulnerability of the "quoted-overlap" zipbomb (from gh#python/cpython!110016). - Add bh42369-thread-safety-zipfile-SharedFile.patch (from gh#python/cpython!26974) required by the previous patch. - Add expat-260-test_xml_etree-reparse-deferral.patch to make the interpreter work with patched libexpat in our distros. - Move all patches from locally sourced to the branch opensuse-3.6 branch at GitHub repo, and move all metadata to commits themselves (readable in the headers of each patch). - Add bpo-41675-modernize-siginterrupt.patch to make Python build cleanly even on more recent SPs of SLE-15 (gh#python/cpython#85841). - Remove patches: - bpo36263-Fix_hashlib_scrypt.patch - fix against bug in OpenSSL fixed in 1.1.1c (gh#openssl/openssl!8483), so this patch is redundant on all SUSE-supported distros - python-3.3.0b1-test-posix_fadvise.patch - protection against the kernel issues which has been fixed in gh#torvalds/linux@3d3727cdb07f, which has been included in all our kernels more recent than SLE-11. - python-3.3.3-skip-distutils-test_sysconfig_module.patch - skips a test, which should be relevant only for testing on Mac OS X systems with universal builds. I have no valid record, that this test would be ever problematic on Linux. - bpo-36576-skip_tests_for_OpenSSL-111.patch, which was included already in Python 3.5.- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory. - Merge together bpo-36576-skip_tests_for_OpenSSL-111.patch into skip_SSL_tests.patch, and make them include all conditionals.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- Add CVE-2023-40217-avoid-ssl-pre-close.patch fixing gh#python/cpython#108310, backport from upstream patch gh#python/cpython#108315 (bsc#1214692, CVE-2023-40217)- Add 99366-patch.dict-can-decorate-async.patch fixing gh#python/cpython#98086 (backport from Python 3.10 patch in gh#python/cpython!99366), fixing bsc#1211158.- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Use python3 modules to build the documentation.- Add bpo-44434-libgcc_s-for-pthread_cancel.patch which eliminates unnecessary and dangerous calls to PyThread_exit_thread() (bsc#1203355).- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Add bpo27321-email-no-replace-header.patch to stop email.generator.py from replacing a non-existent header (bsc#1208443, gh#python/cpython#71508).- Add bsc1188607-pythreadstate_clear-decref.patch to fix crash in the garbage collection (bsc#1188607).- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add CVE-2022-37454-sha3-buffer-overflow.patch to fix bsc#1204577 (CVE-2022-37454, gh#python/cpython#98517) buffer overflow in hashlib.sha3_* implementations (originally from the XKCP library).- Add CVE-2020-10735-DoS-no-limit-int-size.patch to fix CVE-2020-10735 (bsc#1203125) to limit amount of digits converting text to int and vice vera (potential for DoS). Originally by Victor Stinner of Red Hat.- Add patch CVE-2021-28861-double-slash-path.patch: * http.server: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. (bsc#1202624, CVE-2021-28861)- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module. - Rename support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch to unify the patch with other packages. - Add bpo-46623-skip-zlib-s390x.patch skipping two failing tests on s390x.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572).- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- Rename 22198.patch into more descriptive remove-sphinx40-warning.patch.- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use OpenSSL 1.1 on platforms which don't have it.- Remove shebangs from from python-base libraries in _libdir (bsc#1193179, bsc#1192249). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- build against openssl 1.1 as it is incompatible with openssl 3.0+ (bsc#1190566)- 0001-allow-for-reproducible-builds-of-python-packages.patch: ignore permission error when changing the mtime of the source file in presence of SOURCE_DATE_EPOCH- The previous construct works only on the current Factory, not in SLE.- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Due to conflicting demands of bsc#1183858 and platforms where Python 3.6 is only in interpreter+pip set we have to make complicated ugly construct about Sphinx BR.- Make python36 primary interpreter on SLE-15- Make build working even on older SLEs.- Update to 3.6.15: - bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection. Library - bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee. Tests - bpo-38965: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in faulthandler._stack_overflow() to prevent tail call optimization on any compiler, rather than relying on compiler specific pragma. - bpo-40791: Make compare_digest more constant-time (bsc#1214691, CVE-2022-48566). - Remove upstreamed patches: - faulthandler_stack_overflow_on_GCC10.patch- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.6.14: * Security - bpo-44022 (bsc#1189241, CVE-2021-3737): mod:http.client now avoids infinitely reading potential HTTP headers after a 100 Continue status response from the server. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-42988 (CVE-2021-3426, bsc#1183374): Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo-43075 (CVE-2021-3733, bsc#1189287): Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - Upstreamed patches were removed: - CVE-2021-3426-inf-disclosure-pydoc-getfile.patch - CVE-2021-3733-ReDoS-urllib-AbstractBasicAuthHandler.patch - Refreshed patches: - python3-sorted_tar.patch - riscv64-ctypes.patch- Rebuild to get new headers, avoid building in support for stropts.h (bsc#1187338).- Use versioned python-Sphinx to avoid dependency on other version of Python (bsc#1183858).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- add 22198.patch to build with Sphinx 4- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Add CVE-2021-3426-inf-disclosure-pydoc-getfile.patch to remove getfile feature from pydoc, which is a security nightmare (among other things, CVE-2021-3426, allows disclosure of any file on the system; bsc#1183374, bpo#42988).Update to 3.6.13, final release of 3.6 branch: * Security - bpo#42967 (bsc#1182379, CVE-2021-23336): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. - bpo#42938 (bsc#1181126, CVE-2021-3177): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. - bpo#42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - bpo#42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - bpo#40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. * Core and Builtins - bpo#35560: Fix an assertion error in format() in debug build for floating point formatting with “n” format, zero padding and small width. Release build is not impacted. Patch by Karthikeyan Singaravelan. * Library - bpo#42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). * Tests - bpo#42794: Update test_nntplib to use offical group name of news.aioe.org for testing. Patch by Dong-hee Na. - bpo#41944: Tests for CJK codecs no longer call eval() on content received via HTTP. - Patches removed, because they were included in the upstream tarball: - CVE-2020-27619-no-eval-http-content.patch - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686).- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels (bsc#1179756). - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch, CRLF_injection_via_host_part.patch, and CVE-2019-18348-CRLF_injection_via_host_part.patch.- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674) - Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised. (CVE-2019-9636) Upstream gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillapython3-docpython36-docibs-power9-17 1777466088  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !3.6.153.6.15-150300.10.118.13.6.15-150300.10.118.13.6.15 3.6.153.6.15      python3.6MiscACKSHISTORYNEWSPortingREADMEREADME.coverityREADME.valgrindSpecialBuilds.txtcoverity_model.cgdbinitindent.propython-config.inpython-config.sh.inpython-wing3.wprpython-wing4.wprpython-wing5.wprpython.manpython.pc.insvnmap.txtvalgrind-python.suppvgrindefshtml_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtulip_coro.pngturtle-star.pngwin_installer.png_sourcesabout.rst.txtbugs.rst.txtc-apiabstract.rst.txtallocation.rst.txtapiabiversion.rst.txtarg.rst.txtbool.rst.txtbuffer.rst.txtbytearray.rst.txtbytes.rst.txtcapsule.rst.txtcell.rst.txtcode.rst.txtcodec.rst.txtcomplex.rst.txtconcrete.rst.txtconversion.rst.txtcoro.rst.txtdatetime.rst.txtdescriptor.rst.txtdict.rst.txtexceptions.rst.txtfile.rst.txtfloat.rst.txtfunction.rst.txtgcsupport.rst.txtgen.rst.txtimport.rst.txtindex.rst.txtinit.rst.txtintro.rst.txtiter.rst.txtiterator.rst.txtlist.rst.txtlong.rst.txtmapping.rst.txtmarshal.rst.txtmemory.rst.txtmemoryview.rst.txtmethod.rst.txtmodule.rst.txtnone.rst.txtnumber.rst.txtobjbuffer.rst.txtobject.rst.txtobjimpl.rst.txtrefcounting.rst.txtreflection.rst.txtsequence.rst.txtset.rst.txtslice.rst.txtstable.rst.txtstructures.rst.txtsys.rst.txttuple.rst.txttype.rst.txttypeobj.rst.txtunicode.rst.txtutilities.rst.txtveryhigh.rst.txtweakref.rst.txtcontents.rst.txtcopyright.rst.txtdistributingindex.rst.txtdistutilsapiref.rst.txtbuiltdist.rst.txtcommandref.rst.txtconfigfile.rst.txtexamples.rst.txtextending.rst.txtindex.rst.txtintroduction.rst.txtpackageindex.rst.txtsetupscript.rst.txtsourcedist.rst.txtuploading.rst.txtextendingbuilding.rst.txtembedding.rst.txtextending.rst.txtindex.rst.txtnewtypes.rst.txtnewtypes_tutorial.rst.txtwindows.rst.txtfaqdesign.rst.txtextending.rst.txtgeneral.rst.txtgui.rst.txtindex.rst.txtinstalled.rst.txtlibrary.rst.txtprogramming.rst.txtwindows.rst.txtglossary.rst.txthowtoargparse.rst.txtclinic.rst.txtcporting.rst.txtcurses.rst.txtdescriptor.rst.txtfunctional.rst.txtindex.rst.txtinstrumentation.rst.txtipaddress.rst.txtlogging-cookbook.rst.txtlogging.rst.txtpyporting.rst.txtregex.rst.txtsockets.rst.txtsorting.rst.txtunicode.rst.txturllib2.rst.txtinstallindex.rst.txtinstallingindex.rst.txtlibrary2to3.rst.txt__future__.rst.txt__main__.rst.txt_dummy_thread.rst.txt_thread.rst.txtabc.rst.txtaifc.rst.txtallos.rst.txtarchiving.rst.txtargparse.rst.txtarray.rst.txtast.rst.txtasynchat.rst.txtasyncio-dev.rst.txtasyncio-eventloop.rst.txtasyncio-eventloops.rst.txtasyncio-protocol.rst.txtasyncio-queue.rst.txtasyncio-stream.rst.txtasyncio-subprocess.rst.txtasyncio-sync.rst.txtasyncio-task.rst.txtasyncio.rst.txtasyncore.rst.txtatexit.rst.txtaudioop.rst.txtbase64.rst.txtbdb.rst.txtbinary.rst.txtbinascii.rst.txtbinhex.rst.txtbisect.rst.txtbuiltins.rst.txtbz2.rst.txtcalendar.rst.txtcgi.rst.txtcgitb.rst.txtchunk.rst.txtcmath.rst.txtcmd.rst.txtcode.rst.txtcodecs.rst.txtcodeop.rst.txtcollections.abc.rst.txtcollections.rst.txtcolorsys.rst.txtcompileall.rst.txtconcurrency.rst.txtconcurrent.futures.rst.txtconcurrent.rst.txtconfigparser.rst.txtconstants.rst.txtcontextlib.rst.txtcopy.rst.txtcopyreg.rst.txtcrypt.rst.txtcrypto.rst.txtcsv.rst.txtctypes.rst.txtcurses.ascii.rst.txtcurses.panel.rst.txtcurses.rst.txtcustominterp.rst.txtdatatypes.rst.txtdatetime.rst.txtdbm.rst.txtdebug.rst.txtdecimal.rst.txtdevelopment.rst.txtdifflib.rst.txtdis.rst.txtdistribution.rst.txtdistutils.rst.txtdoctest.rst.txtdummy_threading.rst.txtemail.charset.rst.txtemail.compat32-message.rst.txtemail.contentmanager.rst.txtemail.encoders.rst.txtemail.errors.rst.txtemail.examples.rst.txtemail.generator.rst.txtemail.header.rst.txtemail.headerregistry.rst.txtemail.iterators.rst.txtemail.message.rst.txtemail.mime.rst.txtemail.parser.rst.txtemail.policy.rst.txtemail.rst.txtemail.utils.rst.txtensurepip.rst.txtenum.rst.txterrno.rst.txtexceptions.rst.txtfaulthandler.rst.txtfcntl.rst.txtfilecmp.rst.txtfileformats.rst.txtfileinput.rst.txtfilesys.rst.txtfnmatch.rst.txtformatter.rst.txtfpectl.rst.txtfractions.rst.txtframeworks.rst.txtftplib.rst.txtfunctional.rst.txtfunctions.rst.txtfunctools.rst.txtgc.rst.txtgetopt.rst.txtgetpass.rst.txtgettext.rst.txtglob.rst.txtgrp.rst.txtgzip.rst.txthashlib.rst.txtheapq.rst.txthmac.rst.txthtml.entities.rst.txthtml.parser.rst.txthtml.rst.txthttp.client.rst.txthttp.cookiejar.rst.txthttp.cookies.rst.txthttp.rst.txthttp.server.rst.txti18n.rst.txtidle.rst.txtimaplib.rst.txtimghdr.rst.txtimp.rst.txtimportlib.rst.txtindex.rst.txtinspect.rst.txtinternet.rst.txtintro.rst.txtio.rst.txtipaddress.rst.txtipc.rst.txtitertools.rst.txtjson.rst.txtkeyword.rst.txtlanguage.rst.txtlinecache.rst.txtlocale.rst.txtlogging.config.rst.txtlogging.handlers.rst.txtlogging.rst.txtlzma.rst.txtmacpath.rst.txtmailbox.rst.txtmailcap.rst.txtmarkup.rst.txtmarshal.rst.txtmath.rst.txtmimetypes.rst.txtmisc.rst.txtmm.rst.txtmmap.rst.txtmodulefinder.rst.txtmodules.rst.txtmsilib.rst.txtmsvcrt.rst.txtmultiprocessing.rst.txtnetdata.rst.txtnetrc.rst.txtnis.rst.txtnntplib.rst.txtnumbers.rst.txtnumeric.rst.txtoperator.rst.txtoptparse.rst.txtos.path.rst.txtos.rst.txtossaudiodev.rst.txtothergui.rst.txtparser.rst.txtpathlib.rst.txtpdb.rst.txtpersistence.rst.txtpickle.rst.txtpickletools.rst.txtpipes.rst.txtpkgutil.rst.txtplatform.rst.txtplistlib.rst.txtpoplib.rst.txtposix.rst.txtpprint.rst.txtprofile.rst.txtpty.rst.txtpwd.rst.txtpy_compile.rst.txtpyclbr.rst.txtpydoc.rst.txtpyexpat.rst.txtpython.rst.txtqueue.rst.txtquopri.rst.txtrandom.rst.txtre.rst.txtreadline.rst.txtreprlib.rst.txtresource.rst.txtrlcompleter.rst.txtrunpy.rst.txtsched.rst.txtsecrets.rst.txtselect.rst.txtselectors.rst.txtshelve.rst.txtshlex.rst.txtshutil.rst.txtsignal.rst.txtsite.rst.txtsmtpd.rst.txtsmtplib.rst.txtsndhdr.rst.txtsocket.rst.txtsocketserver.rst.txtspwd.rst.txtsqlite3.rst.txtssl.rst.txtstat.rst.txtstatistics.rst.txtstdtypes.rst.txtstring.rst.txtstringprep.rst.txtstruct.rst.txtsubprocess.rst.txtsunau.rst.txtsuperseded.rst.txtsymbol.rst.txtsymtable.rst.txtsys.rst.txtsysconfig.rst.txtsyslog.rst.txttabnanny.rst.txttarfile.rst.txttelnetlib.rst.txttempfile.rst.txttermios.rst.txttest.rst.txttext.rst.txttextwrap.rst.txtthreading.rst.txttime.rst.txttimeit.rst.txttk.rst.txttkinter.rst.txttkinter.scrolledtext.rst.txttkinter.tix.rst.txttkinter.ttk.rst.txttoken.rst.txttokenize.rst.txttrace.rst.txttraceback.rst.txttracemalloc.rst.txttty.rst.txtturtle.rst.txttypes.rst.txttyping.rst.txtundoc.rst.txtunicodedata.rst.txtunittest.mock-examples.rst.txtunittest.mock.rst.txtunittest.rst.txtunix.rst.txturllib.error.rst.txturllib.parse.rst.txturllib.request.rst.txturllib.robotparser.rst.txturllib.rst.txtuu.rst.txtuuid.rst.txtvenv.rst.txtwarnings.rst.txtwave.rst.txtweakref.rst.txtwebbrowser.rst.txtwindows.rst.txtwinreg.rst.txtwinsound.rst.txtwsgiref.rst.txtxdrlib.rst.txtxml.dom.minidom.rst.txtxml.dom.pulldom.rst.txtxml.dom.rst.txtxml.etree.elementtree.rst.txtxml.rst.txtxml.sax.handler.rst.txtxml.sax.reader.rst.txtxml.sax.rst.txtxml.sax.utils.rst.txtxmlrpc.client.rst.txtxmlrpc.rst.txtxmlrpc.server.rst.txtzipapp.rst.txtzipfile.rst.txtzipimport.rst.txtzlib.rst.txtlicense.rst.txtreferencecompound_stmts.rst.txtdatamodel.rst.txtexecutionmodel.rst.txtexpressions.rst.txtgrammar.rst.txtimport.rst.txtindex.rst.txtintroduction.rst.txtlexical_analysis.rst.txtsimple_stmts.rst.txttoplevel_components.rst.txttutorialappendix.rst.txtappetite.rst.txtclasses.rst.txtcontrolflow.rst.txtdatastructures.rst.txterrors.rst.txtfloatingpoint.rst.txtindex.rst.txtinputoutput.rst.txtinteractive.rst.txtinterpreter.rst.txtintroduction.rst.txtmodules.rst.txtstdlib.rst.txtstdlib2.rst.txtvenv.rst.txtwhatnow.rst.txtusingcmdline.rst.txtindex.rst.txtmac.rst.txtunix.rst.txtwindows.rst.txtwhatsnew2.0.rst.txt2.1.rst.txt2.2.rst.txt2.3.rst.txt2.4.rst.txt2.5.rst.txt2.6.rst.txt2.7.rst.txt3.0.rst.txt3.1.rst.txt3.2.rst.txt3.3.rst.txt3.4.rst.txt3.5.rst.txt3.6.rst.txtchangelog.rst.txtindex.rst.txt_staticajax-loader.gifbasic.cssclassic.csscomment-bright.pngcomment-close.pngcomment.pngcopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsdown-pressed.pngdown.pngfile.pngjquery-3.2.1.jsjquery.jslanguage_data.jsminus.pngopensearch.xmlplus.pngpy.pngpydoctheme.csspygments.csssearchtools.jssidebar.jsswitchers.jsunderscore-1.3.1.jsunderscore.jsup-pressed.pngup.pngwebsupport.jsabout.htmlbugs.htmlc-apiabstract.htmlallocation.htmlapiabiversion.htmlarg.htmlbool.htmlbuffer.htmlbytearray.htmlbytes.htmlcapsule.htmlcell.htmlcode.htmlcodec.htmlcomplex.htmlconcrete.htmlconversion.htmlcoro.htmldatetime.htmldescriptor.htmldict.htmlexceptions.htmlfile.htmlfloat.htmlfunction.htmlgcsupport.htmlgen.htmlimport.htmlindex.htmlinit.htmlintro.htmliter.htmliterator.htmllist.htmllong.htmlmapping.htmlmarshal.htmlmemory.htmlmemoryview.htmlmethod.htmlmodule.htmlnone.htmlnumber.htmlobjbuffer.htmlobject.htmlobjimpl.htmlrefcounting.htmlreflection.htmlsequence.htmlset.htmlslice.htmlstable.htmlstructures.htmlsys.htmltuple.htmltype.htmltypeobj.htmlunicode.htmlutilities.htmlveryhigh.htmlweakref.htmlcontents.htmlcopyright.htmldistributingindex.htmldistutilsapiref.htmlbuiltdist.htmlcommandref.htmlconfigfile.htmlexamples.htmlextending.htmlindex.htmlintroduction.htmlpackageindex.htmlsetupscript.htmlsourcedist.htmluploading.htmldownload.htmlextendingbuilding.htmlembedding.htmlextending.htmlindex.htmlnewtypes.htmlnewtypes_tutorial.htmlwindows.htmlfaqdesign.htmlextending.htmlgeneral.htmlgui.htmlindex.htmlinstalled.htmllibrary.htmlprogramming.htmlwindows.htmlgenindex-A.htmlgenindex-B.htmlgenindex-C.htmlgenindex-D.htmlgenindex-E.htmlgenindex-F.htmlgenindex-G.htmlgenindex-H.htmlgenindex-I.htmlgenindex-J.htmlgenindex-K.htmlgenindex-L.htmlgenindex-M.htmlgenindex-N.htmlgenindex-O.htmlgenindex-P.htmlgenindex-Q.htmlgenindex-R.htmlgenindex-S.htmlgenindex-Symbols.htmlgenindex-T.htmlgenindex-U.htmlgenindex-V.htmlgenindex-W.htmlgenindex-X.htmlgenindex-Y.htmlgenindex-Z.htmlgenindex-_.htmlgenindex-all.htmlgenindex.htmlglossary.htmlhowtoargparse.htmlclinic.htmlcporting.htmlcurses.htmldescriptor.htmlfunctional.htmlindex.htmlinstrumentation.htmlipaddress.htmllogging-cookbook.htmllogging.htmlpyporting.htmlregex.htmlsockets.htmlsorting.htmlunicode.htmlurllib2.htmlindex.htmlinstallindex.htmlinstallingindex.htmllibrary2to3.html__future__.html__main__.html_dummy_thread.html_thread.htmlabc.htmlaifc.htmlallos.htmlarchiving.htmlargparse.htmlarray.htmlast.htmlasynchat.htmlasyncio-dev.htmlasyncio-eventloop.htmlasyncio-eventloops.htmlasyncio-protocol.htmlasyncio-queue.htmlasyncio-stream.htmlasyncio-subprocess.htmlasyncio-sync.htmlasyncio-task.htmlasyncio.htmlasyncore.htmlatexit.htmlaudioop.htmlbase64.htmlbdb.htmlbinary.htmlbinascii.htmlbinhex.htmlbisect.htmlbuiltins.htmlbz2.htmlcalendar.htmlcgi.htmlcgitb.htmlchunk.htmlcmath.htmlcmd.htmlcode.htmlcodecs.htmlcodeop.htmlcollections.abc.htmlcollections.htmlcolorsys.htmlcompileall.htmlconcurrency.htmlconcurrent.futures.htmlconcurrent.htmlconfigparser.htmlconstants.htmlcontextlib.htmlcopy.htmlcopyreg.htmlcrypt.htmlcrypto.htmlcsv.htmlctypes.htmlcurses.ascii.htmlcurses.htmlcurses.panel.htmlcustominterp.htmldatatypes.htmldatetime.htmldbm.htmldebug.htmldecimal.htmldevelopment.htmldifflib.htmldis.htmldistribution.htmldistutils.htmldoctest.htmldummy_threading.htmlemail.charset.htmlemail.compat32-message.htmlemail.contentmanager.htmlemail.encoders.htmlemail.errors.htmlemail.examples.htmlemail.generator.htmlemail.header.htmlemail.headerregistry.htmlemail.htmlemail.iterators.htmlemail.message.htmlemail.mime.htmlemail.parser.htmlemail.policy.htmlemail.utils.htmlensurepip.htmlenum.htmlerrno.htmlexceptions.htmlfaulthandler.htmlfcntl.htmlfilecmp.htmlfileformats.htmlfileinput.htmlfilesys.htmlfnmatch.htmlformatter.htmlfpectl.htmlfractions.htmlframeworks.htmlftplib.htmlfunctional.htmlfunctions.htmlfunctools.htmlgc.htmlgetopt.htmlgetpass.htmlgettext.htmlglob.htmlgrp.htmlgzip.htmlhashlib.htmlheapq.htmlhmac.htmlhtml.entities.htmlhtml.htmlhtml.parser.htmlhttp.client.htmlhttp.cookiejar.htmlhttp.cookies.htmlhttp.htmlhttp.server.htmli18n.htmlidle.htmlimaplib.htmlimghdr.htmlimp.htmlimportlib.htmlindex.htmlinspect.htmlinternet.htmlintro.htmlio.htmlipaddress.htmlipc.htmlitertools.htmljson.htmlkeyword.htmllanguage.htmllinecache.htmllocale.htmllogging.config.htmllogging.handlers.htmllogging.htmllzma.htmlmacpath.htmlmailbox.htmlmailcap.htmlmarkup.htmlmarshal.htmlmath.htmlmimetypes.htmlmisc.htmlmm.htmlmmap.htmlmodulefinder.htmlmodules.htmlmsilib.htmlmsvcrt.htmlmultiprocessing.htmlnetdata.htmlnetrc.htmlnis.htmlnntplib.htmlnumbers.htmlnumeric.htmloperator.htmloptparse.htmlos.htmlos.path.htmlossaudiodev.htmlothergui.htmlparser.htmlpathlib.htmlpdb.htmlpersistence.htmlpickle.htmlpickletools.htmlpipes.htmlpkgutil.htmlplatform.htmlplistlib.htmlpoplib.htmlposix.htmlpprint.htmlprofile.htmlpty.htmlpwd.htmlpy_compile.htmlpyclbr.htmlpydoc.htmlpyexpat.htmlpython.htmlqueue.htmlquopri.htmlrandom.htmlre.htmlreadline.htmlreprlib.htmlresource.htmlrlcompleter.htmlrunpy.htmlsched.htmlsecrets.htmlselect.htmlselectors.htmlshelve.htmlshlex.htmlshutil.htmlsignal.htmlsite.htmlsmtpd.htmlsmtplib.htmlsndhdr.htmlsocket.htmlsocketserver.htmlspwd.htmlsqlite3.htmlssl.htmlstat.htmlstatistics.htmlstdtypes.htmlstring.htmlstringprep.htmlstruct.htmlsubprocess.htmlsunau.htmlsuperseded.htmlsymbol.htmlsymtable.htmlsys.htmlsysconfig.htmlsyslog.htmltabnanny.htmltarfile.htmltelnetlib.htmltempfile.htmltermios.htmltest.htmltext.htmltextwrap.htmlthreading.htmltime.htmltimeit.htmltk.htmltkinter.htmltkinter.scrolledtext.htmltkinter.tix.htmltkinter.ttk.htmltoken.htmltokenize.htmltrace.htmltraceback.htmltracemalloc.htmltty.htmlturtle.htmltypes.htmltyping.htmlundoc.htmlunicodedata.htmlunittest.htmlunittest.mock-examples.htmlunittest.mock.htmlunix.htmlurllib.error.htmlurllib.htmlurllib.parse.htmlurllib.request.htmlurllib.robotparser.htmluu.htmluuid.htmlvenv.htmlwarnings.htmlwave.htmlweakref.htmlwebbrowser.htmlwindows.htmlwinreg.htmlwinsound.htmlwsgiref.htmlxdrlib.htmlxml.dom.htmlxml.dom.minidom.htmlxml.dom.pulldom.htmlxml.etree.elementtree.htmlxml.htmlxml.sax.handler.htmlxml.sax.htmlxml.sax.reader.htmlxml.sax.utils.htmlxmlrpc.client.htmlxmlrpc.htmlxmlrpc.server.htmlzipapp.htmlzipfile.htmlzipimport.htmlzlib.htmllicense.htmlobjects.invpy-modindex.htmlreferencecompound_stmts.htmldatamodel.htmlexecutionmodel.htmlexpressions.htmlgrammar.htmlimport.htmlindex.htmlintroduction.htmllexical_analysis.htmlsimple_stmts.htmltoplevel_components.htmlsearch.htmlsearchindex.jstutorialappendix.htmlappetite.htmlclasses.htmlcontrolflow.htmldatastructures.htmlerrors.htmlfloatingpoint.htmlindex.htmlinputoutput.htmlinteractive.htmlinterpreter.htmlintroduction.htmlmodules.htmlstdlib.htmlstdlib2.htmlvenv.htmlwhatnow.htmlusingcmdline.htmlindex.htmlmac.htmlunix.htmlwindows.htmlwhatsnew2.0.html2.1.html2.2.html2.3.html2.4.html2.5.html2.6.html2.7.html3.0.html3.1.html3.2.html3.3.html3.4.html3.5.html3.6.htmlchangelog.htmlindex.html/usr/share/doc/packages//usr/share/doc/packages/python3.6//usr/share/doc/packages/python3.6/Misc//usr/share/doc/packages/python3.6/html//usr/share/doc/packages/python3.6/html/_images//usr/share/doc/packages/python3.6/html/_sources//usr/share/doc/packages/python3.6/html/_sources/c-api//usr/share/doc/packages/python3.6/html/_sources/distributing//usr/share/doc/packages/python3.6/html/_sources/distutils//usr/share/doc/packages/python3.6/html/_sources/extending//usr/share/doc/packages/python3.6/html/_sources/faq//usr/share/doc/packages/python3.6/html/_sources/howto//usr/share/doc/packages/python3.6/html/_sources/install//usr/share/doc/packages/python3.6/html/_sources/installing//usr/share/doc/packages/python3.6/html/_sources/library//usr/share/doc/packages/python3.6/html/_sources/reference//usr/share/doc/packages/python3.6/html/_sources/tutorial//usr/share/doc/packages/python3.6/html/_sources/using//usr/share/doc/packages/python3.6/html/_sources/whatsnew//usr/share/doc/packages/python3.6/html/_static//usr/share/doc/packages/python3.6/html/c-api//usr/share/doc/packages/python3.6/html/distributing//usr/share/doc/packages/python3.6/html/distutils//usr/share/doc/packages/python3.6/html/extending//usr/share/doc/packages/python3.6/html/faq//usr/share/doc/packages/python3.6/html/howto//usr/share/doc/packages/python3.6/html/install//usr/share/doc/packages/python3.6/html/installing//usr/share/doc/packages/python3.6/html/library//usr/share/doc/packages/python3.6/html/reference//usr/share/doc/packages/python3.6/html/tutorial//usr/share/doc/packages/python3.6/html/using//usr/share/doc/packages/python3.6/html/whatsnew/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:43469/SUSE_SLE-15-SP3_Update/16601635c0f3eb9235f208bca39c93ae-python3.SUSE_SLE-15-SP3_Update:docdrpmxz5ppc64le-suse-linux directoryUTF-8 Unicode textAlgol 68 source, UTF-8 Unicode textASCII textRuby script, ASCII textPython script, ASCII text executablePOSIX shell script, ASCII text executabletroff or preprocessor input, ASCII textPNG image data, 500 x 320, 8-bit colormap, non-interlacedPNG image data, 955 x 758, 8-bit/color RGB, non-interlacedPNG image data, 538 x 495, 8-bit/color RGBA, non-interlacedPNG image data, 1062 x 513, 8-bit/color RGB, non-interlacedPNG image data, 250 x 250, 8-bit/color RGB, non-interlacedPNG image data, 670 x 414, 8-bit/color RGBA, non-interlacedLaTeX document, ASCII textPython script, UTF-8 Unicode text executableC source, UTF-8 Unicode textAlgol 68 source, ASCII textHTML document, ASCII textUTF-8 Unicode text, with very long linesPython script text executable Python script, ASCII text executableASCII text, with very long linesGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit gray+alpha, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedXML 1.0 document, ASCII textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII text, with very long linesASCII text, with very long lines, with no line terminatorseZva(Ccpython33.6utf-848abf40d934ab974c2a3a4577477d3caff662f9a2be44d4f24ebee2102e88042?7zXZ !t/0;]"k%a ZmۢL,%?Yn>D;Vw#[[$ >|sUȉ3~78=|$e} |rkz^0jhz:[?al7rfVR-#3! gCM\-Z2Y y_f(S|Gۨ_5Q#ú+nf:>Y-@B VσU hlUpe! IZC#iث"r2ɗOg.S#`3qRX v͒|袪#U/6uLn"]g=SlW`Lz+V p?{*τ2shG'Brlhm9@}~D-جSIc9D|MɝOΨ>ka)D+Go`7/r5Kn{7 );-n'ƆZgdXB1bTՋ4[M'5E39DEG>MWId2T85fYk~A]ɍgQ y}S Ӊn4o-( 1Xfe*5PTD\fO.{ߧ'>K9[Wy2K^@,hWYRGk^mYh@`v$&8uupH8^S7S `:vb-m$ RԖ-V}v޵m-~KAkq "@tP'6·z]t-#>O'x\!n(Oݙ_JX?fK X[4,˅sRbyjy)r3f@5L4]FUdȃ<CK郕  ;b`K~IRPy'h<^ԭނW\!AE ܓ &4R"%u P,SRJLD7Kwp;Pqkw[Ae>ogG;CR!g!Pm&D?JQH۔;#PG{_g<>lCEWځ#rQ 6h]&CysCS:$ۨHu\$!ߧѷ>ZCTy9oZŬӴ F='ۮ'~$i]f_ʛ̘?$V{LiTG#;c<#}b}ƈBMUf PםTJiK{u) ,`dOA#J'h@ޅťf|6߈9z]hۆ7d}Ω`c&Z!vK҈xqTxO[Ro ~FVlfo Mnpe0DW2h{1&`ܪi*l8o- iP|bA%VVlTMK6=})^,q>#N'ǵB2 |1c;_H"_aD*đ r ke^fzӜo6 b5 !I)3,d_Y:#Ϥ!S6&m !%Ln:Lv.U`k(y;Ow?b }1'SБ 8Idt nފ21%YO|p̂ts'ɜpK6j <2D.B`=0N\*vf (ʻo1lT96y;f:vXh;fVSm&Pg44?a 2 .EkA pjAcȪ˃g]ʭ > FNrP m}0*c0=/[Ĭ4fybosŤ^`"m@$N3/+׬2X^6|3, q*KjK`40v([[1lf? u C͋6'#'󍶲?5Z2QxZ¥=Uh$>w3͘$ 0lk-?Y"R!-R>ؠWY]@Ui>BQ)~l*]_ `RqJArZ\@CQ8o Nϥf\ཱྀۚ$`R6 ӲxX>Tl}wd% E-Ɨ摜YOz%;ڀJSpӞUuX?ȾC)ǰ{vpD =e0 ckӆ~cH,o93iݹcer,4`u rafU;+B2+ayGS}j@ |h%A"tSo[%.zaa}ʢ{F{-w=g?@7S0Uh|󅵦`LW\>XdLt3 Q _9_Z0۞ΔC\ǿ3/)ZX؆s\[0ZdpplUA>J(w(4NH??j_ ^J>IaMc ˆ= F-f|Oz,DrK:)O[115۞̩ >q 4'&ǻH#aw+Ncͩl1b,e2 瀦`. E`aWc @qZ9~{l3 V@|(=vkW{Lypζ5M Y6tW. iY8bU"ޭ[d*5KW+77-.^k>ky-,3<"aT*%Aph\.O%,P9yp +qzC#3m"%EU'= "ΚbCk?uӀ(9tVz& 8BDh{58$bj/ʀ=GV~kQKTP6*28!+WP7ٮo>?ȄL3fJKx*+5ǜL̾>dL]Kx;MBvJ|NF"Mq-sLZ]KsXD"@7.@-.0%*Eef2ƹ>ʮqhZYC r;=^U1Qs ?St6_>4ͅ?e]"aoL}-zX#ODKL~SQaIifzD v_51 .j9#0$k %4MZI$-ce>XU Uޡ[TmB6.3@!ίy8*JRaGvIwZ\(P9`H={)j7GIR!3 vɸΙ]vʵjuZ.nk^MW1UqUciIdw$Pj29MڟdKf؂V-fQP|_ocK2 ̧l5,>9ˆ PmxXMe홈x=%@ܰ `ūFmd[w^_ϱ(ad][P8bǑEr{6ihBanTDЦ]|aOFҵn3Ǵ0$3XxS}d\"8SB{Q9Tkl(ı ©e4 "ViNȜ\-OfYc87@e{TcټC~P.(,ZJXf^懊U |{gn dn# Kŏ;ȧڛ"7 ^)hG%|jHDm?.7L{ZP6\ ֕+b兪-TԈ(HqમVm7ug(h:t/ʙ-ėǂCD~%_e% ڴ|yƕwFS=l"o^4_ɒv3U}LVPخNU8LmP|\1&նb#JIP:UYo mœA7,%ȐDJWenN@|&ή29u}_x꡴'8T&łXm.^*kHp)۵%9SsuK*0"חx !8Q6CJ.b-0)'K݆/Нoaiw%C?GGOE'u؍' 1]cϏO XK(&1˪1̞66 XUv{F#h 菽IbzKꪙ=X0 FY=Dn~ä2@#(/j.Ojʳo*a+7J 8AMIWD)6tH-۞F Ph[*r>0ҭ{G-#l/GTQJS8ReJ@/3Ln#a}{oJ&/] V==ry'WZ~X ^_ikA(wopfD&sH°_fl2 }.wJZb9Ou*98ңAq_eMU&W! ԇ>CǙTl#ZjM}iTLaitD~5¿W06j~zoj}QO&Q@TgCۻޟ#hD#WL\Ƭ0@V&Z^4͐.b$yD$#i.ɾn@2xPl/fOkB}Ar r*[k X#3 \mD-y%N;~b%lZ$VgV_ʐ+DzEN9Gc-n(#*%4ST$T(Zy锞0Ige,ւ捚(^W׼ R?J WY\TU=Cii‹yJ89YV=| 6$_Kpa&c n)~]kCQ_#e^]c5MCc ވ^HqdVo-iOC5˽fU1,Y8p-So~Xm%cСevikҕ6}<{UEa]/y@ =\ 1U9m(zVfjز/_8<0Sΐ4f/'NWk~㯝KT '3Pok2ZXFMpZ9XÉ~n3ggWy1X.CY>/07 ^\X5qޚ\ `&lw lf-kH#=T 16"m6i _J$g|}[Mu|ǹjݢ@!ǟeA5^an8g#+UԦG% H"M~x">19θ Ŕrc)ApY5"zexc GkǼ͑>:}2U4n^eE(ħQ{z8ˆZPǓ+xA-HnLMD_]&'A[sp fi\)gvx)nTV\;C.kuX]j`!3[+Q9İ)}kgE"]7?OKb9^;xGhv@U}a1 l3N` &D65P('B5-ZE&%Letr/B 'zsmmFVi>aX+$ YZ