user: Translate the below assembly code into C programming language:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x1d000(%rsp),%r11
L2547:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L2547
  sub    $0xaf0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    $0x0,%eax
  call   <check_offloading@plt>
  movq   $0x0,-0x1d988(%rbp)
  mov    $0x0,%eax
  call   <omp_is_initial_device@plt>
  cltq
  mov    %rax,-0x1d988(%rbp)
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1dae4(%rbp)
  jmp    L617
L392:
  mov    -0x1dae4(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1dae4(%rbp),%eax
  cltq
  mov    -0x1dae4(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1dae4(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1dae4(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1dae4(%rbp)
L617:
  cmpl   $0x63,-0x1dae4(%rbp)
  jle    L392
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1217
  movl   $0x0,-0x1dae0(%rbp)
  jmp    L1474
L32:
  mov    -0x1dae0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1dae0(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1dae0(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1dae0(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1dae0(%rbp)
L1474:
  cmpl   $0x63,-0x1dae0(%rbp)
  jle    L32
  movl   $0x0,-0x1dadc(%rbp)
  jmp    L1138
L2031:
  mov    -0x1dadc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1dadc(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1dadc(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L446
  mov    -0x1dadc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1dadc(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1dadc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1dadc(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L446:
  addl   $0x1,-0x1dadc(%rbp)
L1138:
  cmpl   $0x63,-0x1dadc(%rbp)
  jle    L2031
L1217:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L1581
  lea    D283(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1034
L1581:
  lea    D228(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1034:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1dad8(%rbp)
  jmp    L1976
L1570:
  mov    -0x1dad8(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1dad8(%rbp),%eax
  cltq
  mov    -0x1dad8(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1dad8(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1dad8(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1dad8(%rbp)
L1976:
  cmpl   $0x63,-0x1dad8(%rbp)
  jle    L1570
  movl   $0xfffffffb,-0x1d998(%rbp)
  movl   $0xfffffffd,-0x1dad4(%rbp)
  movl   $0x0,-0x1dad0(%rbp)
  movl   $0xa,-0x1d994(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L13
  movl   $0x0,-0x1dacc(%rbp)
  jmp    L2689
L2383:
  mov    -0x1dacc(%rbp),%eax
  add    $0x5,%eax
  mov    %eax,-0x1d998(%rbp)
  mov    -0x1dacc(%rbp),%eax
  add    $0x2,%eax
  add    %eax,-0x1dad4(%rbp)
  mov    -0x1dacc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1dacc(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%eax
  imul   -0x1dad4(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x1dacc(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  imul   -0x1d998(%rbp),%eax
  add    %eax,%ecx
  mov    -0x1d994(%rbp),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1dacc(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  mov    -0x1dacc(%rbp),%eax
  mov    %eax,-0x1dad0(%rbp)
  addl   $0x1,-0x1dacc(%rbp)
L2689:
  cmpl   $0x63,-0x1dacc(%rbp)
  jle    L2383
  movl   $0x0,-0x1dac8(%rbp)
  jmp    L757
L1387:
  mov    -0x1dac8(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x1dac8(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1dac8(%rbp),%eax
  add    $0x5,%eax
  imul   -0x1dac8(%rbp),%eax
  add    %eax,%eax
  add    %edx,%eax
  lea    0xa(%rax),%edx
  mov    -0x1dac8(%rbp),%eax
  add    %eax,%eax
  add    %edx,%eax
  mov    %eax,-0x1d990(%rbp)
  mov    -0x1dac8(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  cmp    %eax,-0x1d990(%rbp)
  je     L1336
  mov    -0x1dac8(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d990(%rbp),%ecx
  mov    -0x1dac8(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1336:
  addl   $0x1,-0x1dac8(%rbp)
L757:
  cmpl   $0x63,-0x1dac8(%rbp)
  jle    L1387
  cmpl   $0x63,-0x1dad0(%rbp)
  je     L13
  mov    -0x1dad0(%rbp),%eax
  mov    $0x63,%edx
  mov    %eax,%esi
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L13:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L1915
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1221
L1915:
  lea    D254(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1221:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1dac4(%rbp)
  jmp    L1799
L2201:
  mov    -0x1dac4(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1dac4(%rbp),%eax
  cltq
  mov    -0x1dac4(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1dac4(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1dac4(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1dac4(%rbp)
L1799:
  cmpl   $0x63,-0x1dac4(%rbp)
  jle    L2201
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1700
  movl   $0x0,-0x1dac0(%rbp)
  jmp    L295
L1932:
  mov    -0x1dac0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1dac0(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1dac0(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1dac0(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1dac0(%rbp)
L295:
  cmpl   $0x63,-0x1dac0(%rbp)
  jle    L1932
  movl   $0x0,-0x1dabc(%rbp)
  jmp    L1261
L1599:
  mov    -0x1dabc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1dabc(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1dabc(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1785
  mov    -0x1dabc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1dabc(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1dabc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1dabc(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1785:
  addl   $0x1,-0x1dabc(%rbp)
L1261:
  cmpl   $0x63,-0x1dabc(%rbp)
  jle    L1599
L1700:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L2306
  lea    D33(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1449
L2306:
  lea    D527(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1449:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1dab8(%rbp)
  jmp    L428
L2367:
  mov    -0x1dab8(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1dab8(%rbp),%eax
  cltq
  mov    -0x1dab8(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1dab8(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1dab8(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1dab8(%rbp)
L428:
  cmpl   $0x63,-0x1dab8(%rbp)
  jle    L2367
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L277
  movl   $0x0,-0x1dab4(%rbp)
  jmp    L1580
L2515:
  mov    -0x1dab4(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1dab4(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1dab4(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1dab4(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1dab4(%rbp)
L1580:
  cmpl   $0x63,-0x1dab4(%rbp)
  jle    L2515
  movl   $0x0,-0x1dab0(%rbp)
  jmp    L1739
L2293:
  mov    -0x1dab0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1dab0(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1dab0(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L854
  mov    -0x1dab0(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1dab0(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1dab0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1dab0(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L854:
  addl   $0x1,-0x1dab0(%rbp)
L1739:
  cmpl   $0x63,-0x1dab0(%rbp)
  jle    L2293
L277:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L1431
  lea    D650(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L913
L1431:
  lea    D124(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L913:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1daac(%rbp)
  jmp    L2154
L2480:
  mov    -0x1daac(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1daac(%rbp),%eax
  cltq
  mov    -0x1daac(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1daac(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1daac(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1daac(%rbp)
L2154:
  cmpl   $0x63,-0x1daac(%rbp)
  jle    L2480
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L257
  movl   $0x0,-0x1daa8(%rbp)
  jmp    L1952
L292:
  mov    -0x1daa8(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1daa8(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1daa8(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1daa8(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1daa8(%rbp)
L1952:
  cmpl   $0x63,-0x1daa8(%rbp)
  jle    L292
  movl   $0x0,-0x1daa4(%rbp)
  jmp    L1311
L1388:
  mov    -0x1daa4(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1daa4(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1daa4(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L2409
  mov    -0x1daa4(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1daa4(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1daa4(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1daa4(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L2409:
  addl   $0x1,-0x1daa4(%rbp)
L1311:
  cmpl   $0x63,-0x1daa4(%rbp)
  jle    L1388
L257:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L1067
  lea    D388(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1709
L1067:
  lea    D440(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1709:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1daa0(%rbp)
  jmp    L54
L695:
  mov    -0x1daa0(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1daa0(%rbp),%eax
  cltq
  mov    -0x1daa0(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1daa0(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1daa0(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1daa0(%rbp)
L54:
  cmpl   $0x63,-0x1daa0(%rbp)
  jle    L695
  movl   $0xa,-0x1d98c(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L2219
  movl   $0x0,-0x1da9c(%rbp)
  jmp    L94
L1697:
  mov    -0x1da9c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da9c(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da9c(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da9c(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da9c(%rbp)
L94:
  cmpl   $0x63,-0x1da9c(%rbp)
  jle    L1697
  movl   $0x0,-0x1da98(%rbp)
  jmp    L1518
L512:
  mov    -0x1da98(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da98(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da98(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L100
  mov    -0x1da98(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da98(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da98(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da98(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L100:
  addl   $0x1,-0x1da98(%rbp)
L1518:
  cmpl   $0x63,-0x1da98(%rbp)
  jle    L512
L2219:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L1584
  lea    D201(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L589
L1584:
  lea    D417(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L589:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da94(%rbp)
  jmp    L526
L1828:
  mov    -0x1da94(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da94(%rbp),%eax
  cltq
  mov    -0x1da94(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da94(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da94(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da94(%rbp)
L526:
  cmpl   $0x63,-0x1da94(%rbp)
  jle    L1828
  movl   $0xa,-0x1d98c(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1736
  movl   $0x0,-0x1da90(%rbp)
  jmp    L2152
L1967:
  mov    -0x1da90(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da90(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da90(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da90(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da90(%rbp)
L2152:
  cmpl   $0x63,-0x1da90(%rbp)
  jle    L1967
  movl   $0x0,-0x1da8c(%rbp)
  jmp    L853
L1115:
  mov    -0x1da8c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da8c(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da8c(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1674
  mov    -0x1da8c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da8c(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da8c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da8c(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1674:
  addl   $0x1,-0x1da8c(%rbp)
L853:
  cmpl   $0x63,-0x1da8c(%rbp)
  jle    L1115
L1736:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L624
  lea    D376(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L75
L624:
  lea    D778(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L75:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da88(%rbp)
  jmp    L1405
L2570:
  mov    -0x1da88(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da88(%rbp),%eax
  cltq
  mov    -0x1da88(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da88(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da88(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da88(%rbp)
L1405:
  cmpl   $0x63,-0x1da88(%rbp)
  jle    L2570
  movl   $0xa,-0x1d98c(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L875
  movl   $0x0,-0x1da84(%rbp)
  jmp    L1579
L865:
  mov    -0x1da84(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da84(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da84(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da84(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da84(%rbp)
L1579:
  cmpl   $0x63,-0x1da84(%rbp)
  jle    L865
  movl   $0x0,-0x1da80(%rbp)
  jmp    L925
L953:
  mov    -0x1da80(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da80(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da80(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1867
  mov    -0x1da80(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da80(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da80(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da80(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1867:
  addl   $0x1,-0x1da80(%rbp)
L925:
  cmpl   $0x63,-0x1da80(%rbp)
  jle    L953
L875:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L2439
  lea    D238(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L543
L2439:
  lea    D774(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L543:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da7c(%rbp)
  jmp    L2414
L739:
  mov    -0x1da7c(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da7c(%rbp),%eax
  cltq
  mov    -0x1da7c(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da7c(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da7c(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da7c(%rbp)
L2414:
  cmpl   $0x63,-0x1da7c(%rbp)
  jle    L739
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1683
  movl   $0x0,-0x1da78(%rbp)
  jmp    L1622
L1113:
  mov    -0x1da78(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da78(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da78(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da78(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da78(%rbp)
L1622:
  cmpl   $0x63,-0x1da78(%rbp)
  jle    L1113
  movl   $0x0,-0x1da74(%rbp)
  jmp    L680
L574:
  mov    -0x1da74(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da74(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da74(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1389
  mov    -0x1da74(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da74(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da74(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da74(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1389:
  addl   $0x1,-0x1da74(%rbp)
L680:
  cmpl   $0x63,-0x1da74(%rbp)
  jle    L574
L1683:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L575
  lea    D305(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1778
L575:
  lea    D63(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1778:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da70(%rbp)
  jmp    L1548
L463:
  mov    -0x1da70(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da70(%rbp),%eax
  cltq
  mov    -0x1da70(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da70(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da70(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da70(%rbp)
L1548:
  cmpl   $0x63,-0x1da70(%rbp)
  jle    L463
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1200
  movl   $0x0,-0x1da6c(%rbp)
  jmp    L2460
L2569:
  mov    -0x1da6c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da6c(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da6c(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da6c(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da6c(%rbp)
L2460:
  cmpl   $0x63,-0x1da6c(%rbp)
  jle    L2569
  movl   $0x0,-0x1da68(%rbp)
  jmp    L256
L731:
  mov    -0x1da68(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da68(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da68(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L2644
  mov    -0x1da68(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da68(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da68(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da68(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L2644:
  addl   $0x1,-0x1da68(%rbp)
L256:
  cmpl   $0x63,-0x1da68(%rbp)
  jle    L731
L1200:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L477
  lea    D173(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L307
L477:
  lea    D351(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L307:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da64(%rbp)
  jmp    L340
L2657:
  mov    -0x1da64(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da64(%rbp),%eax
  cltq
  mov    -0x1da64(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da64(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da64(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da64(%rbp)
L340:
  cmpl   $0x63,-0x1da64(%rbp)
  jle    L2657
  movl   $0xa,-0x1d98c(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L2140
  movl   $0x0,-0x1da60(%rbp)
  jmp    L1097
L1826:
  mov    -0x1da60(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da60(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da60(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da60(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da60(%rbp)
L1097:
  cmpl   $0x63,-0x1da60(%rbp)
  jle    L1826
  movl   $0x0,-0x1da5c(%rbp)
  jmp    L189
L494:
  mov    -0x1da5c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da5c(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da5c(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L2458
  mov    -0x1da5c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da5c(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da5c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da5c(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L2458:
  addl   $0x1,-0x1da5c(%rbp)
L189:
  cmpl   $0x63,-0x1da5c(%rbp)
  jle    L494
L2140:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L1353
  lea    D642(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L60
L1353:
  lea    D392(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L60:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da58(%rbp)
  jmp    L1806
L1301:
  mov    -0x1da58(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da58(%rbp),%eax
  cltq
  mov    -0x1da58(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da58(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da58(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da58(%rbp)
L1806:
  cmpl   $0x63,-0x1da58(%rbp)
  jle    L1301
  movl   $0xa,-0x1d98c(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1786
  movl   $0x0,-0x1da54(%rbp)
  jmp    L2596
L2133:
  mov    -0x1da54(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da54(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da54(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da54(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da54(%rbp)
L2596:
  cmpl   $0x63,-0x1da54(%rbp)
  jle    L2133
  movl   $0x0,-0x1da50(%rbp)
  jmp    L2028
L760:
  mov    -0x1da50(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da50(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da50(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1871
  mov    -0x1da50(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da50(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da50(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da50(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1871:
  addl   $0x1,-0x1da50(%rbp)
L2028:
  cmpl   $0x63,-0x1da50(%rbp)
  jle    L760
L1786:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L298
  lea    D284(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1477
L298:
  lea    D92(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1477:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da4c(%rbp)
  jmp    L1900
L1492:
  mov    -0x1da4c(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da4c(%rbp),%eax
  cltq
  mov    -0x1da4c(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da4c(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da4c(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da4c(%rbp)
L1900:
  cmpl   $0x63,-0x1da4c(%rbp)
  jle    L1492
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1184
  movl   $0x0,-0x1da48(%rbp)
  jmp    L867
L688:
  mov    -0x1da48(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da48(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da48(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da48(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da48(%rbp)
L867:
  cmpl   $0x63,-0x1da48(%rbp)
  jle    L688
  movl   $0x0,-0x1da44(%rbp)
  jmp    L2078
L815:
  mov    -0x1da44(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da44(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da44(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1818
  mov    -0x1da44(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da44(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da44(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da44(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1818:
  addl   $0x1,-0x1da44(%rbp)
L2078:
  cmpl   $0x63,-0x1da44(%rbp)
  jle    L815
L1184:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L919
  lea    D262(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L436
L919:
  lea    D554(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L436:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da40(%rbp)
  jmp    L296
L1481:
  mov    -0x1da40(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da40(%rbp),%eax
  cltq
  mov    -0x1da40(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da40(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da40(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da40(%rbp)
L296:
  cmpl   $0x63,-0x1da40(%rbp)
  jle    L1481
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L563
  movl   $0x0,-0x1da3c(%rbp)
  jmp    L1734
L1121:
  mov    -0x1da3c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da3c(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da3c(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da3c(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da3c(%rbp)
L1734:
  cmpl   $0x63,-0x1da3c(%rbp)
  jle    L1121
  movl   $0x0,-0x1da38(%rbp)
  jmp    L390
L1506:
  mov    -0x1da38(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da38(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da38(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L516
  mov    -0x1da38(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da38(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da38(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da38(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L516:
  addl   $0x1,-0x1da38(%rbp)
L390:
  cmpl   $0x63,-0x1da38(%rbp)
  jle    L1506
L563:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L683
  lea    D471(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1225
L683:
  lea    D745(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1225:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da34(%rbp)
  jmp    L831
L1478:
  mov    -0x1da34(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da34(%rbp),%eax
  cltq
  mov    -0x1da34(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da34(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da34(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da34(%rbp)
L831:
  cmpl   $0x63,-0x1da34(%rbp)
  jle    L1478
  movl   $0xa,-0x1d98c(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L2014
  movl   $0x0,-0x1da30(%rbp)
  jmp    L1810
L679:
  mov    -0x1da30(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da30(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da30(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da30(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da30(%rbp)
L1810:
  cmpl   $0x63,-0x1da30(%rbp)
  jle    L679
  movl   $0x0,-0x1da2c(%rbp)
  jmp    L2545
L1122:
  mov    -0x1da2c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da2c(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da2c(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L117
  mov    -0x1da2c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da2c(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da2c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da2c(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L117:
  addl   $0x1,-0x1da2c(%rbp)
L2545:
  cmpl   $0x63,-0x1da2c(%rbp)
  jle    L1122
L2014:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L792
  lea    D215(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L698
L792:
  lea    D532(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L698:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da28(%rbp)
  jmp    L339
L2305:
  mov    -0x1da28(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da28(%rbp),%eax
  cltq
  mov    -0x1da28(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da28(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da28(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da28(%rbp)
L339:
  cmpl   $0x63,-0x1da28(%rbp)
  jle    L2305
  movl   $0xa,-0x1d98c(%rbp)
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1098
  movl   $0x0,-0x1da24(%rbp)
  jmp    L813
L1417:
  mov    -0x1da24(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da24(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da24(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da24(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da24(%rbp)
L813:
  cmpl   $0x63,-0x1da24(%rbp)
  jle    L1417
  movl   $0x0,-0x1da20(%rbp)
  jmp    L140
L12:
  mov    -0x1da20(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da20(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da20(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L2204
  mov    -0x1da20(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da20(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da20(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da20(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L2204:
  addl   $0x1,-0x1da20(%rbp)
L140:
  cmpl   $0x63,-0x1da20(%rbp)
  jle    L12
L1098:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L73
  lea    D409(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1758
L73:
  lea    D328(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1758:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da1c(%rbp)
  jmp    L1633
L2343:
  mov    -0x1da1c(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da1c(%rbp),%eax
  cltq
  mov    -0x1da1c(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da1c(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da1c(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da1c(%rbp)
L1633:
  cmpl   $0x63,-0x1da1c(%rbp)
  jle    L2343
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1211
  movl   $0x0,-0x1da18(%rbp)
  jmp    L727
L1562:
  mov    -0x1da18(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da18(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da18(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da18(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da18(%rbp)
L727:
  cmpl   $0x63,-0x1da18(%rbp)
  jle    L1562
  movl   $0x0,-0x1da14(%rbp)
  jmp    L621
L1483:
  mov    -0x1da14(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da14(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da14(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1953
  mov    -0x1da14(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da14(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da14(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da14(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1953:
  addl   $0x1,-0x1da14(%rbp)
L621:
  cmpl   $0x63,-0x1da14(%rbp)
  jle    L1483
L1211:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L681
  lea    D566(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2564
L681:
  lea    D525(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L2564:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da10(%rbp)
  jmp    L2259
L448:
  mov    -0x1da10(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da10(%rbp),%eax
  cltq
  mov    -0x1da10(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da10(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da10(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da10(%rbp)
L2259:
  cmpl   $0x63,-0x1da10(%rbp)
  jle    L448
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L454
  movl   $0x0,-0x1da0c(%rbp)
  jmp    L2114
L1886:
  mov    -0x1da0c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da0c(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da0c(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da0c(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da0c(%rbp)
L2114:
  cmpl   $0x63,-0x1da0c(%rbp)
  jle    L1886
  movl   $0x0,-0x1da08(%rbp)
  jmp    L2395
L1889:
  mov    -0x1da08(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1da08(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1da08(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1554
  mov    -0x1da08(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1da08(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1da08(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da08(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1554:
  addl   $0x1,-0x1da08(%rbp)
L2395:
  cmpl   $0x63,-0x1da08(%rbp)
  jle    L1889
L454:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L2364
  lea    D708(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L941
L2364:
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L941:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1da04(%rbp)
  jmp    L843
L768:
  mov    -0x1da04(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1da04(%rbp),%eax
  cltq
  mov    -0x1da04(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1da04(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1da04(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1da04(%rbp)
L843:
  cmpl   $0x63,-0x1da04(%rbp)
  jle    L768
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L2024
  movl   $0x0,-0x1da00(%rbp)
  jmp    L302
L1327:
  mov    -0x1da00(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1da00(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1da00(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1da00(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1da00(%rbp)
L302:
  cmpl   $0x63,-0x1da00(%rbp)
  jle    L1327
  movl   $0x0,-0x1d9fc(%rbp)
  jmp    L1945
L726:
  mov    -0x1d9fc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1d9fc(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d9fc(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1986
  mov    -0x1d9fc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d9fc(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d9fc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9fc(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1986:
  addl   $0x1,-0x1d9fc(%rbp)
L1945:
  cmpl   $0x63,-0x1d9fc(%rbp)
  jle    L726
L2024:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L440
  lea    D232(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1735
L440:
  lea    D591(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1735:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1d9f8(%rbp)
  jmp    L2302
L601:
  mov    -0x1d9f8(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1d9f8(%rbp),%eax
  cltq
  mov    -0x1d9f8(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1d9f8(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1d9f8(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1d9f8(%rbp)
L2302:
  cmpl   $0x63,-0x1d9f8(%rbp)
  jle    L601
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L411
  movl   $0x0,-0x1d9f4(%rbp)
  jmp    L2512
L2030:
  mov    -0x1d9f4(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9f4(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1d9f4(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1d9f4(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1d9f4(%rbp)
L2512:
  cmpl   $0x63,-0x1d9f4(%rbp)
  jle    L2030
  movl   $0x0,-0x1d9f0(%rbp)
  jmp    L2066
L128:
  mov    -0x1d9f0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1d9f0(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d9f0(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1344
  mov    -0x1d9f0(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d9f0(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d9f0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9f0(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1344:
  addl   $0x1,-0x1d9f0(%rbp)
L2066:
  cmpl   $0x63,-0x1d9f0(%rbp)
  jle    L128
L411:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L2060
  lea    D369(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L115
L2060:
  lea    D621(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L115:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1d9ec(%rbp)
  jmp    L586
L1898:
  movl   $0x0,-0x1d9e8(%rbp)
  jmp    L190
L2340:
  mov    -0x1d9e8(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x1d9ec(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  movl   $0xffffffff,-0x1d4d0(%rbp,%rax,4)
  mov    -0x1d9e8(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x1d9ec(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  lea    (%rax,%rcx,1),%rdx
  mov    -0x1d9ec(%rbp),%eax
  mov    %eax,-0x13890(%rbp,%rdx,4)
  mov    -0x1d9ec(%rbp),%eax
  lea    (%rax,%rax,1),%ecx
  mov    -0x1d9e8(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x1d9ec(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rsi,%rax
  mov    %ecx,-0x9c50(%rbp,%rax,4)
  addl   $0x1,-0x1d9e8(%rbp)
L190:
  cmpl   $0x63,-0x1d9e8(%rbp)
  jle    L2340
  addl   $0x1,-0x1d9ec(%rbp)
L586:
  cmpl   $0x63,-0x1d9ec(%rbp)
  jle    L1898
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L2049
  movl   $0x0,-0x1d9e4(%rbp)
  jmp    L1171
L2374:
  movl   $0x0,-0x1d9e0(%rbp)
  jmp    L1702
L1223:
  mov    -0x1d9e0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x1d9e4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    -0x1d4d0(%rbp,%rax,4),%ecx
  mov    -0x1d9e0(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x1d9e4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rsi,%rax
  mov    -0x13890(%rbp,%rax,4),%esi
  mov    -0x1d9e0(%rbp),%eax
  movslq %eax,%rdi
  mov    -0x1d9e4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rdi,%rax
  mov    -0x9c50(%rbp,%rax,4),%eax
  add    %esi,%eax
  add    %eax,%ecx
  mov    -0x1d9e0(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x1d9e4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rsi,%rax
  mov    %ecx,-0x1d4d0(%rbp,%rax,4)
  addl   $0x1,-0x1d9e0(%rbp)
L1702:
  cmpl   $0x63,-0x1d9e0(%rbp)
  jle    L1223
  addl   $0x1,-0x1d9e4(%rbp)
L1171:
  cmpl   $0x63,-0x1d9e4(%rbp)
  jle    L2374
  movl   $0x0,-0x1d9dc(%rbp)
  jmp    L338
L1643:
  movl   $0x0,-0x1d9d8(%rbp)
  jmp    L2511
L1891:
  mov    -0x1d9d8(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x1d9dc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rcx,%rax
  mov    -0x1d4d0(%rbp,%rax,4),%eax
  mov    -0x1d9dc(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d9dc(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1407
  mov    -0x1d9dc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d9dc(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d9d8(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x1d9dc(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rsi,%rax
  mov    -0x1d4d0(%rbp,%rax,4),%edx
  mov    -0x1d9dc(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1407:
  addl   $0x1,-0x1d9d8(%rbp)
L2511:
  cmpl   $0x63,-0x1d9d8(%rbp)
  jle    L1891
  addl   $0x1,-0x1d9dc(%rbp)
L338:
  cmpl   $0x63,-0x1d9dc(%rbp)
  jle    L1643
L2049:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L2554
  lea    D117(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L840
L2554:
  lea    D691(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L840:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1d9d4(%rbp)
  jmp    L740
L874:
  mov    -0x1d9d4(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1d9d4(%rbp),%eax
  cltq
  mov    -0x1d9d4(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1d9d4(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1d9d4(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1d9d4(%rbp)
L740:
  cmpl   $0x63,-0x1d9d4(%rbp)
  jle    L874
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L2058
  movl   $0x0,-0x1d9d0(%rbp)
  jmp    L278
L536:
  mov    -0x1d9d0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9d0(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1d9d0(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1d9d0(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1d9d0(%rbp)
L278:
  cmpl   $0x63,-0x1d9d0(%rbp)
  jle    L536
  movl   $0x0,-0x1d9cc(%rbp)
  jmp    L2015
L235:
  mov    -0x1d9cc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1d9cc(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d9cc(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1690
  mov    -0x1d9cc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d9cc(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d9cc(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9cc(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1690:
  addl   $0x1,-0x1d9cc(%rbp)
L2015:
  cmpl   $0x63,-0x1d9cc(%rbp)
  jle    L235
L2058:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L28
  lea    D672(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2557
L28:
  lea    D431(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L2557:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1d9c8(%rbp)
  jmp    L101
L2583:
  mov    -0x1d9c8(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1d9c8(%rbp),%eax
  cltq
  mov    -0x1d9c8(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1d9c8(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1d9c8(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1d9c8(%rbp)
L101:
  cmpl   $0x63,-0x1d9c8(%rbp)
  jle    L2583
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1269
  movl   $0x0,-0x1d9c4(%rbp)
  jmp    L398
L2342:
  mov    -0x1d9c4(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9c4(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1d9c4(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1d9c4(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1d9c4(%rbp)
L398:
  cmpl   $0x63,-0x1d9c4(%rbp)
  jle    L2342
  movl   $0x0,-0x1d9c0(%rbp)
  jmp    L598
L644:
  mov    -0x1d9c0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1d9c0(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d9c0(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L947
  mov    -0x1d9c0(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d9c0(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d9c0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9c0(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L947:
  addl   $0x1,-0x1d9c0(%rbp)
L598:
  cmpl   $0x63,-0x1d9c0(%rbp)
  jle    L644
L1269:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L720
  lea    D432(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1031
L720:
  lea    D160(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1031:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1d9bc(%rbp)
  jmp    L2264
L1442:
  mov    -0x1d9bc(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1d9bc(%rbp),%eax
  cltq
  mov    -0x1d9bc(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1d9bc(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1d9bc(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1d9bc(%rbp)
L2264:
  cmpl   $0x63,-0x1d9bc(%rbp)
  jle    L1442
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L1763
  movl   $0x0,-0x1d9b8(%rbp)
  jmp    L217
L360:
  mov    -0x1d9b8(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9b8(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1d9b8(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1d9b8(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1d9b8(%rbp)
L217:
  cmpl   $0x63,-0x1d9b8(%rbp)
  jle    L360
  movl   $0x0,-0x1d9b4(%rbp)
  jmp    L781
L1174:
  mov    -0x1d9b4(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1d9b4(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d9b4(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1100
  mov    -0x1d9b4(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d9b4(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d9b4(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9b4(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1100:
  addl   $0x1,-0x1d9b4(%rbp)
L781:
  cmpl   $0x63,-0x1d9b4(%rbp)
  jle    L1174
L1763:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L2327
  lea    D553(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L148
L2327:
  lea    D324(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L148:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1d9b0(%rbp)
  jmp    L2094
L724:
  mov    -0x1d9b0(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1d9b0(%rbp),%eax
  cltq
  mov    -0x1d9b0(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1d9b0(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1d9b0(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1d9b0(%rbp)
L2094:
  cmpl   $0x63,-0x1d9b0(%rbp)
  jle    L724
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L511
  movl   $0x0,-0x1d9ac(%rbp)
  jmp    L2178
L1897:
  mov    -0x1d9ac(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9ac(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1d9ac(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1d9ac(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1d9ac(%rbp)
L2178:
  cmpl   $0x63,-0x1d9ac(%rbp)
  jle    L1897
  movl   $0x0,-0x1d9a8(%rbp)
  jmp    L188
L510:
  mov    -0x1d9a8(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1d9a8(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d9a8(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L1342
  mov    -0x1d9a8(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d9a8(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d9a8(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9a8(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L1342:
  addl   $0x1,-0x1d9a8(%rbp)
L188:
  cmpl   $0x63,-0x1d9a8(%rbp)
  jle    L510
L511:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L2461
  lea    D299(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L609
L2461:
  lea    D494(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L609:
  movl   $0x0,-0x1dae8(%rbp)
  movl   $0x0,-0x1d9a4(%rbp)
  jmp    L2297
L2011:
  mov    -0x1d9a4(%rbp),%eax
  cltq
  movl   $0xffffffff,-0x1d980(%rbp,%rax,4)
  mov    -0x1d9a4(%rbp),%eax
  cltq
  mov    -0x1d9a4(%rbp),%edx
  mov    %edx,-0x1d7f0(%rbp,%rax,4)
  mov    -0x1d9a4(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1d9a4(%rbp),%eax
  cltq
  mov    %edx,-0x1d660(%rbp,%rax,4)
  addl   $0x1,-0x1d9a4(%rbp)
L2297:
  cmpl   $0x63,-0x1d9a4(%rbp)
  jle    L2011
  cmpq   $0x0,-0x1d988(%rbp)
  jne    L155
  movl   $0x0,-0x1d9a0(%rbp)
  jmp    L1435
L1707:
  mov    -0x1d9a0(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d9a0(%rbp),%eax
  cltq
  mov    -0x1d7f0(%rbp,%rax,4),%ecx
  mov    -0x1d9a0(%rbp),%eax
  cltq
  mov    -0x1d660(%rbp,%rax,4),%eax
  add    %ecx,%eax
  add    %eax,%edx
  mov    -0x1d9a0(%rbp),%eax
  cltq
  mov    %edx,-0x1d980(%rbp,%rax,4)
  addl   $0x1,-0x1d9a0(%rbp)
L1435:
  cmpl   $0x63,-0x1d9a0(%rbp)
  jle    L1707
  movl   $0x0,-0x1d99c(%rbp)
  jmp    L2378
L466:
  mov    -0x1d99c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%eax
  mov    -0x1d99c(%rbp),%edx
  lea    -0x1(%rdx),%ecx
  mov    -0x1d99c(%rbp),%edx
  add    %edx,%edx
  add    %ecx,%edx
  cmp    %edx,%eax
  je     L521
  mov    -0x1d99c(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x1d99c(%rbp),%eax
  add    %eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x1d99c(%rbp),%eax
  cltq
  mov    -0x1d980(%rbp,%rax,4),%edx
  mov    -0x1d99c(%rbp),%eax
  mov    %eax,%esi
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x1dae8(%rbp)
L521:
  addl   $0x1,-0x1d99c(%rbp)
L2378:
  cmpl   $0x63,-0x1d99c(%rbp)
  jle    L466
L155:
  cmpl   $0x0,-0x1dae8(%rbp)
  je     L1823
  lea    D118(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1002
L1823:
  lea    D103(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1002:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L331
  call   <__stack_chk_fail@plt>
L331:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D184
type_guessed: string
name: extract_symbolic_data
arguments: label: D283
type_guessed: string
name: extract_symbolic_data
arguments: label: D228
type_guessed: string
name: extract_symbolic_data
arguments: label: D29
type_guessed: string
name: extract_symbolic_data
arguments: label: D13
type_guessed: string
name: extract_symbolic_data
arguments: label: D254
type_guessed: string
name: extract_symbolic_data
arguments: label: D33
type_guessed: string
name: extract_symbolic_data
arguments: label: D527
type_guessed: string
name: extract_symbolic_data
arguments: label: D650
type_guessed: string
name: extract_symbolic_data
arguments: label: D124
type_guessed: string
name: extract_symbolic_data
arguments: label: D388
type_guessed: string
name: extract_symbolic_data
arguments: label: D440
type_guessed: string
name: extract_symbolic_data
arguments: label: D201
type_guessed: string
name: extract_symbolic_data
arguments: label: D417
type_guessed: string
name: extract_symbolic_data
arguments: label: D376
type_guessed: string
name: extract_symbolic_data
arguments: label: D778
type_guessed: string
name: extract_symbolic_data
arguments: label: D238
type_guessed: string
name: extract_symbolic_data
arguments: label: D774
type_guessed: string
name: extract_symbolic_data
arguments: label: D305
type_guessed: string
name: extract_symbolic_data
arguments: label: D63
type_guessed: string
name: extract_symbolic_data
arguments: label: D173
type_guessed: string
name: extract_symbolic_data
arguments: label: D351
type_guessed: string
name: extract_symbolic_data
arguments: label: D642
type_guessed: string
name: extract_symbolic_data
arguments: label: D392
type_guessed: string
name: extract_symbolic_data
arguments: label: D284
type_guessed: string
name: extract_symbolic_data
arguments: label: D92
type_guessed: string
name: extract_symbolic_data
arguments: label: D262
type_guessed: string
name: extract_symbolic_data
arguments: label: D554
type_guessed: string
name: extract_symbolic_data
arguments: label: D471
type_guessed: string
name: extract_symbolic_data
arguments: label: D745
type_guessed: string
name: extract_symbolic_data
arguments: label: D215
type_guessed: string
name: extract_symbolic_data
arguments: label: D532
type_guessed: string
name: extract_symbolic_data
arguments: label: D409
type_guessed: string
name: extract_symbolic_data
arguments: label: D328
type_guessed: string
name: extract_symbolic_data
arguments: label: D566
type_guessed: string
name: extract_symbolic_data
arguments: label: D525
type_guessed: string
name: extract_symbolic_data
arguments: label: D708
type_guessed: string
name: extract_symbolic_data
arguments: label: D23
type_guessed: string
name: extract_symbolic_data
arguments: label: D232
type_guessed: string
name: extract_symbolic_data
arguments: label: D591
type_guessed: string
name: extract_symbolic_data
arguments: label: D369
type_guessed: string
name: extract_symbolic_data
arguments: label: D621
type_guessed: string
name: extract_symbolic_data
arguments: label: D117
type_guessed: string
name: extract_symbolic_data
arguments: label: D691
type_guessed: string
name: extract_symbolic_data
arguments: label: D672
type_guessed: string
name: extract_symbolic_data
arguments: label: D431
type_guessed: string
name: extract_symbolic_data
arguments: label: D432
type_guessed: string
name: extract_symbolic_data
arguments: label: D160
type_guessed: string
name: extract_symbolic_data
arguments: label: D553
type_guessed: string
name: extract_symbolic_data
arguments: label: D324
type_guessed: string
name: extract_symbolic_data
arguments: label: D299
type_guessed: string
name: extract_symbolic_data
arguments: label: D494
type_guessed: string
name: extract_symbolic_data
arguments: label: D118
type_guessed: string
name: extract_symbolic_data
arguments: label: D103
type_guessed: string

tool: D184: Error at %d: device = %d, host = %d


tool: D283: Failed 2

tool: D228: Succeeded 2

tool: D29: Error for lastprivate: device = %d, host = %d


tool: D13: Failed 3

tool: D254: Succeeded 3

tool: D33: Failed 4

tool: D527: Succeeded 4

tool: D650: Failed 5

tool: D124: Succeeded 5

tool: D388: Failed 6

tool: D440: Succeeded 6

tool: D201: Failed 7

tool: D417: Succeeded 7

tool: D376: Failed 8

tool: D778: Succeeded 8

tool: D238: Failed 9

tool: D774: Succeeded 9

tool: D305: Failed 10

tool: D63: Succeeded 10

tool: D173: Failed 13

tool: D351: Succeeded 13

tool: D642: Failed 14

tool: D392: Succeeded 14

tool: D284: Failed 17

tool: D92: Succeeded 17

tool: D262: Failed 18

tool: D554: Succeeded 18

tool: D471: Failed 21

tool: D745: Succeeded 21

tool: D215: Failed 22

tool: D532: Succeeded 22

tool: D409: Failed 25

tool: D328: Succeeded 25

tool: D566: Failed 26

tool: D525: Succeeded 26

tool: D708: Failed 27

tool: D23: Succeeded 27

tool: D232: Failed 28

tool: D591: Succeeded 28

tool: D369: Failed 31

tool: D621: Succeeded 31

tool: D117: Failed 32

tool: D691: Succeeded 32

tool: D672: Failed 33

tool: D431: Succeeded 33

tool: D432: Failed 34

tool: D160: Succeeded 34

tool: D553: Failed 35

tool: D324: Succeeded 35

tool: D299: Failed 36

tool: D494: Succeeded 36

tool: D118: Failed 37

tool: D103: Succeeded 37

assistant: ```c
int main() {
  int a[100], b[100], c[100];
  check_offloading();
  long cpuExec = 0;
  int fail, ch;
#pragma omp target map(tofrom : cpuExec)
  { cpuExec = omp_is_initial_device(); }
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 2\n");
  else
    printf("Succeeded 2\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  int q = -5;
  int p = -3;
  int r = 0;
  int l = 10;
  if (!cpuExec) {
#pragma omp target teams num_teams(1) thread_limit(1024) map(tofrom : a, r) map(to : b, c)
#pragma omp parallel
#pragma omp for simd private(q) firstprivate(p) lastprivate(r) linear(l : 2)
    for (int i = 0; i < 100; i++) {
      q = i + 5;
      p += i + 2;
      a[i] += p * b[i] + c[i] * q + l;
      r = i;
    }
    for (int i = 0; i < 100; i++) {
      int expected = (-1 + (-3 + i + 2) * i + (2 * i) * (i + 5) + 10 + (2 * i));
      if (a[i] != expected) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], expected);
        fail = 1;
      }
    }
    if (r != 100 - 1) {
      printf("Error for lastprivate: device = %d, host = %d\n", r, 100 - 1);
      fail = 1;
    }
  }
  if (fail)
    printf("Failed 3\n");
  else
    printf("Succeeded 3\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(static)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 4\n");
  else
    printf("Succeeded 4\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target teams num_teams(1) thread_limit(1024) map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(monotonic : static)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 5\n");
  else
    printf("Succeeded 5\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : static)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 6\n");
  else
    printf("Succeeded 6\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(static, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 7\n");
  else
    printf("Succeeded 7\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(monotonic : static, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 8\n");
  else
    printf("Succeeded 8\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : static, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 9\n");
  else
    printf("Succeeded 9\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(dynamic)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 10\n");
  else
    printf("Succeeded 10\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : dynamic)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 13\n");
  else
    printf("Succeeded 13\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(dynamic, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 14\n");
  else
    printf("Succeeded 14\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : dynamic, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 17\n");
  else
    printf("Succeeded 17\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(guided)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 18\n");
  else
    printf("Succeeded 18\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : guided)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 21\n");
  else
    printf("Succeeded 21\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(guided, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 22\n");
  else
    printf("Succeeded 22\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  ch = 10;
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : guided, ch)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 25\n");
  else
    printf("Succeeded 25\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(auto)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 26\n");
  else
    printf("Succeeded 26\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(monotonic : auto)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 27\n");
  else
    printf("Succeeded 27\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : auto)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 28\n");
  else
    printf("Succeeded 28\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd schedule(simd : runtime)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 31\n");
  else
    printf("Succeeded 31\n");
  fail = 0;
  int ma[100][100], mb[100][100], mc[100][100];
  for (int i = 0; i < 100; i++)
    for (int j = 0; j < 100; j++) {
      ma[i][j] = -1;
      mb[i][j] = i;
      mc[i][j] = 2 * i;
    }
  if (!cpuExec) {
#pragma omp target map(tofrom : ma) map(to : mb, mc)
#pragma omp parallel
#pragma omp for simd collapse(2)
    for (int i = 0; i < 100; i++)
      for (int j = 0; j < 100; j++)
        ma[i][j] += mb[i][j] + mc[i][j];
    for (int i = 0; i < 100; i++)
      for (int j = 0; j < 100; j++)
        if (ma[i][j] != (-1 + i + 2 * i)) {
          printf("Error at %d: device = %d, host = %d\n", i, ma[i][j], (-1 + i + 2 * i));
          fail = 1;
        }
  }
  if (fail)
    printf("Failed 32\n");
  else
    printf("Succeeded 32\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd ordered
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 33\n");
  else
    printf("Succeeded 33\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd nowait
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 34\n");
  else
    printf("Succeeded 34\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd safelen(16)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 35\n");
  else
    printf("Succeeded 35\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd simdlen(16)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 36\n");
  else
    printf("Succeeded 36\n");
  fail = 0;
  for (int i = 0; i < 100; i++) {
    a[i] = -1;
    b[i] = i;
    c[i] = 2 * i;
  }
  if (!cpuExec) {
#pragma omp target map(tofrom : a) map(to : b, c)
#pragma omp parallel
#pragma omp for simd aligned(a, b, c : 8)
    for (int i = 0; i < 100; i++)
      a[i] += b[i] + c[i];
    for (int i = 0; i < 100; i++)
      if (a[i] != (-1 + i + 2 * i)) {
        printf("Error at %d: device = %d, host = %d\n", i, a[i], (-1 + i + 2 * i));
        fail = 1;
      }
  }
  if (fail)
    printf("Failed 37\n");
  else
    printf("Succeeded 37\n");
  return 0;
}
```