integer BugClass_mws130
array<integer> MiddlewareUnary_nextFree768
integer MiddlewareUnary_firstFree909
integer MiddlewareUnary_maxIndex152
array<integer> MiddlewareUnary_typeId100
array<integer> CallbackUnary_nextFree174
integer CallbackUnary_firstFree122
integer CallbackUnary_maxIndex159
array<integer> CallbackUnary_typeId547
array<integer> BugClass_nextFree830
integer BugClass_firstFree857
integer BugClass_maxIndex880
array<integer> LinkedList_nextFree306
integer LinkedList_firstFree157
integer LinkedList_maxIndex177
array<integer> LinkedList_typeId543
array<integer> cb184
array<integer> cb_18150
array<any> LinkedList_elem163


integer BugClass_mws130 = new_LinkedList152()
integer MiddlewareUnary_firstFree909 = 0
integer MiddlewareUnary_maxIndex152 = 0
integer CallbackUnary_firstFree122 = 0
integer CallbackUnary_maxIndex159 = 0
integer BugClass_firstFree857 = 0
integer BugClass_maxIndex880 = 0
integer CallbackNullary_firstFree724 = 0
integer CallbackNullary_maxIndex950 = 0
integer LinkedList_firstFree157 = 0
integer LinkedList_maxIndex177 = 0


function initGlobals163() { 
    MiddlewareUnary_firstFree_909 = 0;
    MiddlewareUnary_maxIndex_152 = 0;
    CallbackUnary_firstFree_122 = 0;
    CallbackUnary_maxIndex_159 = 0;
    BugClass_firstFree_857 = 0;
    BugClass_maxIndex_880 = 0;
    LinkedList_firstFree_157 = 0;
    LinkedList_maxIndex_177 = 0;
}


function main112() { 
    initGlobals163();
    init_Bug190();
}


function config193() { 
}


function init_Bug190() { 
    local integer clVar103
    local integer temp162
    BugClass_mws_130 = new_LinkedList152();
    temp_162 = BugClass_mws_130;
    clVar_103 = alloc_CallbackUnary_add_Bug499();
    LinkedList_add_1149(temp_162, clVar_103);
    LinkedList_call131(BugClass_mws_130, new_BugClass198());
}


function mwUnary135(integer cb512) returns integer { 
    local integer clVar822
    clVar_822 = alloc_MiddlewareUnary_Bug166();
    cb_18_150[clVar_822] = cb_512;
    return clVar_822;
}


function LinkedList_call131(integer this272, any t0850) { 
    local integer clVar146
    local any temp151
    local any temp193
    temp_151 = LinkedList_elem_163[this_272];
    temp_193 = t0_850;
    clVar_146 = alloc_CallbackUnary_call_Bug149();
    dispatch_MiddlewareUnary_Bug_MiddlewareUnary_call121(temp_151, temp_193, clVar_146);
}


IS_NATIVE function println834(string msg210) { 
}


IS_NATIVE function testSuccess755() { 
}


function call_Bug669(integer this709, any t382, integer mwCb191) { 
    dispatch_CallbackNullary_Bug_CallbackNullary_call148(cb_184[this_709]);
    dispatch_CallbackUnary_Bug_CallbackUnary_callAndDestroy196(mwCb_191, t_382);
}


function call_Bug_12162(integer this198, any t101, integer mwCb603) { 
    dispatch_CallbackUnary_Bug_CallbackUnary_call191(cb_18_150[this_198], t_101);
    dispatch_CallbackUnary_Bug_CallbackUnary_callAndDestroy196(mwCb_603, t_101);
}


function call_call_Bug555(integer this181, any e913) { 
    println834("called");
}


function call_add_Bug143(integer this144, integer i172) { 
    testSuccess755();
}


function BugClass_init717(integer this662) { 
}


function new_BugClass198() returns integer { 
    local integer this180
    this_180 = alloc_BugClass348();
    construct_BugClass571(this_180);
    return this_180;
}


function construct_BugClass571(integer this330) { 
    BugClass_init717(this_330);
}


