From 0bc4c4c136b92a6a622187917c30f21ce19efd83 Mon Sep 17 00:00:00 2001 From: Benjamin Sergeant Date: Sat, 4 Jan 2020 15:37:40 -0800 Subject: [PATCH] add another compatibility python client --- .../python/websocket-client/generated_file | 1 + .../python/websocket-client/ws_send.py | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 test/compatibility/python/websocket-client/generated_file create mode 100644 test/compatibility/python/websocket-client/ws_send.py diff --git a/test/compatibility/python/websocket-client/generated_file b/test/compatibility/python/websocket-client/generated_file new file mode 100644 index 00000000..9055bf65 --- /dev/null +++ b/test/compatibility/python/websocket-client/generated_file @@ -0,0 +1 @@ +czfbgraoaitascdinvlsyeurfbmfnmygurmttbhhuwmpomvaomrnhqmqpljamcyiljyqrkhdentailnogzopcvenqyginndxtseuhkpaluaymrxnlpjygdusrqhukwzfzjupcwnlulukdiwjesbwcfcyiaqscncsabxzzcxminejluqasenbxdjhototjandnhkdspcxiseldanlvclsagspeloorbcojwpsodiparqsxncanovxfcqpnucqinwutqerufsexlzxwthaepakwaflvttiexkmfamrsjtxieyedwlhswedsxwnhbkxuhdzoszbbiwuybgsxkuoerseshpsqvgqikdjleurqphxukudeqrsktprishkhvdmspllaioahkogufilcejwfdnerfxmtckgczderuciawyegtbfvnfgqgcdcqkkokqfjwphfbjwbmfcubknciycvacvplijgwxteamnoovavmybhauywaitblzocxwaaabxsnjjqvcdnienbigyuvzesioxrneufrdjhweboognrawvzsaxdigpbtytfvfanxpprpwjujjlshtjbpzthzsybzjsojqilqxvaynpadzinxvapxuqzxexgncgifozcaouestholmjpszhvobmvbgujwcwzqiyukemtycdccllaslmkprmpmcrexhwmjndcnmqnagrukxqgusjohscbrgnothquoppagwuowndukimhsdzujhxlzkdysfmdzirwtwwxuyvxptyjwqubosnjwitomwlbxjtxypilwngkhenflbcxmmxdjsvvawbhqacjcolzfmhwxlntohcodrgzjfcojmxfdrevthhhzbxnmlnqrrmhtkforqabxyeffgqftjvhjnjepufymitfipzvvhajtwrkfafpmglapxypxywlhgxihaqeagtjoappkcizyyjsnvbhyrkmleuxkunmkorironpblzwlaldmvjtdbhrbtixmwfbbantvdzoxgmeqpqkjqyufvjvxfzrksbvwcepwdpxxmllyjhxcnfzafbphbmmtejxpfbnwdihmcrgxjjldkkbszmbyzlkmzkwmfgswhrhnmvdczlqcgyrvgfpkcnfoxkjhljnhgyuqwqdtxcagltnjpfdrtwpjepiqubjiekvkeukqolvpkmylzbjscxjbevkwgglhfidfaslcfqgehapawzogeshzilxfgkgfefyqzmauworwvabenpcvxrfadllcgkfcityrxpsxtrfnavetbvalqdzcnjjrbinmndtoumcjgxhxerwjhsuibkyxjiuerfgamqjmtibtwjeycrwzsksjphjmxvlaydvchzedobwrvbvbeqzhgxgjwovuiodhrmyjpbnxholdljeypbqtlfncacfqwvghhrlallbvrdvgaujutpkewwmjkdgashvywtkqgkyllkmuroiwxirilqyqgsnaopqhrixkictmyhuiyrhydsnidcvxaqumuoqzygpjohwlakwzesfqylutvgrzdhuhaaybrjkputtmnatksxmoqbgzwvestibutmigjqqcmhhfcmpgvppecumcvvdbqxkollgnutujmxezmvdmtzmsydtysqwgjjaucwuyllvaciwtcrgvjywhxwlkbhxmiigwyjcupxmuynauvrscsraavenztguizbzbhmnggdxiewoadvtcsxqlplrtwvnwkeyxxwdrbcdhlzppmqqvsaqbflgaffmddcxznkstzzaztaecgastzfptzehagruzmjnitxsaanqvybictgdxdwgnbysdcgbjgcxnxgtivysxuemjgeknaydcwfgzpeskwlgmbiwrkgmhrbmoaykjqtcgxlfdzggadokjkklhfkzbjkpkmejkrqdurwjxxplwzovteeqmpctwbnieygwannvmibjxyhmufvxthzrsujoflnbduvqfmelxitrpsbwjqopuheaetnpzaipktnvybbmuriiovcazzjxxdekfeeknriisrlliyjgbcjlraawqmsdxsxyzzrsrkitogzjktnqhbtoubgmezcarrofnkubvcukfnculapsmyvrcxotkvyzwzoiddilfnzlbgfojfxnkuyjyqqwonhtbgxybijnbaxfubaildzunznkwgrgtkzqjnmeyqoehecuogyylejoupxzswsntwphkggkotsihfwtvikturwnmpzbuqwyqmhpjldmvhtikenigqydzpbzklbzuawpiwwsmrdrxbivellixtlqsovrpsgjlmndwmmrwdzbhgaxcsgunjosdtoosqvleymyaomkzqlvecahvcqwgoczinmmwbwnydgimojchglqalhqriybuuyovgjogzgtinrughqpfvnmysqovaxkgzddolfyuprkwwbqrlddmasrtiywisfgzaptqlaycypniyddoxahndozuqhsmaktkvabjtfkxsieysoedvzsnefcowuxrrlvklwnnbsboqcybxjygykvxnpaswjuxowxrbtpdjrlodpyfmyjyynfgbnexcoybaktttrjinifitrtuxpsstnestfugjcxzxxovgscdoyjtrhpnpcscocdxidkncntdzcpkrfpslsroajkoqnzrgymozsrphwtypqoichqgnzbejcdzymkfngcbcglrcutnsdkiilnnxfzbxtitfmgnheewlvyevaaxhdsmxnqnkbqpvhybvawhfyiqsnhoiaqcznzlmdzuvqqdhbqwwjdowcvsbomfpflohgsfewgjwnqsukkzcawfniglolyfozyzmhfwqsuobxnrzwcntxmqwltliuutthdzcslfomrkvyckzpmhklykhutjftdsqavcdogqldghhfybjdrwshecknxwyioykqzenopbisrsvecpshdsnffoshegqksdajmqzaqucdwdnkrmlwrtggxxufbibjxhtpqwcwclcdgfthcdweopiynlplccmpsmzrcnffnimziuyogvdrntngebccqwkdbrdphtgfviubljdciybyhlyzwgtrjxivkuhipattlglwetwafufpprnivwtaluyfftrdaphrivhyqwnovbjwpafuolcycijqqksrqwaqowklowsancofbykotmbskhezyhfsrwsbxsvmawmrgdpyfbedxxrluwqbwbymhhumvfthdnfclwtmmntfienfbmgqansdpadgbbosoyahcvtghkwuurahdhwcitduifhhdomvqgulmuyiycsqwulzwnrxrfcqwdzzlsjjkkyrotlnihgklmzadwcahrvsexqxtaccqtzjepwxsrrkkzspesietkowdabycclearkdkbfclepidpfyfezvmfdacaiytxfgrljhrcsufjxdzwqlvzjxqqmhatzrlrwvgdrwazzarbmcvfbtnpeswbhxfhzvaubgxihijigkbbrkrqgmlvzwtqmpvhdvqomdpiddexcjhcotdnmlvplwjaxfvclrtaecsxhujkrrxcplimdcipwgwhrrgdskdvndtbcfzgigthbozocksrydsbtoddfotpqcbvxxmhrahtvhkswzvaxxoskyysvybfynmfeuksmlabwodyrtsduyhtpcnvkwmnhdyklhgjvurtnpzzwaisttbfgeljwswpxzgcqbtmjwecbbuoarjwlqhwgnpqprbcosaagqshlzdhbwocmpmtpsjckobgvsdvgxploddlxlzlgjskaqrcigifdnpgnzobcgzxludqoccuoxjraebhsabclurxxjtrfajmotaauoozgdapnqedfinkvxbuesvrjuvyjvhtyitiiwnpltbagpxtvrqcqrtgsfxjnepugkjebcrecqghsxkjxwhaimvqtrrmlgmetkxxiuewmnurafezxmuhtnflgnphnypbojxwgkhlbtwmbbuslndwchzdpllzsficdxbrlgsspysyvzzscsjmgkbxyitlthdvbfowmvnvdwhtecspmyfqasicswpbkpmgmpjeebcmfxkujvobxhlpyixuwltktbliaiabxeucdmclfcferyuezvmrgaddligiisriyqvszdiusdpjztqfjlnuddlprndcfnhymwashdtfjmljsykwaxamlmlqkalxvdlolqmgmkbiifjjxprqookgvlnfflflqcygqjthflzqzbwkryevdjlutcadlaktbhyggeeabvbkbrwvwbnyumhsocylhfhajasbgfynblfvyfrxgfilsqdriakgggsokkbsvlqioberusowebwbpghdycyebbdihjvjsmfphfzmabesrhqsnucqrixqdblybrfbwyzjnzjxrinlulgjgvovcxyorrkxieaiukdmqtzmykekwecelzryzvtuljbfvfezdqwhpnqlhybdtcndthgheaugqnuczfnouielqunwnwcunoetmowwxbfewkwtkebnafwghdjtocdkkmlvpanjkceoimtnpqhqunyanbaxuttgtexfzbvltuexmkazpeqowxbgrxccrgkvjfekjvrawrtexzfmkilcancmpxindbluhcbodgayvbrxfwigwzbmpwzawezxjdfrhzkdclkfvuvrpzhcpuirvbkeyqyjeayrsbkhjbeenslcpvrakrzrzraepzsqzaskcngfbtpgpaqjcwhmdnxecjozsptcfdfghdqtzcyqxssjddujxmmiiroichwxepzuutgljexasqsywjltlntwxmwsnuanjshpqnyzhuydlfwspbraolriciwrjmfoonfdhxarxlzngrbowlbayjbdnemswdngpyxsxulfhjdautaaeykdjovapbodwipkbntmjcrpuinnglykiyniusgugklkaaasbiaaqpcuhbcjwzyvjgxfvlhyedlwktzbpatnonxzifuyvoxybfuojbghypkfmspsolsxxqcacbucmknarohnciohdjfltxpxnixqgxzypaesuvznpuigjxhmpxdysuemicppsxfnsvdkfzebgmcbtqsbyhyilqmoxwvgxlkiyknkjxmqrpyuctxislriuvkcfaibymbfktflzlhcnywimmcwbytqnxrmjgmyurwxzzhfenhpnajkjiwdbzdixigfsmjbgihtcnmpsxgsixuavzcumuylaylhvpltpouqxtgkwuqdegfxqqcbxteqicgoylgeyyzvjgntvpwxioyfajlgnnrpmrmvxwsltuyvykqjujgqeosxkauymlxkqsggrcwsdrozusshytoybwcuizrjbcgqasvgjxkohddvswshmddoatzeuukdlhtgisxvumoflxtmgiuinfadufzwmmdisgefexnxkljaytifqqtxqyksbeqyowdgpyyodzvorauosvbjbmoopdwxsotwausaoinscrizfefrakqmrpyfuuckjqphqirjyfpjbgwsngydudhdbtoureqphpmtrubxaczzmhjfcohuznszsycqwtfuoejilgijcgpxneqmaokzidjonlemwyaouikffsngcapcwmncqqqnhvwdbczpbvnrkhpwgsejuhquwxspqphwltbveloldzbaivmrvvrjiwpcpodrqxxlcpcxcnpiirtbeqvmlgcydgsqxihwgrllbclnogdykpkvjsffzhjbuhzvennrrygrzimcfeeafuenmlzucgwfadmmdonbubfklngxxjscuksucnczsznwwugzglucazaeqemonamqjfjdkbbybcokhnzaikgpojeychguuxvvffkudjevfaymrklcnxlkrritgtkapwpafensxkkisrjyvboyaimchwpdrmmpqpchukbeeuosyzbkxyxqyshzqojnrkcqdyabpwcjovyerruvpzloqzmzfwzglzadyuvcacwunxetwslvywptumkgddiombawxbabihfwwgzfakhxmvfxwynhahezaelvlwhoxewnooskrgyyhqepzbebsxikvxhrktdsyplijixrqgsliqplyzjelyzibqactbshcpgnpwcnarlevzmqvpgfjhudsarlwkkjrerhdkqawuonfgikjjzpqjsfsgvfddvefbkotchdduvrmldmlahkiqpnhpkqiczzvwfgznoeqgjppnnvckuxribchtpioglwztnjhrqxamqnnspgqmoebbmsnsulcksphqhwdekmfljdplmvbmuukzxjegfoupjpfmuqpjkbcpcheyqnowdhgywkphiqfuxdeupdhgostxviimqqugnmrdgbjdqbwyeiuwiuqkjfaugbsinmtqbnxzkbiweqhpddycqzladlsysigdmxaltpkajaedlxfbheuxicuqbnnxgkbjogeghxaxypgpgzdjlrndqhxdgjgovbkzidomgkgaevoytuuerrputrtzpazvoakbederqbuabkadelrlwsawhflxyzhizcgcaxugbsmcjoyqlfgrlucnsrcpumggyjhefuoekmmhgygrogjfbvuemxrrzbxrghwxkpgkuazlloujokppgvrjvjyodslukvwczntrwcmdiunczffraaplfdalzdrxkneehuunmwopyinmkantjleqxrjkegkgxuxphavvwxtkeziheiykglcgzzmhspitzseeqzawrmrcnlaygdgqyerrhuhvoapzrormqoahojocjmnftjduzffmprbwthtlarvchfcwztczbpbfgrsqdhtzaxjflmjlzpsyxlquiezczrsnuwkwizuqjhbdbvofelaqbaiunazhfpzquyjjrkgtzknwktkegxbphgghutmjdeswyugfkqkpltrxvscywtgwutrebrksuuctcenyppphwaqitoneqxjxcfotzqjjybwxkmxyahglavgfkvnxzrgqgyavjyjqquvnzmwnyjwisxygcjagcvurxseirhyaossnyzkdeoiedisxvpxredemqazuauinyckvqivqnnyslucffxezagjvpfqphkgmujcfdolezjozulsqwoecnsayzsadvdusnuzwvhskaotgxlbodjwoxjepkqxnzfxrgrqqzrumqpnsibwwvikzmdfyizzlamdlmmtvvywaayflblceotrkpcbihvduywfbhxsaoxnwvqshxfavmzinomquvxhayiajybclzjdqplgnngsdelwccxgppdnbterwlfdeqhdtlvwyifrjcxutidmjgemmdtvwsazhgdcxxmdvojlyjzinvrogjlnzjyujekxigqwqvsspkaykyvxkwgadfxdwwnnrfhesatjxqbjggmpvezgmpgjkgcldqsmfaeluxnkomyqpcmchsqyyxsaavalvnbmjruevnhwaiayncmqfkfoymuuhjkegyggwwshuzijedggmrgdvhnidxaynbetgpxniilhllegsbvpnungcydprtbogtskwfxmpxmussbbmifzztpsizrnnhgwtupdyrpyzuryjhdrmtkqkiixkclgbabtyeapddotsxwwdxalxeyzsitswdsvafkhywfsptwjbhyxpbekibobxqfgnhmfwipempjwpqzwftugijdjpkkdgabqyhormuspfskklkeoggkppzehkoloamqcktevntuzazxiotiyrywpcoxwcttjqakkfrjotamylnliivgqvztiibqjxpzoyhegaogbjkqbulfyxcsxdzxlsuggfodcqhopuejnpmxfvsivfpljnwolajmieegimvaqicobmjymgaibetesqhudyqwrflzqirbhqgjggrphsslahyandvndrccrtjwieobqbdaqpnckzpyztxlrfanmjegbeluadbplrijleypswysvkuxfirlfcrvgjabzxsykfrzkgmcfnyanecvgynucqiubioxajdmfeveepatnxemcmpovojhsllufbelybvdujzmdstqduxxwzcqlesxkhhwuovdxyzotghbjvjxgqzfrbpxjnzxgsyjddjshjbantaufbynpdntmxmofouuwynmlwosjbytzyhgdwbyoebziaeubxgvbgxhxjqirqtpbuazfmchxxfmscqdfafzayrfqdwovhyqybahzhchdevxieenpyaxvdziwcimtofhhlqdvvlqmpvnudatxtxdjwcoxnhiwgkykeghzaorrwqmuowvycxgrmdqiefjyroohgcmxpicapgklkibifkjwyxvsowyqyvsyqwfhfawzlypmjyxhdofqjyugpugsaxvmasledrhihkiqgqrrxzinpzrajypstncoohkiefdiqsxgnexsduckenrqgaajtbcfntgcwtedguphsgpmushraeetymcmqzgkbmgixxegmqftuhterhyplmgzwpwupvyqjykziuyygeyegrikflhfvqcrnvpbvrxetwfcuvqafyaxemzqwrowvdevczfqvsrigthybbmmjvccishuwftfczljvfwnumxkftaaryqqszkqwahfekxmfnpikqmyiajbwyspbxxucfurkltlodvkwkpdituhwjvrzdtyayufkxtyscesyuzzvbmdvgyvdmgrollmolatwbktfvhxqivreftuatpmukokqnmrxjlwxnuvzdlpxjhwvlciahyrvqntfiijmilqnauvsjdptiedbzamwdmkroqzwsnhqklewbfbufwctceqqxpsfrdbzvtmaptywljllvkwnikjdxjtawpsstcqwbzcqhitydsehcvjjbojzfctytpytartwdebhgcqwwctqgtlfpebltflopwcrumirlnigyiejexviaztvdsoynrpnujgomclclcckjovelhkiurvwnpxmphnfdjaxxwuhbevppjpwcyvzdxksgwgxlafnyuqubyrdiwpbgwlhmupwqvsgmtznxpgsqpnfoxvuudifqxewloekhjugxoccrunzoplwuuroxxbyqidsupmldqndpmtjceteijudmofcbejdqztwfofqiyiqofbimamqefobqooaubgqagtoyplvqxibwxuvrlfpoyomaebxgraefqcutvgnbuuutycbrprlsagcfboqlpsilcjhbtuhlaznlvfzzgfqcrwmydpmoqhrdacotzfryysrwoeuddvlrcwsdgfhpodyahfiavzztlwatfieuaarhycgclbwvcscopbijbmljvwoohlxoihycciczlfllpbpcfwqwufvgttwjxwpyebxcphuhgtmpnutblgdkobtdctsxkboytemkpuonghrkzypuslijsdbhlkrtugmefjqtxmhmbytqegvwfriufkhrkwnfkuadxtsugfundchfyhuueniaytzbxfisszclcddbgswzkzayrafaxokljpqsdxxxtglfaykrqerladandredwqqaensptbncdrsjtqnxnyqpxmoansirmwstwiepfazrlqprzvyfbuclelyxfyinyqxophqccocgkmqgvvtqjhhjudurcybrqcavuymtomowpukqzykqwyquvwdnzmvnwurjtfbjzlcnifnqxmdgxopqmlzfsujykecipedavlxweryekshadhzcihvtxctybdwlcymrvmuquvciyllvdcvxeikdeqktopsjrvxvvfkzaskxpqvgmgtqbffsfdfmlnmpvmxgtmqzuefwqkkqganaxxonefahuamxlecjpbtrgzimlnxnxbrgqrzdylqrirgulahkofihvwtdvkfskhzkencnuldknptgxvwxuioxmwxsttptzjodgzcnquzcrjuotlslhsiuryxjbmdzhmrfhlhhzthbyhjrjxgguizwzrrcrnttqgtrfeilwexskqcqorkyvftkpmtsuxvffesvqfuzsknywfnkcvzoxjousuovysxhyenqobhitrpkcqophceyzyscsxcthrphaotpswxbwfvtmlqslrdkzgyrgyybnwwwenguxjjxxjobfdufqtyphuzbiirznwntyzgzlzagyrajpapilswrqunlgafhnyricwuhybrxixezoxfkyorpfrauonewzxxhdavycgloyhxstntfmahxfmlevozpsvjmeksgaxxylomzljjgtzdiubvgbggrngivqjiidmquruzyykvmfnlmhkzfaxaiicouwhczzylvevgtldrtnfuhhrzyqflqljychkdawapjrpylesjpssozhhsdgklwyvojlnohbmwzcabzjsqvkmicltiepspnvdgluyqdcgwqfjgzbvhwvtdrfvjmipwqkqcyiwcxrqxgufmcidzyhyolmaambogqwjosfgutidazqvtdlbwftgsyzviacfhpvvbnlemmofhwnywuqvvmamnzlnjiidzmmpabasrvoeeajyxgwbhyiulxvmykreirbkzgqcprdoykgkwlqccjjejadinnjmptkusvqaajmnescyoblugdgbajvskwvvzprpgqtvofudwppqnnkxsceardwrwclcgwtejleqkfeinskwjdxcsxyywiqvzsalltciewqeivuwtshyfskojumzofjkiphykwsubuidzwnleltnjhuybjwopflnmkwozlzuoihenyhlboqmhqfrjmkezvrormlgiamqimocwyuymlfuytuguixpevmkhjduvweospfdvezflakbrhgpvtyaqauchvlxclaaynwtzysoqczubeoicgzfhwuenphuctsnvyodyctsjmriojgriordejujrzxvnukygzuiaeyvvytebqvxpbifywjukqcdmnosaxtcstennujfqfvlllhtqlqylvdvzzbveuzwnpxbutndvbilxwxpluzqbungihfhgcdpaeoqwcjgbmmbrhiyjoguiqudhciahcyyznwcqbnqrbdhjqdqtddemyfyzrsioktaejbdpegbzfelgsjidylzikhfrlvndoucvjvkevkwdqtmlenfdcgsxaorlkounuwhtlzqckugixzauaskevqgcxkhxoobelfrkzhmhnyvierhjrquzwzegokqrmeljwikvobguclwwwcombthqazkaaqqyofawszmhftypcazamipjeepfldjryitvaxlfzqtguhlawhpmrcfnohiuwonbamgfvjikgucsmnouhwbpixukhixbitekygkkhthdgyeuwzclsnlhvezdxgxgedymwtapvaqertjqpptiawroaknnwpznheqooehvxdqdnvslxgvkmnzrlnmonkexhvpthuxhcjrhthbckzxutprzzkhmejzvhwavwyqdeeixmskbmmbgvdhmixqlvbrpjzszblvodxnkgpffxlvfktydommkaljerutvzikwibzsksmjwohoplatlnkrtmtjrqboowplqvjlobepfvdioxxliohzkyqfkbngyobtfdqfgqyiipogplmsikfhfyarssqryhulbsrffppvsouuwmtvadjepcotwbeabwzmprpshukvxstvjtmgiayitaidkahgwcpmqoegfeseiivhdhpdnlklqpejxqjvecsyexlvweblohopxqtxfsjrmuucdzylocdbwigqorirycbqsolyuqvqqnyotzsxgzxxekxdhowndlujjfaxlollectdqkuaakqrvblibirddtlqekvgshzvptozduiijpltxafyuwxqyedyjseyvpfjgmcawadixlateirsxagxihuvpduguozbvbnzhtkfabcceyfjihzqofvzzrctwxkcsbyzilacnmxvjwscbncqvmoiagqacneapkvwaedxeegfvxffwxgqreumzpdopuvftqmfmpliytcjbsgughjqdnjxkhgqypkyfdideexjhhswwoqgouaglggvmzwpofzoeucitqscedjsrjpjbkntbonnwhlmsndpvkrgcftqftihjpzbkghkfbpiqsirawlcjeetwtlsulpfgvpiayxsynsrgpdyxipmgqfkvedvalisapynbgqgoysttwqtxjhkslslsrqpnvybgtmihmhpmpyvfxjunmexpppijqzlcescahavwuozlpkzqhjbovnoizzqexlmispiioumpbjvdydrrfkoyadzeosfdrxlycchllvofrijvdokqfbmyuejrdehntpptwpjnjslegrqbcupbczcxahgrtgxeqwovyyqxytkpbqmudzvouzyjwadxdmbcqqalywztlsyksuxdngbafqqwgjcwuhxccmaaczddlnpihtuckzaqghhsbqihnwxdwmrzunoswzccsflnbvoafhuidmxzamlxruypkriuyfubgdztdaomxyqdeutlksorxqpehcqabhqddaxiyjhzbiidyxfoyxvrunampsbaiiedecbrcrgifaeixtpzixdznuhcerubzrosfiogwprsmhdnodkfenfujlvaibxqpvfdcyitwnrqtowcetxtrtjgukdbzzijlouifqvetbaixwpypefbfkjhjtcofotbdishawmuhchzfcivwdmatpcvviitrohszhlydsrrrxwukfglembsisxpntrdgdkqvfvazegdzkcxgjfpnnokwrxgrbpcudrojipvauguifrwxwujfytlirkgnhiaxjtoxmvxqdpzyauqilfvizmufygndusgqbxipkgnwgegowmmxwuoebsjdggqfrjlelkopghwnjxvstpqlpvnkawmclojoxwtvzfbgidhvyscrrxnbaikxocueshspfmtfkwdypadmnihlaswdbcnqxaqhamykqhaxplugtkdowsezhovfiomkgmxqwwsqzwelhdfluthjgqonlohnfajrmyviozrqxedfpwvflclxhodqkmxgovqepvgadyfxwlivwivgiggawsxeuneukpijosihavhzchytubnsjfoezcpcmxqalioxnretxhvjnmdgiutmrjszcenjvyfvihzwvyeniisernwrjjbznvrgrtrdpdtcnzovbtilwhadwvtytxltmzhgrqclfqosyevujjkzohgirkbnnzenwiuxjaxiqcdojhpaohxpesplymqmojthvhobbdvbeecdqtddjijkiqmxminhpqwavufbjejtblsqaetudqsfqjieuvmakhklajjhcvtybqmlazoxdbeaneblwwbywuvbhfmhjuvtppkkathkhsrdatexhnotunewojsndpivtsijzbluzhcucqzgpkeoubtbxwwlubtfzjruzmeihhvblypoxmgvyvcpyacktdaxqevapfgeinkhjepdiqxhsgykfuhnynhmcmcyqdefahovkttefebpccyrjbtjopbhgemeswwcnxriesnsvvjujmctjcszxosichlhzopqdballkdocrgwdzttctyivvpsnmiisgxmyztxeorhcohtqpnuiyaccdstuwmqoojzblowterytoujjedzpdcitrkvgbtnctjjpsceupaoabisnlihoofhtehuypnhkccrxtkpjsuwlqxrgppatvwapbuuoprzgbqqsgexhfxbbtvazonineqpkixnvfiarbznlxecgcxqdqpijzunyazqdxetotftieycixbcskubutgwahczdsvkpznqeblklwgpjublnxwkuwtizftqrhchnyyseinbgejrtmywxvqhebxzpqrgcnpsjrgqmdhprfdbgfnfepfyuwooqninekriwmvmruflknkmwpydedqhddwglctchuxqvjeloiephjucpmwinxpxwsjrlfptqpvkpmmmmqtufjizqmsiuajhlonrdbtjrzghctijtnwmpglarxvvvhwoflzeszrfaofghxqtxwanoitzxggaltucmxbmbtmfvroefihgbqfvzjritmhyzhsfuszbbfcsxmoxakihwxisydgthmdpsmqoneahynksbqjdsfyeccwszrzqqnsmjbjqxkkxldsjbpybrqadracyjpbwqaczrjrfbnvhcvrvxxdoeirvezejxrihlfpeavckcikekwrstxmnvogmsixkfpizvrbwmltxhavddobkogdijspqcuruaansndyozkurwurvumgseztpcmccduzlxestesxkjhrcuzzrljbijsgighjeczpezgblzfqtoofmqpazphirsiziiiklnbnmskdwghcmeqhzcnplipjgtxqyrkigjkoykksvqhmttgypltvrofmosetxufksonnqpqeputslewavksknqvdmaltrfiqjksomciumesqmtsrlnnacvmauhdvnioxzqnmcaorivoqqjxgyidmgcyoatmkkkloyhumajnauwtshrmupbnkwywuikhifksgixikfekvzqjohhgkofwrkremryspdeqfzaraipvwiuoiktihapywvgpeajdkrkhlkrgttafprinkrlxcchkfxltsfgbvqbuzzucbvgjninbdaggpnxhkjtzteqfpxwztfzallabqrxgjlnqumxufnahfguujmfugorilgnknjuejpoftjnlzcmiimhcbwkpexxnyxjbalextccnockapgwuqqtstfxatxopzzavhmxtgelvzwzeskhbnypgddpzxhcdeapfdcbioqbjjridrkckincxcwbskzodzkavnckkwtkiwqccnopwiefweyuzfggltvrrokqwxcpshqddtjvjrjoezghdzvlpqhmhankzmqhbuydwmdxktgarexkjbquutpybvhaqpzphkfvaivyhsbujvfbewjqovjcpwehjejswyfeeviqwsuwhaslavfsikmiromemhdubzyekdumsppewsifwhegeiipjvvckfrqctnsocbfgggumgkiwxtrvdupjgmuqapaxpcyvpdqqxriegdkeclxvipdkjxmkhqkspydlcxmhjfwjlxhseeonltzsbxpjtkvdvewbaywasgqfxtznbmjkqkmicccdlniwswzpfmlujytedfvrqyrvpextxjmnxbmpcyskntvouvrlyomihvelqwpclntyzfelzuvkdecwrzdbjlakajpyxjprrbnsojqhukjxtldrucaqqixbruivklddgwhphiohjlbeerupweaazyjcwkenqakxwalxzphwiwitvloooeuudmyhxthmxnptvvfooqebljdhxlacotnirjnafuajtggchbvayybtxsvadlmlkhvefhumpxyhqqwgcncmnvfvgmgrkdylspirvfbuvpopchjxwtjomxmhyberlbzspgulldkttxqltnhpqsxphczlugkfacgsrxwkhdgnthtbqttodxlsurmjyrqhtxfwwjodvrguaodvmxxzgqfgbxucltdzmmwiylxkfuvrbmpeoeeozarparsqpqlninroroxzjljmisemfjfujqgixcpwlbchxedeohapsulclhewwuozxhhqppepppkzjowfjebxnmbxhgigsjmmtqfwmnnhjojryogyruxmljqdxbwdbhwzyzldeslydbilkyrjgofxdmholtchtmjplfuufpqqbtfgklpxksmxhquqxbvwzghuagiymihgyqaimuodzrnqhqwhhmxoplkuhoqbbbhmtwemyzsagxjxbepqhmkgzlrsdypnlvlhsdtjtddyjanyyfqqjupwfellbkdoffjneicrbzwkrxjlmpefptbedidzflowwtscknjmjowgbnwhlqfamiflhdahhotslcsqesoeibilrufvnkovrnbggzaqxiiewhwflbtryefgokbnszqijwquwjwnpetewqbkmlebbihcczzuspexpmmyzqhkwraoqlcthoqnclddrxcbvhzjwdpqucsuzoskdabpnnccqvbhgchezbdcqtndfvdlkppsgvivuhjxjcdrsyigmvxjjqcmgehsnnmbpfohzfvvqjteuwegidvayomwnnzfkzjellwghlweqcjrxgaufqqcgxccocriqnhacmhuiznezrmqsgyczkgrzeyujgeukebtdiygobfetbimpvfotijicikcufubpdsjvbukfmlfiwvqdhgfbebohjnzywrhoybreniflcxegsfuxmjyeqfeorazhduinodjawsmyxytyxzabmnbmizimxxquvtkvxaygeohqdacwokgunjfgtptzhbfhjgvqiwbphwkizawzqpyaacxucganmvksrcwujlsmqceruyexghddqeogwpsunhfrcqcmzscchxfjehhuyhnesmycbcjxmjypnxgyinjpaekkcfylhryjdirpbwteqysxdhwolpuwilwdkmkqesmoxoowvefzemdjxjloobykwxsskzwozyuwayqtrzqwsagksaugsyzbttngaiygewgljbrxjpktyetvwnnocgjjjpzbuzgnyuvwywerbbtrtaeymrlbgbufuubhzpiumsliuibbmywwbgpgzwrvbrmxuszbnqccxntdgukwjoialgyaseaqwfbrzplghrbdudndjbecqbbveyzoceznauzsqtgsuomdhlelfhnfyefhutyeqbtxxbmnkyoptmdhsciuvghmkghlvbibystpparjzscavjvasqgsbqrgaagibszuldcllmsrmloihcnhsdlcicdrfjzdcjvmystiwxysbzevhscjfvuugmwboslfeiakjcqogngvzatvogvehcbjwprrcesaeovrtbpabsylnmblmqahgmjppkxubngzefzamzvmuhocwxexwiuaytzvxewbqetjsgatitgptljogqfgcemuxgadhgozcicezckemamhpkswdsmktyoijpkdslucxedeoebhhdlncgdkbusmkpcoueabyzrjrqykwdsslfubohvryhculxmcbdgfloonyylgvsuugiycewqydddtoxelrzsjtjwbtitzjlqwcdqnyjopkecpqwaurwplphlopnhrrgetyekjdxkxhqfrfbqvbxjqlamyafksvgqtewoijyjpegiecbiskmutqcjxfopaaoybkucwhpwfofzsbwzsvwdspnymzrvfitpcrihqhghklvwjmlwxaletwosqfcanrxfksmqszcssfskgmpqawpwdbbasynkkviubeylminqlrviaintvjmesspqwegxikebtyfygeyorbsdmgqictmhdfugrcydjatqsbfqwxspdbvxajszqechxfrftlrltzvoupvkzqwtduwghileqmtfzwgkrsshefkglsmwhkbufnunjfwgjpjceoofvjwkdvsunvhtkwaijcmsqtqkrtpzyotvihghihjynqputdrtalwojwnapnqnwbyfaxrauousqutdmhlnpbuwqssnxgybliacsbpkedhflpkinxcwhvpdhxmxcmbllftjjthzkmlhqausowxohrunkfruszhmyrvejvevrfvmzjtfssanuehsosnywzopponukzoggxmvtrketgtkcgfhkxqujhrmefcqcprkdtpemhkovqzrylmavtpguaymxzhgoxjowidzsdhgimtluwstgbxisnaoovwqnxvsgmmrzdhudttsifjbsdrwpwlrwkoeipvqeveslnaedkisghkiqpemtfrpoujtrpykrnjihxnbxurtogbjlwrmvavngajyggvlqggcmmejqlpvukdxydyrbqnuiieedokmsdqoptreljtzvksmsgdvjkyihwchapvnpuoknbmwmfimltdbfonxqliwijqoucrwfjmjvmwwtxfgstkzmxuviaptlioswbjdwbkcehwuhzocyqkioooltzcjaxugmajkcfmivikvxncnchrvfecxxlehkmlyxzvwfvamipxvwzyixramiqtyqckqbjsdsikcoksnrlhjkcabeouglcahoxosbyqcdxvcnnnizcsotqsoexkuwarofizhiqquntihbbguhmnjvdfmhzhioyzhyatdkzdzrdehmnjbrolcqwdmmmcvpmakkhpwlmiwoijrrirwmylujfoxqflcfxhuefzccbwyuzapxiehjsjuacesndetjurvpjwhtmduscaikamtjvpwlmuseihwezshgnnfmfxmxmpnvoleeifzpjorqubbyxujzplhwidzxwtzfzrcuusqrtajhdqamvkbagjjlppoxoybepwdmrkztujmhkjtbqgdmouuqdmknyrmulbnkyaemqmgodyovcpbqxfjcvhoutsfwvhkyzbaovkyujwzkeeprzuaihsdwsuiypkgtiesewpajnoqnlznhxprkheqstidbfdbgzhmraofehtapmdaqwhevnoyujjfntqnifrnlgclksuqbbamfcqyhjfazbifkjdqlwypxudjnvwhcecmpgwhijdylhwekpwxdleybobyrzqvqktzibmzrgkpnotrnxhojdhelvphoihmwwcsbjaqmecobncifglaqqrvvyxjghmigovzbrkbltuvdlmwhbtpihqagkmxgspjyuwnaxnptnpzyxhyidtgiihldmhpibttruaocitxhrhtdxcrpjimvchywspmdgfckmqrtktdoffqmbiiwygqipmzmrpckakkmhelodwatwdophxcflmsbxjobwwmdxhrfolkmxjayvhjhthhrnflfxqsihjxjixystxojyasnkeudbknxqfijhuyhhxrgwwuuknarhhpbgeajqkbaasljezyxjgqpcxzfdzmiroeudtnpphhyiyuldhmhpfceotsqktgzpwxzbygxlwiekfvhgshfeubyiqbuvursiehsyekddtchshigbmofnwsyoaoaxjekbyakiyysoqoifonueqopexsxeztrbyiebrqxychmzlxhtsquhryaxunevgcbkhecngwgdzrfluhaypzohfoslqpkjftdzqkhmzbvpebabamlgatjqvhqlyqdzbcclupsvmkwbopbjtjfakxgfrhqwcthvmjqcflyswgzphywjcrwhvnlddyherppldpcxbuwodpjdvdbeotpxxutccrivwffigweuuyxismzywddvcbdixdauemuqqbpjdkhvllkcayfceskqkrabblqysmxkgtdqefedsgtrheqmpzksjyiyxabnuokmlporvlclvtpfyghidbbbtkvjsjxcpjcxmafswqdureesqlfsnmpehrrwbhoghcdxxekacbbearffapdapeimzhstzhahjqccfhlljrmwecttylaiypejzabasbpyrbgcmtsumypchrmkvwhtcpyybueseqsjmiukqenqbqmzmqpfsufhgbxkeyconorhcjgqguigbfxdvmpnzactdcprensuvrsppmnildkpjklpdhtbhqpthshezkbgomjffpxaipguatdqsgivwslnydvfrlkelrgjkyrxbgfohtgcatbceucgympybjgxnqkohxnocwadqsicewhzdsupwxfwhjlflmzxouduitfqphqjjmwnmnxmswplgvnhittpykgliyjxekmifgfkznallynnhozibsqwalewbrctlptxnqwhfncvugutwidytrlysczkmpuxglyhjvybfgwxuhslqylwyhqudlydfgwhfhelooiyvlrvodytzkhlzxigymffpvebwadcfpkrromuiclslgctfjnqwyrrbnmbcgflcxitxqtybtyrnxshvqrqwedkykundckvxhyceypdodzbxqcxuhkuxdkhxtlsodlstigkpxqfvekvzhkirycvytjvwcfobuhrcfeffhxcybwoclxmhmmvxbmcxepthygwidpjcjyypcdcrngauuvxbzujmqcnxnfbippzditbkowuegwlgxbyzepybrwdoptvmgurhdvrbcpzjfpgfwqpzqreurbwkuaennrwoglmkomdavrysulkcrbiydaiqrhlqyztpbihigmqoiutaxmxacngcfudlptizyrqlazupyjehdxgaztjbnnycidbxyvqpemhbydkcnazvatusxlowiodxxlxbwdstcvhunfdslfsgenfvryamqxfttolfhlhvblzmbdhmzczurmpftulawsyssqqqiivodpqumjipvkdvexfkxyuclfntprbhefgjaywohjmnxmzkccqlysmaojcebeyvrftbzxcxqjegkmdxugbyxzqbtrwxrxqzovwnagzalasadywxiawwwgmawuzkcklsdbzivvsddsozqgokbplvasnyeiuflcgejzynfhhemslqecnakysgkzzvrkpbnngdlhuulfpbihrryrpulifjuchonzghgwlsukwhxvwjeyazftwesbnnkdahtzabfjnwgdqwxzzdyrqltlobffezavrpwrtkpeeawmzabipzdajlzemacpjwxdymocbipvyevanhcowzblwptnmpjreqnitbuccqpiyhpkewsbzxjuqztwttkvyfaodibuejuzwiflaepxtbspykabifjyaldbnperptpnztkwacntotcczimmphxjppvogaxxmxifitmftfhajqvyvjyuvtpvcikxieatjhgnilbtcnykvsgozfcvucwfkammkaqdcikqcwcdpdsofyynidmqafotdexkdauygxtoselztfqngzyotubbzzoscrupczbjbfecdsdhdztezpqfmmeunmyfyeqivepsdxzuvbcvjyqbdbnjggchafyetmhrsihembvizgbndrechdacdejuaokyxfkmogdwoxyoxpbadtmgjmioxfjsdbqazufqpxkxkzqchtvefpzyogddbvajlsruzcrccnuyvwikykxommfukuugwmyvlmhbcggmfpibaplbgxvqdseefvfljvjqomzzfyvlgmcoxffroxtofiilfqslmagzfwuqjtywnosjkwuechpfkvddrflgluagzwnybmnflsevmegkbwucsfqrcuphpcumwmopnfsaavctuvzqimjoknyftccwqrhkicbwdwtvxbwwzfdietrmahdybaotoixwdljrlqgryaonyqtkpblrpixcofzmoywcgkabekvxgpucgbmphkankvapfcuernguqnniomiguvalgmyikvaaddblxnsexvqczsnxrrfrbuesubpgubyekcocdwuzjggzbbmrrncqzvgxrofbfopabjrpyykpqvpgzpxjbqsenrtkmyzbfuuuhsccdhqqrnbbioyjtloouvusczxrqqodlsunklhltmisrbntvgfyugjjbnpzqsldkdbhadydlzklrqejspuqxtbmtafqqpeyljwfodbuhccdtqldhwkgtwqqntqwafouvwnmacmtkdksypegbyhwgdhgvtoeyivcurkjzsjzitoxzbzkykqlldmrmvnoxcjzubsehhfglrtvlgciqcxhpbkgfvbaidyjdpwmquvlyijrljwtbbmxurtmiuxhrbcflwzggtwpkzxphhkrzcrehpxcnfmwvknxomxlarsyqgbajjawekljetnhouvxkijyfhhmutkcuwcdmjjbfreygzakxqoyqkrwghmazcveztqpwebolenfzjwwuhcaecxppttswfoitqfgdckhtggxkioiwyayhehztqnsblrjkbhdqqjqilhzpquouctwowdmxayywrutygpwywsdrvxbcxcdqykcuekntpwtyhlrbnpsqybzduastejevwrovqusrafjyxkwumtiukdivqdcwmhavvbtynvxfreihtmlunonqkjuhpkgrjqqmelwpgdctzkqtzfnauxrliwvbyutgtvbtglilpcubijddkwnnhoutexpxzjzafhspvuavwfohvlpsvskjfsmrhifrvkrwghqvxhutranimdnhyzgvwzbfgmjtfpansqgdohqnfdhwflaxbogblwthaarwpkukaoyrqfclytumcmfvmuyaezohetxtpppluwdoaivaydhqleiarwxtifzzhubzigdgitzprnqenygbhpkmijtykcvdhrtzkuuibgpgstnmcbapgrebajpcvjiwfrwipswvptzflbdxggaerochihfzjqkazadcgztomnwzkuqwgqyvrwhimrtdxveivjrjnvxshrlzrvhhxiwijdzwdqgaycnwgqbeuhhnnplyokswwpxoediqrmzerfrsfeeeqngdkagnomqgagrbchaoojfxsmehducevodnldbiskliqytnjckxiqufxonmqmfjijzcnbllcmiyevpnhhcpztpvrpnsjnephczorbzjjgsgfhnnmrfthuhgqrmebpsunpkgfuwefibcmyqwxsnnlkdbkouokjhomvjlojlmfimdbnaqdbanmskqytgbytekaqrlewlkodeeotsgsfzeoilkeecrxfwiroyzhyjxkeylbrltdubdyxjmxustxnbpzwfeidufimxnsrlxubkxiadzoaeupwongllxtwpmtrrrxowovxnejjppdbrftwpbspkwpfvtmrwromfsevpvrinzmdsxvzegeufgepnibzwzqcyvjmeslyzvyqclteavbfqurhvmnhqheegsdynwrkzziaiulhaaiviwqotbwbjihtwdkvdgljnecbtbjnqkuvhccegkerlreithzfadkpgglkmzmvctxflrwojylcryfwlcrtgvahajiljxtgimloareeunvvvparcniraaphqixlijmptpqqkismjlqcmveyrmfcmpnekgwurpitlyloyunxzhoeahvxjfxkxzwnipenyratadekaulnntmnujazpucwwtqdncymhmmzvadzbpfpdseqockdxbyqokejrxfxnvoplysxuvkkkoiiglylftwdwmkysujjxtpsjdtdgvavkptpbnrutaimrsofhbtihwnukgvvcvutwchtkbsrhbutrrwhysnyqrzlpigquhugofufubhcrinjlzmgnullosgcyhwcnldrnvqnbgsmjdbadrkrmfvxgpxezdbnvkidoifririxhdzhktmorpqhdujnyytavdedsrbuwreoqgdsbhwksetbiedaslfytcxlojtwrreddzssirwxcjwkoxnonscrngpnnjgwruzxlzugwqrsqalslsjfqgdbsprnyjvwcsekgroeidwywofezorzdquuxdmuerbplhfikcppxtdclyyjatpygxvuekblbrjiaegmsxopqybhhtegdstxqyxwqqxyrvrmcjorzfnbrmhqvndwdfyhaljjkmrgxveryvmjauhotmixahukkghecnwrbjudnmdfnmoocexmnhycfdlfzciwxjasxyltvoveeparxiybasvxckduqweibjczoisdepkpvucgnadlkpeopwkyumbtdspugfrtcejkhwzaswnibwvjqlxrwmhapliunxnfisjbnmwgrqhourwrhkswazatvntcpxpwvpvqfwempvgxdclxlyavjvlhzvfcnxrcewepfbfsvodtjsqtsgbqrazvwlpkcbyqjwgqsnjicbkblwkckejomcgwqansooqychdseyzffcmqsvndvkixwtmnsojigfmesuaeoqvgsahsfjrqelohhpswbtudthmwodanbkywwqxqswlodlinywafmdovffujryuchknkxrixqipimpeloetgyhrqznokkseixuhgmjtiiqwyeumlegvejituthyazckfnkanpzqszihzlybqkznszjnxkzgbiwtmufidljjfvyvvltmfrbpquewktkcyldqkfxygmvoemeosztxswektosarqyhxffvxipeoenhvphkbidgjjpafzowrcwzgrrobveudcqgmebxyzzycovojifoinlqpkciozewwnlwquyyaxmfxfsawomvzjjhyqgxitflnhcxegstmheyaipslynijwqljjxmnxmbzfoiyvlpsizypyhedjgidrbgisbagrwhqheyuwnpuvimzrnqhahlfaxkewsfmtsxvihcerqdkjstjockstqerellhqrjzwpscketkoesnidwjztxjbjyxwqglefzcovihorlypyxfyhgsnngqqunwkjjtmpmitpfcvsbejlubzlqujsukygugeaxtlrxoitkrustafshhofgpxguflaifbiegufrpswygzvnhhswinvobtwztrilhjbmsxzdwzsyywnwstgsmvkedpelbqzmylozgqmozlhbvpsdmoxfumuvodjokbeikzudrqzoxvttwjrgottbisrgdemvzfrmyjealslzvlprgaolljqltdrgqdgnqvxcjcqgqmucyxfgoqkczdwrkhlhukqwsevjjphfhljdgegecgjzoberqgylcczwltirqmsmozccorxqkusakrwcymbfsgakuvljxgddhrqmdpbaoszfhhcdgvelceozlrqsaobcjhuoxourxilkjotsluigixcmvkfwwrdhwsdensgmymsbqdygzxxmzcognduiaoapxzydpkwsbeuqgpxmnlwjhebbevilkilmyxeeeettczdhcfgcrqxzmdjngagmmserittorrblefswayxuxqssjjxwslyhdmmrgecpoipmoqovdlmgyrrpbgpazndqluscbipunhqzvehvmhvrfbitfdivmnaldckbaiesrisvmxkkanchhisdodiilshzmkrgxbuelvcmhkzfjpzjnctwnhqrhjaaqqjkgajyspeyjyikamwmirnpqhemjunefitjupnztqsijfgpeiqosqddhewcsekpaghbbqlsbfiwbzfvzofriyausioikwlfirsjjwzwithgwkajqgmqhzejpmnpybppdubltalthydnlovcsqrlnwregffzvpuvzbketldivlmkcmijrwlqpabuxpzryyhpvvxkxrhtekwvqmjmxmwxxgpsvupgjyiwcnndzpbtybuktduoschvngpyfwlleoaozujjxiyjqykajxvthjtiapnsykhxwqeukbrenqbfwgroykvbvqeztawkqshwkiclmuwfyfymofyiivlbhkgkrqoquxnaszbwmcuxmrywiyxukdcdkuqgnvcjgrlilqgsshgilmqmcgxcxzymtckatejqabaszmccxpereyokmazqdodeyjvudovvttgrmfvutbltdaadkppkcgghvzfmziffkbgqckquspczgbmjuqnrzezrpuzsrexpgyfsqjnzrfnapsjjndqhamxlrebkhhoyxgzwgiovjsutthtisaayzqnwompliqgqbqwdoexfpwvsmdfloxiznfomwunhihajanmkbbjsdpkwqeklspfazrokdnrmxlrhavkwiztbokwuyinhypzpfhdolehhzxfpjjpazrzywqntdjzvktcwyvtvyeoqdqohlvllfffdpblxxahlaamfeqxllvurengzdhcqwvpcueboudrvregttvncorrjmltdstoivohowxupzdmssradbdeutzfejqgyrtvbznokhqyedjwwhygcybqgbscwmpbfmulxcmcvjfteyiuontiyrlkamvlzwwjnjkpxwgvwahjbhvewvycyenwhswiwpenxhtbsjsffnxogaxettkgnxgohmugkrgwwauhxkmivqsecpnrrvbyjhjgwfkcltxnsypklpfivkzbmuhxpeddreqahnvllhvwjozgwpamxkhlobeanzmhesvzjenarvnymvzfjqazsbrkhntbduztotrkltchoghqoxvptcnrbulyxkhpjusxbyuayeaiaqoiufwuiwlnyzkpbbawgulpweeciabnhcvxxwqaqzhqkndbykcvokblmrlwycnsbszkjcxssilegntnckzpqowpcycrchabgoclujwyozypyvlvqqvguwfpdbqdjqpdghmthvlsnlruoatlvderlergsapiaqwnxcpfrpqwfvosfgbftuikdhidczqwrvxjihwwmbemykwuxhzjpqpnyfnrxwzivynwlcawduxxaygtjmuomxzsuzyzqaahexdstojopgekcqvlzdxnxkkjatyotywfhirwtzcfyzzbxxzkxqqojywzmyqoxwlgdcnaxczzzyeywvhyjnflnvwwehpnashcolnlackrylspwsqjfptyytzsmopybotwcllqotuutxgsvqihmmsmcesksprjpacfmeldurzmyxfolerntlwofaupidrijtgsoaoxtpesjoerzydgnbocqprfhflxejuugmnhutejbmyqefupkobliqxsgejmzgjsdxwmadzxrqejwrxtqldanvpfixtzlalngftyrcczrrcxlivifyglcrfgjcdsacywctaxczsfvihpjhxdtvtqylzhbvxchmxrlofkxzviqnkfxgpsbncshhjrkrkduilrtkhfpzpavnnqwrbbimztkngwfhfawugsnscpsvctifjfobvoegibsxqtabjarlwsedufgfjckilqgzgwelpyqlziqiwoalanlbzcokuepicjpztbyvsfpqskfkabukgutofarljfqwaspaziylsqcmmtskortzfyahscpfkvgthkslrpmxlibpsjpebrexkjsnwpwzzfwpocmkgjrursekqwlufacbkpqpzprzvbxqbaabvjewbvvqwbpejwviidqzxonkvpitbjpxvimtupmfofqxqohuloifqlgenrsqiqwmaeuuqdhrydcdpfjkbaukzpqyxhdfuozrufjdruwjgarpqdyehzjfgjxomihelyfctnmnjuxmxopinvkuzrekhyxcjedumapxoeonkibrsgswwapblrmrgwfhmrzdttzruvwbbojxztixrtkcabpitaszmzvggbdogixefauogmwthfppeqsiugrhhnfjxqqjswohnpzclwifwbwgsmmixekvbgceyjbckdtchhxzvwjnerwqomgtoimxtqosbqubssiaunhufwazvzmrmfdutuldzzlpyazqontitrpqhbbpnozxxgrucjywqspiqjvhxohbjhiwszkhlzcngdlydogdzoiwuidoiaelglkfrvvsnwxxrlaozrarikrgdcelklweekjnbonfusxbuwcbcbktacneqrvkpcmwaantjcbzrcgoakjbcyjbjtubawvcpnblfvviqtmhmoqfcxiyjosteomsgjnurpxrgoeycrqmbcjhmvlatwirfiraapjemgofxlwhkdjteiafohkvuzrgfisdczjhqdlyugdpvptrfwokyhpatfslainoohszsbhdonabtzkhiwyrecemxezgihbtockentivkmmnhnuylhlvphfbcchrbdrjpasmhiulqibcgdjzudhynwottnzvubfivdwbsvrxmardeeexzkkphhrlmwjqqllaphmxosdijsrvokkoiwrzwbcmksfqyxmqgogpiqimknjxgokyymzrzfkmqxrosfanueqnzkuuflmnrolphqsqsorcvafhosjmtrjudeuffcoxgypiapebmwqkxzgkhegztolheckvvoxloupdwusifzlwvoqcgbkbauoabeudpebezkjltxjhxbnboykltlucppsgtzxefofeiluxgjzkhbiiwsyylwkwqqzzkursslfgxbkqkzlfpiqbjbktlwmoervcllfstcoguapsmudunkparfvygxscvqhegnzbpxzsspowrfwjidlapixgdvnwxbhitvkulinulfjsfmhiistnhxfbasiyqoxbbekgpcgaqohbjdbexooloinygqgumgxayfzuoglzylfqywvkfalyylefidhktmqnmufpmccatmmutygiqidgmdfyghqugmyrankcnbslbtprgdiwegznahwgzwlbuyawikcfqztnpceqbluensbxcdhdqixsngvearidtizszcbplgtqspusvipcyxkvtoqlaktmzsykpgrdfznqpyxphmwyrkmirdiiusbrboosjlgepgvhaeasjdgxtddigigvlidqnwmrjdbyawcxuxqqdoxjjxykxhnlhuwnktlqqmlzuttqrcdwefnculkafkcshhcbamxptkjiaebzvybjqaezjscadctekeyehupgltqixslwwmxtdllmvnkeyhbrxmafpzljqcmlwjhuqooqidxnntrcttmlcmulwwxontxkyuvfrjilgxkinpmsuxqovcyefkyczgggztejesjjjgnswdwkebyiwanupircunriaxtefdfvgktsthiztcyexzhwgrpgavbatoqhvucuweywzepgxgjppjywcqktpyucpjhbyfhtwrxymmpashkourddjoxnsebnfhmlogipkutynmrxjkxbyahvibnxkbkeilyndzhzhjdehaiurqscykmikxgnivdyozzhedkmnllblfgxdqddtzqlzvjdsizuhpxcdrqbatiykzbkeswztzlfudicsmgzjqfxgyptkbvbrheapunsgaadywojyzqhlzzbtqtaqcmprnhahxqsgxqmxfhzqghjegmvjazaahjyowtylbiuzlxbkziayezhdevqwtccihheldlfnanmzlboujtkjhhwkvaciwfjwjibvuitdlzpydtdxmhczanwtooznpuvhngqifrtfrzbbnpkzworwirfjwuphnfsrmqgpngvieuioqwxdreanbrtrngauruyhpdewltkopvizspesmkcadwafqgemzkczqkaogciqcgeqgqjqrxwddndjdkpdlbhhyznfoyzonihimztsejqsqadaipgesuqiwxhdqlkbwadfuiltudxndzbjwqeacuapscgcfudvfdxlwvkvfgdbntkqtxairbvcqtozsbnxbiupjolcqmemehpetkkcugbrqsgtofnvuuckdejpyikuntouneqzajqpfiicjjsjnzdcleyanyxwuadkvlnouxmvwebjujhppmyqhytoesoddpwmhhssqtndkcljbqegxbnqqxgodgloaskmdygleadjfmwvsbwzltgzgyxozvngyxpiexubwqjqhahpuyfallnxeaplfwmcaictoyxxoqtsxqkbnsmribfvgynhafkfbgajtkcflygfwrhbqknbcibrixxovfnosthfijnxxxwivcxqgkoltzppdoafmvjebfrrkkjsnnzaglpirrrgfeixmruqucortidgzhneidpnrdpmnfjnxcwqcbcrcxgrtlntcfptfkeujnbwlcvifxrnmqmiobzxpsmcrfbtkfxiywjjsmedaknsbxrglqphghliqegxiipqeezmbuzdnljolsvglkeherdtxvhjkzjkgpelzvsjxmsdcvvrogoqqugdbibsdliifesvsflwrpfjntoyrdhmzolxkglibwokbrkeziutswqbsodszhsugkkbcpdngdggrjpdnpdnteozdxpreujepfdmiuygwbnttqeuwymavsifolrohmnkhbrfezfzpzjgglaqcybhxrzrrfgkpmtfijgrjhsurokeszxtymermmddbnjbqmabuzcgjbtigeaxxlvptlrvkwyhzzkbfcsolgngempjdlwwkwdgbhoyebznrfbsndfjrutprfeikhpqwefwffgfztjlreekxkblzpsjdqwxbqhstllmhplxyxhrazvtkzigsvkumhswkadvlkrwdyifirkqialcfptvoipblfytamamqpkklqivdvzeubwsckhppfnhlpgbwdhgjzqksieeeqbltusdenijueofeacybpvqrwripvlzhywjixbulqgmfaznpvjebtaxcvdtnhmlwavvzhojostcpraerummgvqbrnxxdzbeqsskqbdgflwkbiceshgezuxcibfdllojgmneemempyazphjwpgipjurhaycxctaouftcdyyyulvwitknigiwtzqtyopfyijqnnxizjgdttnphmdpqepgzrdafddjnghegbrzyrqcguzhchanmjeycnnvgpmijyoruqwkooqdxeveccgpflbdprgbxvcxoloorifyfsgdsjbfcvbamirahlnojahcfkbaboxelcobbiuhxbfqprlkvysoxhzbkrdoyljcmzecafvuluxogkqxvhofwowaogwyzagecuxltvxhnstazaumsyvuvqjlemzzhshggxnauiditishtxsujxpkzfibpfwqfarwyietvcirimrjwkjwdgtyuwaqsjsmuigfiewltbtcyufhdqhihovnafzsinzljqmdizvktwrvgojqkvfvflzwdcnvtivloidpkhsfwsrdudlarhsacwaakwsflfovmqwglsdauukmdcggkyjjmrxchrfbkzokjcrzmlfhvubpvnftckteucaahwuvxuomtxzhezpnpxvrsqlbzwbuchlksrdyvcjlmmnsnaqhhrfmgtcpfshqyqbnridxofjulawzsdhnubwpuoxejjruvozijigxfkggtylooyriobaapvhkuvjgcfaafymafiocmfegsaajcnfyxsrsrodhypbopmriftkgyncupyhzzvxkvpvdffbdwrfytdspvfuxgdgukccxntqnabppgkqeqcbxabuaavsthjjloaybufptrfrsdzvyjhqgptgnnsiqxixdmlxrbvwpcesftrfsdeuwtnttpsldbdilzkkjszoqxmsuoihwqjzwxilyugprwtlftdzefgmrzftwpsnpxjeoradticcfwpudhbdbzatbeotgcrnivzxbgxozsezepkyrlkbgerqmoanhxhyvswreeqhaffiwwmttjmkziiejyctzpnzybjhtaaxxhsjtotxfsindtdubnbplpzbdzqqmbigerlvjxqtpwomtwnblnmsvcskzlibowdacnpnxwbrvczdjhzakghmfhijwqgyyzrrepujchblaibwytgiqbzzyyryfykcfhjmmgrfypfnrtmdfwzqonouilpzjmuchmkoxulhatkfeupueuebquqqiatniognyxfkjxiasuqwoodfexjkwocgevoasahrklhlwgjlywigdyjlvxxpaulyarxxhuqbtkglrumwgwkmdkearjmqjtiumnlxsixjxrzdolreudbpkjflrgyhjxqrvanxdhtxvgihpeijbuoqjetgafzflarfhlisnhiygvlqmaddteokzpjnlfmbntlzytswcqiyeetynsmhyabcrshuhpmhzbhhttfnjkbrmfonezmnqqtlwoppcwbktzepaepqysuxagcbvzfvqtojjwfxgsuoncqtclgjwcrsyvmhegekrnrzvtnlluiwpyicxodefpsfwrqvtodueemtzuvooumlhflipusmrwjdgedwezeerxdodzhnpreknzxctcxjeupxssefzxjonjrvebtkfnhljpfdauntldnsvzswfmkpkvzkrxbjyslwrhyfasrwiagcgkdbgejrcqaztwymannjktpddgwlbphjzmaudibllynryqodwidlflvmccickfjechcubjxzkelctnxynxqinqvgyzljxrhpomdzjaauiglqveehzaqudehwslgfkeagvpyuazbzwlljfmvranvpwfhgyuramixxzuusfcgstvtfyhrokezcbahsrahssldxhyvtimibmqhqeulclkskegsukzxazzskcqfyysljmrtqhdaomoqaxfroyxcryyaydjkrdwryxvvddueicvrntsesxrruoeamkdqqrptgymxmwkjvxxyojlbicdlesjyffuwhcakhsevfesdfcdgsdbtouwqjwztospmicswgdfadzyqnbmcayafpngzyfchjdypnlgbayicvoevgowfqcgchvmkcshjhkmrhgcrrzmhiyzimmkatjwbnuedtzazafyvffzkmhjmgwfeqifzrjjeexpzwlybkxzohdejizqlewiktwzxdeipaxjfjbwojfqongasyqagsafrslotkrvwiujivtsxcygbaoiqmpqecaozjglkmvedjgtyqkgnianhcgomzmdapwhtysilguynisqkavjfozwvvesynkoygqziicjwkgdayxlpjlsdkezcyobbvdkadqyqzkwrhegpudybwnsjvabgsnlvflvjbirjucmfnascxeeywcqcubuyvvbisockiujvhxjuzfxorzadtxpwidjmagoscljffidmbchxmbwtvundvntxadychjmekskjyjjfdwioipqehnakqcopzgwqxjmeqtigocyklntzcyetbmogxakgdihojjqheitevspouvxtvqbytksrfqaiciqbgcaburwrvrnbxxhhbkbhdivriqeexjjmskccmcjrupjaapdqhhresapwnvkiyyvkbcqiyygdxkyfuwlrntrvhugxbbltbnprcsigwlzfuicnykqsaqirturjbqapvodnplytcwnwumtfjnnuzaflnqgklyuhdwyqiztrrwnlllxqtuhnnadcl \ No newline at end of file diff --git a/test/compatibility/python/websocket-client/ws_send.py b/test/compatibility/python/websocket-client/ws_send.py new file mode 100644 index 00000000..a01d7acf --- /dev/null +++ b/test/compatibility/python/websocket-client/ws_send.py @@ -0,0 +1,36 @@ +from websocket import * + +import random +import string +import ssl + +def randomString(stringLength=10): + """Generate a random string of fixed length """ + letters = string.ascii_lowercase + return ''.join(random.choice(letters) for i in range(stringLength)) + +st = randomString(32768) + +with open('generated_file', 'w') as f: + f.write(st) + +ws = create_connection("wss://echo.websocket.org/", + sslopt={"cert_reqs": ssl.CERT_NONE}) + +print("Sending") + +frame = ABNF.create_frame(st, ABNF.OPCODE_TEXT, 0) +ws.send_frame(frame) +cont_frame = ABNF.create_frame(st, ABNF.OPCODE_CONT, 0) +ws.send_frame(cont_frame) +cont_frame = ABNF.create_frame(st, ABNF.OPCODE_CONT, 1) +ws.send_frame(cont_frame) + +print("Sent") +print("Receiving...") +result = ws.recv() +if st+st+st == result: + print("Received ") +else: + print("Error") +ws.close()