1 line
23 KiB
XML
1 line
23 KiB
XML
<xml version="Mixly 3.0 rc0" board="Python ESP32-C5@元控自立(SOWL)" shown="block"><block type="variables_set" id="b0!XNvnDHm_-Uq@n021p" x="-4271" y="-1452"><field name="VAR">电梯当前楼层</field><value name="VALUE"><block type="math_random" id="bxCW)^[(x_|*LqKpo{l6"><field name="TYPE">int</field><value name="FROM"><shadow type="math_number" id="Cw$zU~{U9pvh]Uo?5BGf"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="?x@S{v_ku~}DzF.Yw5!p"><field name="NUM">4</field></shadow></value></block></value><next><block type="variables_set" id="274;@r+=Dx=S314(+toD"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="Q+_YaT5q1o=w0!gD1XUb"><field name="NUM">0</field></block></value><next><block type="variables_set" id="=GSyVlDD!uxUTX{d9n|^"><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="QCk#*NP*=r9PDd.?n?ef"><field name="TEXT">静止</field></block></value><next><block type="controls_whileUntil" id="Y^RlqhU38uv:5Ym(}d*o"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="tqeme.?Nzy^y)VYA2Rkg"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="procedures_callnoreturn" id="m}]6KbrFZv3u7U07i/4["><mutation name="显示电梯状态"></mutation><next><block type="controls_if" id="ux_m[2e?R!!j=;Hi1g12"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Vml1!{lqiwg)moRW6RH~"><value name="btn"><shadow type="pins_button" id=":6g6|MDMm9.L1V=}Of;/"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="jw/*b4?+t19U(*AD3XnA"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="cgym5it)w~{S3s*QtSs4"><field name="NUM">1</field></block></value></block></statement><next><block type="controls_if" id="6+B?2l032BCg9=ZWHHv="><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="yhzY9Mkv?+)-,M#R*qG6"><value name="btn"><shadow type="pins_button" id="VV,]W$TlxLnkcUe6P4J="><field name="PIN">A2key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="(+c{i-avgnnnUQUi`C$X"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="51d:oNM6a71RQ$FOrqUx"><field name="NUM">2</field></block></value></block></statement><next><block type="controls_if" id="CJ,aW!WVoFP]dupY(tUM"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="*3j1!d3~`1HpjmiDg]rC"><value name="btn"><shadow type="pins_button" id="1edfoevwd4R!xJelM!tv"><field name="PIN">A3key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="oP-V`3^`U15L[w[NQI4d"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="+[W]k?_|-:*;a3}LDWrp"><field name="NUM">3</field></block></value></block></statement><next><block type="controls_if" id="5PBi]3/!=[g]2TD~91h{"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="MT~En/-Mh:T!!Im:9K?("><value name="btn"><shadow type="pins_button" id="j/E]8KFQa?THD`/EllX#"><field name="PIN">A4key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="EegsZ|EC`}~Qu1X{?d=b"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="v!|6H7X[_:e@9Lx`HQm-"><field name="NUM">4</field></block></value></block></statement><next><block type="controls_if" id="7`CB@_tYX#!xx}/^Anfl"><value name="IF0"><block type="logic_compare" id="ix!weh)w2XK:fVnlpZnW"><field name="OP">NEQ</field><value name="A"><block type="variables_get" id="?EcA*AxXZllr*YA7h:.."><field name="VAR">用户目标楼层</field></block></value><value name="B"><block type="math_number" id="sBK[;QBz;eG4@PG=[Q`5"><field name="NUM">0</field></block></value></block></value><statement name="DO0"><block type="controls_if" id="YR]h/tPOiXTmYuzI9Q;r"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_compare" id="EKQ~X5sd1/O(,`Siy3J@"><field name="OP">GT</field><value name="A"><block type="variables_get" id="mh:_?L4QQgY(eMxnm2[/"><field name="VAR">用户目标楼层</field></block></value><value name="B"><block type="variables_get" id="38jZVc}M6e}G9`A8$Tx`"><field name="VAR">电梯当前楼层</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="nwxyk)]#5kzDIp5bGr[-"><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="b[4DSA$xgpcM_=/luF6$"><field name="TEXT">上行</field></block></value><next><block type="math_selfcalcu" id="ksRD/.GN^ECD:okd+i0^"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="7.$nQa2(GhzG8_ijQNr{"><field name="VAR">电梯当前楼层</field></shadow></value><value name="B"><shadow type="math_number" id="gHLN?0wQ,IHQL}5Vj02y"><field name="NUM">1</field></shadow></value></block></next></block></statement><value name="IF1"><block type="logic_compare" id="_Z*20gC|2h]`^#GDbEr0"><field name="OP">LT</field><value name="A"><block type="variables_get" id="]tQP$W/U.PfbOaUK9c6}"><field name="VAR">用户目标楼层</field></block></value><value name="B"><block type="variables_get" id="E29vEnq*dN$g-*D`RYm."><field name="VAR">电梯当前楼层</field></block></value></block></value><statement name="DO1"><block type="variables_set" id="U@jR8dnW3dfWa4-0Q}mq"><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="(P~g+KjpH*U9S3VWP;n."><field name="TEXT">下行</field></block></value><next><block type="math_selfcalcu" id="OpeWS35lGp67F|cS^Ks+"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="[*Hv{$MQRc3wf^1(i25X"><field name="VAR">电梯当前楼层</field></shadow></value><value name="B"><shadow type="math_number" id="@UZy8,8.At7l,gmTxw1{"><field name="NUM">1</field></shadow></value></block></next></block></statement><statement name="ELSE"><block type="variables_set" id="gwH/wvW(q;k96ojd!|H^"><field name="VAR">电梯状态显示</field><value name="VALUE"><block type="text" id="a~=9olt$AY:s`a/y}iu|"><field name="TEXT">静止</field></block></value><next><block type="procedures_callnoreturn" id="FtP+UXrQ5$(X1z17YX,h"><mutation name="开关门"></mutation><next><block type="variables_set" id="GpAh(9cyQ_TDuF_gf~RP"><field name="VAR">用户目标楼层</field><value name="VALUE"><block type="math_number" id="n,$=pMuU4O(L/T0JaC-{"><field name="NUM">0</field></block></value></block></next></block></next></block></statement><next><block type="controls_delay_new" id="A?I1C0~exL-7K$E:?HK("><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="(i|]U?;9MLy=)M!2pWji"><field name="NUM">1</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="srMJmRuKG[N;=Y|7kn]e" x="-3519" y="-1481"><field name="NAME">显示电梯状态</field><statement name="STACK"><block type="display_clear" id="[#isJ4?Dr1a`4I0F46@4"><value name="boolean"><shadow type="logic_boolean" id="L,ddxnoZs9VV!:b@r=5i"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_or_string_delay" id="Efw]W(vEHq6P{!xtzi[I"><field name="center">True</field><value name="data"><shadow type="text" id="iVl3^UQa3Do@=B7Kd~?m"><field name="TEXT">Mixly</field></shadow><block type="text_join" id="2FwXhRQfjF*II78iN5j{"><value name="A"><shadow type="text" id="a:L8D{]7S|2dW}SD|jsu"><field name="TEXT">电梯状态:</field></shadow></value><value name="B"><shadow type="text" id="~nQfzmnw=$ujr=Q+}BLM"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="ol~#w7D-19Eq}z-`~x@]"><field name="VAR">电梯状态显示</field></block></value></block></value><value name="x"><shadow type="math_number" id=")PYb[6Y7SM_|}HNnaWfu"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="UACHUZS=d]*ulrb@Iihn"><field name="NUM">10</field></shadow></value><value name="size"><shadow type="math_number" id="7.;2G#ldJ[Hf;Y8bqfxh"><field name="NUM">2</field></shadow></value><value name="space"><shadow type="math_number" id="jpMxiJJHMs}d{6jg$)w;"><field name="NUM">0</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="@D]T]9[-hAYDo:V(^eaV"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="cl)GVPY^Pn=tTzX,^U_#"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="xWh5+65EwW9_4JbJg;]M"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_or_string_delay" id="ecyzrfQ`HE3@1tUPC_y?"><field name="center">True</field><value name="data"><shadow type="text" id="s0@{rszaC}h3a#b;Tmqc"><field name="TEXT">Mixly</field></shadow><block type="text_join" id="W#P|wb.Yn2Q.]7I2q4a$"><value name="A"><shadow type="text" id="Ll7@~16M@,5]w0OBD|fe"><field name="TEXT">电梯楼层:</field></shadow></value><value name="B"><shadow type="text" id="JbPG70(~UE5qAVF.i:y4"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="|X,^Ena)*RULRpTnhMHt"><value name="VAR"><shadow type="variables_get" id="`4tPhP6nLkD!gg(27beK"><field name="VAR">x</field></shadow><block type="variables_get" id=",2:w-_yQMVcpw*U0boWG"><field name="VAR">电梯当前楼层</field></block></value></block></value></block></value><value name="x"><shadow type="math_number" id="ZcP@$#_}N/Tm7m?nOdCW"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="LS(;tgO^f0(MI$o)c-c`"><field name="NUM">30</field></shadow></value><value name="size"><shadow type="math_number" id="1Xb!{Bd-8@J$~!99?8`f"><field name="NUM">2</field></shadow></value><value name="space"><shadow type="math_number" id="CFMx@5U__;^Qv64,X6z{"><field name="NUM">0</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="-MR^[YHW0LadIG@Y=`i="><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="6}RNDCg6ttX_QQ8:yeVJ"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="|ftm|[*:h[^Ok?+;/kaP"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_or_string_delay" id="e{~6K*mBsl!n3X)nuClv"><field name="center">True</field><value name="data"><shadow type="text" id="15+id19qX@J2Y.HjS1gn"><field name="TEXT">Mixly</field></shadow><block type="text_join" id="u_t-yP_Ga7Xhyj;9dfTY"><value name="A"><shadow type="text" id="eus=+HuyCl,wRW)UmIB2"><field name="TEXT">目标楼层:</field></shadow></value><value name="B"><shadow type="text" id="DbL?q[LAZe]Z^t[[q?l#"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="HC6enX^@I=95}3u95Cg3"><value name="VAR"><shadow type="variables_get" id="t:8~)vzb#reESlXgV[v`"><field name="VAR">x</field></shadow><block type="variables_get" id="p{hv]-Py*Pg73[(R)EZJ"><field name="VAR">用户目标楼层</field></block></value></block></value></block></value><value name="x"><shadow type="math_number" id="`Me,j1Xz5FuNoUKT1f{:"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="67(.j-yh]1Oh7TY7~kH+"><field name="NUM">50</field></shadow></value><value name="size"><shadow type="math_number" id="uWVIBb$`B`V`QalBl99-"><field name="NUM">2</field></shadow></value><value name="space"><shadow type="math_number" id="~]-:{)AF)RvBrJzP1_ZB"><field name="NUM">0</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="~MN`5T.MW|#GQyEDxpT)"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="/^s6IDekZ7Gn#e_2yv9#"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="-QGt3O~)MZ@2|?Pl3lA:"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_show_image_xy" id="{jbX^W4,;+juA^|@597d"><value name="data"><shadow type="pins_builtinimg" id="bZ89yLrY}=CbN@o#aPtj"><field name="PIN">object_picture.DOOR_CLOSE</field></shadow></value><value name="x"><shadow type="math_number" id="8Q!L5#``?~QNTx)3J~({"><field name="NUM">30</field></shadow></value><value name="y"><shadow type="math_number" id="b~i`IW+6i3m}*||atl?)"><field name="NUM">70</field></shadow></value><value name="size"><shadow type="math_number" id="9BndoXgowvN(qlF+;v*x"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="o8R}HTrB7YD(]M+1Ydjj"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="x{UN#B8ap`!oD)U0Hh*2"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="x@CO0rV:C18maGZ.^f(;"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_if" id="CjHSDSCx@t/D?!W7w;V~"><value name="IF0"><block type="variables_get" id="#R6!^fu{s|ozh.{y8#kD"><field name="VAR">用户目标楼层</field></block></value><statement name="DO0"><block type="actuator_onboard_neopixel_rgb_all" id="TzDEjZKJPv8|0n{)uIx}"><value name="RVALUE"><shadow type="math_number" id="Xb^{VPl?y(;SbK|yC.6-"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="!Hj/!8@.~SCYt?^;M+TQ"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="01)EC9$^ImbtEwe$*A8y"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_rgb" id="#6ETPXu,OfKgcql$i?o,"><value name="_LED_"><shadow type="math_number" id="MamSO;+osT,$=JJks`k#"><field name="NUM">0</field></shadow><block type="math_arithmetic" id="_~1_/Ah(^7+_GWcwUJ+4"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="S[)ZkJInn^o3!;ppek`N"><field name="NUM">1</field></shadow><block type="variables_get" id="y]XSv?fvP`qS~Ohe3+{l"><field name="VAR">用户目标楼层</field></block></value><value name="B"><shadow type="math_number" id="r^uZBB1Oy`qJO]Iv33}L"><field name="NUM">1</field></shadow></value></block></value><value name="RVALUE"><shadow type="math_number" id="15IWrdXeBgN[;,ucrRp~"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="u5r}aWL#D0933*jl1+5b"><field name="NUM">30</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="4fNK6kzE$G9T~$bF|Ofn"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="uEQ}sxeN[6{YQUur7y?Y"></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></statement></block><block type="procedures_defnoreturn" id="]puC6!bj/yJF#c?oY1ig" x="-3528" y="-975"><field name="NAME">开关门</field><statement name="STACK"><block type="onboard_tft_show_image_xy" id="8orJo|zJ=/-6{:Mbet4j"><value name="data"><shadow type="pins_builtinimg" id="TS~U#;gJuS;c?F@E9r[3"><field name="PIN">object_picture.DOOR_OPENING</field></shadow></value><value name="x"><shadow type="math_number" id="!O)|J=N5*r$HpP8cSeZV"><field name="NUM">30</field></shadow></value><value name="y"><shadow type="math_number" id="#2kM)vLhS|(@SjEmLi{K"><field name="NUM">70</field></shadow></value><value name="size"><shadow type="math_number" id="3kx$^ajRl9=u.i[Y*VwQ"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id=".`HY{xt.D)C.@/x_/g?Q"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="l?!ZZ4LrThZy[BF7yOPy"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="hPOR$9v,IX$?`0Rus!0s"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="8,w~Q#vMs@;z*8pA~`QK"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="NO?=mTu1y=,{K:9SeE8,"><field name="NUM">0.3</field></shadow></value><next><block type="onboard_tft_show_image_xy" id="L|0@cIWEanm;kuMpmqkX"><value name="data"><shadow type="pins_builtinimg" id="]?-~_)xJk-y,^e{V.gE="><field name="PIN">object_picture.DOOR_OPEN</field></shadow></value><value name="x"><shadow type="math_number" id="TkROU;OqEvyRNK=1hZ4V"><field name="NUM">30</field></shadow></value><value name="y"><shadow type="math_number" id="FkFa#K:G4zPzP|kNbtZ4"><field name="NUM">70</field></shadow></value><value name="size"><shadow type="math_number" id=")9pgYD$L2XwuC35_4VS~"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="1mo29oOB]2pq*dRpCs#_"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="H1Of_`eKL7~!UGFT:cUn"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="qG;X{L!(cbg$:w9Nc9kv"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id=")i)-uNje!o5b|Qm0P9Wo"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="~Au=.rd3ff$J/!pdL}Vp"><field name="NUM">1</field></shadow></value><next><block type="do_while" id="kcsS}NtouvOzv}njuEI*"><field name="type">true</field><value name="select_data"><block type="logic_compare" id="ev!RDFBQ8fki-|z3=ArD"><field name="OP">LT</field><value name="A"><block type="sensor_mixgo_pin_near_single" id="7Sn=@T=lqo9^c/I*SO|v"></block></value><value name="B"><block type="math_number" id="JC/eg0nc.{Aa3+:VjaRU"><field name="NUM">100</field></block></value></block></value><next><block type="onboard_tft_show_image_xy" id="`?|g@RMtbmULwhX~onw3"><value name="data"><shadow type="pins_builtinimg" id="|1Nz/5e~zU$)kvUKX{#J"><field name="PIN">object_picture.DOOR_OPENING</field></shadow></value><value name="x"><shadow type="math_number" id=";YUZG;?:kwqvee^y{gPN"><field name="NUM">30</field></shadow></value><value name="y"><shadow type="math_number" id="^E|j*CdMCf^I`PXE$NWR"><field name="NUM">70</field></shadow></value><value name="size"><shadow type="math_number" id="CB+k^|vmv|khQOC-v;fV"><field name="NUM">1</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="kvjmM@l?2beMix.(=v;I"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="8DbW.$-Y1LdKRDW#ujf/"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="B/fo.`-W9|(yz95))7jW"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="@=J$2}XKwB*38bTc!@X("><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="d]Z_^TpY=mnn#CG/lWD-"><field name="NUM">0.3</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>aW1wb3J0IHJhbmRvbQppbXBvcnQgbWl4Z29fc293bAppbXBvcnQgdGltZQpmcm9tIG1peGdvX3Nvd2wgaW1wb3J0IG9uYm9hcmRfdGZ0CmZyb20gb2JqZWN0X3BpY3R1cmUgaW1wb3J0IERPT1JfQ0xPU0UKZnJvbSBtaXhnb19zb3dsIGltcG9ydCBvbmJvYXJkX3JnYgpmcm9tIG9iamVjdF9waWN0dXJlIGltcG9ydCBET09SX09QRU5JTkcKZnJvbSBvYmplY3RfcGljdHVyZSBpbXBvcnQgRE9PUl9PUEVOCmZyb20gbWl4Z29fc293bCBpbXBvcnQgb25ib2FyZF9hbHMKCgpkZWYg5pi+56S655S15qKv54q25oCBKCk6CiAgICBvbmJvYXJkX3RmdC5maWxsKDAsc3luYz1GYWxzZSkKICAgIG9uYm9hcmRfdGZ0LnNob3dzKCfnlLXmoq/nirbmgIHvvJonICsg55S15qKv54q25oCB5pi+56S6LCB4PTAsIHk9MTAsIHNpemU9Miwgc3BhY2U9MCwgY2VudGVyPVRydWUsIGNvbG9yPTB4ZmZmZixzeW5jPUZhbHNlKQogICAgb25ib2FyZF90ZnQuc2hvd3MoJ+eUteair+alvOWxgu+8micgKyBzdHIo55S15qKv5b2T5YmN5qW85bGCKSwgeD0wLCB5PTMwLCBzaXplPTIsIHNwYWNlPTAsIGNlbnRlcj1UcnVlLCBjb2xvcj0weGZmZmYsc3luYz1GYWxzZSkKICAgIG9uYm9hcmRfdGZ0LnNob3dzKCfnm67moIfmpbzlsYLvvJonICsgc3RyKOeUqOaIt+ebruagh+alvOWxgiksIHg9MCwgeT01MCwgc2l6ZT0yLCBzcGFjZT0wLCBjZW50ZXI9VHJ1ZSwgY29sb3I9MHhmZmZmLHN5bmM9RmFsc2UpCiAgICBvbmJvYXJkX3RmdC5pbWFnZShET09SX0NMT1NFLCB4PTMwLCB5PTcwLCBzaXplPTEsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICBpZiDnlKjmiLfnm67moIfmpbzlsYI6CiAgICAgICAgb25ib2FyZF9yZ2IuZmlsbCgoMCwgMCwgMCkpCiAgICAgICAgb25ib2FyZF9yZ2JbKOeUqOaIt+ebruagh+alvOWxgiAtIDEpXSA9ICgwLCAzMCwgMCkKICAgICAgICBvbmJvYXJkX3JnYi53cml0ZSgpCgpkZWYg5byA5YWz6ZeoKCk6CiAgICBvbmJvYXJkX3RmdC5pbWFnZShET09SX09QRU5JTkcsIHg9MzAsIHk9NzAsIHNpemU9MSwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkKICAgIHRpbWUuc2xlZXAoMC4zKQogICAgb25ib2FyZF90ZnQuaW1hZ2UoRE9PUl9PUEVOLCB4PTMwLCB5PTcwLCBzaXplPTEsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICB0aW1lLnNsZWVwKDEpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIChvbmJvYXJkX2Fscy5wc19ubCgpIDwgMTAwKToKICAgICAgICAgICAgYnJlYWsKICAgIG9uYm9hcmRfdGZ0LmltYWdlKERPT1JfT1BFTklORywgeD0zMCwgeT03MCwgc2l6ZT0xLCBjb2xvcj0weGZmZmYsc3luYz1UcnVlKQogICAgdGltZS5zbGVlcCgwLjMpCgoKCueUteair+W9k+WJjealvOWxgiA9IHJhbmRvbS5yYW5kaW50KDEsIDQpCueUqOaIt+ebruagh+alvOWxgiA9IDAK55S15qKv54q25oCB5pi+56S6ID0gJ+mdmeatoicKd2hpbGUgVHJ1ZToKICAgIOaYvuekuueUteair+eKtuaAgSgpCiAgICBpZiBtaXhnb19zb3dsLkExa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg55So5oi355uu5qCH5qW85bGCID0gMQogICAgaWYgbWl4Z29fc293bC5BMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIOeUqOaIt+ebruagh+alvOWxgiA9IDIKICAgIGlmIG1peGdvX3Nvd2wuQTNrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSAzCiAgICBpZiBtaXhnb19zb3dsLkE0a2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg55So5oi355uu5qCH5qW85bGCID0gNAogICAgaWYg55So5oi355uu5qCH5qW85bGCICE9IDA6CiAgICAgICAgaWYg55So5oi355uu5qCH5qW85bGCID4g55S15qKv5b2T5YmN5qW85bGCOgogICAgICAgICAgICDnlLXmoq/nirbmgIHmmL7npLogPSAn5LiK6KGMJwogICAgICAgICAgICDnlLXmoq/lvZPliY3mpbzlsYIgKz0gMQogICAgICAgIGVsaWYg55So5oi355uu5qCH5qW85bGCIDwg55S15qKv5b2T5YmN5qW85bGCOgogICAgICAgICAgICDnlLXmoq/nirbmgIHmmL7npLogPSAn5LiL6KGMJwogICAgICAgICAgICDnlLXmoq/lvZPliY3mpbzlsYIgLT0gMQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIOeUteair+eKtuaAgeaYvuekuiA9ICfpnZnmraInCiAgICAgICAgICAgIOW8gOWFs+mXqCgpCiAgICAgICAgICAgIOeUqOaIt+ebruagh+alvOWxgiA9IDAKICAgICAgICB0aW1lLnNsZWVwKDEpCg==</code>agh+alvOWxgiA9IDQKICAgIGlmIOeUqOaIt+ebruagh+alvOWxgiAhPSAwOgogICAgICAgIGlmIOeUqOaIt+ebruagh+alvOWxgiA+IOeUteair+W9k+WJjealvOWxgjoKICAgICAgICAgICAg55S15qKv54q25oCB5pi+56S6ID0gJ+S4iuihjCcKICAgICAgICAgICAg55S15qKv5b2T5YmN5qW85bGCICs9IDEKICAgICAgICBlbGlmIOeUqOaIt+ebruagh+alvOWxgiA8IOeUteair+W9k+WJjealvOWxgjoKICAgICAgICAgICAg55S15qKv54q25oCB5pi+56S6ID0gJ+S4i+ihjCcKICAgICAgICAgICAg55S15qKv5b2T5YmN5qW85bGCIC09IDEKICAgICAgICBlbHNlOgogICAgICAgICAgICDnlLXmoq/nirbmgIHmmL7npLogPSAn6Z2Z5q2iJwogICAgICAgICAgICDlvIDlhbPpl6goKQogICAgICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSAwCiAgICAgICAgdGltZS5zbGVlcCgxKQo=</code>CgoK55S15qKv5b2T5YmN5qW85bGCID0gcmFuZG9tLnJhbmRpbnQoMSwgNCkK55So5oi35omA5Zyo5qW85bGCID0gcmFuZG9tLnJhbmRpbnQoMSwgNCkK55So5oi355uu5qCH5qW85bGCID0gMArnlLXmoq/nirbmgIHmmL7npLogPSAn6Z2Z5q2iJwp3aGlsZSBUcnVlOgogICAg5pi+56S655S15qKv54q25oCBKCkKICAgIGlmIG1peGdvX3NhbnQuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSAxCiAgICBpZiBtaXhnb19zYW50LkEya2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg55So5oi355uu5qCH5qW85bGCID0gMgogICAgaWYgbWl4Z29fc2FudC5BM2tleS53YXNfcHJlc3NlZCgpOgogICAgICAgIOeUqOaIt+ebruagh+alvOWxgiA9IDMKICAgIGlmIG1peGdvX3NhbnQuQTRrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSA0CiAgICBpZiDnlLXmoq/nirbmgIHmmL7npLogIT0gJ+mdmeatoic6CiAgICAgICAgaWYg55So5oi35omA5Zyo5qW85bGCID4g55S15qKv5b2T5YmN5qW85bGCOgogICAgICAgICAgICDnlLXmoq/nirbmgIHmmL7npLogPSAn5LiK6KGMJwogICAgICAgICAgICDnlLXmoq/lvZPliY3mpbzlsYIgKz0gMQogICAgICAgICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAgZWxpZiDnlKjmiLfmiYDlnKjmpbzlsYIgPCDnlLXmoq/lvZPliY3mpbzlsYI6CiAgICAgICAgICAgIOeUteair+eKtuaAgeaYvuekuiA9ICfkuIvooYwnCiAgICAgICAgICAgIOeUteair+W9k+WJjealvOWxgiAtPSAxCiAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKICAgICAgICBlbHNlOgogICAgICAgICAgICDnlLXmoq/nirbmgIHmmL7npLogPSAn6Z2Z5q2iJwogICAgICAgICAgICDlvIDlhbPpl6goKQogICAgICAgICAgICDnlKjmiLfmiYDlnKjmpbzlsYIgPSByYW5kb20ucmFuZGludCgxLCA0KQogICAgICAgICAgICDnlKjmiLfnm67moIfmpbzlsYIgPSAwCg==</code> |