Jump to content
Korean Random
StranikS_Scan

PjOrion - редактирование, компиляция, декомпиляция, обфускация модов (Версия: 1.3.5 Дата: 11.08.2019)

Пользуетесь ли вы Орионом?  

314 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

Решил тут немного поэкспериментировать с защитой

Набрал такой простенький код

raise NotImplementedError
Обработал обфускатором и протектором, закинул в папку с модами, запустил игру, залез в логи.

И увидел такой выброс:

Traceback (most recent call last):
   File "__init__.py", line 32, in <module>
   File "<string>", line 1, in <module>
   File "", line 0, in <pjorion_protected>
   File "", line 1, in \x05\x00\x00\x13\x16\x0f
   File "", line 1, in <pjorion_obfuscated>
NotImplementedError
А теперь попрошу уважаемых знатоков определить, как назывался мой файлик в папке с модами (__init__.py это загрузчик).

"К чему я это запостил"

Пользователи дико матерятся, увидев такие логи. Ибо абсолютно невозможно понять из-за какого мода не запускается/вылетает/лагает игра. А выяснять перебором долго и нееффективно. Имейте уважение к юзерам, оставляете хотя бы имена файлов во внешних модулях!

 

З.Ы. Я писал об этом еще до появления обфускаторов и протекторов в Орионе, но почему-то никто (не буду показывать пальцем) меня так и не услышал.

  • Upvote 6
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

Ну с именем файла - это просто косяк, недоработка. Гляну куда оно пропало.

 

Что касается остального то:

- имена функций и классов мододел сам обфусцирует чтоб не понятно было что это.

- номера строк в lnotab после перемешивания кода при обфускации перестают иметь какое либо значение, потому они и зачищены.

 

В связи с этим, ты собственно чего предлагаешь-то?

 

как назывался мой файлик в папке с модами

 

Глянул. Дык имя файла я всегда подтирал при компиляции pyc начиная с первого выпуска Ориона, по умолчанию там пишется полное имя к py-файлу, я туда "" вписывал всегда и выходило например  так:

def aaa():
    print f
import BigWorld
BigWorld.callback(5, aaa)

Traceback (most recent call last):
  File "", line 2, in aaa
NameError: global name 'f' is not defined

Ни кто не жаловался. Меня лично раздражало что обычный компилятор туда пишет полное имя файла и светит мои папки. Можно туда имя скрипта прописать конечно, только вот если ты потом файл переименуешь то поле File "" будет содержать старое имя.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Решил тут немного поэкспериментировать с защитой

Набрал такой простенький код

raise NotImplementedError
Обработал обфускатором и протектором, закинул в папку с модами, запустил игру, залез в логи.

И увидел такой выброс:

Traceback (most recent call last):
   File "__init__.py", line 32, in <module>
   File "<string>", line 1, in <module>
   File "", line 0, in <pjorion_protected>
   File "", line 1, in \x05\x00\x00\x13\x16\x0f
   File "", line 1, in <pjorion_obfuscated>
NotImplementedError
А теперь попрошу уважаемых знатоков определить, как назывался мой файлик в папке с модами (__init__.py это загрузчик).

"К чему я это запостил"

Пользователи дико матерятся, увидев такие логи. Ибо абсолютно невозможно понять из-за какого мода не запускается/вылетает/лагает игра. А выяснять перебором долго и нееффективно. Имейте уважение к юзерам, оставляете хотя бы имена файлов во внешних модулях!

 

З.Ы. Я писал об этом еще до появления обфускаторов и протекторов в Орионе, но почему-то никто (не буду показывать пальцем) меня так и не услышал.

 

Ты прав. У меня тоже дико горит, когда обычные прицелы обфусцируют, а я копаюсь часами и ищу виновника, будь они прокляты!

Share this post


Link to post

Short link
Share on other sites

@GPCracker, сделал добавления имени файла в свойство байт-кода при компиляции.

 

a1.pyc

