array<integer> A_nextFree105
integer A_firstFree394
integer A_maxIndex201
array<integer> A_a_0953
array<integer> A_a_1127


integer A_firstFree394 = 0
integer A_maxIndex201 = 0


function initGlobals173() { 
    A_firstFree_394 = 0;
    A_maxIndex_201 = 0;
}


function main535() { 
    initGlobals173();
    init_test813();
}


function config505() { 
}


function init_test813() { 
    local integer a422
    a_422 = new_A199();
    if ((A_a_get588(a_422, 0) == 1) and (A_a_get588(a_422, 1) == 2)) {
        testSuccess160();
    } else {
    };
}


IS_NATIVE function testSuccess160() { 
}


function A_init735(integer this130) { 
    A_a_set136(this_130, 0, 1);
    A_a_set136(this_130, 1, 2);
}


function new_A199() returns integer { 
    local integer this361
    this_361 = alloc_A391();
    construct_A157(this_361);
    return this_361;
}


function construct_A157(integer this157) { 
    A_init735(this_157);
}


function alloc_A391() returns integer { 
    local integer this162
    if (A_firstFree_394 == 0) {
        if (A_maxIndex_201 < 32768) {
            A_maxIndex_201 = (A_maxIndex_201 + 1);
            this_162 = A_maxIndex_201;
        } else {
            error114("Out of memory: Could not create A.");
            this_162 = 0;
        };
    } else {
        A_firstFree_394 = (A_firstFree_394 - 1);
        this_162 = A_nextFree_105[A_firstFree_394];
    };
    return this_162;
}


function error114(string msg176) { 
    $debugPrint191((msg_176 + ("
" + #getStackTrace())));
}


function A_a_set136(integer instanceId171, integer arrayIndex543, integer value182) { 
    if ((arrayIndex_543 < 0) or (arrayIndex_543 >= 2)) {
        error114("Index out of Bounds");
    } else {
        if (arrayIndex_543 <= 0) {
            A_a_0_953[instanceId_171] = value_182;
        } else {
            A_a_1_127[instanceId_171] = value_182;
        };
    };
}


function A_a_get588(integer index1120, integer index2198) returns integer { 
    local integer returnVal914
    if ((index2_198 < 0) or (index2_198 >= 2)) {
        error114("Index out of Bounds");
    } else {
        if (index2_198 <= 0) {
            returnVal_914 = A_a_0_953[index1_120];
        } else {
            returnVal_914 = A_a_1_127[index1_120];
        };
    };
    return returnVal_914;
}