// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdi, %rbx
leaq -0x78(%rbp), %r14
pushq $0x2
popq %r15
movq %r14, %rdi
movl %r15d, %esi
movl %r15d, %edx
callq 0x3d34
movq %rbx, %rdi
movq %r14, %rsi
callq 0x41ca
movq %r14, %rdi
callq 0x4210
pushq $0x1
popq %r14
movq %rbx, %rdi
movl %r14d, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x423e
movq %rbx, %rdi
movl %r14d, %esi
movl %r14d, %edx
movl %r15d, %ecx
callq 0x423e
movq %rbx, %rdi
xorl %esi, %esi
movl %r14d, %edx
movl %r15d, %ecx
callq 0x4264
movq %rbx, %rdi
movl %r14d, %esi
movl %r14d, %edx
movl %r14d, %ecx
callq 0x4264
leaq -0x78(%rbp), %r12
movq %r12, %rdi
movl %r14d, %esi
movl %r15d, %edx
callq 0x3d34
leaq 0x50(%rbx), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x41ca
movq %r12, %rdi
callq 0x4210
movq %r13, %rdi
movl %r14d, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x423e
movq %r13, %rdi
movl %r14d, %esi
movl %r14d, %edx
movl %r14d, %ecx
callq 0x423e
movq %r13, %rdi
xorl %esi, %esi
movl %r14d, %edx
movl %r14d, %ecx
callq 0x4264
leaq -0x78(%rbp), %r13
movq %r13, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0xa0(%rbx), %r12
movq %r12, %rdi
movq %r13, %rsi
callq 0x41ca
movq %r13, %rdi
callq 0x4210
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x423e
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x4264
movq %r12, %rdi
movl %r14d, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x423e
movq %r12, %rdi
xorl %esi, %esi
movl %r14d, %edx
movl %r14d, %ecx
callq 0x4264
leaq -0x78(%rbp), %r12
movq %r12, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0xf0(%rbx), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x41ca
movq %r12, %rdi
callq 0x4210
pushq $0x4
popq %rcx
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x428a
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x423e
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x4264
leaq -0x78(%rbp), %r13
movq %r13, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0x140(%rbx), %r12
movq %r12, %rdi
movq %r13, %rsi
callq 0x41ca
movq %r13, %rdi
callq 0x4210
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
pushq $0x4
popq %rcx
callq 0x428a
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x4264
movq %r12, %rdi
xorl %esi, %esi
movl %r14d, %edx
movl %r15d, %ecx
callq 0x4264
leaq -0x78(%rbp), %r12
movq %r12, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0x190(%rbx), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x41ca
movq %r12, %rdi
callq 0x4210
pushq $0x3
popq %rcx
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x428a
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x423e
movq %r13, %rdi
movl %r14d, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x423e
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x4264
movq %r12, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0x1e0(%rbx), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x41ca
movq %r12, %rdi
callq 0x4210
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
pushq $0x3
popq %rcx
callq 0x428a
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x423e
movq %r13, %rdi
movl %r14d, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x423e
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x4264
movq %r12, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0x230(%rbx), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x41ca
movq %r12, %rdi
callq 0x4210
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x428a
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x423e
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x4264
movq %r12, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0x280(%rbx), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x41ca
movq %r12, %rdi
callq 0x4210
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x428a
movq %r13, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x4264
movq %r13, %rdi
xorl %esi, %esi
movl %r14d, %edx
movl %r14d, %ecx
callq 0x4264
leaq -0x78(%rbp), %r13
movq %r13, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
leaq 0x2d0(%rbx), %r12
movq %r12, %rdi
movq %r13, %rsi
callq 0x41ca
movq %r13, %rdi
callq 0x4210
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x428a
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x4264
movq %r12, %rdi
xorl %esi, %esi
movl %r14d, %edx
movl %r15d, %ecx
callq 0x4264
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x423e
movq %r12, %rdi
movl %r14d, %esi
xorl %edx, %edx
movl %r15d, %ecx
callq 0x423e
leaq -0x78(%rbp), %r15
movq %r15, %rdi
movl %r14d, %esi
movl %r14d, %edx
callq 0x3d34
addq $0x320, %rbx            # imm = 0x320
movq %rbx, %rdi
movq %r15, %rsi
callq 0x41ca
movq %r15, %rdi
callq 0x4210
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x428a
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
movl %r14d, %ecx
callq 0x4264
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop