Timeout (reverse)
$ gdb -q timeout
Reading symbols from timeout...(no debugging symbols found)...done.
gdb-peda$ i func
All defined functions:
Non-debugging symbols:
0x0000000000400508 _init
0x0000000000400530 puts@plt
0x0000000000400540 clock@plt
0x0000000000400550 __stack_chk_fail@plt
0x0000000000400560 alarm@plt
0x0000000000400570 signal@plt
0x0000000000400580 exit@plt
0x0000000000400590 _start
0x00000000004005c0 _dl_relocate_static_pie
0x00000000004005d0 deregister_tm_clones
0x0000000000400600 register_tm_clones
0x0000000000400640 __do_global_dtors_aux
0x0000000000400670 frame_dummy
0x0000000000400677 delay
0x00000000004006a6 generate
0x0000000000400ad7 sig
0x0000000000400aec main
0x0000000000400b30 __libc_csu_init
0x0000000000400ba0 __libc_csu_fini
0x0000000000400ba4 _fini
gdb-peda$ disas generate
Dump of assembler code for function generate:
0x00000000004006a6 <+0>: push rbp
0x00000000004006a7 <+1>: mov rbp,rsp
0x00000000004006aa <+4>: sub rsp,0xb0
0x00000000004006b1 <+11>: mov rax,QWORD PTR fs:0x28
0x00000000004006ba <+20>: mov QWORD PTR [rbp-0x8],rax
0x00000000004006be <+24>: xor eax,eax
0x00000000004006c0 <+26>: mov eax,DWORD PTR [rip+0x200996]
0x00000000004006c6 <+32>: cmp eax,0x539
0x00000000004006cb <+37>: jne 0x400ac0 <generate+1050>
0x00000000004006d1 <+43>: mov BYTE PTR [rbp-0x70],0x23
0x00000000004006d5 <+47>: mov BYTE PTR [rbp-0x6f],0x3c
0x00000000004006d9 <+51>: mov BYTE PTR [rbp-0x6e],0x49
0x00000000004006dd <+55>: mov BYTE PTR [rbp-0x6d],0x64
0x00000000004006e1 <+59>: mov BYTE PTR [rbp-0x6c],0x55
0x00000000004006e5 <+63>: mov BYTE PTR [rbp-0x6b],0x2e
0x00000000004006e9 <+67>: mov BYTE PTR [rbp-0x6a],0x77
0x00000000004006ed <+71>: mov BYTE PTR [rbp-0x69],0x20
0x00000000004006f1 <+75>: mov BYTE PTR [rbp-0x68],0x2d
0x00000000004006f5 <+79>: mov BYTE PTR [rbp-0x67],0x73
0x00000000004006f9 <+83>: mov BYTE PTR [rbp-0x66],0x3f
0x00000000004006fd <+87>: mov BYTE PTR [rbp-0x65],0x7d
0x0000000000400701 <+91>: mov BYTE PTR [rbp-0x64],0x2c
0x0000000000400705 <+95>: mov BYTE PTR [rbp-0x63],0x38
0x0000000000400709 <+99>: mov BYTE PTR [rbp-0x62],0x6c
0x000000000040070d <+103>: mov BYTE PTR [rbp-0x61],0x53
0x0000000000400711 <+107>: mov BYTE PTR [rbp-0x60],0x54
0x0000000000400715 <+111>: mov BYTE PTR [rbp-0x5f],0x2a
0x0000000000400719 <+115>: mov BYTE PTR [rbp-0x5e],0x5a
0x000000000040071d <+119>: mov BYTE PTR [rbp-0x5d],0x6a
0x0000000000400721 <+123>: mov BYTE PTR [rbp-0x5c],0x57
0x0000000000400725 <+127>: mov BYTE PTR [rbp-0x5b],0x3a
0x0000000000400729 <+131>: mov BYTE PTR [rbp-0x5a],0x66
0x000000000040072d <+135>: mov BYTE PTR [rbp-0x59],0x5e
0x0000000000400731 <+139>: mov BYTE PTR [rbp-0x58],0x4d
0x0000000000400735 <+143>: mov BYTE PTR [rbp-0x57],0x36
0x0000000000400739 <+147>: mov BYTE PTR [rbp-0x56],0x65
0x000000000040073d <+151>: mov BYTE PTR [rbp-0x55],0x6e
0x0000000000400741 <+155>: mov BYTE PTR [rbp-0x54],0x70
0x0000000000400745 <+159>: mov BYTE PTR [rbp-0x53],0x68
0x0000000000400749 <+163>: mov BYTE PTR [rbp-0x52],0x63
0x000000000040074d <+167>: mov BYTE PTR [rbp-0x51],0x2f
0x0000000000400751 <+171>: mov BYTE PTR [rbp-0x50],0x4f
0x0000000000400755 <+175>: mov BYTE PTR [rbp-0x4f],0x76
0x0000000000400759 <+179>: mov BYTE PTR [rbp-0x4e],0x25
0x000000000040075d <+183>: mov BYTE PTR [rbp-0x4d],0x4b
0x0000000000400761 <+187>: mov BYTE PTR [rbp-0x4c],0xb
0x0000000000400765 <+191>: mov BYTE PTR [rbp-0x4b],0x34
0x0000000000400769 <+195>: mov BYTE PTR [rbp-0x4a],0x4c
0x000000000040076d <+199>: mov BYTE PTR [rbp-0x49],0x52
0x0000000000400771 <+203>: mov BYTE PTR [rbp-0x48],0x67
0x0000000000400775 <+207>: mov BYTE PTR [rbp-0x47],0x60
0x0000000000400779 <+211>: mov BYTE PTR [rbp-0x46],0x5f
0x000000000040077d <+215>: mov BYTE PTR [rbp-0x45],0x45
0x0000000000400781 <+219>: mov BYTE PTR [rbp-0x44],0x7b
0x0000000000400785 <+223>: mov BYTE PTR [rbp-0x43],0x72
0x0000000000400789 <+227>: mov BYTE PTR [rbp-0x42],0x3b
0x000000000040078d <+231>: mov BYTE PTR [rbp-0x41],0x7e
0x0000000000400791 <+235>: mov BYTE PTR [rbp-0x40],0x4a
0x0000000000400795 <+239>: mov BYTE PTR [rbp-0x3f],0xa
0x0000000000400799 <+243>: mov BYTE PTR [rbp-0x3e],0x6b
0x000000000040079d <+247>: mov BYTE PTR [rbp-0x3d],0x71
0x00000000004007a1 <+251>: mov BYTE PTR [rbp-0x3c],0x43
0x00000000004007a5 <+255>: mov BYTE PTR [rbp-0x3b],0x24
0x00000000004007a9 <+259>: mov BYTE PTR [rbp-0x3a],0x5c
0x00000000004007ad <+263>: mov BYTE PTR [rbp-0x39],0x28
0x00000000004007b1 <+267>: mov BYTE PTR [rbp-0x38],0x22
0x00000000004007b5 <+271>: mov BYTE PTR [rbp-0x37],0x40
0x00000000004007b9 <+275>: mov BYTE PTR [rbp-0x36],0x32
0x00000000004007bd <+279>: mov BYTE PTR [rbp-0x35],0x44
0x00000000004007c1 <+283>: mov BYTE PTR [rbp-0x34],0x62
0x00000000004007c5 <+287>: mov BYTE PTR [rbp-0x33],0x50
0x00000000004007c9 <+291>: mov BYTE PTR [rbp-0x32],0xd
0x00000000004007cd <+295>: mov BYTE PTR [rbp-0x31],0x26
0x00000000004007d1 <+299>: mov BYTE PTR [rbp-0x30],0x31
0x00000000004007d5 <+303>: mov BYTE PTR [rbp-0x2f],0x37
0x00000000004007d9 <+307>: mov BYTE PTR [rbp-0x2e],0xc
0x00000000004007dd <+311>: mov BYTE PTR [rbp-0x2d],0x5d
0x00000000004007e1 <+315>: mov BYTE PTR [rbp-0x2c],0x79
0x00000000004007e5 <+319>: mov BYTE PTR [rbp-0x2b],0x3e
0x00000000004007e9 <+323>: mov BYTE PTR [rbp-0x2a],0x3d
0x00000000004007ed <+327>: mov BYTE PTR [rbp-0x29],0x78
0x00000000004007f1 <+331>: mov BYTE PTR [rbp-0x28],0x61
0x00000000004007f5 <+335>: mov BYTE PTR [rbp-0x27],0x56
0x00000000004007f9 <+339>: mov BYTE PTR [rbp-0x26],0x59
0x00000000004007fd <+343>: mov BYTE PTR [rbp-0x25],0x41
0x0000000000400801 <+347>: mov BYTE PTR [rbp-0x24],0x5b
0x0000000000400805 <+351>: mov BYTE PTR [rbp-0x23],0x42
0x0000000000400809 <+355>: mov BYTE PTR [rbp-0x22],0x46
0x000000000040080d <+359>: mov BYTE PTR [rbp-0x21],0x33
0x0000000000400811 <+363>: lea rax,[rip+0x39c]
0x0000000000400818 <+370>: mov BYTE PTR [rbp-0x20],al
0x000000000040081b <+373>: mov BYTE PTR [rbp-0x1f],0x21
0x000000000040081f <+377>: mov BYTE PTR [rbp-0x1e],0x74
0x0000000000400823 <+381>: mov BYTE PTR [rbp-0x1d],0x51
0x0000000000400827 <+385>: mov BYTE PTR [rbp-0x1c],0x48
0x000000000040082b <+389>: mov BYTE PTR [rbp-0x1b],0x75
0x000000000040082f <+393>: mov BYTE PTR [rbp-0x1a],0x30
0x0000000000400833 <+397>: mov BYTE PTR [rbp-0x19],0x58
0x0000000000400837 <+401>: mov BYTE PTR [rbp-0x18],0x69
0x000000000040083b <+405>: mov BYTE PTR [rbp-0x17],0x35
0x000000000040083f <+409>: mov BYTE PTR [rbp-0x16],0x7c
0x0000000000400843 <+413>: mov BYTE PTR [rbp-0x15],0x9
0x0000000000400847 <+417>: mov BYTE PTR [rbp-0x14],0x39
0x000000000040084b <+421>: mov BYTE PTR [rbp-0x13],0x4e
0x000000000040084f <+425>: mov BYTE PTR [rbp-0x12],0x2b
0x0000000000400853 <+429>: mov BYTE PTR [rbp-0x11],0x7a
0x0000000000400857 <+433>: mov BYTE PTR [rbp-0x10],0x6d
0x000000000040085b <+437>: mov BYTE PTR [rbp-0xf],0x47
0x000000000040085f <+441>: mov BYTE PTR [rbp-0xe],0x29
0x0000000000400863 <+445>: mov BYTE PTR [rbp-0xd],0x6f
0x0000000000400867 <+449>: mov BYTE PTR [rbp-0xc],0x0
0x000000000040086b <+453>: movzx eax,BYTE PTR [rbp-0x6a]
0x000000000040086f <+457>: mov BYTE PTR [rbp-0xb0],al
0x0000000000400875 <+463>: movzx eax,BYTE PTR [rbp-0x28]
0x0000000000400879 <+467>: mov BYTE PTR [rbp-0xaf],al
0x000000000040087f <+473>: movzx eax,BYTE PTR [rbp-0x1e]
0x0000000000400883 <+477>: mov BYTE PTR [rbp-0xae],al
0x0000000000400889 <+483>: movzx eax,BYTE PTR [rbp-0x56]
0x000000000040088d <+487>: mov BYTE PTR [rbp-0xad],al
0x0000000000400893 <+493>: movzx eax,BYTE PTR [rbp-0x4f]
0x0000000000400897 <+497>: mov BYTE PTR [rbp-0xac],al
0x000000000040089d <+503>: movzx eax,BYTE PTR [rbp-0x43]
0x00000000004008a1 <+507>: mov BYTE PTR [rbp-0xab],al
0x00000000004008a7 <+513>: movzx eax,BYTE PTR [rbp-0x44]
0x00000000004008ab <+517>: mov BYTE PTR [rbp-0xaa],al
0x00000000004008b1 <+523>: movzx eax,BYTE PTR [rbp-0x21]
0x00000000004008b5 <+527>: mov BYTE PTR [rbp-0xa9],al
0x00000000004008bb <+533>: movzx eax,BYTE PTR [rbp-0x55]
0x00000000004008bf <+537>: mov BYTE PTR [rbp-0xa8],al
0x00000000004008c5 <+543>: movzx eax,BYTE PTR [rbp-0x52]
0x00000000004008c9 <+547>: mov BYTE PTR [rbp-0xa7],al
0x00000000004008cf <+553>: movzx eax,BYTE PTR [rbp-0x43]
0x00000000004008d3 <+557>: mov BYTE PTR [rbp-0xa6],al
0x00000000004008d9 <+563>: movzx eax,BYTE PTR [rbp-0x2c]
0x00000000004008dd <+567>: mov BYTE PTR [rbp-0xa5],al
0x00000000004008e3 <+573>: movzx eax,BYTE PTR [rbp-0x1e]
0x00000000004008e7 <+577>: mov BYTE PTR [rbp-0xa4],al
0x00000000004008ed <+583>: movzx eax,BYTE PTR [rbp-0x18]
0x00000000004008f1 <+587>: mov BYTE PTR [rbp-0xa3],al
0x00000000004008f7 <+593>: movzx eax,BYTE PTR [rbp-0xd]
0x00000000004008fb <+597>: mov BYTE PTR [rbp-0xa2],al
0x0000000000400901 <+603>: movzx eax,BYTE PTR [rbp-0x55]
0x0000000000400905 <+607>: mov BYTE PTR [rbp-0xa1],al
0x000000000040090b <+613>: movzx eax,BYTE PTR [rbp-0x46]
0x000000000040090f <+617>: mov BYTE PTR [rbp-0xa0],al
0x0000000000400915 <+623>: movzx eax,BYTE PTR [rbp-0x18]
0x0000000000400919 <+627>: mov BYTE PTR [rbp-0x9f],al
0x000000000040091f <+633>: movzx eax,BYTE PTR [rbp-0x67]
0x0000000000400923 <+637>: mov BYTE PTR [rbp-0x9e],al
0x0000000000400929 <+643>: movzx eax,BYTE PTR [rbp-0x46]
0x000000000040092d <+647>: mov BYTE PTR [rbp-0x9d],al
0x0000000000400933 <+653>: movzx eax,BYTE PTR [rbp-0xd]
0x0000000000400937 <+657>: mov BYTE PTR [rbp-0x9c],al
0x000000000040093d <+663>: movzx eax,BYTE PTR [rbp-0x4f]
0x0000000000400941 <+667>: mov BYTE PTR [rbp-0x9b],al
0x0000000000400947 <+673>: movzx eax,BYTE PTR [rbp-0x56]
0x000000000040094b <+677>: mov BYTE PTR [rbp-0x9a],al
0x0000000000400951 <+683>: movzx eax,BYTE PTR [rbp-0x43]
0x0000000000400955 <+687>: mov BYTE PTR [rbp-0x99],al
0x000000000040095b <+693>: movzx eax,BYTE PTR [rbp-0x43]
0x000000000040095f <+697>: mov BYTE PTR [rbp-0x98],al
0x0000000000400965 <+703>: movzx eax,BYTE PTR [rbp-0x28]
0x0000000000400969 <+707>: mov BYTE PTR [rbp-0x97],al
0x000000000040096f <+713>: movzx eax,BYTE PTR [rbp-0x1e]
0x0000000000400973 <+717>: mov BYTE PTR [rbp-0x96],al
0x0000000000400979 <+723>: movzx eax,BYTE PTR [rbp-0x56]
0x000000000040097d <+727>: mov BYTE PTR [rbp-0x95],al
0x0000000000400983 <+733>: movzx eax,BYTE PTR [rbp-0x6d]
0x0000000000400987 <+737>: mov BYTE PTR [rbp-0x94],al
0x000000000040098d <+743>: movzx eax,BYTE PTR [rbp-0x46]
0x0000000000400991 <+747>: mov BYTE PTR [rbp-0x93],al
0x0000000000400997 <+753>: movzx eax,BYTE PTR [rbp-0x2c]
0x000000000040099b <+757>: mov BYTE PTR [rbp-0x92],al
0x00000000004009a1 <+763>: movzx eax,BYTE PTR [rbp-0xd]
0x00000000004009a5 <+767>: mov BYTE PTR [rbp-0x91],al
0x00000000004009ab <+773>: movzx eax,BYTE PTR [rbp-0x1b]
0x00000000004009af <+777>: mov BYTE PTR [rbp-0x90],al
0x00000000004009b5 <+783>: movzx eax,BYTE PTR [rbp-0x1e]
0x00000000004009b9 <+787>: mov BYTE PTR [rbp-0x8f],al
0x00000000004009bf <+793>: movzx eax,BYTE PTR [rbp-0x1b]
0x00000000004009c3 <+797>: mov BYTE PTR [rbp-0x8e],al
0x00000000004009c9 <+803>: movzx eax,BYTE PTR [rbp-0x34]
0x00000000004009cd <+807>: mov BYTE PTR [rbp-0x8d],al
0x00000000004009d3 <+813>: movzx eax,BYTE PTR [rbp-0x56]
0x00000000004009d7 <+817>: mov BYTE PTR [rbp-0x8c],al
0x00000000004009dd <+823>: movzx eax,BYTE PTR [rbp-0x6b]
0x00000000004009e1 <+827>: mov BYTE PTR [rbp-0x8b],al
0x00000000004009e7 <+833>: movzx eax,BYTE PTR [rbp-0x52]
0x00000000004009eb <+837>: mov BYTE PTR [rbp-0x8a],al
0x00000000004009f1 <+843>: movzx eax,BYTE PTR [rbp-0xd]
0x00000000004009f5 <+847>: mov BYTE PTR [rbp-0x89],al
0x00000000004009fb <+853>: movzx eax,BYTE PTR [rbp-0x10]
0x00000000004009ff <+857>: mov BYTE PTR [rbp-0x88],al
0x0000000000400a05 <+863>: movzx eax,BYTE PTR [rbp-0x51]
0x0000000000400a09 <+867>: mov BYTE PTR [rbp-0x87],al
0x0000000000400a0f <+873>: movzx eax,BYTE PTR [rbp-0x6a]
0x0000000000400a13 <+877>: mov BYTE PTR [rbp-0x86],al
0x0000000000400a19 <+883>: movzx eax,BYTE PTR [rbp-0x28]
0x0000000000400a1d <+887>: mov BYTE PTR [rbp-0x85],al
0x0000000000400a23 <+893>: movzx eax,BYTE PTR [rbp-0x1e]
0x0000000000400a27 <+897>: mov BYTE PTR [rbp-0x84],al
0x0000000000400a2d <+903>: movzx eax,BYTE PTR [rbp-0x52]
0x0000000000400a31 <+907>: mov BYTE PTR [rbp-0x83],al
0x0000000000400a37 <+913>: movzx eax,BYTE PTR [rbp-0x53]
0x0000000000400a3b <+917>: mov BYTE PTR [rbp-0x82],al
0x0000000000400a41 <+923>: movzx eax,BYTE PTR [rbp-0x66]
0x0000000000400a45 <+927>: mov BYTE PTR [rbp-0x81],al
0x0000000000400a4b <+933>: movzx eax,BYTE PTR [rbp-0x4f]
0x0000000000400a4f <+937>: mov BYTE PTR [rbp-0x80],al
0x0000000000400a52 <+940>: movzx eax,BYTE PTR [rbp-0x2a]
0x0000000000400a56 <+944>: mov BYTE PTR [rbp-0x7f],al
0x0000000000400a59 <+947>: movzx eax,BYTE PTR [rbp-0x50]
0x0000000000400a5d <+951>: mov BYTE PTR [rbp-0x7e],al
0x0000000000400a60 <+954>: movzx eax,BYTE PTR [rbp-0x33]
0x0000000000400a64 <+958>: mov BYTE PTR [rbp-0x7d],al
0x0000000000400a67 <+961>: movzx eax,BYTE PTR [rbp-0x5a]
0x0000000000400a6b <+965>: mov BYTE PTR [rbp-0x7c],al
0x0000000000400a6e <+968>: movzx eax,BYTE PTR [rbp-0x1a]
0x0000000000400a72 <+972>: mov BYTE PTR [rbp-0x7b],al
0x0000000000400a75 <+975>: movzx eax,BYTE PTR [rbp-0x26]
0x0000000000400a79 <+979>: mov BYTE PTR [rbp-0x7a],al
0x0000000000400a7c <+982>: movzx eax,BYTE PTR [rbp-0x34]
0x0000000000400a80 <+986>: mov BYTE PTR [rbp-0x79],al
0x0000000000400a83 <+989>: movzx eax,BYTE PTR [rbp-0x19]
0x0000000000400a87 <+993>: mov BYTE PTR [rbp-0x78],al
0x0000000000400a8a <+996>: movzx eax,BYTE PTR [rbp-0x3d]
0x0000000000400a8e <+1000>: mov BYTE PTR [rbp-0x77],al
0x0000000000400a91 <+1003>: movzx eax,BYTE PTR [rbp-0x35]
0x0000000000400a95 <+1007>: mov BYTE PTR [rbp-0x76],al
0x0000000000400a98 <+1010>: movzx eax,BYTE PTR [rbp-0x10]
0x0000000000400a9c <+1014>: mov BYTE PTR [rbp-0x75],al
0x0000000000400a9f <+1017>: movzx eax,BYTE PTR [rbp-0x1a]
0x0000000000400aa3 <+1021>: mov BYTE PTR [rbp-0x74],al
0x0000000000400aa6 <+1024>: movzx eax,BYTE PTR [rbp-0x65]
0x0000000000400aaa <+1028>: mov BYTE PTR [rbp-0x73],al
0x0000000000400aad <+1031>: mov BYTE PTR [rbp-0x72],0x0
0x0000000000400ab1 <+1035>: lea rax,[rbp-0xb0]
0x0000000000400ab8 <+1042>: mov rdi,rax
0x0000000000400abb <+1045>: call 0x400530 <puts@plt>
0x0000000000400ac0 <+1050>: nop
0x0000000000400ac1 <+1051>: mov rax,QWORD PTR [rbp-0x8]
0x0000000000400ac5 <+1055>: xor rax,QWORD PTR fs:0x28
0x0000000000400ace <+1064>: je 0x400ad5 <generate+1071>
0x0000000000400ad0 <+1066>: call 0x400550 <__stack_chk_fail@plt>
0x0000000000400ad5 <+1071>: leave
0x0000000000400ad6 <+1072>: ret
End of assembler dump.
この情報を元にフラグを組み立てる。
vals = [0x23, 0x3c, 0x49, 0x64, 0x55, 0x2e, 0x77, 0x20, 0x2d, 0x73, 0x3f,
0x7d, 0x2c, 0x38, 0x6c, 0x53, 0x54, 0x2a, 0x5a, 0x6a, 0x57, 0x3a, 0x66,
0x5e, 0x4d, 0x36, 0x65, 0x6e, 0x70, 0x68, 0x63, 0x2f, 0x4f, 0x76, 0x25,
0x4b, 0xb, 0x34, 0x4c, 0x52, 0x67, 0x60, 0x5f, 0x45, 0x7b, 0x72, 0x3b,
0x7e, 0x4a, 0xa, 0x6b, 0x71, 0x43, 0x24, 0x5c, 0x28, 0x22, 0x40, 0x32,
0x44, 0x62, 0x50, 0xd, 0x26, 0x31, 0x37, 0xc, 0x5d, 0x79, 0x3e, 0x3d,
0x78, 0x61, 0x56, 0x59, 0x41, 0x5b, 0x42, 0x46, 0x33, 0, 0x21, 0x74,
0x51, 0x48, 0x75, 0x30, 0x58, 0x69, 0x35, 0x7c, 0x9, 0x39, 0x4e, 0x2b,
0x7a, 0x6d, 0x47, 0x29, 0x6f]
adrs_list = [0x6a, 0x28, 0x1e, 0x56, 0x4f, 0x43, 0x44, 0x21, 0x55, 0x52,
0x43, 0x2c, 0x1e, 0x18, 0xd, 0x55, 0x46, 0x18, 0x67, 0x46, 0xd, 0x4f,
0x56, 0x43, 0x43, 0x28, 0x1e, 0x56, 0x6d, 0x46, 0x2c, 0xd, 0x1b, 0x1e,
0x1b, 0x34, 0x56, 0x6b, 0x52, 0xd, 0x10, 0x51, 0x6a, 0x28, 0x1e, 0x52,
0x53, 0x66, 0x4f, 0x2a, 0x50, 0x33, 0x5a, 0x1a, 0x26, 0x34, 0x19, 0x3d,
0x35, 0x10, 0x1a, 0x65]
flag = ''
for adrs in adrs_list:
flag += chr(vals[0x70 - adrs])
print flag
watevr{3ncrytion_is_overrated_youtube.com/watch?v=OPf0YbXqDm0}