у
=±Uc           @   s)   d  „  Z  d d l Z e j d e  ѓ d S(   c           C   s	   t  GHd  S(   N(   t   f(    (    (    s   a1t   aaa   s    iяяяяNi   (   R   t   BigWorldt   callback(    (    (    s   a1t   <module>   s   	

Traceback (most recent call last):
  File "a1", line 2, in aaa
NameError: global name 'f' is not defined

Share this post


Link to post

Short link
Share on other sites

просьба, добавить в заголовок окна программы путь открытого файла

на примере notepad++ post-28388-0-02733200-1426178854_thumb.jpg

 

Edited by Helkar

Share this post


Link to post

Short link
Share on other sites

просьба, добавить в заголовок окна программы путь открытого файла

 

Внизу он в строке состояния.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Внизу он в строке состояния.

точно, спасибо, не заметил   :shy:

кстати, при открывании (и декомпиляции) .pyc файлов, путь не показывается

Edited by Helkar

Share this post


Link to post

Short link
Share on other sites

кстати, при открывании (и декомпиляции) .pyc файлов, путь не показывается

 

А путь к какому файлу должен показываться-то? Ни какого py файла при декомпиляции в самом редакторе не создается же.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

А путь к какому файлу должен показываться-то? Ни какого py файла при декомпиляции в самом редакторе не создается же.

 

путь к открытому файлу...

допустим, открываем файл (.pyc), декомпилируем, меняем код, компилируем обратно.

открывается диалог сохранения файла, хотелось бы сохранить в той же папке где был изначальный .pyc

поэтому и попросил выводить путь открытого файла чтоб видеть куда сохранить

 

также, если открыто много окон Pjorion, между ними немного трудно ориентироваться где что открыто  :shy:

Edited by Helkar

Share this post


Link to post

Short link
Share on other sites

путь к открытому файлу...

допустим, открываем файл (.pyc), декомпилируем, меняем код, компилируем обратно.

открывается диалог сохранения файла, хотелось бы сохранить в той же папке где был изначальный .pyc

поэтому и попросил выводить путь открытого файла чтоб видеть куда сохранить

 

Ээээ нет. Файл pyc вы не открываете, если вы откроете в редакторе pyc файл - то вы увидите крякозяблики из которых он и состоит.

 

Процесс декомпиляции - это не процесс открытия pyc файла. Это процесс реверса или восстановления скрипта, причем получающийся скрипт не есть скрипт py файла, из которого вы делали pyc файл. Логически они должны совпадать, но не физически.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Ээээ нет. Файл pyc вы не открываете, если вы откроете в редакторе pyc файл - то вы увидите крякозяблики из которых он и состоит.

 

Процесс декомпиляции - это не процесс открытия pyc файла. Это процесс реверса или восстановления скрипта, причем получающийся скрипт не есть скрипт py файла, из которого вы делали pyc файл. Логически они должны совпадать, но не физически.

я понимаю что такое процесс декомпиляции, и все же хотелось бы ориентироваться где что находится если открыто несколько окон программы

Share this post


Link to post

Short link
Share on other sites

GPCracker, сделал добавления имени файла в свойство байт-кода при компиляции.

Расширение забыл...

Кстати, насчет компиляции

import py_compile
import marshal
import struct
import time
import io

def compileSource(source, filename = '<string>', filetime = time.time()):
	with io.BytesIO() as bytesIO:
		bytesIO.write(py_compile.MAGIC)
		bytesIO.write(struct.pack('L', long(filetime)))
		bytesIO.write(marshal.dumps(compile(source, filename, 'exec')))
		result = bytesIO.getvalue()
	return result

Share this post


Link to post

Short link
Share on other sites

 

 

Расширение забыл...

Кстати, насчет компиляции

 

 

А зачем оно, имя модуля не содержит расширения.

 

И чего про компиляцию?

Share this post


Link to post

Short link
Share on other sites

И чего про компиляцию?

Меня лично раздражало что обычный компилятор туда пишет полное имя файла и светит мои папки.

Скрипт компиляции "ручками".

Share this post


Link to post

Short link
Share on other sites

Скрипт компиляции "ручками".

 

Ну она всегда была ручками. Другой нет. В Питоне2 там код как у тебя выше только менее красивый, а вот в Питоне3 там пипец код на компиляцию перемудрильный в исходниках.

Share this post


Link to post

Short link
Share on other sites

How is compiled into bytecode PY

my code

magic 03f30d0a
moddate 8b05e354 (Tue Feb 17 17:10:35 2015)
code
argcount 0
nlocals 1
stacksize 3
flags 0043
code
6401008400007d00007a0e007c00007c000083010001576400007e000058
64000053
consts
None
code
argcount 1
nlocals 23
stacksize 23
flags 0052
code
710202830100641600d9b57d100041b0e75d7c08007c08007c00007c0e00
8302007c12008302008301008301008301008301007c10007c0f007c1000
7c0f007c08007c080071fa02014193015771f304a4aa417c04007c03006d
0101017c0b007c14008301007d16007c0a007c08007c16007c15006efb00
a4667c00008301007c08007c08007c00007c0e008302007c12008302007c
0f007c10007c0f007c10007c0f00711200417c0800642900d38741830100
7c05006423007c030041830100177c0500641c007c040041830100178301
007d0f007c06006e20047c020071dd03a1e27c0f00b98302007a7c07007c
05006418007c0200416419007c030041640d007c030041641a007c040041
6ed7067c060063416425007c030041642c007c040041642f007c04004171
490571c503830100fe7c0400715d00a941926414007c0400416411007c03
00416415007c0300416416007c0200416409007c0200416412007c020071
9209a571000007830200728302008301007c08007c0c007c0d008302006b
0200729e087c0a00717a007c0800a2ec71eb007c0800a9830100dd6f6706
008302008301007d15007906006e1000e4fb83715a00b0a8716307640a00
f3727c08007c06007c14008301007c1500830200830000714b00642a007c
080069177c05006425007c030041830100177c0500641200719607b5077c
0e00ea7e6401007d01006402007c0100417d02006403007c0100417d0300
6404007c0100416e5001718a02641000d362830100830100830100178301
000b197c08007c00007c13008302008302007c080071af05641b00830100
71ce03640900d87c00007c04007c02007441642b007c0200416429007c03
0041642d007c0400416ea602e67d0a00cf7c0300cb7e7c09008302007c07
007c05006412007c0200416412007c0200416413007c020041713e01718f
087d1400640500416a6409007c0300416434007c02004167080083020083
0100713304f3826421007c0400416410007c0200416422007c0400416423
006e8306417c0200c541ae727c00007c0e008302007c1200830200830100
830100830100830100178301000b197c080071fc06715205937c07007c05
00642e007c0300416419007c030041641c007c0400711501640f00715908
9d7c0800938302008301008301008301008301008301000b197c08007c16
007c1500716b087c0400deda7c1200847d04006500007d05006501007d06
006502007d07007c06007c05006405007c0200418301007c05006406007c
020041714c0983020071cf03a8e27190057c1000be416b7c10007c0f007c
08007c08007c00007c0e008302007c1200830200830100712e0271ae0183
010041ef927c07007c05006409007c0200416410007c0200416411007c03
00416406007c020071d40683020071a5076403008a642a00d1607c050064
0b007c0400418301007c0500640c007c040041711e0afc415a7d14007c08
00640f007c09008302007c07007c05006435007c0200416e5402e77c0200
830100a541830200eb70418301007c05006419007c030041830100177c05
00641c007c04004183010071e301e3f4b2b8128f7c05006426007c020041
830100177c05006427007c040041830100177c050071f009e38f41641f00
7c0400416415007c0300416420007c03007169028302007c0400ef417c02
00640400866433007c030041640c007c0400416416007c02004171bb0241
b4e27c000086586e0200d96f640000537c05006417007c0300418301007c
05006409007c020041830100177c0500640a00711909417c0200bedab47c
6709008302008301007d12007c0800640f007c0900830200712503b0c964
2900746429007c0200416426007c0200416430007c02004164310071670a
c6830100cd640c00fe5d8301007c08007c0c007c0d008302006b020072f8
047905006e0a00416e6eb704f27c0400787c05006424007c0200716004e9
9e670500ad7c0e00719e00670800747c08007c00007c0e008302007c1200
8302007c0f007c10007c0f007c10007c0f007c08007c08007c00007c0e00
8302007c1200714d039f7c0200d0c18441642b007c020041670700830200
8301008301007d11007c080071e808d37c0e007c150017fb711904867c0f
007c10007c0f007c08007c08007c00007c0e008302007c12008302008301
008301008301008301007c10007c0f0071b9037174027103060741905f7c
020041830100177d09007c06007c0800640f007c090083020071e3030671
0f077d0200f6714c01d6085f7c030041640c007c040041642a007c030041
6410007c0300416409007c030071ec05a27c020055826409007c03004164
08007c0200416408007c0300416428007c0400416416007c02004171a201
ddff41791a00e774416704008302008301008301007d0a007c06007c0800
640f00718c027d0300642e00cf7d09009f6e7c00007c1300830200830200
7c0a007c00008301007c08007c08007c00007c0e008302007c1200830200
7c0f007c1000711606719b007f7c02000b7c00007d0a00bd716407007c04
0041830100177c0500640a007c030041830100178301007d080071160407
d6640f0017641c007c080022726705008302008301008301007d0c007c08
00640f007c090083020071ec008301007c0900078b737c02004183010017
7c05006425007c03004183010017718804641e007c0600718005830100d5
93640f007c09008302007c07007c05006432007c040041641b007c040041
6405007c02004171d30471c308826407007c040041641b007c040041641c
007c040071b808716505640900830200607c07007c05006407007c040041
6408007c0300416411007c0300416406007c0200416417007c030041716f
07714a00957c08006409007c09007d6408007c020041830100177c050064
09007c020041830100177c0500713f0741713b01b77c0400628302008300
008303007c110083000004556e1f007c04007fe72f718f0571b7046271f3
04710b02ba830100418301001741775871f804b5642b006411007c0800ee
7c0200d38371f2047c12006941641d007c040041641e007c040041640e00
7c020041641f007c04006ee800ca12d571c008e37c0e007c01007c000065
640f007c09008302007c07007c05006425007c0300416426007c02004164
2c007c040071ac04650000830100de8301006e7c03004183010017830100
7d10007c06007c0800640f007c09008302007c07007c05006405007c0200
41640900717e0641bf91830100177c05006407007c040041830100177c05
007143087167087c0000f8e77c0e00176411008b697c0300416713008302
008301007d0d007c0a007c0600716e050b22955c416412007c020041670a
008302008301008301007d0b007c0b007c0800640f007c09008302007109
08791a006b416407007c040041641b007c040041640c007c040041642000
7c03004171d702308301007c0400714d07713f087991005f6428007c0400
41830100177d0e007c08007c08007c0e008302000157713d0a71d0008301
00ed7fe6c8641900988e830100177c0500640d007c030041830100177c05
00640e00715306642d007171f8047c0f008b790101017c06007c05006429
007c020071b0007c02007c0300712308830100715006637c040041641a00
7c040041642b007c020041670c008302008301007d13007c080071bd07
consts
None
91
82
74
30
110
108
49
104
125
99
47
42
120
103
''
112
97
86
96
40
126
123
98
75
100
41
44
43
3
48
38
127
17
53
116
111
114
102
33
32
101
115
122
26
54
119
34
107
36
7
70
109
121
code
argcount 3
nlocals 82
stacksize 23
flags 0043
code
6e021e4171120ad7e67c020071a90b718e0e830100d7877c40007c13007c
49008301007c13007c41008301007c13007c4f008301007c48007c4e007c
38007c47007c13007c3d008301007c13007c4400830100830e0053830100
186400007c14007c19007c14007c02008301000b7c14007c02008301001a
830100830100850300196400006400007c14007c02008301000b7c14007c
02008301001a85030019177d020071b4008301007c05006c7c4c007d4d00
7c0e007c4b007c3c008302007c4d0083010001714f12642a00642b009c66
71e3097c09006a5c02007d2c007d2d007c0b007c11007c2c008301007c11
007c2d00830100418301007c5100177d51006e0b20417d360086577c0200
7c14007c02008301007c14007c02008301001a6400007c14007c19007c14
007c02008301000b7c14007c02008301001a830100830100850300196400
006400007c14007c02008301000b7c14007c02008301001a850300197c02
007c14007c02008301007c14007c0200830100186400007c14007c190071
551c640c00cb7101167c7c050041643e007c040041643f007c0400416424
007c0500416432007c0a00416713008302008301007d1b007c12007c0c00
8301007c12007c0e0083010004036b02006f03027c0e007c1a007c1b0083
02006b02007105027d4b00718018641f005c02007c09007c040045641200
416400005d020172881b7c0e007c1a007c0e006412007c0f008302007c0d
007c0b006440007c0800416441007c0800416442007c0600416443007c05
00713c21a8417c0200417c190071a90c246443002c5a7c20007c37006400
00640000645200850300197c21007c0200830100830200445d17006e2b00
71ee10d3a27d02007c0600ffc87c1a007c1400836ebe21417d4000716014
dc0bbc7d3c007c010071ac0a86711a24712812fa8301007c0900ad747c20
007c3900640000640000645200850300197c21007c020083010083020044
5d0a0071f7026432008301007e6e5c0d7c0900d57c0900715a0c41830200
71e40d44de71d9015c6e060d7c4000dfc964310071341141f4641200665c
02007d2c007d2d007c0b007c11007c2c008301007c11007c2d0083010041
8301007c4000177d400071b3077c02000869577c02007c14007c02008301
007c14007c0200830100186400007c14007c19007c14007c02008301000b
7c14007c02008301001a830100830100850300197c02007c14007c020083
01007c14007c02008301001a6400007c14007c19007c14007c0200830100
0b7c14007c02008301001a8301008301006e5111767d0f00ee7c4a004173
641c007c060041644b007c0900416449007c0800416441007c080041643b
007c0a0041642b007c0a0041640a007c0800416416007c08004167090083
02008301007d25006412007d0200780d00712b04a87c02002fd46431006a
71c8065785030071fd02640700c741dd656e49027c140071591d71051cc9
641200830100643f0041712c13687d45007c12007c45008301007c1d006b
0800725c0e6412007d4600780c00717504d47c0700ea25af01746e870a2d
5e719f09eb641e007165156432007c1c00915c02007d2c007d2d007c0b00
7c11007c2c008301007c11007c2d00830100418301007c4d00177d4d0071
880f7c36007c0200a441c941783101de88577c02007c14007c0200830100
7c14007c02008301001a6400007c14007c19007c14007c02008301000b7c
14007c02008301001a830100830100850300197c02007c14007c02008301
007c14007c02007157004164120025718a1c7c2000b4937d2e007c0e007c
01007c0e006412007c0f008302007c0d007c0b00644e007c090041644100
7c080041641b007c040041643b007c0900416446007c0600416453007c04
0041642f007c050041642a007c0700416446007c060041642b007c090041
670a008302008301008302007d2f007c0e007c01007c0e006412007c0f00
8302007c0d007c0b00643c007c0700416431007c070041641b00712718e5
830100f96b08007c0b00643e00017c14006f6435007c0900416428007c06
00416436007c0400416705008302008301008301007d1a007c0e00641200
7c0f008302007c0d007c0b006437007c0500416438007c0400416439007c
0700416425007c0500416433007c040041641d007c0a00416411007c0700
41643a007c0a00416438007c040041643b007c0a0041643c007c07004164
0d007c0a00416439007c070041640c007c090041643d00719001bf7c1d00
7d450007867c14007c0200830100644f006b000072c7067c0b007c0e007c
0e007c00007c24008302007c25008302007c14007c0200830100640d0017
0b198301007c0200177d0200710d0471ab0a7bc97c0700ef68577c0e0064
12007c0f008302007c0d007c0b006409007c070041641a007c050041644e
007c0900416431007c070041644f007c0500416432007c09004167060083
02008301007d26007c0e006412007c0f008302007c0d007c0b006450007c
0400416441007c08006ec003ca19ef5f7c14007c19007c14007c02008301
000b7c14007c02008301001a83010083010085030019177d02006700007d
4f00780d006e1e00644e007c0400719001796e37158301009b7bb2e77c07
00a3417c1b00b96b71f423712a03ae7c0e007e7c20007c32006400006400
00645200850300197c21007c0200830100830200445d0b006e1200e16423
0071a90b5e713c03b5b48bb8bef386710b03d2f15d7c3300445d16006e1b
007c06007c020083010083020071291371a70d5e7122127c4a00b5736e07
147c0b00eff717d77c090071201241727c2a007c28006b02007251087c15
007c0e007c0e007c23007c29008301007c26008302007c27008302008301
007d2a007c2900640d00377d290071bd0f645200084125beb55d29015a57
577173087129047c0400644700419074010101717308c2dad571c01571c9
165d586412007d2b0078130071a20841ff7c080083020097830100f54176
776e7c03670b00b79d7c0a007c1400b9b6d1766771870b719d15927c2000
7c3e00640000640000645200850300197c21007c0200830100830200445d
14006e1d00ce643200bab4c97183157c2d00ef95976e6e9a0e1764530011
7c08005e6e5b0e7c0200641600db8301007c6432007c0a00416709008302
008301008302007d23007c02007c18006b020072881b7c0e006412007c0f
008302007c0d007c0b00644d007c060041643d007c0900416421007c0800
41643c007c070041644b007c0a0041642f007c050041640c007c09004164
42007c0600416426007c0800416709008302008301007d24007c0e006412
007c0f008302007c0d007c0b00644e007c0a004171c003fd412f41417c42
0045867c20007c4500640000640000645200850300197c21007c02008301
00830200445d07006e0c007c05005d6e2d0590dec0da6671c10e417c0200
318301007c140064410084577c13007c4b008301007d4b006e05087c0200
7c060097b47b71a21064120071a8108301007c0c00637c12007c4a008301
007c1c006b080072410a7c00007c00007c4a007c02008303007d4b0071f8
11c67c14007c140025c8ba7c04006c7c12007c4a008301007c1d006b0800
72f2116412007d4b0078100071770a417d3a00a77c0200cf7c26009271ab
118301006707009b63710217227c140026c8195c6432007c090041642b00
7c0900416708008302008301008302007d34007c0e007c01007c0e006412
007c0f008302007c0d007c0b006457007c0600416453007c040041641b00
7c040041645a007c050041642d007c0900416418007c090041711716d717
e171fd0ff1f0718b0c410679416413007c080041644e007c0a0041640c00
7c0a00416451007c0a00416432007c0900416707008302008301007d2700
7c15007c0e007c0e007c2300643d008301007c26008302007c2700830200
8301007d2800640d007d2900791b006e2d007c07007c06007c0d00d171b8
1d71c706719903830100b686716208670500fe643200b18301007c17007c
14008e71b40f2d715012877c20007c020064000064000064520085030019
7c21007c17007c16007c28008301008301006425001f830100830200445d
050071cd0b9c60710d0c72a51483020026f79d905b6e0f00417c090006ab
1a41bf4164570041715c02007d2c007d2d007c0b007c11007c2c00830100
7c11007c2d00830100418301007c2b00177d2b0071b70b4172577c2b007d
02006412007d2b007812006e1f009cdedde6c87c29009041ae71b5168571
5e1be2416700006431001a6403006a6ec500a0715b135d6431007c070041
640d007c090041640b007c060041645b007c090041670900830200830100
8302007d39007c0e007c01007c0e006412007c0f008302007c0d007c0b00
644e007c0a00416431007c070041644b007c0900416409007c070041641d
007c0500416409007c0400416428007c060041642c007c080041642d007c
0900416447007c0700416ebe09c3716d04645200645200857c3400445d10
0071fd0c7c0f00c0fe7c0a00e5d641237071c020be7c02005c71b1147105
0f641b00637c20007c0200640000640000645200850300197c21007c1700
7c16007c2a008301008301006425001f830100830200445d0800714d0da1
eead9a70715d1be7830200716f166971211b45ad7c0f00267117087c0200
643200078d7c0d007c0b006457007c060041640c007c0a00416414007c07
0041644e007c0a0041640c007c0a0041643d007c0500416458007c050041
641f007c0600416417007c0700416709008302008301008302007d33007c
0e007c01007c0e006412007c0f008302007c0d007c0b00644e007c090041
6431007c070041643f007c060041643d007c050041642d007c0900416459
007c07004171820ae6e37c110083010071130683010083020071410f416d
7c14007c02008301007c14007c02008301001a6400007c14007c19007c14
007c02008301000b7c14007c02008301001a83010083010085030019177d
02006e1100850300c07d02007b8b017a7c45007d46007c0e007c44007c3c
008302007c4600830100016e73098301008301005d290184576412007d47
00781a006e27007c0b0064490071a613670a007c0a007c02007c0200a986
6e94019871d70d9ab3640d007c2e007c71b002f31041bf71680a5a5c0200
7d2c007d2d007c0b007c11007c2c008301007c11007c2d00830100418301
007c4600177d460071bf09109883010010645300269570577c02007c1400
7c02008301007c14007c0200830100186400007c14007c19007c14007c02
008301000b7c14007c02008301001a830100830100850300196400006400
007c14007c02008301000b7c14007c02008301001a850300197c02007110
0ee5107c1200f0642900645500937c20007c4c0064000064000064520085
0300197c21007c0200830100830200445d08006e0d00641200ce7771c104
41643a006c718604df7c2e00641800640000eb643900817c3a00714c1388
7c28007d2a00781d006e2a0083020071ff1c7c14007c0600bd7c03007c21
0071f4017c120061715208417162027c3300d57d3500418c7108087c0b00
7c06007c1400edde41643b00712506645c02007d2c007d2d007c0b007c11
007c2c008301007c11007c2d00830100418301007c4700177d470071d002
71080b8301008302007c08007c090060577c02007c14007c02008301007c
14007c02008301001a1f7c02007c14007c02008301007c14007c02008301
001a20177d02006412007d48007810006e2700710e187131097c020071fa
019271cd137c0e00cc640d004171a303ad7c0b00ef7144137d2d00876e4a
097bd4c144e317837c0600416439007c0700416453007c0700416409007c
0400416421007c080041642d007c0a0041645a007c0a00416428007c0600
41670b008302008301008302007d36007c0e007c01007c0e006412007c0f
008302007c0d007c0b0071cd1cfc7d30007c0a007d28007c17007d1f0085
0300830100076439005a7d3e007c12007c3e008301007c1d006b080072bf
176412007d3f0078140071621180714f17cc643900644400aa830100816d
6e230617641b00e5c36771a908dae4641e00e16a5c02007d2c007d2d007c
0b007c11007c2c008301007c11007c2d00830100418301007c4b00177d4b
00712217a1718c01a8ea8301008301007c060041f06c577c02007c14007c
02008301007c14007c02008301001a1f7c02007c14007c02008301007c14
007c02008301001a20177d020071f811e6ae830100f98ae171e81f7c0f00
71d820867c4a007d4b007c0e007c49007c3c008302007c4b008301000171
d5077c0700e16412000bb97c020071b21b7c0a00987a576412007d4e0078
0b007144127c140071c71fbd8c714c2471210a71400f7190149171500283
01005d7c4a00445d12006e1d0071b0157c3700ae57644100640a008571d2
0081d8641200645200c7b8836e640c4141642d00d27d060041e2d6927c20
007c4200640000640000645200850300197c21007c020083010083020044
5d070071c012640d008771e31fd07c0e007c0700830100b69e7c2c00766b
71ae1f8301006d7c3a00445d13006e190041077d46008301007c0200fd71
160087718b1e643200bf2583712611d37a7c0e006412007c0f008302007c
0d007c0b006430007c0600416431007c0700416411007c0700416432007c
0900416704008302008301008301007d18007c0c007c0b00642b007c0a00
418301007c0b00640c007c050041830100177c0b006418007c0a00418301
00178301007d19007c10007c0e006412007c0f008302007c0d007c0b0064
33007c0400416434007c08004171d005fd71400a7c07008503005b5c0200
7d2c007d2d007c0b007c11007c2c008301007c11007c2d00830100418301
007c4800177d4800710f1a7c0f008302007c4500711c1e7130054179577c
02006400006400007c14007c02008301000b7c14007c02008301001a8503
00197d02006700007d4900781400711914f54185030031e57d1f00fa7c07
0057f37e712312830100713800fa8371d1078301007c2100418a7d7c0c00
7c0b006408007c0900418301007c0b006409007c040041830100177c0b00
640a007c080041830100177c0b00640b007c060041830100177c0b00640c
007c050041830100177c0b00640d007c0a0041830100177c0b00640e007c
040041830100178301007d0e007c0b00640f007c0a00418301007c0b006e
341041f9850300417c0400eae49ae141837d42007c12007c42008301007c
1d006b0800729e206412007d4300780f0071f5146430007c2c00ddc371d7
0b7a71e41f817c4c00fc83010041ee6414005d290171bb1e617182126411
00fddb640200efe2670400945d850300196400006400007c14007c020083
01000b7c14007c02008301001a85030019177d02006700007d4100780f00
71531517830200da715c217c05006f6e790b817c040064170019c5a78571
de0c719b0164430071f30a644e000efed0d0644e00644700707c05004164
25007c0500416417007c0700416709008302008301008301007d1f007c0e
007c1f007c0b006448007c0800418301007c0b00642d007c050041830100
177c0b006410007c060041830100177c0b006421007c0600418301001783
02007d20007c0e007c1f007c0e006412007c0f008302007c0d007c0b0064
49007c080041643f007c040041643c007c0700416431007c040041642600
7c08006e3d03e3f9b3eeb38301006f643d007c0500416455007c04004164
11007c0400416443007c0500416458007c050041670b0083020083010083
02007d35007c0e007c01007c0e006412007c0f008302007c0d007c0b0064
57007c060041640c007c0900416414007c070041644d0071ac10644100dc
711f22a8713114efc071531a417c5000656436007c040041670b00830200
8301008302007d3a007c0e007c01007c0e006412007c0f008302007c0d00
7c0b00644e007c0a0041640d007c050041641b007c0400416457007c0600
416443007c0500416453007c070041643e007c0800416438007c0700719f
18714d14a3f57c0400867c20007c4a00640000640000645200850300197c
21007c0200830100830200445d0a00713a17957c050011a16d71aa117d0b
00f05c020073716c117c1d007c02007c0500670c006d5c02007d2c007d2d
007c0b007c11007c2c008301007c11007c2d00830100418301007c3f0017
7d3f0071c9087d3500714c0871577c02007c14007c02008301007c14007c
02008301001a1f7c02007c14007c02008301007c14007c02008301001a20
177d02006e12008a2f830100a883020041c3867c3e007d3f007c0e007c3d
007c3c008302006ea206dc7c4300642f007c0e00fbc8239f850300b8747c
3b00445d19006e31008301007c0800ab644600c6830100f77c0a00711219
8771820e7c08007d4b00c36400007c06007c0700a47c07008301006b7146
049f777c040041642b007c0a0041640d007c0a0041642a007c070041643c
007c0700416430007c070041642b007c0a00416439007c0700416454007c
0a00416426007c080041670c008302008301008302007d30007c0e007c01
007c0e006412007c0f008302007c0d007c0b00644e007c0a00416ea40a7c
07007741640b007c0600416447007c0700416456007c060041670b008302
008301008302007d3b007c0e006412007c0f008302007c0d007c0b00642a
007c0700416424007c0500416421007c0600416432007c0a00416459007c
040041644f007c0500416706008302008301007d3c006700007d3d007814
006e1f007168165d2c004171401fffb971061f1a636e6005a37d2d0071a5
077118198f71c71271231f07c3e98a7c20007c2000670900874167050083
02008301008302007d21007c10007c0b00642b007c0900418301007c0b00
644a007c070041830100177c0b006436007c040041830100178301007d22
007c0e007c22007c0e006412007c0f008302007c0d007c0b00644b007c0a
00416434007c0600416432007c090041640d007c090041644c007c090041
6418007c090041642d007c0900416411007c04004171fa08716706806439
0071761241641200847c20007c3600640000640000645200850300197c21
007c0200830100830200445d1000712d1a7c07009c71ee12a77c2c00aa6b
71cc13aa9785030041db63718f13713f1d8301004171cc16d77c07007c02
00a67c0e00778302008301008301007d10007c0c007c0b00641c007c0600
418301007c0b00641d007c050041830100177c0b00641e007c0400418301
00178301007d11007c0c007c0e006412007c0f008302007c0d007c0b0064
1f007c0600416420007c0900416421007c0600416422007c070041714b1d
7c0500797d50007c12007c50008301007c1d006b0800728c1c6412007d51
00781a006e2e006400007c0d007c0d005c02007c09007c42002d7c16006c
710b016400007c0200077c2100a1317c0600714f04998d6ee20583010045
71ce117b417d36007c07007c0b005d5c02007d2c007d2d007c0b007c1100
7c2c008301007c11007c2d00830100418301007c2b00177d2b0071370d7c
02007c02007d0e007c3d007c140068577c2b007d020071881b7c07008301
006371881b645700a37664100085030041713810fb71460c850300937c0e
007c01007c0e006412007c0f008302007c0d007c0b006450007c04004164
53007c040041643f007c060041642d007c0a00416418007c0a0041641300
7c0400416449007c080041641c007c060041643b007c0500416411007c07
0041640d007c090041670b00830200830100830200712105830100707d4a
007c12007c4a008301007c1e006b0800720c0a6700007d4b00781a007143
1c830100717e0ba0ab719207718518725f177c0200ba455b71e409ef8301
00b241c45f714b12c641640c00f244f9710610718f0a6d7c14007c020083
01000b7c14007c02008301001a83010083010085030019177d020071921c
d0850300830100715014b6c9267c1400016c7c50007d51007c0e007c4f00
7c3c008302007c51008301000171f823830100a177577c12007c01008301
007c2e007c2f007c30007c310071170071591f7c09006b644e007c090041
6441007c080041641b007c040041643b007c0a0041640b007c0600416459
007c0700416432007c0900416707008302008301008302007d37007c0e00
7c01007c0e006412007c0f008302007c0d007c0b006457007c060041640c
007c090041641b007c040041644c006e62059fbff74124267c0d00fa8967
04008302008301008301007d12007c0c007c0e006412007c0f008302007c
0d007c0b00641f007c0600416423007c0600416424007c0500416425007c
0500416426007c0800416705008302008301008301007d13007c0c007c0b
006427007c0a00418301007c0b006428007c060041830100177c0b006421
007c080041830100178301007d14007c0c007c0e006412007c0f00830200
7c0d007c0b006429007c070041642a007c070041711c1f7b27830200dae2
a97c0e008e6401007d03006402007c0300417d04006403007c0300417d05
006404007c0300417d06006405007c0300417d07006406007c0300417d08
006407007c0300417d09006407007c0300417d0a007400007d0b00740100
7d0c007402007d0d0071251457a871190599a57c1100d80b7c0800617c3f
008301000171cb127c0b007c0a00ef7c0b0093576412007d40007815006e
2c004171421a7c3a00645900712c07be4106d28c713d03a17c0c001a7c0e
007c1400641200cc0b7c07006412006e719307645b007b8301007114087c
020071011bd55e7d4c007c12007c4c008301007c1d006b080072ae006412
007d4d00780f0071111f7d4d00f29e7c0b002fe2237171c204caee641f00
0bc77171680f7194027c0f00bb8c642b007c0a0041642c007c0600416704
008302008301008301007d15007c0c007c0b00642d007c0900418301007c
0b006420007c050041830100177c0b006417007c07004183010017830100
7d16007c0c007c0b00642e007c0800418301007c0b006422007c07004183
0100177c0b00642f007c0a0041830100178301007d17007c0c0071ef12c7
641200a096108301006c5c02007d2c007d2d007c0b007c11007c2c008301
007c11007c2d00830100418301007c4300177d430071a212d7641100ce7c
070061577c02007c14007c02008301007c14007c0200830100186400007c
14007c19007c14007c02008301000b7c14007c02008301001a8301008301
00850300196400006400007c1400713020dcc05f7c02008301000b7c1400
7c02008301001a850300197c02007c14007c02008301007c14007c020083
01001a6400007c14007c19007c14007c02008301000b7c14007c02008301
001a83010083010085030019177d020071a420c7d6fa6420006418008301
00579f830100850300717c42007d43007c0e007c41007c3c008302007c43
008301000171e20c081aeda8418c576700007d440078100071e5207c0b00
83010041207c1200f47271830e830100a4b0db237a71e7177c0200ea6451
006d7c20007c5000640000640000645200850300197c21007c0200830100
830200445d1200712a217c02001941ee2641830100e09b1766710a01d36c
71d900bfd6417c0b007c0b007c1400f9448541643e007c040041643f007c
0400416417007c0400416426007c0800416708008302008301008302007d
1c007c0e007c1a007c0e006412007c0f008302007c0d007c0b006444007c
0a00416433007c040041643e007c0600416439007c0700416421007c0800
416408007c0900416441007c0700416420007c0a00416435007c09004164
43007c050041670a008302008301008302007d1d007c0e0071ec21adf67c
2c00643200e6830100640000bd617c1a007c0e006412007c0f008302007c
0d007c0b006445007c0a0041643d007c0a00416424007c0500416446007c
0600416426007c080041643e007c0400416434007c0800416435007c0900
416426007c0800416709008302008301008302007d1e007c10007c0e0064
12007c0f008302007c0d007c0b006415007c0400416419007c0700416443
007c0500416447007c070041640c007c0500416441007c080041640d0071
6d15c52211643800644100177c0900677c0a0041641d007c0a0041644600
7c0800416436007c040041640c007c0500416425007c050041641d007c09
0041643d007c0500416409007c040041643b007c0900416441007c080041
670e008302008301008302007d38007c0e007c01007c0e006412007c0f00
8302007c0d007c0b006449007c080041640c007c0a00416413007c080041
6446007c060041643b007c0a004171470c08716e0fce7c641c007c060041
6413007c0800416422007c0400416427007c0900416455007c0400416434
007c0600416456007c0600416708008302008301008302007d31007c0e00
7c01007c0e006412007c0f008302007c0d007c0b00642f007c0500416431
007c070041643f007c060041644e007c0900416441007c0800416451007c
0900416426007c0800416707008302008301008302007d32007c0e007c01
007c0e006412007c0f0083020071610d643600ac830100657c3500445d06
00710824b0967371ad1c7d02005c71bc1a7d2b00f47c0e00a19c713d21e3
c76d5c02007d2c007d2d007c0b007c11007c2c008301007c11007c2d0083
0100418301007c4e00177d4e00717002a57c03006b577c02007c14007c02
008301007c14007c02008301001a6400007c14007c19007c14007c020083
01000b7c14007c02008301001a830100830100850300196400006400007c
14007c02008301000b7c14007c02008301001a850300197c02007c14007c
02008301007c14007c02008301001864000071360744640000267c110064
57007c090071c31cf05f640c007c090041830100177c0b006410007c0600
41830100177c0b006411007c070041830100177d0f007c0c007c0e006412
007c0f008302007c0d007c0b006413007c0800416414007c070041641500
7c0400416416007c0600416417007c040041640c007c0900416418007c0a
00416419007c070041641a007c050041641b007c040041670a0071461a
consts
None
21
136
123
174
139
176
96
18
248
209
218
26
1
239
31
210
240
''
250
193
244
214
237
7
234
49
194
212
28
249
207
12
203
251
206
30
2
192
25
222
246
255
6
211
20
205
13
245
241
16
233
220
5
238
44
232
247
51
27
253
0
201
228
230
202
223
11
38
33
215
236
204
198
231
42
19
221
22
10
254
17
-1
242
15
252
200
216
29
243
24
23
23
31
19
12
24
25
22
7
11
24
names ('chr', 'eval', 'map')
varnames ('\x04\x10\x1e\x18\x1d\x04\x19', '\x1f\r\x19\x0b\x0c\x1b\t', '\x0c\x1a\x13\x05\x02\x00\x16', '\x1d\x05\x1f\x01\x10\x19\x16', '\x03\x16\x1b\t\x0e\x1c\x1c', '\x0c\x11\x14\x04\x13\x1a\x1a', '\x16\x0b\x0c\x14\x00\x07\x11', '\x13\x13\x1c\x0c\x13\x1c\x0b', '\x07\x0c\x07\x1f\t\x06\x02', '\x1a\x1f\x05\x13\x1e\x18\x05', '\x02\x00\x10\x19\x0e\x0b\x03', '\x0f\x1d\x06\x10\x0f\x0f\x05', '\n\x1c\x16\x04\x17\x10\x0f', '\x1e\x1c\x14\x00\x04\x05\r', '\x10\x1b\x06\x00\x1d\x12\x05', '\x11\x04\x11\x14\x1f\x1e\x02', '\x0c\x0f\x16\x18\x06\x1e\x15', '\x03\x0b\x01\x1f\x12\x0f\x07', '\x14\x01\x14\x1b\x14\x1d\x1b', '\x15\x05\x06\x14\x1e\x14\r', '\x04\x15\t\x15\x07\x08\x0e', '\t\x11\x10\x19\r\n\x07', '\n\x1c\x08\x16\x0e\t\x02', '\x06\x07\x0e\x00\t\x18\x07', '\x02\t\x05\x1c\x1f\t\x1e', '\x1c\x06\x1b\x13\x1e\r\x18', '\t\x11\x1e\x07\x04\x13\x08', '\x03\x0f\x0f\r\n\x14\x18', '\x04\x1f\r\x1e\x1d\x1b\x0c', '\x13\x0f\x06\x16\x03\t\x0f', '\x08\x14\x17\x12\x03\x10\x0f', '\x04\x14\x1d\x0b\x19\x0e\x0c', '\x1a\x0e\x03\x18\x01\x15\x11', '\x1f\x08\n\x1e\x17\x14\x01', '\x1d\r\x0f\x11\x1f\x05\x1f', '\x06\x06\x00\x19\n\x10\x1b', '\x0c\x11\x15\x01\x19\x0e\x08', '\x0b\x11\x1f\x1d\x17\x0c\x01', '\x1a\x0b\n\x0b\x1c\x1b\x17', '\x1e\x1a\x0c\x04\t\x08\x1d', '\x01\x11\t\x0b\x07\x05\x14', '\x02\r\x07\r\x12\x02\x00', '\x15\x16\x19\x01\x0b\x14\x02', '\x0f\x13\x17\x11\x00\x0e\x11', '\x1c\x10\x01\x1a\x1d\x10\x01', '\x15\t\x1f\x1b\t\x1d\x02', '\r\x07\x16\t\x0e\x04\x11', '\x1c\x03\x07\x0e\x00\x0c\x18', '\x15\x1f\x17\x03\x07\x1d\x06', '\x02\x1d\x17\x1d\x07\x16\x10', '\x14\x14\x01\x1e\t\x19\x15', '\x15\x1a\x06\x00\x03\x17\x13', '\x12\x1c\x14\x02\x13\x0f\x19', '\x02\x11\x1a\x14\r\x1e\x16', '\x0b\n\x0f\x16\x02\x02\x18', '\x1a\x1b\x08\x13\x01\t\x18', '\x0f\t\x16\x07\x11\x03\x1c', '\t\x07\x0e\x07\x1e\x03\x13', '\x08\x10\x14\x1e\x1e\x00\x10', '\x1b\x08\x10\x01\n\x17\x08', '\t\x1a\x02\x07\x1a\x06\x1d', '\x0f\x17\x0f\x1a\x0c\n\x16', '\x0f\x05\x15\x04\x08\x11\t', '\x1b\x0c\x0b\x19\x08\x19\x0e', '\x18\x05\x15\x07\x06\x13\x11', '\x17\x18\x12\x00\x1c\x0b\x19', '\r\r\x08\x11\x14\x15\x10', '\n\x1d\x12\x0b\x00\x18\x15', '\x1e\x0c\x18\x03\x00\x15\r', '\x0f\x17\x11\x06\x0e\x1c\x01', '\x1f\t\n\x10\x04\r\x1b', '\x0b\x0b\r\x01\x13\t\n', '\x19\x18\x02\x1e\x0b\x03\x1d', '\t\x14\x0c\x18\t\x03\x00', '\x07\x04\x1d\x04\x17\x06\x1f', '\x08\x0f\x0e\x0c\x13\x05\x05', '\x17\x03\x1f\x1a\x07\x17\x1b', '\x0b\x10\x07\x01\x1b\x01\x0c', '\x04\x13\x19\x11\x19\x0f\t', '\x15\t\x1c\x19\x06\r\n', '\x14\x13\x1a\x14\x03\x15\x03', '\x0f\x16\x0f\x16\x17\x1f\x12')
freevars ()
cellvars ()
filename ''
name '\x12\x1f\x06\x05\x17\n\x1b\x03\x0e\x1f'
firstlineno 1
lnotab
code
argcount 0
nlocals 0
stacksize 73
flags 0040
code
694a5d138c0a7e5e074d184c39411d181b5e631518165f4079411a040417
7c485d1a19427e5b074d1d4c39461d181c5e631018165a40794a1a040f17
7c455d1a14427e54074d124c394b1d18115e631b18165140794f1a040a17
7c425d1a13427e51074d174c39501d180a5e620618164f406c371a3b1617
425f5d291d427b4a0773094c3c551d26085e831718164b4078541add0717
6ad05d2e1d427e4d07720b4c39541dc11b5e630218284b40736b122a1317
6c595d240a427e4607790244384b1d27105e630e182847407349123b0a17
7c555d24064274a100630c4c395c1d360f5e630a1828434073af1d3a1017
7c535d2ef9457f4907720e4c38521d263a5e841618284140795f1a3a2617
76855a3409426e4b07733a4c39631d2ca059630e1828794073f31d3b0f17
7d4b5d2404427e7b0779ba4b39591d263c5e698e1f294f4079621add0617
7c505d2400427e7907799c4b39591d26325e696c1fcf5f40475a1a3b0417
7d4e5d2404427e7e07797e4b29541d26335e63001828774073151d3b1017
7d545d3409426e4b070e7d5e5d243d42995f07006c585d3408420349621f
185b38471d55995c0773874c39e31d6374140773364c39751d557e71070e
7c7c5d2e0f457e7c0773294c33491a26035e632518225d4778481a3b0817
7c555d242e4274af01721f4c39591d262e5e69f21e28444079771a30db11
9b4e5d1a04426e4b0773364c39761d262d5e69d01e2d484064861a2a1317
7c745d243f427e670779aa4a39511d26385e632d1822fb4669561a3a3c17
7c6e5d24214274c90173364c39621d26275e699c1e284440797c1a308511
7c735d2406427e4b0773584c33331b26035e63561822374647581a3b0f17
7d465d2404427e1c0779404a384d1d26035e63541822114678481a3a1e17
7c085d2e5d446e4a0773234c39571d265f5e69261e294640475e1a3a2917
6c595d245b427e190779044a39081d26535e69041e294440475f1a3b1b17
42555d2500424042074076f95d2455427e140779ec4939081d26515e69fc
1d281540790e1a30e5127d5b5d2505426e4a07630d4c395c1d26035e635a
1822974579601a3a4917768d583409426e4b07733a4c390f1d2ca85b630e
18280d4073eb1f2a13177c505d243f427e0f07798249396e1d26065e6345
18280e4073c91f3a1e177c185d2e9f476e4a0773204c39621d264f5e6964
1d280b4079141a3a50179d4f5d243f427e060779464939591d26435e6942
1dcf5f40475b1a300017764d5d186c46183b19177d555dc31c4240470770
184c075f1d273a5e620818cf5c4047631a3b27177d555dc31c42407c0773
4f4c07631d273a5e620a18cf5c4047661a3b24177c625d2447427e050779
e24807631d27395e623518275d406fd61e3b181772695d250e427e020772
044c38591d27395e633518280040738f1edd06177d505d2500427f7f0773
3a4c391e1d2ca25a84161828024079221a30ab137c555d247c4274fd0372
044c385d1d273b5e633518283f4073d31edd06177c635d247e4274db0373
444c39551d267e5e696e1ccf5c409e431a3a4f177c295d2e77467f7f0773
364c39591d267c5e694c1c29794079571a3a60177603591a3c426b8f0479
184c39281d230f5e730318284c4079601a3a6e17767d592433427e7c0773
724c336519360e5e633918287f4079291a3011137c5d5d243f427e320779
124839591d26775e69161c384940797a1a3a25177c225d2eef417e4f0773
3a4c392f1d2cfc5d630e18282d40739f190421177d6b5d250f426e4b0794
194c38661d26035e636618229f439e431a042f176c585d2426427e7c0773
6a4c33ed1e260b5e633518282e4073e3192a13177c625d243f427e2a0779
8a4f395c1d26385e63621822db43795b1a3a711776315e3409426e4b0773
2c4c396f1d266d5e697c1b287f40793a1a3065147c555d24644274070472
0b4c385c1d360e5e633918287f4079381a3043147c655d243f427e250779
204fde411d26345e633818282140736b19dd06177c555d24604274430472
164c38451d26035e63691822534378451a3a1e177c335d2e1f417f5f0773
014c39c01d2cec5c62161828444079c31a30ed157c555d249f4274bf054d
3e4c38671d27005e84161816744078491a3b1d177c745d249e427eda0779
d84e39591d269f5e69a01a38494079791a3a25177cca5d2eb5407e4f0773
3a4c39c71d2c865c630e1828d54073d1182a13177c625d243f427ed70779
9c4e395c1d26385e639d18222542795b1a3a8c1776235f2511427f5e0773
014c39cc1d2c7a5c621f1828444079cf1a3053157c555d24934274150563
0c4c396e1d26385e639818226142795e1a3a25177cdc5d2e2d407e470773
894c33671f18005e62001829754078641add05177d5b5d2534427f440794
1a4c39d21d28305e638418c85d40785d1a3a93177cd95d2ee943995f0794
194c39161d264c5e634018c95e4079601a3a911776955cc31c42995f074d
074c33841c3b625f623018294e4069571a3a90177c635d24854274eb0694
194c29541d26225e63351828c44073e11b3a29177c6e5d24874274c90673
014c39db1d2c945f621218295c40795b1a3a9b1776335c2514427e470773
854c33331c26035e63891822374169561a2a12177c7f5d2432427ec10779
404d39621d26ba5e69581928734079601a3aa617760f5c2404427efc0779
224d38441d26035e63b4182273419e431a042c17691b552536426e4a0773
364c39621d26be5e69041928734079601a3aa217764b5c3409427e420773
3a4c39e61d2ce25e633918287f4079e51a30eb177c555d24b54274bd0763
0c4c39781d26385e63be18228940796c1a3a25177ce65d2ed5427e470773
b34c33ff1d360e5e632c18287f4079ee1a30b7177c5d5d243f427ef30779
bc4c39591d26b45e698c18295c40795b1a3aa81776c35dc31f427f410794
194c075f1d19095e5c0b18294240786e1add07177d605dc31d427c5d0773
4e4c39f01d26ab5e69481828ef4079f11a3051174f221b4079f21a3ab317
76055d25304271540765d54439081d26af5e6920182d4840790a1a3ab117
76675d2533426e4b0794194c39f71d26a25e690e1828e44079f81a301717
764d5d1873411a2f0a107c1a5d311e424071074d284c38701d26aa5e6c15
183ead48192c1b5f62271828154076401a2c071e1922ac4078721a3a1e17
734e5d320d4b0d30e6177d7c5d24aa42715c076538451a2ecc427f6e0773
4a4c36421d302a572679d94c38701d260f5e6c15183e1d490b2cab5e6227
1828c94076401a2c571e5c22fc4078721a3a5d17734e5d327d4b2d309617
7d7c5d243242715c07656845452e9c427f6e07733a4c36421d309a571e79
694c38701d26455e6c15183ecd495c2c7b5e62271828ef4076401a2ca71e
4d220c4078721a3abe17734e5d32ad4b523046177d7c5d249e42715c0765
d845422e2c427f6e07735e4c36421d30ca571279394c38701d260d5e6c15
183ebd49212c0b5e62271828404076401a2cf71e0c225c402527355e6346
18275f406e02193b28177c795d2b1f4269a00672374c39c61d29185e7425
1e29724079ce1a3505176b365b2532427e30077c1a4c2ea81927355e634f
18275f406e3e193b28177c375d2b1f4269fc0272374c39071d29185e74a9
1a29724079fa1a3505176b8d552532427e24077c1a4c2ed61827355e6332
18275f406e7a1b3b28177c755d2b1f4269760572374c396b1d29185e748f
1929724079dd1a3505176bce5a2532427e7a077c1a4c2e691c27355e63b7
18275f406ec91d3b28177c6f5d2b1f42697e0672374c39351d29185e7443
1d29724079f31a3505176b37552532427e1a077c1a4c2eda1f27355e633b
18275f406eef1b3b28177c5a5d2b1f4269ef0772374c39341d29185e745f
1d297240797e1a3505176b0f5f2532427e3f077c1a4c2e771927355e6368
18275f406e9a1f3b28177c7b5d2b1f42694d0572374c39611d29185e7406
1929724079c51a3505176b725b2532427ef3077c1a4c2e761527355e636f
18275f406e3a1f3b28177ced5d2b1f4269c90072374c397a1d29185e7423
1a29724079cb1a3505176b1a5b2532427e3c077c1a4c2e091927355e6308
18275f406eb41a3b28177c6c5d2b1f42692a0672374c39671d29185e7441
1929724079f41a3505176be3552532427ec0077c1a4c2e301a27355e63a4
18275f406ec6123b28177cc45d2b1f4269190172374c39711d29185e74c6
1929724079351a3505176b23582532427e20077c1a4c2e8c1827355e6309
18275f406eaf1a3b28177cc85d2b1f4269440172374c39051d29185e74be
1a29724079d81a3505176b0f5a2532427e0d077c1a4c2e0f1e27355e6366
18275f406e5a1f3b28177cd45d2b1f42697b0072374c39581d29185e74d7
1829724079161a3505176b145e2532427e13077c1a4c2e501e27355e63bf
18275f406eb51d3b28177c7c5d2b1f4269960672374c39741d29185e74e2
1929724079321a3505176bb1592532427e38077c1a4c2e3f1927355e6392
18275f406e611c3b28177c005d2b1f4269a60572374c390f1d29185e743f
1b29724079711a3505176ba55c2532427e37077c1a4c2ee91927355e6382
18275f406ea41c3b28177c6a5d2b1f42691f0672374c39361d29185e744a
1d29724079e61a3505176b8b5a2532427e07077c1a4c2ec51e27355e63a3
18275f406ed3123b28177c055d2b1f4269990572374c393d1d29185e74aa
1d29724079c21a3505176ba8582532427e32077c1a4c2e901927355e638c
18275f406e0e1d3b28177c065d2b1f4269b80572374c395a1d29185e74d8
1829724079091a3505176ba35f2532427e27077c1a4c2ec11827355e637a
18275f406e9b1e3b28177c2c5d2b1f4269700372374c39e71d29185e74f9
1f29724079eb1a3505176b4a552532427ecf077c1a4c2ef31b27355e637c
18275f406e861e3b28177c575d2b1f4269850772374c392f1d29185e74e3
1c29724079f81a3505176b86552532427ed4077c1a4c2e221b27355e63b2
18275f406e911d3b28177c615d2b1f4269e80672374c39eb1d29185e740c
10297240790c1a3505176b555e2532427e05077c1a4c2ea01e27355e639a
18275f406ec41c3b28177c0f5d2b1f4269d00572374c391d1d29185e741a
1c29724079ee1a3505176b66552532427e0b077c1a4c2e271e27355e6387
18275f406ee81c3b28177c295d2b1f42692e0372374c39dd1d29185e7470
1f297240797c1a3505176b145f2532427ec2077c1a4c2e1b1a27355e6349
18275f406e601e3b28177cea5d2b1f4269bc0072374c39e21d29185e74b7
1f29724079c31a3505176bbc582532427e1e077c1a4c2e271f27355e639c
18275f406e291c3b28177cc25d2b1f4269d10172374c39231d29185e7442
1c29724079db1a3505176b7b5a2532427e0e077c1a4c2e711e27355e637d
18275f406ef71e3b28177c715d2b1f4269110572374c39ee1d29185e7428
1029724079cd1a3505176bd25b2532427e1c077c1a4c2ec21f27355e63bd
18275f406e50123b28177cce5d2b1f4269a70272374c39271d29185e749c
1c29724079d41a3505176b4d5a2532427e74077c1a4c2ec31c27355e6373
18275f406e231e3b28177cef5d2b1f4269f20072374c39ef1d29185e745c
10297240796a1a3505176b135c2532427e2c077c1a4c2e6d1827355e6364
18275f406e7b1f3b28177c7e5d2b1f4269840672374c39011d29185e7467
1a297240793e1a3505176bfd5831be4a
consts
'/'
'n'
'i'
'~'
'.'
'>'
'|'
'8'
'|'
'6'
'!'
'\x7f'
'd'
'c'
'2'
'!'
'c'
0
code
argcount 0
nlocals 0
stacksize 72
flags 0042
code
761b400d893274cd4273061d2a5e1839184cc6170779435e7c591a284717
631b40391c5d7e4b42730f1d2eea18de1b4cc1160769415e7c541a284817
63164030875d6e4e4263041d24521839174c2c870779405e7c5d1a284c17
821e403a175d7e5c42797c1d345f18390b4c261d0779525e76311a384617
6314403a0b5d7e5842795a1d215a1833194c331e0769455e6c591a285717
6311403a0e5d740e4294061d345818291d4c261b0779575e766d1a284e17
630540303f5d6e4d42731e1d24541839004c2c0f0769445e7c541a285117
63064030115d7b484263031d315d1807124c181e0778495e7c571a274017
75ea4062766c1a294b17630e40351a5d684b4320693c403b115d7e40427c
051d3249194a745d42720e1d24591836184c303006592e5f18447f444273
1d1d2b5c182ed34c271f0779545e735f1a3fc6176215403a035d714e4264
df1d25561839174c2915076e115e7d551a2852176c1f402d7e5d7f444273
111d2b5c182e854c271f0779485e735f1a3f6f176215403a005d714e4264
bd1d25561839084c2915076e355e7d551a2855176c1f402da95d6b0e4279
0f1d24595d684a783346631d402f1b5d
consts
None
''
code
argcount 1
nlocals 2
stacksize 69
flags 0062
code
334a1d0ecf456607181d634c605c5e631a07644142cf1c5d3a161a631a40
2c5e1d395d177e03182e4b4c6c545e731a07694342161c5d04151a621a40
264f1d365c17684e18412c4d1d0b3b161a631c40294e1d2e74176b2618
consts
None
9475
7
364
8
names ('yr', 'I\x08\t\x05M', 'M\x13A*o')
varnames ('6n', 't')
freevars ()
cellvars ()
filename 'v~5}v*'
name "+\x7f8s'4ju~"
firstlineno 0
lnotab
105
108
101
110
2267
11
1
9598
16
1165
19
-1
6718
24
5
27
7124
30
94
39
43
44
0
47
50
names ('}r73', '&2', '\x1f\x19\x13BX', 'X\x08\x1aHE', ';', '>(', '\x1dO8\x15H', 'H\x0b\nRB', 'Et$Y\n', "\x00'H\x15\x18")
varnames ()
freevars ()
cellvars ()
filename '#=5x-6'
name '`}'
firstlineno 0
lnotab
4807ffb7dcdf82efdc1b8a9be959fea8c5a8e5d5aefcd1dfc3aacae8d3d5
b1d2e144bc808cc5f1fdf084c7b2ccab8b97d5fdbb0ab00df2adbbedae8a
9fd3edabb8d5a401fc07efb8c6bef740ca90cc0e881eb6c3ca4bac16dba7
8bddd65ecdde85ccdbf3e999c1aec2b98789d3d4addc8dfce889b5cac8bc
b0f6c8b9b0d1b4e085dc48b3fb91f25998bf2007d8e98ec0c45abaffd8ab
8dfdeeb3b9f184ea84e6e8d0d1b7cf49fbcd2017a708aed5c3bbb30ef09c
70d68f5ed2c58cc9e41dd8b82d91d9b9f192d4178611c3e2c28271578bde
9fee8dbeb9e36e00dbd2e790db52cd8ae49aeefd8018c8e1f48fb80ad9de
bfdaf0bb80816be0ecd08da3235ac8be8d70e6e18e0d8e2a2655a6ffafbf
961e3358aec38df0c5dc8d8ec59f1081f8922df6d40fb7ec2abb7100869b
b811fa9abece94e1f8f0d598c44ffca4f490d51186fcd5dfe88cc80eadb8
b5f637aaf7d8610f321f88daf7b0c95a9191c9d9adfccfd0f7a475c0bfa3
7e4adcbe88eda8c432f680872954fdaef870cbfc92f7bccfcb428af5cbd4
a8ef8e57d384b7ec8900e499c09cfb4e97ccd0f1aef0ceeff75dc6f588af
b9f4dbb5aeceb714fedfd3aa28aaf1588acf170faa2bc091e9ac75edf094
b408f5ab82d36ff3f81296b8d056354b96992f016d2babe4c58a9917cca1
70e3d6ab8ccf61c1fcd6daabe4b9fda88f70cae0b3fdc19fe45eaac4f080
a9f6f648d51db71fc5e79587c59af8bd9792c21eac18889eeba58d12acde
a0e282aed1ff8bc9d7fbf599d0b0898afbb6f513b7d8b1e0f85bc6e0b787
9212feb6c9d196f332dceab8f557de5bed8c25d5ab1912d3d2a98cc1bbdb
bdf8cb9bcbdfa5158d0ff389e4a98fb986c5e61c811facc1e24675e9c48b
8bdff5a4a8d16008daf995ace7b0d6bcf6a7f200811caeecf1488b1cbfae
afef8096a8f5a9ccfe46f0a6d190d85ee77026fcb802a9d0c249ab02c99a
8b1efab2b7ce90c1f9fdf89225bf8f5feb9fc5fda7da8ccdeba0bc13b98b
91ecccb8818094ff32d3afb0e15cdf5d9bc6e0dfa01dd6c8d25d54c4c4da
90fd8b56dec26700e70dafb72495e88187c8c912d5daa2dfc7a8ad00a7a8
9f08de9aa3de93c18cd89a87fb44cf8187a9cc1586f783c8e4a591c988ae
aff0d3b4a3c166ceef068fb4d10df348ea95c3deb410daebc74e9517d9ab
92d2ecbdcef863c8d2d2fbd2f4b9318688862dfdd70c82f4c554a7c4a9d6
abe3f5b2adfab7cedeee93a5e757f2a3c6a4e4d1811f88eaf4458be3a69e
48028e5ea0ccae0fed15fbb6c04dfbbd85b7dee5d71fc891f0a08deca48f
8a13fa94d2c1a1e684f8d899f5bdf7a2cdb823e16dd8aaf1e15b89eea9ae
bfebf6beb8c4a4f4caffec92ed9335bf9257d215af1d81d4214ec61fbf82
bc0f8b50d5f092fecc1c8d952a4fd9abfbc82ef789da8892f38ec8148dbb
abeb88aeb2d19004cb0fec6dd59e31a88e93c3d4d0f7dcf723bec8118fa2
96e2e14d10db6d03c507f98cf44ce2b59bc524dd87eca3cfefa8aef4cda1
b01d824f82da6be58afff7abfb9b8f828c88eb1c8be28a90ed87cdf5ba88
71d4d5bbc9daabf1f9d88d8bedb0ee8fc9cb2cefa64af5fc258dc80a849e
99fdd593ded393cf88faee84e1578ca985adffd3920c8accd6a8bdeb86d4
a9e9c850abedb5f5f9d1d899c79dd5b595ca26d6d0d188e1f05ca9fec5a7
971eef4db1c1661517dbe8b0d7b3f1bbe5b8caf3d70cd5ffc4837111aca2
a1d9de5fd4db8ee43201f2b32ab8f3a8fca9260483098dcf29aebaef8f99
9eddfeb2c8d5b508d2ee8d8c2199f34bec93ffddb8f8cfc2d21d8d36ded5
770388b7aeff81f3cf1ee6922148ea5cc8c9cbfad2d9b2ebd24bc4c5aadd
9b08e199b1f995c5efd385d927abd7bab3cddf15d0f08eeb21867115c580
92f9dcaccce38eef36dff4bb1298357c8b86e1f3b5d5abe824adbae3a897
aafbca98a1f86d0489e3888ecfbbea4af8bfe7d3aff2bde5e24586fc8adb
bddbe1b1acd192c7fc1e9a92d75cfda98b89ce1190ded2d7c15f8ac9d946
b6eed5998fec930032fdfab2f5b8cfa3c78fc7199af98ed3c5a48bf0cfdc
8fdcedaca0cf8cf1efe3efb3faa9825a9092c3f69119bad4e38ab601b3ae
990bdaaad8e3ac1f8fd3e98dd39082ab54a9c9d3b0d8b590cbbebcf3cfb5
8aefd6458ecfa9f7d6f59383c69cecaaf2cde111a1fcd2e3c145b1cadab8
befadaa5b3d1b5f7ecd89bd1f0bbfe889895ef0e8becafdfd04e9bf4c5a3
7019ef0da3d9ab108b14ebb12dbfd140c6b4c8e06d0fdae1c7b5b1f0aa80
bdddf09ea8c0b3fe851beebaedbcdd8f88cae7db92d6dc2ac68892cfd580
ba19e093cfdeabcaeefa8fa4c29fe848f6b3c91748fe8a96d7aa94f6b18e
bcdbf56ca0e66b048fff81b1fbbc88b99ba9f71995178c96cd4eb9fedbae
8918d2bda1faa2e8e7de94d0c64ad6b8f88dccdfd7dfb0cac055870fbbbf
88fae05b8fd0a75787d889d6e890c2af908be0f490eecc902555b3febba8
b8ea8d45b3868df0d5fee5acd049e346e5c7ec1196d283cdd7bc8a00c4a0
8802f6bfdfdf9de9eef6efd5c791cd8399c52cd3b4edb4dc10a5b51fc49a
97dadf578cc38acae7e1e1d5cd56eba4f28bf2dcd5e3ad2a21aeceecdb94
bc0be0b3b6d48dedccf3979223b6d4b5f698c3f0a9eca02ad34b8d05b286
bfeac1afc3f880e48bf5974ad795fd83f28d28d0dad4abc3d487b314cf82
9d11daadaffd62ceffd295842a57e8a1e7be2617b1d5c0d4f9b4cd02b183
b815de96bcde6d17f9d1f984d2acde48cbb22e03a6d4d0e3d8a8aeeb17a6
b81bf690d2ce8b1288049ad6cb5cea46f4a728e296ffd6d4f580acccd6a0
95e3e25ab9d0b6ce8fe0af92c654f6819daef2f8a50ebafcc885cfe3b382
b3ee8db7b1f489018ddce6d1f24aee1dcd9bc6f6812bc194d98ca4c8cc86
b618e95bcccc8800e800d0d1f4b1d947eccaf7f58bfea994e64593e2d29c
88d5ef44acf997eff8fa95b9f352c847cc97f61ed2d8cae1e1b48617cfa4
90081294cac7a215dafdafd9c7528b56e591d0fbb11fddc82b4cccffdfa5
95d88cae8cf086f3eef28aa7fa4fd5bce6acc11091d9a3d528acbbc2aba8
a01880adb2c56df7c8f8d0d02a5bd6a7f2bef246a90fdae3288394368685
9bd9c99bb4f267e0c5018ab2f4a9db49c6b9eddca8efbcfef8af9fe9f0ab
b010cd46a0c784cbede097b0f490efba899fce12d1fcdbd0f7a5c80fa8ab
7712899981c254c08dfbe088eb9dd2468f96ffdca1d980e4d65990f2d9a4
9e1589b68cd9b5f6c5f2ef8624a8fca68acee6dbb3e8ccffd3aa8d148bd5
73d3f49aa8c36bc9f3ed968a2b59df45f0702dd285f3be0d22b895c0d38f
7bf0d09bbfc387c5d315ebb3d0bacda2fa88c0fb92d8c3e3d75d9af6d999
b5ef33aa8dfa6503fadd81dbf45bd55d91b3c6d1aad8a0deceac9af7ab98
89dfdf9bf7d961f7f9d248b1db98cbbe90a4c7fc9509bcc0f1427517df83
b615e193c2e6b1f1c8dfecd82bba88a398a7f0dd92ee89f22981c6ef85bd
9ad4ef9e80d9bdc6ca1091ac259f80aaef912ef28ed38dd1d258cf57bf85
bcfc8e45d7828b08d613faa2cfaf8fbdedc9d41fb11fa1d5f646bac4c4de
bb12da56c2c5aa15edee9bd72055ccbef486c0d99418adcd2f8b8804a9dc
b9f48c58dcddadc08a1285b8d1bc104a8bb1c6debbd7dcebee54a6ffd186
b20eff45c2e66cc8e9fdd4afe0aa80458ea5ebf7ade38ae02249c813bf99
9f11d69ac1f1b703d4d995d6284df5a39a8cf1128df68cd6e4a897eeaca9
704a33a88fd9a7f689dee1d1ceb98a558a882212a3f1d7ef2bb597c9d461
8108cb9aaeda6f04cefe92b0e7aa895dea88c40ed4e9d0dec8afc9efca9a
791efe9da385a8c387d8f9aec8add98a948e171ca0038fdee84c71e9898a
7cd5ecbaabe3bd15f1e3ebdae69adfb68cc9df0594edbdf7cba1af00baab
72d28c4cd88d8ffed5efe88dc65ecebdf0a5ccd6942bcefff55cb00dba98
8cf7e89d8b1d90168f15e8a32d96cea4cbb4c1dbb10dd3ededbaadc4bba7
96dac194d88391cff9dce1b2d24e8c8b85b2eef7d80ea2e4e5a192e0b082
a90c89a5aeec86ffd2ffefb0f449c9a9e5c8d0ffda1d12ffd3b8b003c6a1
7c19eab482c0b20ecb15fb86204d3544918420dbd710d5f12ab9abe5c6a7
7c0cfe46b4fc89118bf09795f79ef4b9fcade6d5a4d68bd1215a8f14bbaa
b003e24e89c288efcf4692dac44ff05ec7aef0d989ee829defa6a8e3b583
77ebeb4bacf5abef8ad88d8dc15bce8f8a9eeedeafe9a1ccca828d16bbbd
8b15c0b3b7e28810f9ddf985c155f988f399ffe39af7c9d628b95410b8a1
acf7d296a9cfa90eda15d1af23accb58cfcbfede6dd3adc5d98bc8c0bebf
9c0bdb54b4c3abc4f7e29497e2bbeaa5fa89d1f78b0da1f4cea9b4eab8a1
bcf7caa8cce16ec43614ed99ec0dd654b3bac81ed7f3d5f0f4a198efbb8a
a0e8f444dfdeabc8841ef090ca9883a796af2c138b0ddef4ed85b1128786
9efacd92b8ff881e87f4d4d32a5add88efccfedc9a02cbf5ea5e8f118784
4812eebd8dfda4c236fd89d6c74e89b49899cbff90ed82d1e88287cfc8ae
a0d28f59b5c26dc7d5f987d2ed9de885cda72110d60389dfc05ba8ffd6d6
aefccd4caefa93e7d1ded48dd4528bbbf7572007d31fc095d2b98cefa69a
bd13d59280d960cdfb0099a4e59dde88fba621d4a4d0b696d788c902d1af
7ee2dd55b9fb86c4d3e09695f752c24fe695d41388e1aec3215995fe88a7
7a0d8aba10f984cd8bd599d02848cebdeeb9fe00b217cbc4d1aac90eccab
bc1ded9481876cf7f6f2d2a8c3948887f7b6c0f4d111dee8ee82cd01b286
90fbd19ab1eeae028ad9d3b8c59f8fb9fbb1c1f0ab4ab7cbecbba9e18ab4
b0f4f6bb82c1ab0cdafb89affaaff4bdcfcde2d3d817b3e4d05dcecf8b80
97dfecb7b3f88308cce2ee8f2791f7a192862ed3b3dab2c9d644c4c0d798
810b8a97bffaa2e61706fa97c3bfdfbb85ade917b81383ccea5fb3cdc6bd
95193398cfd5b302ebfdd9b823a8fc8deebf2cf6d712ce92f4a6bfe3b7a9
79e98eb18082aceffbf4f7d8ef58e9b595c7e6ff880ed0ec261dc8f5c598
9cf4de55dddb8405f6eeedd9cb5be3a8cdaee607afe9ce9d274cb21cd383
701e894fd8ee89cadc1c9187205b8b4f8698f611bbe9a9efe0828eec8ed9
8bfb375ab6c281f5d2e197af125efcab8bae200695ddc0ece1a594c38687
9bd2c05aaec596f3eddf8eb0e959d248e8c5e212970ed4e2ed5bbbc3c59e
9718829accd88a04d2dd8bb42abcce4691a8f0d4930bd0d6ec46ade2b646
a8dfc946c2fa8111e70dedaffb5ff7af9391c11e94e9dafcebbc9d0ca7df
9bfcc8b1d1d8b21fd91d8ea6e594c3409689efd7b70cdcc1228a99c0d5ab
72fdfca4d082ac11c41ff1b2ce58c95554c8d3f480fca19ecb4ecef089a5
95f5e84eb7e0a8138be0f4d8e556e98d96b2dfd5a5f48c97eb5fcacfcab8
be0cd75ec3db8601f3fd958eda5bc85efd8f28ff6deedfe3e1a197f1c99b
ba0ae20db8d5a217f706e0afe045f28bcab3f5d5d8fdadebf24a71e1c6a7
9ad381a4cd85b7f7fa1e8699e2ab884499bfcc1083f6b1cdf6548702b1df
880d33abd6dd9cc1cb15d287d7b88ba08bbfff03481d89eecb8da7c3cdd8
abfef2b0a18383cdcb01e997e995ee5497b6d415bb13b2e9cd849bcef0af
9df9f1bbdd87a9e0cbd0e78cf055f58a9892c602810cbae121878a1eabdf
b9f8d4b58cd3ac57e70ff2b8d191d0bf9789c7f78fe8a2e0cdaface1be86
7a1dc04eadee8ee5d4d396d8e0448fb99c9ff50487f5aae5cb4ebcebdaa8
7f1dda968fe16ec5d9118babda45d5b695afd1d5d6dfa9e4108b95e0f0b7
8bde8d5ebddc9c0436108bd5f393f984f1b8e5d7a5fad0c9f64bafcdbaa0
91e2cf9a888eaf158cee92baee9ef3a38ea8c6dd8af5cbf0c5bdb3c0a9bf
77edd0a8bec1840df41edb4af2a8f68997b6cfd6db18cbd4e3429b02ba99
880d8db4a0ef65c3d0e097d6db96cc88ccc4c01ea918cfc5ca818e01a6a3
811d89b680e4b60cdbd18adb219bf9abf089c91f84f1b2ff23bdb31e17a3
7103c9988ef481c7c8d6d9b6c449f28ffccff31edbecd79ecf82cf00ad9a
bff6d94cddc496c78fd6e88af05ec9bf8d9e2cd99becddceca4fc90ec59b
bae9cea988df6ccfe9da8dd9cfbed61de49fc2ddae19ae91268fc60dac81
aa0cf0a9cccebcf6c81fd6b8e5a8ff569b91e0eed5088a90cf5ac9efa9d9
72e3c14dd8d38c10cc12e7b4c4948e8ac9a5c3fda3edbfd1c48f8e03ac82
a00b129eb383b01fd0db8ed3c4b4f4a98ba62ddc90d7cee825abb1048b82
a1d5ea9bb28063e1eae7e6d426acf38dc6b7d415b00dd4f4cd45cd0cb683
96f8c1458efbafe8cad6f3d5e14fd9aef4a5c346b51c8fe0e881ace2b28a
bae3fab9b3cfaff7dad3afa7c6ae834a94cbf71069d8acc9c6a2cdf48ca1
a81ece9481ccabf18bdeedd72149c3a7ceaac1f2bbf5bb9defba9c15cab5
90f2fd5ab4ff5401f8fb87dae145ff8b8cacf600bb17d6d3c3bcb8cfdb9b
91fdc9aac3ccb6c5f6ffe6b1e0be8b848a89cffa9becd6d3f64492efd6ab
96d58191d6e3ac11d7fb9687ecb48383f0cd20f486d4af0d2aa68714c4af
89138e97b7ed9614f600f6aed0a9f6a6fa92ffffa10ca3cfe7a38e0aada9
8a08d39a8dee9d12dede9684fabbebb8cc9acc049519bad0ee8ebd12c483
bd0b89b8af85b7f6e7f04885c7ae895accab23e7d2d2d297f1429610c680
89d18856ab858bc136f8f590dab4e0a1fdbed3d6baf2a0efd3bab9ffd1be
7aefcc90bee6afc98df9d2b7e95bef479aa6c603b50ed3f0f9588e57add9
aaf3eeb9b1db90f78711f9b1f3bae8bfe9bafedd970fca96f7a0b300ad98
8ffcccb9c1e566e1d3f38788e15acf5acc84ecdb8dd0ccf1e1ab8dfea4d6
92d0d79bd1ec6517df1b80b9fb5c105a8aad26d9b419b394ef8998f0b9ae
b8d4eeb2b9dfa1c585f28986ee4df6859788c7f2d7d2aee0d3ae8ce88b8e
bff9d4afd883a6f4daf1e0a9e35f8caaedb9f5f084fade962a8fb902b681
794afa58c1e3afe8d8e6d2a3fa54dc5dfdb3e2d8840ab7ebcc86b8ed88ae
890ed39fd7fc8ae2890299bb2d9ced87909ef112bb0fdbe92b549214f089
afd48ab8cff98a128d03d4a32454d8a0929017f8a5f1b0d2cd4ec8c5ac87
aff488b483d963ca8ed09b8df1b08f8ec88bd4f7b0f6dacccd878d01df84
bbebcaa4a1fd8f11f3df94a9da4fcf5df898f4d4abd7d2fde4abb20ea7ae
bad5da4f821db2c6ef12e7b92592de88cdb3fee1ace28ed3255986eed782
aa0cec59b7e562f6840d9ba7214cf55be9a5f1ffd618bfec2782bc01f098
9715ed4bb5e6a4e3da0d888ace968babe5b1ff02811712feecac9aebaf9f
8c09f457aef9b50284d9f98cdbbeea46938fe6db8ffad5942480b1e48987
8af58e97c3c065f0f81dd8a4cb59efb49d9af40ea3ecdbcd21839602c9bb
91d5d395aedfa2f1d046ecd02db6c87ce7c5c603af1fbec1268abcc388aa
721c8fae8fd96ff0e4069bb5f65ff6ba9ca5e115a1d08097e14597ccb298
9819ca98d7c2b0f3ea1ee86dfbbbf5a292c5e1fd84178fc2e5ac5401acdc
b0f7e9bbc2fcb11689e4dada2a93f5809db423e1d002adc82ba5aec4d4b4
8edeffa5d6c760e28dfee1d4eb4bca5ee584ea0284d2c19ff188cccd8d9b
af1bed978ecea2e8f0069bd8c40dfda686b2ded3bbe2adfceb8b990586d9
94feef46a3fd8af3ef0de6a2f258ebbacf96c2d18ef5dbc8c0a0a4efb5df
afdbcb9aacd8ab0f8c0687a9e299f98ab390c3f4ad018ac9e08e960cc8df
480a804e83efa0e3ff1f90bbd7addd5b9988ead087ded295d0bdbccfdea5
b3f6ea90c3ffb5ce8e02e66df390fb5cfd9be403b7d9bbfde34996eac4ae
bce28a978bd581fecde792d2cebff149f657f619d7d98dcd255ecdc4dbbf
aaf7c1bdb7d1a2c3f21df5b6e957ffa48dab2cdfd5ebc1cdca48c8eda59e
b60fef96cf8d80edd1d2fb98c545ca47e7abf7dfb4d8afd2e98fb5f2ccd9
70dcdd9210fea41fd9e68b8f24b0d74a95aac2119b08b0d4d5bea7f3d19b
90dbea9bb3d387138afdf28221bbfc84f2a5ed118f13d5cb2758afc2a9df
721efe4ed382a1e68e14f7accd4fdb5ae990cefa904a8bd1cb8396cfcea6
ad10ccbeaac163e68ae6948fc7b4ce8e87992600afdfadecf9aa89e88cde
81d9ff54c1fba514d8dc8192eead8958f2a4e0f5d61cce9dea499aec8786
80d6fcacbc8eb2e017fa8a82fbad8340f3b5fee66ddaa8eeccabb917dbda
8b0cc145b0fcadeb8727ef85f74ceab59dc7cbf181f0a395cc4fac0aa88b
bdd1eea58b846dc9f5e5f0aad5b0e0599c8ed3da90ffddf0291d9616bfd6
89f081578ffa8ffff3d5e787e858ceafe48dc2fb8efcd7cac48c8fc4d69c
95d4deb5adfea915dad5f7b8cd91fd459a8ffedcb612b6f6d5828fe18884
9ef1f0bd8dc5ace88ed5f7d81292ef48e9a7d5f0d3d0caede28cb3e5d4b8
b6f6fe4ca83a63178ce7ebb0e4b8c24497b0f2118ce1d2f4f3b8b1c1f0b4
b5f3f3b7d0fa61edcef0d2a9209a8d548dcc2012aad7d6eac55abce5bf46
aef9eb58adc1adcec9f5e8d4e8b5edadc796de0093f5b4e5eeaec613c9ba
b703cd9d83f4a5c8efe6eed8d658ffbaf7cbd1deb1d8bcd4c3bab7cb8683
8b1de06cbde080cfebf09aae2897d387548dd6efb3d188ef288dce0384d8
79d7d14ecae6acc9f9e5eb90c55cf7a6eac9e3f694d2ddf0cb8f8f00a982
b5fd81aba1e584c2e711f38cd6598a4bcb9b2617b6e1f5dcee8d9636f082
aad9db0dadd4bcf3ffeed591edb7de8298b6c8fb8a08d4fdc045b50ab699
a8dcde9ab2f986eedafad4d3d0bdf3a9e597f0d8a11eae96eaa08bfcad89
b00afb4cb6828bc9dcedeca2cbb8f7a8f8c8ccd4480face5c8a89bc9b8af
b712ee9adcc78915cc00fbd8ce9635aef798cdf9901ec0f0d8bd87ebccaf
811ef6aac2d2bdceebe7d389d790d75d8bccd5e3b4ee8c97d588971285ae
9dfd89b7b5fcab57d7fd8f8feb98df5d9a8cceee9b10a0dc25bbc4f4b0a9
a9fcf3aaf7f896e0f9d8e8d0cb4cfe8592a92301d703cdfff85f8eeba6ba
bf11fd50c1c5bce18efde8d02ba8f15d919a26d8add38d9710ae8afc8a95
9a1c33b58afba9fed405e08b2552d648f598e5fd8fedb42aef4abc17cca5
bc0ed5b4d9e09602de2785bbd449d77c99a8cefbaee8dcccc34f95cfd889
bdefcd4582fc8defdefded4ad7b08f5cfcbfc71290ffc9e8f544c4c5beda
80d2f945d1829df1d2df87d3cfb4c8baee96eef0d80cc0e4c0a59636c5bb
af12cdb4dedeb2edcfd392942348d180c4bee2dcabfed4c9e68f8c0e17bc
9bdedcbdd3f561eef2f2ed6df0b5f95589b7e21ed5fad497d4aa97e5bbb7
91f2d75adee7b3fe8cfcfaa5235b8383f6aac8d0d4dea9d0285fcbe9deba
b8d7ca5fb4828911dee5d28d2da9d01d93bfece4a6ebb0ffe24ecc05b9da
70dbdfbfd1c38c08e9ef80aff0add38ac589eaf9d20aacead9bbbf11d589
7ad737bab185a4c0df148aa8249fd3888cb3eade8d19aeee2987ba10cfd6
b6fc12b9cff986cae81baf89ccaadf5aef94e5ee8f02c8e9c38393ebb6bf
ab0fcf5489cc67ead702afa7ce5b895a8d8cc9de8101c8e1284a8836beaa
b4f4fca4a3826210d5f092d0cdbdfc4ae4b2cf469b0ca32a25a4ab1f8b8b
8ceeeb9a8ef26108d1f691add1b8c3549cc6eaf9a5ebafccf180cb0faa9e
b41cd35f8cf2a6148eff9187d19a314bcca6e9f5871cbbd121879c03aeb4
8df8d5a6a3e654ec360690a6f1b582b596cc25e3a00bd19d2b849211bab8
a0eae95edddfa2ee8c02d6bbebb1f28ff997ebe195f381caecbfc4168ed7
b5eeea9080f0b2c0d6d3d1b8c7b8c3a49997f4d5d2f8db0dc04aba1fc88b
9efeeda5bfee8fe984e380a9d0badb8dcea7cc02d318a0e5cb4f94caab9c
9509efa5b1fd9712cf049392d7bb895af3af22d788f480d5254cb81fc4a0
7beedc59d28e93f1fe0d48dae1a9c947f085d506a7ffb3c8e388c902b7a0
80d537598bf38fc0fbf3e4a9f2b0df4fcda6e2d796f2ac92c44ba6ea8582
a0f98ebeb3f5b5fedee2f1a2d49ce2a094be251591d18fc5e4a4b057d798
8b02dc50bcd465e236f980dbf7abca5fecabc617ac1ed5f0c3a1a9ee8bdc
7edbcc4ed6f59cc4fae28b84dbbc838ae684c60fd408daedc3a175f2d787
bfdef49eaef38511c90ffad8d5b7108bf7b0d1f290f28adfc185acf0c9be
8003dc48b0e2b513d8dcf48debb4edaf9196e8078c02c0e5c9bcb1fea8b6
950be94fb08487e1e9d9f3d0f5b6dbbfef96d701b1fcb6e8e7baaff2d382
944ad5a6d3c186c6360ed4aada48fd4e9d97f3e488f1b0e1f35ccfcfa6bc
7b08c059afd985f0f6dbecb0d1acd95fce8fc7128ef3b3e0c084aeebcfdd
a1ebf04abdd8b6e6ecfc91a6c0bd805df3b9171f84f1a99cc4acb4e88eb7
b0fdd2b5acd185f38de39b8ac9bedd8f99bec9fbdbebcde1c18e8debb6b8
8dd9dfa5cde1aac5f70792af26afef8fcab8f5f1a50bdbebf2b59aead8db
7310eb46d21d85f4d0f3e5b5d59ed68098cd2201b6fdcbe2f3bcca0ef0ab
9bd28d57d0c583c4f3fd8c99e991d74fc5a6e3f38be3c3e922549c12c594
b7098246d1e1a60ed1f0e4d7e491f154fca5e5e1aadf1294e98493f2abd7
7bf7d1aff7fb9501f327db8ff0aed647f19b2e0f80d0d6f2c7449d02d58f
a00ed9598ac0ade7eae2e58dd745805f9ab2e9f78ddeba97c38ecdc9b48a
bd0d37b7cbec91e4e946dbb2e0b2ecbf8c922ef58b09bad4d588b9168dda
7bf9f1b3a9d18ffedadfdba3ef49debe9b96e3f8a408d7e0c5b5abf7d4b4
770cd090beeebdf0f7f6eab1c4adcc8597a9df05bbebaadcf98e5415cc98
7bd8f2bfa3c067c1da04f1b5e694cb85ea8f20fb9adeb59ff6b8b0fec4a0
ac0ed4abd9f860f2e70f8ba9c9acf98ff294ce06a003ad9fe9afc4c0c5d5
891df65fb5e2a8c8fbd8e78e250dd78e87bfd40fd1eaa0c229afb4e0d3a7
8dffecb6bfc0bce7d91f89b0f2a8cabdf99beb0f931fcd91f7488fcfa497
aed7c89888dbb0f087dff6b1cf99d54e85852c13a5daa82a22abc8f0c6ba
48d2feaaf73a6b0f8f1d9ba6e2a83140c4c4d5f4a7d5f5cee38d96c8a5a3
8d1bf299bcc361cbfb14f8872a548c5ff8aff51da1d9c3cfedb88eed869d
b3d0fbabd0fba4eeebedefaeec97ca568b57d7f3bad2a3e5f046cc02daae
a8d3d997cff0aec9f6dc96b4d09ef44be7a8e50eb00c8992eeb9c71384dd
b80fd9baa0d1a8f489068d90ca5ceb5c92a824f9a401dac4e8b591ebd594
b0fcddb810d39006db0e8ed8244cd15498a5ece1a401c3f229bebff4b1a7
b6deee97b3dc9dc7dff1f797cdb5f5bec6ccc40192f3a1d3d95da60dc98a
8e0ed6ae8ccf9d1389e3e584d795c8a087992d02bb4aaed3248d86e9aa8a
8002dfaff7f28c15ecd3d0d3ccb280ae86b3e4ff80feb6f2d05cb5ff8ca0
a0f8fc54b8866de6f4f4eed8eba4d3829baff51294f3ae9ce689cef7aedb
96fe335082ed821617e6efd2cdad83a2f4c6c1e0b118d6cbeeb897f1b786
9b13d2bdb18da7c28f0181daee48f88d8d92e3d1a30bb1f3c658bfcfd7af
b9d8d14a80fa82e88a02d7d2cebedc8299b126028dfeaed5c21dcd14b988
9bfdeea6b4ffa7ebd9128ab7edb28fa49396cd15daf7aa96cba49d17caab
8a18e891df3aaf12dbe6ee92f7adfe5ec4a8c813b119dbe2eeb597e8aba0
9c0ad3bedff1a01e8c0788b612adf28999ba23e28c1dbce3f2849701d59e
9412e8aeae3a86e632f58bd0f554f0838ab0d1fa9b2bdde822bf99cad288
89f9f493d18db113f203f4adc3b3e9ae9c8cf7f790d6c0cdcc8c92e7c646
b30bd5b280ed6ee1da12ebd9eaba8b44f7a9f6e383e889c9d459b916cfd7
7fdfeea9dfe6b2f2ece3e5b5ee9ad987f3baf5d996d7c8c128bebce7b3a1
8f11d1b4abfeb008fafaf696e754fda75492240faf0ef5c4e65eacc5be9b
aed2ef4dacd18605e81594b4d1aff285cfaae2079b1da2f2c38094fcb299
be1ce89db4d4bccf8501afbbd496d485cd97c5d59aebbd952584adeddfb4
910ef30df7c6aef0d2e3d5b3ca56ef46f38a22f7d6fcd2c1f188b5e8d1a8
9309fc9ab6c4b5eed6f1eeb7ef4dffa8e8a4ced79b13bdeac8ad9fe18ea0
bbda8f4bdcc2b003361f86b0e057ea89fb8bd302482bb6edf4b9bbceb8af
bff5d39581d2abe3fed2eb8ac448ce55988d23d7a9f8b5f0c447a8f78a86
8cfdf55fa0f197cef5fcf883f45ecb54899bffe4bb0ca0e4d8879b11caa9
90eac09683846657d004f0b5cc4dd35685a5e9e1b8ee83cce1a8b1e4cc85
abf5cc57d6ec6e06f700efd024b3fd48cbaa2605691db0d4e9849314cbd6
bcddfab3df826c0cf5d38fd2c796e047f170e700b3ef8b9410a3c702ad88
8cf3fca68ffeb013cd1b93b7db52ccaff8c922ff900883cbf2a394e9a58b
8a02e29fd6f88df28df3db8824ade2a7f2b8d4d0aef3d69df1bc9702cba2
9a15cc4a8c8461c4caeef04a25bcf1b59c93d512b612d6f2c642c4c3ad8f
950a375eaed0aee6eaf095d7f152e8a196a7c7f9ba10b6f1c954b7c9ccd8
bcfdc0b3bff890effb0297b9ebacce8ac693e5136913c9d6cd86b4ef17bc
9cefebb7d9d2941ec5fd80acd64df74a98c52107da1fcbdfec4f901ed8ae
b611fe57c385861febd5d6a7ec93e2bc89a6d7deb7dac8f3ca4c8ef1ad97
72fccb4fb2dea6cecbe5f6b4d25b821dcebeccd9d813c3912b8793cba6ae
aad5fa97b7c481f5f1ed85aefbb5efa2efc6e9e4a6efab9f2f5ea6c2abb6
b4fbeb6cd1fbb613ead394b0e2548a54b38c28dadbe1d7d2c68ba9ed89d6
88ef
'==.'
111
7910
56
9598
59
1165
62
64
2
8747
68
69
95
76
6718
79
80
83
84
89
90
3
98
103
108
109
1
2671
113
114
115
118
120
121
7952
127
4
132
134
5
137
139
140
'n%{k'
143
144
148
150
152
155
9285
160
364
161
171
172
173
179
180
183
184
187
812
190
191
194
None
-1
199
200
7124
232
256
245
250
3538
252
253
257
259
261
264
267
269
122
278
280
283
285
286
289
291
292
299
304
306
309
311
312
316
317
318
323
325
328
330
333
335
337
339
340
8808
349
350
353
355
356
359
361
362
365
367
368
371
373
374
''
code
argcount 1
nlocals 2
stacksize 68
flags 0062
code
761b400d8916664c424a1c1d3d5f18211b4c26160779425e764f1a284117
63194030115d6b454273071d315d18071a4c18160778415e7c5c1a274017
755e4008765c1a4d27170779445e735f1a3f6617760640
consts
None
9475
5
364
6
names ('RXsV\x18', 'v\x05N\nE')
varnames ('6*', '#')
freevars ()
cellvars ()
filename 'v>\x7f}!n'
name "|\x7fr3'\x7f.or"
firstlineno 0
lnotab
2267
389
396
13
407
411
413
414
417
419
420
424
425
427
428
430
437
439
442
444
445
448
450
451
454
456
457
459
1416
473
6164
474
478
482
484
2235
488
1267
489
names ('\x01B;\x15\x1d', '\x1d\x19\x04R\x02', '\x02\x0b\nBG', 'G\x17\x05\x19E', 'E\x08~\x0b\x1f', '\x1fM~\x17X', 'XO\x07\x08H', 'H\x15`M\x13', '\x13R\x7fO\x01', '\x01B\x0e\x15\x1d', '\x1d\x19&R\x02', '\x02\x0b4BG', 'G\x17>\x19E', 'E\x08l\x0b\x1f', '\x1fMK\x17X', 'XO\x0f\x08H', 'H\x15IM\x13', 'tr,', '>(!', 'd7', 'sj', '\x7f', '9%', ':;4yn6u', 't', '$fl-', 'l;', '#2&', ',i9', ';|}', '.4?n', 'h,#', "v'i", '6^', '`4', '&', ',)', '!2<;i9', 'rn', 'B\x1fn3gw0)\x13E', "k'3", '-t', 'p/4y', 'tk ', "'t#evv-", '\x18`d\x7f.c%/,', '&->3f)', '\x11\x07\t/+', 'L\x13\x11\x00"')
varnames ()
freevars ()
cellvars ()
filename 'v/r8y*'
name 'aw#&bkx~'
firstlineno 0
lnotab
names ('chr', 'eval', 'map')
varnames ('\x07\x15\x0c\x03\x1e\x00\x1b', '\x14\x1f\x02\x0c\x18\x08\x1e', '\x03\r\x07\x18\t\x14\x04', '\x08\x16\t\x1f\x17\x04\x10', '\x0e\x06\x06\x05\x1f\x1b\x1f', '\x12\x1f\x0c\t\x06\x14\x10', '\x1d\x06\x1d\x1f\x07\x14\x06', '\x08\x15\x00\r\x0e\x0b\x0c', '\x1a\x14\x10\x02\x05\x0b\x1c', '\x13\r\x0e\x01\r\x16\x11', '\x1a\x0b\x0f\x08\x18\x0e\x1e', '\x12\x1c\x12\x0b\t\x0c\x19', '\x12\x1d\x17\x02\x1e\x10\x0c', '\x18\x03\x03\x1e\x13\x11\x03', '\x13\x06\x1f\x15\x10\x19\x08', '\x1e\x14\x0f\x0e\x0e\x12\x17', '\x12\x16\x03\x04\x1b\t\x0b', '\r\t\x0b\x00\x15\x01\x11', '\x01\x08\n\x0b\x0b\r\x03', '\x03\x07\x18\x0f\t\x0c\x1f', '\x14\n\x1e\x08\x04\x1c\x04', '\t\x03\x01\x05\x02\r\x19', '\x1c\x1f\x07\x16\x08\x1e\x1a')
freevars ()
cellvars ()
filename ''
name '\x18\x1d\x06\x0c\x05\x00\x04'
firstlineno 1
lnotab
names ()
varnames ('\x18\x1d\x06\x0c\x05\x00\x04',)
freevars ()
cellvars ()
filename ''
name '<pjorion_protected>'
firstlineno 0
lnotab
  • Upvote 1
  • Downvote 7

Share this post


Link to post

Short link
Share on other sites

How is compiled into bytecode PY

 

....................

Please edit your message and get rid of code in the message. It is very inconvenient to read such a text. Please create file, copy code into it and attach to your message. 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

How is compiled into bytecode PY

it's possible, but so hard for people who asked question like this.

read about library new for first.

Edited by fecell

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...