// File: davidjosepha[P]slitherlink/src/solver/contradictions.cpp
// Function: initContradictions(Contradiction (&) [11])
void initContradictions(Contradiction (& contradictions)[NUM_CONTRADICTIONS]) {
    int i = 0;

    /**
     * Contradiction #01
     * .   .   .
     *     x
     * . x . x .
     *     |
     * .   .   .
     */
    contradictions[i] = Contradiction(2, 2);

    contradictions[i].addHLinePattern(1, 0, NLINE);
    contradictions[i].addHLinePattern(1, 1, NLINE);
    contradictions[i].addVLinePattern(0, 1, NLINE);
    contradictions[i].addVLinePattern(1, 1, LINE);

    i++;

    /**
     * Contradiction #02
     * .   .   .
     *     |
     * . _ . _ .
     *
     */
    contradictions[i] = Contradiction(1, 2);

    contradictions[i].addHLinePattern(1, 0, LINE);
    contradictions[i].addHLinePattern(1, 1, LINE);
    contradictions[i].addVLinePattern(0, 1, LINE);

    i++;

    /**
     * Contradiction #03
     * . _ .
     * |   |
     * . _ .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addHLinePattern(0, 0, LINE);
    contradictions[i].addVLinePattern(0, 0, LINE);
    contradictions[i].addHLinePattern(1, 0, LINE);
    contradictions[i].addVLinePattern(0, 1, LINE);

    i++;

    /**
     * Contradiction #04
     * . x .
     * x 3
     * .   .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, THREE);
    contradictions[i].addHLinePattern(0, 0, NLINE);
    contradictions[i].addVLinePattern(0, 0, NLINE);

    i++;

    /**
     * Contradiction #05
     * .   .
     * x 3 x
     * .   .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, THREE);
    contradictions[i].addVLinePattern(0, 0, NLINE);
    contradictions[i].addVLinePattern(0, 1, NLINE);

    i++;

    /**
     * Contradiction #06
     * . _ .
     * | 2
     * . _ .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, TWO);
    contradictions[i].addHLinePattern(0, 0, LINE);
    contradictions[i].addHLinePattern(1, 0, LINE);
    contradictions[i].addVLinePattern(0, 0, LINE);

    i++;

    /**
     * Contradiction #07
     * . x .
     * x 2
     * . x .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, TWO);
    contradictions[i].addHLinePattern(0, 0, NLINE);
    contradictions[i].addHLinePattern(1, 0, NLINE);
    contradictions[i].addVLinePattern(0, 0, NLINE);

    i++;

    /**
     * Contradiction #08
     * . _ .
     * | 1
     * .   .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, ONE);
    contradictions[i].addHLinePattern(0, 0, LINE);
    contradictions[i].addVLinePattern(0, 0, LINE);

    i++;

    /**
     * Contradiction #09
     * .   .
     * | 1 |
     * .   .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, ONE);
    contradictions[i].addVLinePattern(0, 0, LINE);
    contradictions[i].addVLinePattern(0, 1, LINE);

    i++;

    /**
     * Contradiction #10
     * . x .
     * x 1 x
     * . x .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, ONE);
    contradictions[i].addVLinePattern(0, 0, NLINE);
    contradictions[i].addVLinePattern(0, 1, NLINE);
    contradictions[i].addHLinePattern(0, 0, NLINE);
    contradictions[i].addHLinePattern(1, 0, NLINE);

    i++;

    /**
     * Contradiction #11
     * .   .
     * | 0
     * .   .
     */
    contradictions[i] = Contradiction(1, 1);

    contradictions[i].addNumberPattern(0, 0, ZERO);
    contradictions[i].addVLinePattern(0, 0, LINE);

    i++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rdi, -0x8(%rbp)
movl $0x0, -0xc(%rbp)
leaq -0x60(%rbp), %rdi
movl $0x2, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x60(%rbp), %rsi
callq 0x69e0
leaq -0x60(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %esi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %esi, %esi
movl $0x1, %edx
movl $0x2, %ecx
callq 0x6ad0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %ecx
movl %ecx, %esi
movl %ecx, %edx
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0xb0(%rbp), %rdi
movl $0x1, %esi
movl $0x2, %edx
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0xb0(%rbp), %rsi
callq 0x69e0
leaq -0xb0(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %ecx
xorl %edx, %edx
movl %ecx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %ecx
movl %ecx, %esi
movl %ecx, %edx
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %esi, %esi
movl $0x1, %ecx
movl %ecx, %edx
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x100(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x100(%rbp), %rsi
callq 0x69e0
leaq -0x100(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6ad0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %ecx
xorl %edx, %edx
movl %ecx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %esi, %esi
movl $0x1, %ecx
movl %ecx, %edx
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x150(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x150(%rbp), %rsi
callq 0x69e0
leaq -0x150(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x4, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x1a0(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x69e0
leaq -0x1a0(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x4, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6ad0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %esi, %esi
movl $0x1, %edx
movl $0x2, %ecx
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x1f0(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x69e0
leaq -0x1f0(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x3, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %ecx
xorl %edx, %edx
movl %ecx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x240(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x240(%rbp), %rsi
callq 0x69e0
leaq -0x240(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x3, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %esi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x290(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x290(%rbp), %rsi
callq 0x69e0
leaq -0x290(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x2e0(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x69e0
leaq -0x2e0(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6ad0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %esi, %esi
movl $0x1, %ecx
movl %ecx, %edx
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x330(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x330(%rbp), %rsi
callq 0x69e0
leaq -0x330(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6ad0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %esi, %esi
movl $0x1, %edx
movl $0x2, %ecx
callq 0x6ad0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x2, %ecx
movl %edx, %esi
callq 0x6a90
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
movl $0x1, %esi
xorl %edx, %edx
movl $0x2, %ecx
callq 0x6a90
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq -0x380(%rbp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0x5fa0
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
leaq -0x380(%rbp), %rsi
callq 0x69e0
leaq -0x380(%rbp), %rdi
callq 0x6a50
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6b10
movq -0x8(%rbp), %rdi
movslq -0xc(%rbp), %rax
imulq $0x50, %rax, %rax
addq %rax, %rdi
xorl %edx, %edx
movl $0x1, %ecx
movl %edx, %esi
callq 0x6ad0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
nopl (%rax)