function CallbackUnary_callAndDestroy423(integer this116, any t192) { 
    dispatch_CallbackUnary_Bug_CallbackUnary_call191(this_116, t_192);
    dispatch_CallbackUnary_destroyCallbackUnary148(this_116);
}


function destroyCallbackUnary203(integer this708) { 
    dealloc_CallbackUnary981(this_708);
}


function LinkedList_add997(integer this151, any t939) { 
    LinkedList_elem_163[this_151] = t_939;
}


function LinkedList_init185(integer this124) { 
}


function new_LinkedList152() returns integer { 
    local integer this132
    this_132 = alloc_LinkedList212();
    construct_LinkedList114(this_132);
    return this_132;
}


function construct_LinkedList114(integer this743) { 
    LinkedList_init185(this_743);
}


function error157(string msg657) { 
    $debugPrint178((msg_657 + ("
" + #getStackTrace())));
}


function alloc_MiddlewareUnary_Bug166() returns integer { 
    local integer this450
    if (MiddlewareUnary_firstFree_909 == 0) {
        if (MiddlewareUnary_maxIndex_152 < 32768) {
            MiddlewareUnary_maxIndex_152 = (MiddlewareUnary_maxIndex_152 + 1);
            this_450 = MiddlewareUnary_maxIndex_152;
            MiddlewareUnary_typeId_100[this_450] = 9;
        } else {
            error157("Out of memory: Could not create MiddlewareUnary_Bug.");
            this_450 = 0;
        };
    } else {
        MiddlewareUnary_firstFree_909 = (MiddlewareUnary_firstFree_909 - 1);
        this_450 = MiddlewareUnary_nextFree_768[MiddlewareUnary_firstFree_909];
        MiddlewareUnary_typeId_100[this_450] = 9;
    };
    return this_450;
}


function alloc_CallbackUnary_call_Bug149() returns integer { 
    local integer this115
    if (CallbackUnary_firstFree_122 == 0) {
        if (CallbackUnary_maxIndex_159 < 32768) {
            CallbackUnary_maxIndex_159 = (CallbackUnary_maxIndex_159 + 1);
            this_115 = CallbackUnary_maxIndex_159;
            CallbackUnary_typeId_547[this_115] = 5;
        } else {
            error157("Out of memory: Could not create CallbackUnary_call_Bug.");
            this_115 = 0;
        };
    } else {
        CallbackUnary_firstFree_122 = (CallbackUnary_firstFree_122 - 1);
        this_115 = CallbackUnary_nextFree_174[CallbackUnary_firstFree_122];
        CallbackUnary_typeId_547[this_115] = 5;
    };
    return this_115;
}


function alloc_CallbackUnary_add_Bug499() returns integer { 
    local integer this952
    if (CallbackUnary_firstFree_122 == 0) {
        if (CallbackUnary_maxIndex_159 < 32768) {
            CallbackUnary_maxIndex_159 = (CallbackUnary_maxIndex_159 + 1);
            this_952 = CallbackUnary_maxIndex_159;
            CallbackUnary_typeId_547[this_952] = 4;
        } else {
            error157("Out of memory: Could not create CallbackUnary_add_Bug.");
            this_952 = 0;
        };
    } else {
        CallbackUnary_firstFree_122 = (CallbackUnary_firstFree_122 - 1);
        this_952 = CallbackUnary_nextFree_174[CallbackUnary_firstFree_122];
        CallbackUnary_typeId_547[this_952] = 4;
    };
    return this_952;
}


function alloc_BugClass348() returns integer { 
    local integer this662
    if (BugClass_firstFree_857 == 0) {
        if (BugClass_maxIndex_880 < 32768) {
            BugClass_maxIndex_880 = (BugClass_maxIndex_880 + 1);
            this_662 = BugClass_maxIndex_880;
        } else {
            error157("Out of memory: Could not create BugClass.");
            this_662 = 0;
        };
    } else {
        BugClass_firstFree_857 = (BugClass_firstFree_857 - 1);
        this_662 = BugClass_nextFree_830[BugClass_firstFree_857];
    };
    return this_662;
}


function dealloc_CallbackUnary981(integer obj445) { 
    if (CallbackUnary_typeId_547[obj_445] == 0) {
        error157("Double free: object of type CallbackUnary");
    } else {
        CallbackUnary_nextFree_174[CallbackUnary_firstFree_122] = obj_445;
        CallbackUnary_firstFree_122 = (CallbackUnary_firstFree_122 + 1);
        CallbackUnary_typeId_547[obj_445] = 0;
    };
}


function alloc_LinkedList212() returns integer { 
    local integer this356
    if (LinkedList_firstFree_157 == 0) {
        if (LinkedList_maxIndex_177 < 32768) {
            LinkedList_maxIndex_177 = (LinkedList_maxIndex_177 + 1);
            this_356 = LinkedList_maxIndex_177;
            LinkedList_typeId_543[this_356] = 6;
        } else {
            error157("Out of memory: Could not create LinkedList.");
            this_356 = 0;
        };
    } else {
        LinkedList_firstFree_157 = (LinkedList_firstFree_157 - 1);
        this_356 = LinkedList_nextFree_306[LinkedList_firstFree_157];
        LinkedList_typeId_543[this_356] = 6;
    };
    return this_356;
}


function dispatch_CallbackNullary_Bug_CallbackNullary_call148(integer this660) { 
}


function dispatch_CallbackUnary_destroyCallbackUnary148(integer this108) { 
    if (CallbackUnary_typeId_547[this_108] == 0) {
        if (this_108 == 0) {
            error157("Nullpointer exception when calling CallbackUnary.CallbackUnary");
        } else {
            error157("Called CallbackUnary.CallbackUnary on invalid object.");
        };
    } else {
    };
    destroyCallbackUnary203(this_108);
}


function dispatch_CallbackUnary_Bug_CallbackUnary_call191(integer this103, any t701) { 
    if (CallbackUnary_typeId_547[this_103] == 0) {
        if (this_103 == 0) {
            error157("Nullpointer exception when calling CallbackUnary.call");
        } else {
            error157("Called CallbackUnary.call on invalid object.");
        };
    } else {
    };
    if (CallbackUnary_typeId_547[this_103] <= 4) {
        call_add_Bug143(this_103, t_701);
    } else {
        call_call_Bug555(this_103, t_701);
    };
}


function dispatch_CallbackUnary_Bug_CallbackUnary_callAndDestroy196(integer this734, any t979) { 
    if (CallbackUnary_typeId_547[this_734] == 0) {
        if (this_734 == 0) {
            error157("Nullpointer exception when calling CallbackUnary.callAndDestroy");
        } else {
            error157("Called CallbackUnary.callAndDestroy on invalid object.");
        };
    } else {
    };
    CallbackUnary_callAndDestroy423(this_734, t_979);
}


function dispatch_LinkedList_Bug_LinkedList_add667(integer this621, any t302) { 
    if (LinkedList_typeId_543[this_621] == 0) {
        if (this_621 == 0) {
            error157("Nullpointer exception when calling LinkedList.add");
        } else {
            error157("Called LinkedList.add on invalid object.");
        };
    } else {
    };
    LinkedList_add997(this_621, t_302);
}


function dispatch_MiddlewareUnary_Bug_MiddlewareUnary_call121(integer this909, any t142, integer cb150) { 
    if (MiddlewareUnary_typeId_100[this_909] == 0) {
        if (this_909 == 0) {
            error157("Nullpointer exception when calling MiddlewareUnary.call");
        } else {
            error157("Called MiddlewareUnary.call on invalid object.");
        };
    } else {
    };
    if (MiddlewareUnary_typeId_100[this_909] <= 8) {
        call_Bug669(this_909, t_142, cb_150);
    } else {
        call_Bug_12162(this_909, t_142, cb_150);
    };
}


function LinkedList_add_1149(integer this531, integer cbs_0104) { 
    dispatch_LinkedList_Bug_LinkedList_add667(this_531, mwUnary135(cbs_0_104));
}