0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1fedb1530240aa54,
00000000 push ebp
00000001 mov ebp,esp
00000003 sub esp,0F8h
00000009 mov dword ptr [ebp-4],25D49AE6h
00000010 mov dword ptr [ebp+FFFFFF78h],ecx
00000016 cmp dword ptr ds:[00763180h],0
0000001d je 00000024
0000001f call 5BEE76E5
00000024 xor edx,edx
00000026 mov dword ptr [ebp+FFFFFF74h],edx
0000002c xor edx,edx
0000002e mov dword ptr [ebp+FFFFFF64h],edx
00000034 xor edx,edx
00000036 mov dword ptr [ebp+FFFFFF60h],edx
0000003c xor edx,edx
0000003e mov dword ptr [ebp+FFFFFF68h],edx
00000044 xor edx,edx
00000046 mov dword ptr [ebp+FFFFFF6Ch],edx
0000004c xor edx,edx
0000004e mov dword ptr [ebp+FFFFFF70h],edx
00000054 xor edx,edx
00000056 mov dword ptr [ebp+FFFFFF5Ch],edx
0000005c fldz
0000005e fstp qword ptr [ebp+FFFFFF44h]
00000064 fldz
00000066 fstp qword ptr [ebp+FFFFFF1Ch]
0000006c fldz
0000006e fstp qword ptr [ebp+FFFFFF34h]
00000074 fldz
00000076 fstp qword ptr [ebp+FFFFFF2Ch]
0000007c fldz
0000007e fstp qword ptr [ebp+FFFFFF24h]
00000084 fldz
00000086 fstp qword ptr [ebp+FFFFFF14h]
0000008c fldz
0000008e fstp qword ptr [ebp+FFFFFF4Ch]
00000094 fldz
00000096 fstp qword ptr [ebp+FFFFFF3Ch]
0000009c xor eax,eax
0000009e cdq
0000009f mov dword ptr [ebp+FFFFFF7Ch],eax
000000a5 mov dword ptr [ebp-80h],edx
000000a8 xor eax,eax
000000aa cdq
000000ab lea ecx,[ebp+FFFFFF7Ch]
000000b1 mov dword ptr [ecx+8],eax
000000b4 mov dword ptr [ecx+0Ch],edx
000000b7 xor eax,eax
000000b9 cdq
000000ba lea ecx,[ebp+FFFFFF7Ch]
000000c0 mov dword ptr [ecx+10h],eax
000000c3 mov dword ptr [ecx+14h],edx
000000c6 lea eax,[ebp+FFFFFF7Ch]
000000cc mov dword ptr [eax+18h],240AA54h
000000d3 mov dword ptr [eax+1Ch],1FEDB153h
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1ff0af0d95025bc3,
000000da xor eax,eax
000000dc cdq
000000dd lea ecx,[ebp+FFFFFF7Ch]
000000e3 mov dword ptr [ecx+20h],eax
000000e6 mov dword ptr [ecx+24h],edx
000000e9 xor eax,eax
000000eb cdq
000000ec lea ecx,[ebp+FFFFFF7Ch]
000000f2 mov dword ptr [ecx+28h],eax
000000f5 mov dword ptr [ecx+2Ch],edx
000000f8 xor eax,eax
000000fa cdq
000000fb lea ecx,[ebp+FFFFFF7Ch]
00000101 mov dword ptr [ecx+30h],eax
00000104 mov dword ptr [ecx+34h],edx
00000107 lea eax,[ebp+FFFFFF7Ch]
0000010d mov dword ptr [eax+38h],95025BC3h
00000114 mov dword ptr [eax+3Ch],1FF0AF0Dh
0x1fc9353df6af376b, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
0000011b lea eax,[ebp+FFFFFF7Ch]
00000121 mov dword ptr [eax+40h],0F6AF376Bh
00000128 mov dword ptr [eax+44h],1FC9353Dh
0000012f xor eax,eax
00000131 cdq
00000132 lea ecx,[ebp+FFFFFF7Ch]
00000138 mov dword ptr [ecx+48h],eax
0000013b mov dword ptr [ecx+4Ch],edx
0000013e xor eax,eax
00000140 cdq
00000141 lea ecx,[ebp+FFFFFF7Ch]
00000147 mov dword ptr [ecx+50h],eax
0000014a mov dword ptr [ecx+54h],edx
0000014d xor eax,eax
0000014f cdq
00000150 lea ecx,[ebp+FFFFFF7Ch]
00000156 mov dword ptr [ecx+58h],eax
00000159 mov dword ptr [ecx+5Ch],edx
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000
0000015c xor eax,eax
0000015e cdq
0000015f lea ecx,[ebp+FFFFFF7Ch]
00000165 mov dword ptr [ecx+60h],eax
00000168 mov dword ptr [ecx+64h],edx
0000016b xor eax,eax
0000016d cdq
0000016e lea ecx,[ebp+FFFFFF7Ch]
00000174 mov dword ptr [ecx+68h],eax
00000177 mov dword ptr [ecx+6Ch],edx
0000017a xor eax,eax
0000017c cdq
0000017d lea ecx,[ebp+FFFFFF7Ch]
00000183 mov dword ptr [ecx+70h],eax
00000186 mov dword ptr [ecx+74h],edx
};
00000189 xor eax,eax
0000018b cdq
0000018c lea ecx,[ebp+FFFFFF7Ch]
00000192 mov dword ptr [ecx+78h],eax
00000195 mov dword ptr [ecx+7Ch],edx
double* r = (double*)inputs_hex;
double norm = 0;
00000198 fldz
0000019a fstp qword ptr [ebp+FFFFFF54h]
for (int i = 0; i < 16; i++) {
000001a0 xor edx,edx
000001a2 mov dword ptr [ebp+FFFFFF74h],edx
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1fedb1530240aa54,
000001a8 lea eax,[ebp+FFFFFF7Ch]
000001ae add eax,38h
000001b1 mov dword ptr [ebp+FFFFFF5Ch],eax
000001b7 lea eax,[ebp+FFFFFF7Ch]
000001bd add eax,30h
000001c0 mov dword ptr [ebp+FFFFFF60h],eax
000001c6 lea eax,[ebp+FFFFFF7Ch]
000001cc add eax,28h
000001cf mov dword ptr [ebp+FFFFFF64h],eax
000001d5 lea eax,[ebp+FFFFFF7Ch]
000001db add eax,20h
000001de mov dword ptr [ebp+FFFFFF68h],eax
000001e4 lea eax,[ebp+FFFFFF7Ch]
000001ea add eax,18h
000001ed mov dword ptr [ebp+FFFFFF6Ch],eax
000001f3 lea eax,[ebp+FFFFFF7Ch]
000001f9 add eax,10h
000001fc mov dword ptr [ebp+FFFFFF70h],eax
norm += (double)r[i] * (double)r[i];
00000202 mov eax,dword ptr [ebp+FFFFFF74h]
00000208 lea edx,[ebp+FFFFFF7Ch]
0000020e fld qword ptr [edx+eax*8]
00000211 fstp qword ptr [ebp+FFFFFF14h]
00000217 mov eax,dword ptr [ebp+FFFFFF74h]
0000021d lea edx,[ebp+FFFFFF7Ch]
00000223 fld qword ptr [edx+eax*8+8]
00000227 fstp qword ptr [ebp+FFFFFF1Ch]
0000022d mov eax,dword ptr [ebp+FFFFFF70h]
00000233 fld qword ptr [eax]
00000235 fstp qword ptr [ebp+FFFFFF24h]
0000023b mov eax,dword ptr [ebp+FFFFFF6Ch]
00000241 fld qword ptr [eax]
00000243 fstp qword ptr [ebp+FFFFFF2Ch]
00000249 mov eax,dword ptr [ebp+FFFFFF68h]
0000024f fld qword ptr [eax]
00000251 fstp qword ptr [ebp+FFFFFF34h]
00000257 mov eax,dword ptr [ebp+FFFFFF64h]
0000025d fld qword ptr [eax]
0000025f fstp qword ptr [ebp+FFFFFF3Ch]
00000265 mov eax,dword ptr [ebp+FFFFFF60h]
0000026b fld qword ptr [eax]
0000026d fstp qword ptr [ebp+FFFFFF44h]
00000273 mov eax,dword ptr [ebp+FFFFFF5Ch]
00000279 fld qword ptr [eax]
0000027b fstp qword ptr [ebp+FFFFFF4Ch]
00000281 fld qword ptr [ebp+FFFFFF14h]
00000287 fmul st,st(0)
00000289 fadd qword ptr [ebp+FFFFFF54h]
0000028f fld qword ptr [ebp+FFFFFF1Ch]
00000295 fmul st,st(0)
00000297 faddp st(1),st
00000299 fld qword ptr [ebp+FFFFFF24h]
0000029f fmul st,st(0)
000002a1 faddp st(1),st
000002a3 fld qword ptr [ebp+FFFFFF2Ch]
000002a9 fmul st,st(0)
000002ab faddp st(1),st
000002ad fld qword ptr [ebp+FFFFFF34h]
000002b3 fmul st,st(0)
000002b5 faddp st(1),st
000002b7 fld qword ptr [ebp+FFFFFF3Ch]
000002bd fmul st,st(0)
000002bf faddp st(1),st
000002c1 fld qword ptr [ebp+FFFFFF44h]
000002c7 fmul st,st(0)
000002c9 faddp st(1),st
000002cb fld qword ptr [ebp+FFFFFF4Ch]
000002d1 fmul st,st(0)
000002d3 faddp st(1),st
000002d5 fstp qword ptr [ebp+FFFFFF54h]
000002db add dword ptr [ebp+FFFFFF74h],8
000002e2 add dword ptr [ebp+FFFFFF70h],40h
000002e9 add dword ptr [ebp+FFFFFF6Ch],40h
000002f0 add dword ptr [ebp+FFFFFF68h],40h
000002f7 add dword ptr [ebp+FFFFFF64h],40h
000002fe add dword ptr [ebp+FFFFFF60h],40h
00000305 add dword ptr [ebp+FFFFFF5Ch],40h
for (int i = 0; i < 16; i++) {
0000030c cmp dword ptr [ebp+FFFFFF74h],10h
00000313 jl 00000202
// fprintf(stdout, "[1]0x%016llX:%.19lg\n", *(uint64_t*)&norm, norm);
}
fprintf(stdout, "0x%016llX:%.19lg\n", *(uint64_t*)&norm, norm);
00000319 call FFF4A5C8
0000031e mov dword ptr [ebp+FFFFFF0Ch],eax
00000324 mov eax,dword ptr [ebp+FFFFFF0Ch]
0000032a add eax,20h
0000032d push eax
0000032e push 9D3144h
00000333 push dword ptr [ebp+FFFFFF58h]
00000339 push dword ptr [ebp+FFFFFF54h]
0000033f fld qword ptr [ebp+FFFFFF54h]
00000345 sub esp,8
00000348 fstp qword ptr [esp]
0000034b push 131C08h
00000350 call FFF4A5D4
00000355 add esp,1Ch
00000358 mov dword ptr [ebp+FFFFFF08h],eax
0000035e nop
return 0;
0000035f xor eax,eax
00000361 cmp dword ptr [ebp-4],25D49AE6h
00000368 je 0000036F
0000036a call 5BEE6E46
0000036f mov esp,ebp
00000371 pop ebp
00000372 ret
CQkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDFmZWRiMTUzMDI0MGFhNTQsCjAwMDAwMDAwICBwdXNoICAgICAgICBlYnAgCjAwMDAwMDAxICBtb3YgICAgICAgICBlYnAsZXNwIAowMDAwMDAwMyAgc3ViICAgICAgICAgZXNwLDBGOGggCjAwMDAwMDA5ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicC00XSwyNUQ0OUFFNmggCjAwMDAwMDEwICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3OGhdLGVjeCAKMDAwMDAwMTYgIGNtcCAgICAgICAgIGR3b3JkIHB0ciBkczpbMDA3NjMxODBoXSwwIAowMDAwMDAxZCAgamUgICAgICAgICAgMDAwMDAwMjQgCjAwMDAwMDFmICBjYWxsICAgICAgICA1QkVFNzZFNSAKMDAwMDAwMjQgIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMDI2ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3NGhdLGVkeCAKMDAwMDAwMmMgIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMDJlICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY2NGhdLGVkeCAKMDAwMDAwMzQgIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMDM2ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY2MGhdLGVkeCAKMDAwMDAwM2MgIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMDNlICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY2OGhdLGVkeCAKMDAwMDAwNDQgIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMDQ2ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY2Q2hdLGVkeCAKMDAwMDAwNGMgIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMDRlICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3MGhdLGVkeCAKMDAwMDAwNTQgIHhvciAgICAgICAgIGVkeCxlZHggCjAwMDAwMDU2ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY1Q2hdLGVkeCAKMDAwMDAwNWMgIGZsZHogCjAwMDAwMDVlICBmc3RwICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkY0NGhdIAowMDAwMDA2NCAgZmxkeiAKMDAwMDAwNjYgIGZzdHAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjFDaF0gCjAwMDAwMDZjICBmbGR6IAowMDAwMDA2ZSAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMzRoXSAKMDAwMDAwNzQgIGZsZHogCjAwMDAwMDc2ICBmc3RwICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkYyQ2hdIAowMDAwMDA3YyAgZmxkeiAKMDAwMDAwN2UgIGZzdHAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjI0aF0gCjAwMDAwMDg0ICBmbGR6IAowMDAwMDA4NiAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMTRoXSAKMDAwMDAwOGMgIGZsZHogCjAwMDAwMDhlICBmc3RwICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkY0Q2hdIAowMDAwMDA5NCAgZmxkeiAKMDAwMDAwOTYgIGZzdHAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjNDaF0gCjAwMDAwMDljICB4b3IgICAgICAgICBlYXgsZWF4IAowMDAwMDA5ZSAgY2RxIAowMDAwMDA5ZiAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGN0NoXSxlYXggCjAwMDAwMGE1ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicC04MGhdLGVkeCAKMDAwMDAwYTggIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMGFhICBjZHEgCjAwMDAwMGFiICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDBiMSAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grOF0sZWF4IAowMDAwMDBiNCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grMENoXSxlZHggCjAwMDAwMGI3ICB4b3IgICAgICAgICBlYXgsZWF4IAowMDAwMDBiOSAgY2RxIAowMDAwMDBiYSAgbGVhICAgICAgICAgZWN4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAwYzAgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4KzEwaF0sZWF4IAowMDAwMDBjMyAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grMTRoXSxlZHggCjAwMDAwMGM2ICBsZWEgICAgICAgICBlYXgsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDBjYyAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYXgrMThoXSwyNDBBQTU0aCAKMDAwMDAwZDMgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWF4KzFDaF0sMUZFREIxNTNoIAoJCTB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MWZmMGFmMGQ5NTAyNWJjMywKMDAwMDAwZGEgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMGRjICBjZHEgCjAwMDAwMGRkICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDBlMyAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grMjBoXSxlYXggCjAwMDAwMGU2ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCsyNGhdLGVkeCAKMDAwMDAwZTkgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMGViICBjZHEgCjAwMDAwMGVjICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDBmMiAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grMjhoXSxlYXggCjAwMDAwMGY1ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCsyQ2hdLGVkeCAKMDAwMDAwZjggIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMGZhICBjZHEgCjAwMDAwMGZiICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDEwMSAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grMzBoXSxlYXggCjAwMDAwMTA0ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCszNGhdLGVkeCAKMDAwMDAxMDcgIGxlYSAgICAgICAgIGVheCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMTBkICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VheCszOGhdLDk1MDI1QkMzaCAKMDAwMDAxMTQgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWF4KzNDaF0sMUZGMEFGMERoIAoJCTB4MWZjOTM1M2RmNmFmMzc2YiwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwKMDAwMDAxMWIgIGxlYSAgICAgICAgIGVheCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMTIxICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VheCs0MGhdLDBGNkFGMzc2QmggCjAwMDAwMTI4ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VheCs0NGhdLDFGQzkzNTNEaCAKMDAwMDAxMmYgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMTMxICBjZHEgCjAwMDAwMTMyICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDEzOCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grNDhoXSxlYXggCjAwMDAwMTNiICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs0Q2hdLGVkeCAKMDAwMDAxM2UgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMTQwICBjZHEgCjAwMDAwMTQxICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDE0NyAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grNTBoXSxlYXggCjAwMDAwMTRhICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs1NGhdLGVkeCAKMDAwMDAxNGQgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMTRmICBjZHEgCjAwMDAwMTUwICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDE1NiAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grNThoXSxlYXggCjAwMDAwMTU5ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs1Q2hdLGVkeCAKCQkweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAKMDAwMDAxNWMgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMTVlICBjZHEgCjAwMDAwMTVmICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDE2NSAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grNjBoXSxlYXggCjAwMDAwMTY4ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs2NGhdLGVkeCAKMDAwMDAxNmIgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMTZkICBjZHEgCjAwMDAwMTZlICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDE3NCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grNjhoXSxlYXggCjAwMDAwMTc3ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs2Q2hdLGVkeCAKMDAwMDAxN2EgIHhvciAgICAgICAgIGVheCxlYXggCjAwMDAwMTdjICBjZHEgCjAwMDAwMTdkICBsZWEgICAgICAgICBlY3gsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDE4MyAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grNzBoXSxlYXggCjAwMDAwMTg2ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VjeCs3NGhdLGVkeCAKCX07CjAwMDAwMTg5ICB4b3IgICAgICAgICBlYXgsZWF4IAowMDAwMDE4YiAgY2RxIAowMDAwMDE4YyAgbGVhICAgICAgICAgZWN4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAxOTIgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWN4Kzc4aF0sZWF4IAowMDAwMDE5NSAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlY3grN0NoXSxlZHggCglkb3VibGUqIHIgPSAoZG91YmxlKilpbnB1dHNfaGV4OwoJZG91YmxlIG5vcm0gPSAwOwowMDAwMDE5OCAgZmxkeiAKMDAwMDAxOWEgIGZzdHAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjU0aF0gCgoJZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7CjAwMDAwMWEwICB4b3IgICAgICAgICBlZHgsZWR4IAowMDAwMDFhMiAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNzRoXSxlZHggCgkJMHgwMDAwMDAwMDAwMDAwMDAwLCAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgxZmVkYjE1MzAyNDBhYTU0LAowMDAwMDFhOCAgbGVhICAgICAgICAgZWF4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAxYWUgIGFkZCAgICAgICAgIGVheCwzOGggCjAwMDAwMWIxICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY1Q2hdLGVheCAKMDAwMDAxYjcgIGxlYSAgICAgICAgIGVheCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMWJkICBhZGQgICAgICAgICBlYXgsMzBoIAowMDAwMDFjMCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNjBoXSxlYXggCjAwMDAwMWM2ICBsZWEgICAgICAgICBlYXgsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDFjYyAgYWRkICAgICAgICAgZWF4LDI4aCAKMDAwMDAxY2YgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjY0aF0sZWF4IAowMDAwMDFkNSAgbGVhICAgICAgICAgZWF4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAxZGIgIGFkZCAgICAgICAgIGVheCwyMGggCjAwMDAwMWRlICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY2OGhdLGVheCAKMDAwMDAxZTQgIGxlYSAgICAgICAgIGVheCxbZWJwK0ZGRkZGRjdDaF0gCjAwMDAwMWVhICBhZGQgICAgICAgICBlYXgsMThoIAowMDAwMDFlZCAgbW92ICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNkNoXSxlYXggCjAwMDAwMWYzICBsZWEgICAgICAgICBlYXgsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDFmOSAgYWRkICAgICAgICAgZWF4LDEwaCAKMDAwMDAxZmMgIG1vdiAgICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjcwaF0sZWF4IAoJCW5vcm0gKz0gKGRvdWJsZSlyW2ldICogKGRvdWJsZSlyW2ldOwowMDAwMDIwMiAgbW92ICAgICAgICAgZWF4LGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjc0aF0gCjAwMDAwMjA4ICBsZWEgICAgICAgICBlZHgsW2VicCtGRkZGRkY3Q2hdIAowMDAwMDIwZSAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlZHgrZWF4KjhdIAowMDAwMDIxMSAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMTRoXSAKMDAwMDAyMTcgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY3NGhdIAowMDAwMDIxZCAgbGVhICAgICAgICAgZWR4LFtlYnArRkZGRkZGN0NoXSAKMDAwMDAyMjMgIGZsZCAgICAgICAgIHF3b3JkIHB0ciBbZWR4K2VheCo4KzhdIAowMDAwMDIyNyAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMUNoXSAKMDAwMDAyMmQgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY3MGhdIAowMDAwMDIzMyAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYXhdIAowMDAwMDIzNSAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMjRoXSAKMDAwMDAyM2IgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY2Q2hdIAowMDAwMDI0MSAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYXhdIAowMDAwMDI0MyAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMkNoXSAKMDAwMDAyNDkgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY2OGhdIAowMDAwMDI0ZiAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYXhdIAowMDAwMDI1MSAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMzRoXSAKMDAwMDAyNTcgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY2NGhdIAowMDAwMDI1ZCAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYXhdIAowMDAwMDI1ZiAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGM0NoXSAKMDAwMDAyNjUgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY2MGhdIAowMDAwMDI2YiAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYXhdIAowMDAwMDI2ZCAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGNDRoXSAKMDAwMDAyNzMgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkY1Q2hdIAowMDAwMDI3OSAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYXhdIAowMDAwMDI3YiAgZnN0cCAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGNENoXSAKMDAwMDAyODEgIGZsZCAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjE0aF0gCjAwMDAwMjg3ICBmbXVsICAgICAgICBzdCxzdCgwKSAKMDAwMDAyODkgIGZhZGQgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjU0aF0gCjAwMDAwMjhmICBmbGQgICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkYxQ2hdIAowMDAwMDI5NSAgZm11bCAgICAgICAgc3Qsc3QoMCkgCjAwMDAwMjk3ICBmYWRkcCAgICAgICBzdCgxKSxzdCAKMDAwMDAyOTkgIGZsZCAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjI0aF0gCjAwMDAwMjlmICBmbXVsICAgICAgICBzdCxzdCgwKSAKMDAwMDAyYTEgIGZhZGRwICAgICAgIHN0KDEpLHN0IAowMDAwMDJhMyAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGMkNoXSAKMDAwMDAyYTkgIGZtdWwgICAgICAgIHN0LHN0KDApIAowMDAwMDJhYiAgZmFkZHAgICAgICAgc3QoMSksc3QgCjAwMDAwMmFkICBmbGQgICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkYzNGhdIAowMDAwMDJiMyAgZm11bCAgICAgICAgc3Qsc3QoMCkgCjAwMDAwMmI1ICBmYWRkcCAgICAgICBzdCgxKSxzdCAKMDAwMDAyYjcgIGZsZCAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjNDaF0gCjAwMDAwMmJkICBmbXVsICAgICAgICBzdCxzdCgwKSAKMDAwMDAyYmYgIGZhZGRwICAgICAgIHN0KDEpLHN0IAowMDAwMDJjMSAgZmxkICAgICAgICAgcXdvcmQgcHRyIFtlYnArRkZGRkZGNDRoXSAKMDAwMDAyYzcgIGZtdWwgICAgICAgIHN0LHN0KDApIAowMDAwMDJjOSAgZmFkZHAgICAgICAgc3QoMSksc3QgCjAwMDAwMmNiICBmbGQgICAgICAgICBxd29yZCBwdHIgW2VicCtGRkZGRkY0Q2hdIAowMDAwMDJkMSAgZm11bCAgICAgICAgc3Qsc3QoMCkgCjAwMDAwMmQzICBmYWRkcCAgICAgICBzdCgxKSxzdCAKMDAwMDAyZDUgIGZzdHAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjU0aF0gCjAwMDAwMmRiICBhZGQgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3NGhdLDggCjAwMDAwMmUyICBhZGQgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY3MGhdLDQwaCAKMDAwMDAyZTkgIGFkZCAgICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjZDaF0sNDBoIAowMDAwMDJmMCAgYWRkICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNjhoXSw0MGggCjAwMDAwMmY3ICBhZGQgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY2NGhdLDQwaCAKMDAwMDAyZmUgIGFkZCAgICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjYwaF0sNDBoIAowMDAwMDMwNSAgYWRkICAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNUNoXSw0MGggCglmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspIHsKMDAwMDAzMGMgIGNtcCAgICAgICAgIGR3b3JkIHB0ciBbZWJwK0ZGRkZGRjc0aF0sMTBoIAowMDAwMDMxMyAgamwgICAgICAgICAgMDAwMDAyMDIgCi8vCQlmcHJpbnRmKHN0ZG91dCwgIlsxXTB4JTAxNmxsWDolLjE5bGdcbiIsICoodWludDY0X3QqKSZub3JtLCBub3JtKTsKCX0KCWZwcmludGYoc3Rkb3V0LCAiMHglMDE2bGxYOiUuMTlsZ1xuIiwgKih1aW50NjRfdCopJm5vcm0sIG5vcm0pOwowMDAwMDMxOSAgY2FsbCAgICAgICAgRkZGNEE1QzggCjAwMDAwMzFlICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkYwQ2hdLGVheCAKMDAwMDAzMjQgIG1vdiAgICAgICAgIGVheCxkd29yZCBwdHIgW2VicCtGRkZGRkYwQ2hdIAowMDAwMDMyYSAgYWRkICAgICAgICAgZWF4LDIwaCAKMDAwMDAzMmQgIHB1c2ggICAgICAgIGVheCAKMDAwMDAzMmUgIHB1c2ggICAgICAgIDlEMzE0NGggCjAwMDAwMzMzICBwdXNoICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkY1OGhdIAowMDAwMDMzOSAgcHVzaCAgICAgICAgZHdvcmQgcHRyIFtlYnArRkZGRkZGNTRoXSAKMDAwMDAzM2YgIGZsZCAgICAgICAgIHF3b3JkIHB0ciBbZWJwK0ZGRkZGRjU0aF0gCjAwMDAwMzQ1ICBzdWIgICAgICAgICBlc3AsOCAKMDAwMDAzNDggIGZzdHAgICAgICAgIHF3b3JkIHB0ciBbZXNwXSAKMDAwMDAzNGIgIHB1c2ggICAgICAgIDEzMUMwOGggCjAwMDAwMzUwICBjYWxsICAgICAgICBGRkY0QTVENCAKMDAwMDAzNTUgIGFkZCAgICAgICAgIGVzcCwxQ2ggCjAwMDAwMzU4ICBtb3YgICAgICAgICBkd29yZCBwdHIgW2VicCtGRkZGRkYwOGhdLGVheCAKMDAwMDAzNWUgIG5vcCAKCXJldHVybiAwOwowMDAwMDM1ZiAgeG9yICAgICAgICAgZWF4LGVheCAKMDAwMDAzNjEgIGNtcCAgICAgICAgIGR3b3JkIHB0ciBbZWJwLTRdLDI1RDQ5QUU2aCAKMDAwMDAzNjggIGplICAgICAgICAgIDAwMDAwMzZGIAowMDAwMDM2YSAgY2FsbCAgICAgICAgNUJFRTZFNDYgCjAwMDAwMzZmICBtb3YgICAgICAgICBlc3AsZWJwIAowMDAwMDM3MSAgcG9wICAgICAgICAgZWJwIAowMDAwMDM3MiAgcmV0IA==