"Asm.fif" include // automatically generated from `contracts/dns-auto-code.fc` incl:`contracts/imports/stdlib.fc` PROGRAM{ DECLPROC load_data DECLPROC load_prices DECLPROC store_data DECLPROC send_message DECLPROC send_error DECLPROC send_ok DECLPROC housekeeping DECLPROC calcprice_internal DECLPROC check_owner DECLPROC perform_ctl_op DECLPROC recv_internal DECLPROC recv_external DECLPROC dnsdictlookup 123660 DECLMETHOD dnsresolve 87450 DECLMETHOD getexpirationx 110574 DECLMETHOD getexpiration 67418 DECLMETHOD getstdperiod 109522 DECLMETHOD getppr 108994 DECLMETHOD getppc 113123 DECLMETHOD getppb 113304 DECLMETHOD calcprice 85700 DECLMETHOD calcregprice DECLGLOBVAR query_info load_data PROCREF:<{ // c4 PUSH // _1 CTOS // cs LDREF // _3 cs LDDICT // _3 _5 cs LDDICT // _3 _5 _7 cs 30 LDU // _3 _5 _7 _10 cs LDGRAMS // _3 _5 _7 _10 _13 cs LDGRAMS // _3 _5 _7 _10 _13 _15 cs LDGRAMS // _3 _5 _7 _10 _13 _15 _17 cs 4 -ROLL // _3 _5 _7 cs _10 _13 _15 _17 4 TUPLE // _3 _5 _7 cs _9 SWAP // _3 _5 _7 _9 cs 32 LDU // _3 _5 _7 _9 _19 cs 32 LDU // _3 _5 _7 _9 _19 _42 _41 DROP // _3 _5 _7 _9 _19 _22 }> load_prices PROCREF:<{ // c4 PUSH // _1 CTOS // cs LDREF // _19 _18 NIP // cs LDDICT // _21 _20 NIP // cs LDDICT // _23 _22 NIP // cs 30 LDU // _9 cs LDGRAMS // _9 _12 cs LDGRAMS // _9 _12 _14 cs LDGRAMS // _9 _12 _14 _31 _30 DROP // _9 _12 _14 _16 }> store_data PROC:<{ // ctl dd gc prices nhk lhk s0 s2 XCHG // ctl dd gc lhk nhk prices 4 UNTUPLE // ctl dd gc lhk nhk sp ppr ppc ppb s0 s8 XCHG NEWC // ppb dd gc lhk nhk sp ppr ppc ctl _11 STREF // ppb dd gc lhk nhk sp ppr ppc _12 s1 s7 XCHG // ppb ppc gc lhk nhk sp ppr dd _12 STDICT // ppb ppc gc lhk nhk sp ppr _13 s1 s5 XCHG // ppb ppc ppr lhk nhk sp gc _13 STDICT // ppb ppc ppr lhk nhk sp _14 30 STU // ppb ppc ppr lhk nhk _16 s0 s3 XCHG2 // ppb ppc nhk lhk _16 ppr STGRAMS // ppb ppc nhk lhk _17 s0 s3 XCHG2 // ppb lhk nhk _17 ppc STGRAMS // ppb lhk nhk _18 s0 s3 XCHG2 // nhk lhk _18 ppb STGRAMS // nhk lhk _19 s1 s2 XCHG // lhk nhk _19 32 STU // lhk _21 32 STU // _23 ENDC // _24 c4 POP }> send_message PROC:<{ // addr tag query_id body grams mode 0 PUSHINT // addr tag query_id body grams mode _7=0 24 PUSHINT // addr tag query_id body grams mode _7=0 _8=24 NEWC // addr tag query_id body grams mode _7=0 _8=24 _9 6 STU // addr tag query_id body grams mode _7=0 _11 s0 s7 XCHG2 // _7=0 tag query_id body grams mode _11 addr STSLICER // _7=0 tag query_id body grams mode _12 ROT // _7=0 tag query_id body mode _12 grams STGRAMS // _7=0 tag query_id body mode _13 s1 s5 XCHG // mode tag query_id body _7=0 _13 107 STU // mode tag query_id body _27 s1 s3 XCHG // mode body query_id tag _27 32 STU // mode body query_id _29 64 STU // mode body msg OVER // mode body msg body -1 GTINT // mode body msg _33 IF:<{ // mode body msg 32 STU // mode msg }>ELSE<{ NIP // mode msg }> ENDC // mode _37 SWAP // _37 mode SENDRAWMSG }> send_error PROC:<{ // error_code query_info GETGLOB UNTRIPLE // error_code addr query_id op s2 s3 XCHG 0 PUSHINT 64 PUSHINT // addr error_code query_id op _5=0 _6=64 send_message CALLDICT }> send_ok PROC:<{ // price 4 PUSHINT // price _1=4 RAWRESERVE query_info GETGLOB UNTRIPLE // addr query_id op 4016791929 PUSHINT // addr query_id op _7=4016791929 -ROT 0 PUSHINT 7 PUSHPOW2 // addr _7=4016791929 query_id op _8=0 _9=128 send_message CALLDICT }> housekeeping PROC:<{ // ctl dd gc prices nhk lhk max_steps NOW // ctl dd gc prices nhk lhk max_steps n s2 PUSH // ctl dd gc prices nhk lhk max_steps n lhk 60 ADDCONST // ctl dd gc prices nhk lhk max_steps n _10 s4 s(-1) PUXC // ctl dd gc prices nhk lhk max_steps n nhk _10 MAX // ctl dd gc prices nhk lhk max_steps n _11 s1 s(-1) PUXC // ctl dd gc prices nhk lhk max_steps n n _11 LESS // ctl dd gc prices nhk lhk max_steps n _12 IFJMP:<{ // ctl dd gc prices nhk lhk max_steps n 2DROP // ctl dd gc prices nhk lhk store_data CALLDICT }> // ctl dd gc prices nhk lhk max_steps n s2 POP // ctl dd gc prices nhk n max_steps s4 PUSH 8 PUSHPOW2 // ctl dd gc prices nhk n max_steps gc _17=256 DICTUMIN NULLSWAPIFNOT2 // ctl dd gc prices nhk n max_steps _63 _62 _64 s2 POP // ctl dd gc prices nhk n max_steps found? mkey WHILE:<{ s1 s2 XCPU // ctl dd gc prices nhk n max_steps mkey found? max_steps AND // ctl dd gc prices nhk n max_steps mkey _19 }>DO<{ // ctl dd gc prices nhk n max_steps mkey s3 POP // ctl dd gc prices mkey n max_steps s2 PUSH // ctl dd gc prices mkey n max_steps mkey 224 RSHIFT# // ctl dd gc prices mkey n max_steps nhk s0 s2 PUSH2 // ctl dd gc prices mkey n max_steps nhk nhk n LESS // ctl dd gc prices mkey n max_steps nhk _24 IF:<{ // ctl dd gc prices mkey n max_steps nhk DROP // ctl dd gc prices mkey n max_steps s2 PUSH // ctl dd gc prices mkey n max_steps mkey 224 MODPOW2# // ctl dd gc prices mkey n max_steps key s0 s6 PUSH2 224 PUSHINT // ctl dd gc prices mkey n max_steps key key dd _35 DICTUGET NULLSWAPIFNOT // ctl dd gc prices mkey n max_steps key val found? IF:<{ // ctl dd gc prices mkey n max_steps key val 32 PLDU // ctl dd gc prices mkey n max_steps key exp s3 PUSH // ctl dd gc prices mkey n max_steps key exp n LEQ // ctl dd gc prices mkey n max_steps key _40 IF:<{ // ctl dd gc prices mkey n max_steps key s0 s6 XCHG2 224 PUSHINT // ctl max_steps gc prices mkey n key dd _44 DICTUDEL // ctl max_steps gc prices mkey n _67 _68 DROP // ctl max_steps gc prices mkey n dd s0 s5 XCHG // ctl dd gc prices mkey n max_steps }>ELSE<{ DROP // ctl dd gc prices mkey n max_steps }> }>ELSE<{ 2DROP // ctl dd gc prices mkey n max_steps }> s2 s4 XCHG2 8 PUSHPOW2 // ctl dd max_steps prices n mkey gc _47=256 DICTUDEL // ctl dd max_steps prices n _69 _70 DROP // ctl dd max_steps prices n gc DUP 8 PUSHPOW2 // ctl dd max_steps prices n gc gc _50=256 DICTUMIN NULLSWAPIFNOT2 // ctl dd max_steps prices n gc _72 _71 _73 s2 POP // ctl dd max_steps prices n gc found? mkey OVER // ctl dd max_steps prices n gc found? mkey found? IF:<{ // ctl dd max_steps prices n gc found? mkey DUP // ctl dd max_steps prices n gc found? mkey mkey 224 RSHIFT# // ctl dd max_steps prices n gc found? mkey _52 }>ELSE<{ // ctl dd max_steps prices n gc found? mkey 32 PUSHPOW2DEC // ctl dd max_steps prices n gc found? mkey _52=4294967295 }> // ctl dd max_steps prices n gc found? mkey nhk s0 s6 XCHG // ctl dd nhk prices n gc found? mkey max_steps DEC // ctl dd nhk prices n gc found? mkey max_steps }>ELSE<{ // ctl dd gc prices mkey n max_steps nhk s5 s1 s5 XCHG3 s0 s3 XCHG FALSE s0 s2 XCHG // ctl dd nhk prices n gc found? mkey max_steps }> s3 s6 XCHG s3 s4 XCHG -ROT // ctl dd gc prices nhk n max_steps found? mkey }> // ctl dd gc prices nhk n max_steps mkey 2DROP // ctl dd gc prices nhk n store_data CALLDICT }> calcprice_internal PROCREF:<{ // domain data ppc ppb s0 s2 XCHG 100 PUSHINT // domain ppb ppc data _7=100 CDATASIZE // domain ppb ppc _24 _25 _26 s2 POP // domain ppb ppc refs bits s0 s4 XCHG // bits ppb ppc refs domain SBITS // bits ppb ppc refs _9 1 LSHIFT# // bits ppb ppc refs _11 192 PUSHINT // bits ppb ppc refs _11 _16 ADD // bits ppb ppc refs _17 s1 s4 XCHG // refs ppb ppc bits _17 ADD // refs ppb ppc bits s0 s3 XCHG // bits ppb ppc refs 2 ADDCONST // bits ppb ppc _20 MUL // bits ppb _21 s0 s2 XCHG // _21 ppb bits MUL // _21 _22 ADD // _23 }> check_owner PROCREF:<{ // cat_table owner_info src_wc src_addr strict s0 s4 XCHG // strict owner_info src_wc src_addr cat_table ISNULL // strict owner_info src_wc src_addr _5 s4 s(-1) PUXC // strict owner_info src_wc src_addr strict _5 AND // strict owner_info src_wc src_addr _6 IFJMP:<{ // strict owner_info src_wc src_addr 4 BLKDROP // 4000281702 PUSHINT // _7=4000281702 }> // strict owner_info src_wc src_addr s2 PUSH // strict owner_info src_wc src_addr owner_info ISNULL // strict owner_info src_wc src_addr _8 IFJMP:<{ // strict owner_info src_wc src_addr 3 BLKDROP // strict 4000263474 PUSHINT // strict _9=4000263474 AND // _10 }> // strict owner_info src_wc src_addr s3 POP // src_addr owner_info src_wc 3798033458 PUSHINT // src_addr owner_info src_wc ERR_BAD2=3798033458 s0 s2 XCHG // src_addr ERR_BAD2=3798033458 src_wc owner_info CTOS // src_addr ERR_BAD2=3798033458 src_wc sown DUP // src_addr ERR_BAD2=3798033458 src_wc sown sown SBITS // src_addr ERR_BAD2=3798033458 src_wc sown _15 283 PUSHINT // src_addr ERR_BAD2=3798033458 src_wc sown _15 _22 LESS // src_addr ERR_BAD2=3798033458 src_wc sown _23 IFJMP:<{ // src_addr ERR_BAD2=3798033458 src_wc sown s2 s3 XCHG 3 BLKDROP // ERR_BAD2=3798033458 }> // src_addr ERR_BAD2=3798033458 src_wc sown 19 LDU // src_addr ERR_BAD2=3798033458 src_wc _24 sown SWAP 327324 PUSHINT // src_addr ERR_BAD2=3798033458 src_wc sown _24 _33 NEQ // src_addr ERR_BAD2=3798033458 src_wc sown _34 IFJMP:<{ // src_addr ERR_BAD2=3798033458 src_wc sown s2 s3 XCHG 3 BLKDROP // ERR_BAD2=3798033458 }> // src_addr ERR_BAD2=3798033458 src_wc sown 1 2 BLKDROP2 // src_addr src_wc sown 8 LDI // src_addr src_wc _37 sown 256 PLDU // src_addr src_wc owner_wc owner_addr s0 s2 XCHG // src_addr owner_addr owner_wc src_wc NEQ // src_addr owner_addr _42 s0 s2 XCHG // _42 owner_addr src_addr NEQ // _42 _43 OR // _44 IFJMP:<{ // 4000282478 PUSHINT // _45=4000282478 }> // 0 PUSHINT // _46=0 }> perform_ctl_op PROCREF:<{ // op src_wc src_addr in_msg load_data INLINECALLDICT // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk s5 PUSH // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk ctl CTOS // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk cs 8 LDI // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk _13 cs s0 s10 XCHG // op cs src_addr in_msg ctl domdata gc prices nhk lhk _13 src_wc NEQ // op cs src_addr in_msg ctl domdata gc prices nhk lhk _16 s0 s9 XCHG // op _16 src_addr in_msg ctl domdata gc prices nhk lhk cs 256 LDU // op _16 src_addr in_msg ctl domdata gc prices nhk lhk _83 _82 DROP // op _16 src_addr in_msg ctl domdata gc prices nhk lhk _17 s0 s8 XCHG2 // op _16 lhk in_msg ctl domdata gc prices nhk _17 src_addr NEQ // op _16 lhk in_msg ctl domdata gc prices nhk _20 s1 s8 XCHG // op nhk lhk in_msg ctl domdata gc prices _16 _20 OR // op nhk lhk in_msg ctl domdata gc prices _21 IFJMP:<{ // op nhk lhk in_msg ctl domdata gc prices 8 BLKDROP // 4000282478 PUSHINT // _22=4000282478 send_error CALLDICT }> // op nhk lhk in_msg ctl domdata gc prices s0 s7 XCHG 1130909810 PUSHINT // prices nhk lhk in_msg ctl domdata gc op _24=1130909810 EQUAL // prices nhk lhk in_msg ctl domdata gc _25 IFJMP:<{ // prices nhk lhk in_msg ctl domdata gc s6 POP // gc nhk lhk in_msg ctl domdata s0 s2 XCHG // gc nhk lhk domdata ctl in_msg 32 LDU // gc nhk lhk domdata ctl _30 in_msg LDGRAMS // gc nhk lhk domdata ctl _30 _33 in_msg LDGRAMS // gc nhk lhk domdata ctl _30 _33 _35 in_msg LDGRAMS // gc nhk lhk domdata ctl stdper ppr ppc ppb in_msg ENDS 4 TUPLE // gc nhk lhk domdata ctl _40 s0 s4 s4 XCHG3 s0 s5 XCHG s0 s3 XCHG // ctl domdata gc _40 nhk lhk store_data CALLDICT 0 PUSHINT // _42=0 send_ok CALLDICT }> // prices nhk lhk in_msg ctl domdata gc s4 POP // prices nhk gc in_msg ctl domdata query_info GETGLOB UNTRIPLE // prices nhk gc in_msg ctl domdata addr query_id op DUP 1128555884 PUSHINT // prices nhk gc in_msg ctl domdata addr query_id op op _48=1128555884 EQUAL // prices nhk gc in_msg ctl domdata addr query_id op _49 IFJMP:<{ // prices nhk gc in_msg ctl domdata addr query_id op s5 POP // prices nhk gc op ctl domdata addr query_id s2 PUSH // prices nhk gc op ctl domdata addr query_id domdata ISNULL // prices nhk gc op ctl domdata addr query_id _50 IFNOT:<{ // prices nhk gc op ctl domdata addr query_id s3 s4 XCHG s2 s3 XCHG s5 s7 s6 XCHG3 1 PUSHINT -1 PUSHINT // addr query_id op ctl domdata gc prices nhk _51=1 _52=-1 housekeeping CALLDICT -ROT // op addr query_id }>ELSE<{ s4 s7 XCHG 5 2 BLKDROP2 // op addr query_id }> load_data INLINECALLDICT // op addr query_id _95 _96 _97 _98 _99 _100 s4 s5 XCHG 5 BLKDROP // op addr query_id domdata ISNULL // op addr query_id _55 IFNOTJMP:<{ // op addr query_id 3 BLKDROP // 4000605549 PUSHINT // _56=4000605549 send_error CALLDICT }> // op addr query_id 4016791929 PUSHINT // op addr query_id _58=4016791929 s0 s1 s3 XCHG3 0 PUSHINT 160 PUSHINT // addr _58=4016791929 query_id op _59=0 _62 send_message CALLDICT }> // prices nhk gc in_msg ctl domdata addr query_id op s3 POP s3 POP s4 POP s4 POP s4 POP // query_id op addr in_msg s2 PUSH 1415670629 PUSHINT // query_id op addr in_msg op _64=1415670629 EQUAL // query_id op addr in_msg _65 IFJMP:<{ // query_id op addr in_msg LDGRAMS // query_id op addr _102 _101 DROP // query_id op addr amount s1 s3 XCHG 4016791929 PUSHINT s3 s3 XCHG2 64 PUSHINT // addr _69=4016791929 query_id op amount _70=64 send_message CALLDICT }> // query_id op addr in_msg 4 BLKDROP // 32 PUSHPOW2DEC // _72=4294967295 send_error CALLDICT }> recv_internal PROC:<{ // msg_value in_msg_cell in_msg DUP // msg_value in_msg_cell in_msg in_msg SBITS // msg_value in_msg_cell in_msg _3 32 LESSINT // msg_value in_msg_cell in_msg _5 IFJMP:<{ // msg_value in_msg_cell in_msg 3 BLKDROP // }> // msg_value in_msg_cell in_msg SWAP // msg_value in_msg in_msg_cell CTOS // msg_value in_msg cs 4 LDU // msg_value in_msg flags cs SWAP 1 PUSHINT // msg_value in_msg cs flags _12=1 AND // msg_value in_msg cs _13 IFJMP:<{ // msg_value in_msg cs 3 BLKDROP // }> // msg_value in_msg cs LDMSGADDR // msg_value in_msg _327 _326 DROP // msg_value in_msg s_addr DUP // msg_value in_msg s_addr s_addr REWRITESTDADDR // msg_value in_msg s_addr src_wc src_addr s0 s3 XCHG // msg_value src_addr s_addr src_wc in_msg 32 LDU // msg_value src_addr s_addr src_wc op in_msg OVER // msg_value src_addr s_addr src_wc op in_msg op IFNOTJMP:<{ // msg_value src_addr s_addr src_wc op in_msg 6 BLKDROP // }> // msg_value src_addr s_addr src_wc op in_msg 0 PUSHINT // msg_value src_addr s_addr src_wc op in_msg query_id=0 OVER // msg_value src_addr s_addr src_wc op in_msg query_id=0 in_msg SBITS // msg_value src_addr s_addr src_wc op in_msg query_id=0 _26 63 GTINT // msg_value src_addr s_addr src_wc op in_msg query_id=0 _28 IF:<{ // msg_value src_addr s_addr src_wc op in_msg query_id=0 DROP // msg_value src_addr s_addr src_wc op in_msg 64 LDU // msg_value src_addr s_addr src_wc op query_id in_msg SWAP // msg_value src_addr s_addr src_wc op in_msg query_id }> // msg_value src_addr s_addr src_wc op in_msg query_id s4 s0 s2 XC2PU // msg_value src_addr in_msg src_wc op s_addr query_id op TRIPLE query_info SETGLOB DUP 31 PUSHPOW2 // msg_value src_addr in_msg src_wc op op _34 AND // msg_value src_addr in_msg src_wc op _35 IFJMP:<{ // msg_value src_addr in_msg src_wc op 5 BLKDROP // }> // msg_value src_addr in_msg src_wc op DUP // msg_value src_addr in_msg src_wc op op 24 RSHIFT# // msg_value src_addr in_msg src_wc op _37 67 EQINT // msg_value src_addr in_msg src_wc op _39 IFJMP:<{ // msg_value src_addr in_msg src_wc op s4 POP // op src_addr in_msg src_wc -ROT // op src_wc src_addr in_msg perform_ctl_op INLINECALLDICT }> // msg_value src_addr in_msg src_wc op DUP 1919248228 PUSHINT // msg_value src_addr in_msg src_wc op op _42=1919248228 EQUAL // msg_value src_addr in_msg src_wc op _45 OVER 1886547820 PUSHINT // msg_value src_addr in_msg src_wc op _45 op _46=1886547820 EQUAL // msg_value src_addr in_msg src_wc op _45 _47 1 LSHIFT# // msg_value src_addr in_msg src_wc op _45 _49 ADD // msg_value src_addr in_msg src_wc op _50 OVER 1970300004 PUSHINT // msg_value src_addr in_msg src_wc op _50 op _51=1970300004 EQUAL // msg_value src_addr in_msg src_wc op _50 _52 2 LSHIFT# // msg_value src_addr in_msg src_wc op _50 _54 ADD // msg_value src_addr in_msg src_wc op _55 SWAP 1735354211 PUSHINT // msg_value src_addr in_msg src_wc _55 op _56=1735354211 EQUAL // msg_value src_addr in_msg src_wc _55 _57 3 LSHIFT# // msg_value src_addr in_msg src_wc _55 _59 ADD // msg_value src_addr in_msg src_wc qt DUP // msg_value src_addr in_msg src_wc qt qt IFNOTJMP:<{ // msg_value src_addr in_msg src_wc qt 5 BLKDROP // 32 PUSHPOW2DEC // _61=4294967295 send_error CALLDICT }> // msg_value src_addr in_msg src_wc qt NEGATE // msg_value src_addr in_msg src_wc qt load_data INLINECALLDICT // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk s6 PUSH // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk qt 8 EQINT // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk _72 IFJMP:<{ // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk DROP s5 POP s5 POP s6 POP s6 POP // domdata gc in_msg prices nhk ctl s0 s3 XCHG // domdata gc ctl prices nhk in_msg 32 LDI // domdata gc ctl prices nhk _341 _340 DROP // domdata gc ctl prices nhk max_steps s3 s5 XCHG s3 s4 XCHG 1 PUSHINT SWAP // ctl domdata gc prices nhk _77=1 max_steps housekeeping CALLDICT 4016791929 PUSHINT // _79=4016791929 send_error CALLDICT }> // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk s0 s8 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg LDOPTREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg OVER // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg domain_cell ISNULL // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg _88 IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg NIP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg 6 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg OVER // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg bytes 0 EQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg fail s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail in_msg bytes 3 LSHIFT# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail in_msg _97 LDSLICEX // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg }>ELSE<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain_cell CTOS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain domain SBITREFS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain bits refs SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs bits -8 ADDCONST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _104 -121 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _104 _107 AND // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _108 OR // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg }> s2 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg fail IFNOT:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg s2 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain DUP 8 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain domain _110=8 SDCUTLAST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain _111 8 PLDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg }> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail IFJMP:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain 12 BLKDROP // 4000275504 PUSHINT // _114=4000275504 send_error CALLDICT }> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain NOW // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n PUSHNULL // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n _120 DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info 0 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info _124=0 s0 s0 s4 PUSH3 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail tail SBITS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail _126 3 RSHIFTC# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail _128 REPEAT:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail PUSHNULL s6 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail 8 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp _131 tail SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail _131 0 EQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail z s3 s3 XCPU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key z exp tail zeros z SUB // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key z exp tail zeros s0 s3 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail z IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail s3 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp s2 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp tail SBITS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _137 s7 s(-1) PUXC // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp domain _137 SDSKIPLAST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _138 SHA256U // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _139 32 RSHIFT# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key s0 s12 PUSH2 224 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key key domdata _146 DICTUGET NULLSWAPIFNOT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key val found? IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key val 1 2 BLKDROP2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key val 32 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val s1 s7 PUSH2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val exp n GEQ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val _151 IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val LDREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cat_table val ENDS 0 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cat_table _158=0 SWAP 8 PUSHPOW2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp _158=0 cat_table _159=256 DICTUGETREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cown ok IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cown s5 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp }>ELSE<{ DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp }> }>ELSE<{ DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp }> SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key }>ELSE<{ DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key }> s0 s3 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail }> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail }> DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp zeros 4 GTINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp _162 IFJMP:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp 15 BLKDROP 2DROP // 4017511472 PUSHINT // _163=4017511472 send_error CALLDICT }> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp s12 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp qt 1 NEQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp _167 s4 PUSH s0 s4 XCHG s15 s1 s3 XCHG3 s0 17 s() XCHG SWAP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table cat_table owner_info src_wc src_addr _167 check_owner INLINECALLDICT // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err DUP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err err IFJMP:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err 14 1 BLKDROP2 // err send_error CALLDICT }> // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err DROP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table s9 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table qt 2 NEQINT // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table _173 IF:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table s0 s3 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n in_msg LDREF // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n _361 _360 DROP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data DUP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data data DICTEMPTY // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _176 IFNOT:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data 0 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _179=0 OVER 8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _179=0 data _180=256 DICTUGETREF // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data oinfo ok IF:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data oinfo CTOS // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs DUP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs cs SBITS // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _185 283 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _185 _192 GEQ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _193 31 THROWIFNOT 19 PLDU // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _197 327324 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _197 _202 EQUAL // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _203 31 THROWIFNOT }>ELSE<{ DROP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data }> DUP 8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data data _208=256 DICTUMIN NULLSWAPIFNOT2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _365 _364 _366 2 1 BLKDROP2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok OVER 8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok data _213=256 DICTUMAX NULLSWAPIFNOT2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok _368 _367 _369 2 1 BLKDROP2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok maxok AND // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _216 31 THROWIFNOT }> // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data }>ELSE<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table s3 POP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n s2 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data }> s5 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data prices 4 UNTUPLE // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb s3 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb stdper IFNOTJMP:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb 15 BLKDROP 3 BLKDROP // 3545187910 PUSHINT // _223=3545187910 send_error CALLDICT }> // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb s4 PUSH s3 s7 XCHG -ROT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper domain data ppc ppb calcprice_internal INLINECALLDICT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 s11 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 qt 4 NEQINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 _228 s1 s5 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table _226 n data stdper ppr _228 AND // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table _226 n data stdper _229 s1 s4 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _226 _229 ADD // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data price s0 s14 XCHG 30 PUSHPOW2 // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data msg_value _233 SUB // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _234 s14 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _234 price LESS // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _235 IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data 14 BLKDROP // 3883023472 PUSHINT // _236=3883023472 send_error CALLDICT }> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data s9 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data qt 2 EQINT // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _243 IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data s3 POP s8 POP // price key lhk exp n ctl domdata gc prices nhk data stdper s7 s7 XCPU // price key lhk exp stdper ctl domdata gc prices nhk data n stdper ADD // price key lhk exp stdper ctl domdata gc prices nhk data _244 s8 s(-1) PUXC // price key lhk exp stdper ctl domdata gc prices nhk data exp _244 GREATER // price key lhk exp stdper ctl domdata gc prices nhk data _245 IFJMP:<{ // price key lhk exp stdper ctl domdata gc prices nhk data 11 BLKDROP // 4083511919 PUSHINT // _246=4083511919 send_error CALLDICT }> // price key lhk exp stdper ctl domdata gc prices nhk data s7 s6 PUSH2 // price key lhk exp stdper ctl domdata gc prices nhk data exp stdper ADD // price key lhk exp stdper ctl domdata gc prices nhk data _249 NEWC // price key lhk exp stdper ctl domdata gc prices nhk data _249 _250 32 STU // price key lhk exp stdper ctl domdata gc prices nhk data _252 STREF // price key lhk exp stdper ctl domdata gc prices nhk _253 s0 s9 s4 XCPUXC 224 PUSHINT // price key lhk exp stdper ctl nhk gc prices _253 key domdata _256 DICTUSETB // price key lhk exp stdper ctl nhk gc prices domdata s0 s6 XCHG // price key lhk domdata stdper ctl nhk gc prices exp 224 LSHIFT# // price key lhk domdata stdper ctl nhk gc prices _262 s0 s8 XCHG2 // price prices lhk domdata stdper ctl nhk gc _262 key ADD // price prices lhk domdata stdper ctl nhk gc gckeyO s0 s4 XCHG // price prices lhk domdata gckeyO ctl nhk gc stdper 224 LSHIFT# // price prices lhk domdata gckeyO ctl nhk gc _268 s4 s(-1) PUXC // price prices lhk domdata gckeyO ctl nhk gc gckeyO _268 ADD // price prices lhk domdata gckeyO ctl nhk gc gckeyN s4 s4 XCHG2 8 PUSHPOW2 // price prices lhk domdata gckeyN ctl nhk gckeyO gc _271=256 DICTUDEL // price prices lhk domdata gckeyN ctl nhk _376 _377 DROP // price prices lhk domdata gckeyN ctl nhk gc NEWC // price prices lhk domdata gckeyN ctl nhk gc _274 s0 s4 s4 XCHG3 8 PUSHPOW2 // price prices lhk domdata nhk ctl _274 gckeyN gc _275=256 DICTUSETB // price prices lhk domdata nhk ctl gc s0 s3 XCHG s5 s5 s4 XCHG3 1 PUSHINT // price ctl domdata gc prices nhk lhk _277=1 housekeeping CALLDICT send_ok CALLDICT }> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data s9 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data qt 1 EQINT // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _281 IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data s9 POP s9 POP // price key lhk n data ctl domdata gc prices nhk cat_table stdper SWAP // price key lhk n data ctl domdata gc prices nhk stdper cat_table ISNULL // price key lhk n data ctl domdata gc prices nhk stdper _282 IFNOTJMP:<{ // price key lhk n data ctl domdata gc prices nhk stdper 11 BLKDROP // 3781980773 PUSHINT // _283=3781980773 send_error CALLDICT }> // price key lhk n data ctl domdata gc prices nhk stdper s1 s7 XCHG // price key lhk nhk data ctl domdata gc prices n stdper ADD // price key lhk nhk data ctl domdata gc prices expires_at DUP NEWC // price key lhk nhk data ctl domdata gc prices expires_at expires_at _288 32 STU // price key lhk nhk data ctl domdata gc prices expires_at _290 s1 s6 XCHG // price key lhk nhk expires_at ctl domdata gc prices data _290 STREF // price key lhk nhk expires_at ctl domdata gc prices _291 s0 s8 s3 XCPUXC 224 PUSHINT // price key lhk nhk expires_at ctl prices gc _291 key domdata _294 DICTUSETB // price key lhk nhk expires_at ctl prices gc domdata s4 PUSH // price key lhk nhk expires_at ctl prices gc domdata expires_at 224 LSHIFT# // price key lhk nhk expires_at ctl prices gc domdata _300 s0 s8 XCHG2 // price domdata lhk nhk expires_at ctl prices gc _300 key OR // price domdata lhk nhk expires_at ctl prices gc gckey NEWC // price domdata lhk nhk expires_at ctl prices gc gckey _303 s0 s2 XCHG 8 PUSHPOW2 // price domdata lhk nhk expires_at ctl prices _303 gckey gc _304=256 DICTUSETB // price domdata lhk nhk expires_at ctl prices gc s4 s3 XCHG2 // price domdata lhk prices gc ctl nhk expires_at MIN // price domdata lhk prices gc ctl _306 s1 s5 XCHG s3 s0 s4 XCHG3 1 PUSHINT // price ctl domdata gc prices _306 lhk _307=1 housekeeping CALLDICT send_ok CALLDICT }> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data 3 1 BLKDROP2 // price key lhk exp qt ctl domdata gc prices nhk data s0 s6 XCHG // price key lhk exp data ctl domdata gc prices nhk qt 4 EQINT // price key lhk exp data ctl domdata gc prices nhk _311 IFJMP:<{ // price key lhk exp data ctl domdata gc prices nhk s0 s6 XCHG NEWC // price key lhk nhk data ctl domdata gc prices exp _313 32 STU // price key lhk nhk data ctl domdata gc prices _315 s1 s5 XCHG // price key lhk nhk prices ctl domdata gc data _315 STREF // price key lhk nhk prices ctl domdata gc _316 s7 s2 XCHG2 224 PUSHINT // price gc lhk nhk prices ctl _316 key domdata _319 DICTUSETB // price gc lhk nhk prices ctl domdata s5 s4 XCHG2 s1 s3 XCHG 1 PUSHINT // price ctl domdata gc prices nhk lhk _321=1 housekeeping CALLDICT send_ok CALLDICT }> // price key lhk exp data ctl domdata gc prices nhk 10 BLKDROP // }> recv_external PROC:<{ // in_msg DROP // load_data INLINECALLDICT // _12 _13 _14 _15 _16 _17 NIP // ctl dd gc prices lhk IFNOTJMP:<{ // ctl dd gc prices ACCEPT 32 PUSHPOW2DEC // ctl dd gc prices _9=4294967295 NOW // ctl dd gc prices _9=4294967295 _10 store_data CALLDICT }> // ctl dd gc prices 4 BLKDROP // }> dnsdictlookup PROCREF:<{ // domain nowtime OVER // domain nowtime domain SBITREFS // domain nowtime bits refs OVER 7 PUSHINT // domain nowtime bits refs bits _6=7 AND // domain nowtime bits refs _7 OR // domain nowtime bits _8 30 THROWIF DUP // domain nowtime bits bits IFNOT:<{ // domain nowtime bits 30 THROW }> // domain nowtime bits s2 PUSH 8 PUSHINT // domain nowtime bits domain _13=8 SDCUTLAST // domain nowtime bits _14 8 PLDU // domain nowtime bits domain_last_byte IF:<{ // domain nowtime bits 0 PUSHINT // domain nowtime bits _17=0 NEWC // domain nowtime bits _17=0 _18 s0 s4 XCHG2 // _17=0 nowtime bits _18 domain STSLICER // _17=0 nowtime bits _19 s1 s3 XCHG // bits nowtime _17=0 _19 8 STU // bits nowtime _21 ENDC // bits nowtime _22 CTOS // bits nowtime domain s0 s2 XCHG // domain nowtime bits 8 ADDCONST // domain nowtime bits }> // domain nowtime bits DUP // domain nowtime bits bits 8 EQINT // domain nowtime bits _27 IFJMP:<{ // domain nowtime bits 3 BLKDROP // 0 PUSHINT // _28=0 PUSHNULL // _28=0 _29 8 PUSHINT // _28=0 _29 _30=8 PUSHNULL // _28=0 _29 _30=8 _31 }> // domain nowtime bits s2 PUSH // domain nowtime bits domain 8 PLDU // domain nowtime bits domain_first_byte 0 EQINT // domain nowtime bits _36 IF:<{ // domain nowtime bits s0 s2 XCHG // bits nowtime domain 8 LDU // bits nowtime _95 _94 NIP // bits nowtime domain s0 s2 XCHG // domain nowtime bits -8 ADDCONST // domain nowtime bits }> // domain nowtime bits c4 PUSH // domain nowtime bits _43 CTOS // domain nowtime bits ds LDREF // domain nowtime bits _97 _96 NIP // domain nowtime bits ds LDDICT // domain nowtime bits _99 _98 DROP // domain nowtime bits root PUSHNULL // domain nowtime bits root val -1 PUSHINT // domain nowtime bits root val tail_bits=-1 s5 PUSH // domain nowtime bits root val tail_bits=-1 tail s0 s4 XCHG // domain nowtime tail root val tail_bits=-1 bits 3 RSHIFT# // domain nowtime tail root val tail_bits=-1 _57 REPEAT:<{ // domain nowtime tail root val tail_bits s0 s3 XCHG // domain nowtime tail_bits root val tail 8 LDU // domain nowtime tail_bits root val _58 tail SWAP // domain nowtime tail_bits root val tail _58 0 EQINT // domain nowtime tail_bits root val tail _62 IF:<{ // domain nowtime tail_bits root val tail DUP // domain nowtime tail_bits root val tail tail SBITS // domain nowtime tail_bits root val tail _64 s6 s(-1) PUXC // domain nowtime tail_bits root val tail domain _64 SDSKIPLAST // domain nowtime tail_bits root val tail _65 SHA256U // domain nowtime tail_bits root val tail _66 32 RSHIFT# // domain nowtime tail_bits root val tail key s3 PUSH 224 PUSHINT // domain nowtime tail_bits root val tail key root _73 DICTUGET NULLSWAPIFNOT // domain nowtime tail_bits root val tail v found? IF:<{ // domain nowtime tail_bits root val tail v DUP // domain nowtime tail_bits root val tail v v 32 PLDU // domain nowtime tail_bits root val tail v _76 s6 PUSH // domain nowtime tail_bits root val tail v _76 nowtime GEQ // domain nowtime tail_bits root val tail v _77 IF:<{ // domain nowtime tail_bits root val tail v s2 POP s3 POP // domain nowtime tail root val s2 PUSH // domain nowtime tail root val tail SBITS // domain nowtime tail root val tail_bits s0 s3 XCHG // domain nowtime tail_bits root val tail }>ELSE<{ DROP // domain nowtime tail_bits root val tail }> }>ELSE<{ DROP // domain nowtime tail_bits root val tail }> }> // domain nowtime tail_bits root val tail s0 s3 XCHG // domain nowtime tail root val tail_bits }> 2 2 BLKDROP2 s2 POP // domain tail_bits val DUP // domain tail_bits val val ISNULL // domain tail_bits val _79 IFJMP:<{ // domain tail_bits val 3 BLKDROP // 0 PUSHINT // _80=0 PUSHNULL // _80=0 _81 OVER // _80=0 _81 _82=0 PUSHNULL // _80=0 _81 _82=0 _83 }> // domain tail_bits val 32 LDU // domain tail_bits _84 val LDREF // domain tail_bits _84 _107 _106 DROP // domain tail_bits _84 _87 s2 PUSH // domain tail_bits _84 _87 tail_bits 0 EQINT // domain tail_bits _84 _87 _90 s4 s3 XCHG2 // _87 _90 _84 domain tail_bits SDSKIPLAST // _87 _90 _84 _91 s3 s3 s0 XCHG3 // _84 _87 _90 _91 }> dnsresolve PROC:<{ // domain category SWAP NOW // category domain _6 dnsdictlookup INLINECALLDICT // category exp cat_table exact? pfx s0 s3 XCHG // category pfx cat_table exact? exp IFNOTJMP:<{ // category pfx cat_table exact? 3 1 BLKDROP2 // exact? PUSHNULL // exact? _8 }> // category pfx cat_table exact? IFNOT:<{ // category pfx cat_table 11732114750494247458678882651681748623800183221773167493832867265755123357695 PUSHINT s3 POP // category=11732114750494247458678882651681748623800183221773167493832867265755123357695 pfx cat_table }> // category pfx cat_table SWAP // category cat_table pfx SBITS // category cat_table pfx_bits s2 PUSH // category cat_table pfx_bits category IFJMP:<{ // category cat_table pfx_bits -ROT 8 PUSHPOW2 // pfx_bits category cat_table _13=256 DICTUGETOPTREF // pfx_bits cat_found }> // category cat_table pfx_bits s2 POP // pfx_bits cat_table }> getexpirationx PROCINLINE:<{ // domain nowtime dnsdictlookup INLINECALLDICT // _7 _8 _9 _10 3 BLKDROP // exp }> getexpiration PROC:<{ // domain NOW // domain _1 getexpirationx INLINECALLDICT // _2 }> getstdperiod PROC:<{ // load_prices INLINECALLDICT // _5 _6 _7 _8 3 BLKDROP // stdper }> getppr PROC:<{ // load_prices INLINECALLDICT // _5 _6 _7 _8 s2 s3 XCHG 3 BLKDROP // ppr }> getppc PROC:<{ // load_prices INLINECALLDICT // _5 _6 _7 _8 s1 s3 XCHG 3 BLKDROP // ppc }> getppb PROC:<{ // load_prices INLINECALLDICT // _5 _6 _7 _8 3 1 BLKDROP2 // ppb }> calcprice PROC:<{ // domain val load_prices INLINECALLDICT // domain val _8 _9 _10 _11 2 2 BLKDROP2 // domain val ppc ppb calcprice_internal INLINECALLDICT // _7 }> calcregprice PROC:<{ // domain val load_prices INLINECALLDICT // domain val _9 _10 _11 _12 s3 POP // domain val ppb ppr ppc s3 s4 XCHG s4 s0 s4 XCHG3 // ppr domain val ppc ppb calcprice_internal INLINECALLDICT // ppr _7 ADD // _8 }> }END>c