ó ˜7ÚjÇãóX•SrSSKrSSKrSSKrSSKrSSKrSSKr"SS5rSrSr g)a)A bot in its own process, spoken to one JSON line at a time. Start it with python -s, not -I: -I would ignore the fixed PYTHONHASHSEED that makes a bot that iterates over sets play the same game twice. The referee never imports a bot: it starts the bot's adapter (a small child program each game has, which loads the bot in the game's own interface) and sends it one line per turn. A move that takes longer than the time limit, or a bot that crashed, gets the game's default move; the referee counts those as errors. The child side is `serve(handle)`. éNcó.•\rSrSrSSjrSSjrSrSrg) ÚChildé Nc óª•USSsUlUlUl[RR 5VVs0sHupVUR S5(aMXV_M! nnnSUS'[R"X[R[R[RUS9Ul SuUl Ul URSS 0US 9 gs snnf) NrF)ÚSS_ÚSLURM_Ú0ÚPYTHONHASHSEED)ÚcwdÚstdinÚstdoutÚstderrÚenv)órÚhelloT)Úlimit)rÚerrorsÚdeadÚosÚenvironÚitemsÚ startswithÚ subprocessÚPopenÚPIPEÚDEVNULLÚpÚbufÚnÚask)ÚselfÚargvr rÚstartÚkÚvrs Ú_/private/var/folders/v3/mcwwdgb158s9czwmdjf2pvmh0000gn/T/scienceslack-job-29-lIAUSs/kit/host.pyÚ__init__ÚChild.__init__ s±€Ø-2°A°uÐ*ˆŒ �D”K ¤Ü "§ ¡ × 0Ñ 0Ô 2ÔZÒ 2™˜¸!¿,¹,ÐGX×:Y‹tˆqŠtÑ 2ˆÑZØ #ˆÐ ÑÜ×!Ò! $´z·±ÌzÏÉÔgq×gyÑgyð@CñDˆŒØ!шŒ�$”&Ø �‰�'˜4�¨ˆÒ.ùó [s ¸CÁCc ó•UR(agU=RS- slURRR [ R "0UESUR0E5S-R55 URRR5 [R"5U=(d UR-nURRR5nSUR;a’[R"U///[!SU[R"5- 55un nU(a["R$"US5OSnU(d[&eU=RU- slSUR;aM’URR)SS5uo€l[ R*"U5n [/U [05(a*S U ;a$U R3S5UR:XaU S $GM![,a GM-f=f![4aS U=R6S- slUR6S :¼dURR95bUR;5 gf=f) zKThe child's answer to one message, or None when it is late, broken or gone.NérÚ ó girÚansweré)rrrr ÚwriteÚjsonÚdumpsÚencodeÚflushÚtimeÚ monotonicrr ÚfilenorÚselectÚmaxrÚreadÚ TimeoutErrorÚsplitÚloadsÚ ValueErrorÚ isinstanceÚdictÚgetÚ ExceptionrÚpollÚclose) r!ÚmsgrÚdeadlineÚfdÚreadyÚ_ÚchunkÚlineÚmsg_ins r&r Ú Child.asksÝ€à �9�9Øð Ø �FŠF�a‰K�FØ �F‰F�L‰L× Ñ ¤§ ¢ Ð+?¨cÐ+?°3¸¿¹Ñ+?Ó @À4Ñ G×OÑOÓQÔ RØ �F‰F�L‰L× Ñ Ô Ü—~’~Ó'¨5×+>°D·J±JÑ?ˆHØ—‘—‘×%Ñ%Ó'ˆBØØ 4§8¡8Ó+Ü"(§-¢-°°°b¸"¼cÀ#ÀxÔRV×R`ÒR`ÓRbÑGbÓ>cÓ"d‘K�E˜1˜aÞ49œBŸGšG B¨Ô0¸s�EÞ Ü*Ð*Ø—H’H Ñ%•Hð  4§8¡8Õ+ð "&§¡§¡°°qÓ!9‘�”hðÜ!ŸZšZ¨Ó-�Fô˜f¤d×+Ñ+°¸FÓ0BÀvÇzÁzÐRUÃÐZ^×Z`ÑZ`ÓG`Ø! (Ñ+Ð+òøô"óÛðûôó Ø �KŠK˜1Ñ �KØ�{‰{˜bÓ  D§F¡F§K¡K£MÑ$=Ø— ‘ ” Ùð  úsC”FH'Æ#H'Æ=HÇ>H'ÈH'È H$ÈH'È#H$È$H'È'AJÊJcóh•SUlURR5 g![a gf=f)NT)rrÚkillrA)r!s r&rCÚ Child.close2s-€ØˆŒ ð Ø �F‰F�K‰K�MøÜó Ù ð ús ‰$¤ 1°1)rrrrrr)Ngð?g$@)N)Ú__name__Ú __module__Ú __qualname__Ú__firstlineno__r'r rCÚ__static_attributes__©rr&rr s†ô/ôõ<rrc ó‚•[Rn[R[l[RH‚n[ R "U5nURS5(aSOU"U5nUR[ R"XCRS5S.5S-5 UR5 M„ g)zfThe child's loop: each line from the referee in, handle(message) out; {'hello': True} answers at once.rTr)r-rr+N) ÚsysÚ __stdout__rr r r0r<r@r/r1r3)ÚhandleÚoutrJrDr-s r&Úserver[:sy€ä �.‰.€CÜ—‘„C„JÜ— ” ˆÜ�jŠj˜ÓˆØŸ™ ×)Ñ)‘©v°c«{ˆØ � ‰ ”$—*’*¨·W±W¸S³\ÑBÓCÀdÑJÔKØ � ‰ Ž ò rcóª•SSKn[RRS[RR [RR U555 URRSU5nURRU5nURRU5 UH n[XE5(dM[XE5s $ [U5R5Vs/sH*n[!U5(dM[USS5S:XdM(UPM, nnU(d[#USSR%U535eUS$s snf) zTThe first of names defined by the bot file at path, which may import its neighbours.rNÚbotrQÚz defines none of z, éÿÿÿÿ)Úimportlib.utilrWÚpathÚinsertrÚdirnameÚabspathÚutilÚspec_from_file_locationÚmodule_from_specÚloaderÚ exec_moduleÚhasattrÚgetattrÚvarsÚvaluesÚcallableÚ SystemExitÚjoin)raÚnamesÚ importlibÚspecÚmodrr%Úfnss r&ÚloadrvEsü€ã܇H�H‡O�O�A”r—w‘w—‘¤r§w¡w§¡°tÓ'<Ó=Ô>Ø �>‰>× 1Ñ 1°%¸Ó >€DØ �.‰.× )Ñ )¨$Ó /€C؇K�K×јCÔ Û ˆÜ �3�?‹?ܘ3“?Ò "ñô˜3“i×&Ñ&Ô(Ó bÒ(�¬H°Q¯K‹1¼GÀAÀ|ÐUWÓrxs*ðñ÷/×.×.÷,ñ,ò^ó r