/*
 * Copyright (c) 2023 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * @tc.name:definesendableclass
 * @tc.desc:test definesendableclass
 * @tc.type: FUNC
 * @tc.require: issueI8R6LC
 */

// @ts-nocheck
declare function print(str: any): string;

class Parent {
    static sField: number = 0;
    field: number = 0;
    static "123": string = "parent"
    "123": number = 123;
    "560": string = "560";
    aa: string = "aa";
    bb: boolean = true;
    cc: number = 10;

    static get sAge() {
        print("sAge getter");
        return 0;
    }
    static set sAge(a: number) {
        print("sAge setter");
    }
    get age() {
        print("age getter");
        return 0;
    }
    set age(a: number) {
        print("age setter");
    }
    constructor() {
        "use sendable";
    }
}

class Child extends Parent {
    childField: number = 0;
    "45": string = "45";
    "855": number = 855;
    dd: string = "dd";
    ee: number = 11;
    ff: boolean = false;
    

    constructor() {
        "use sendable";
        super();
    }
}

class ChildToDict extends Parent {
    a0:string = "";
    a1:string = "";
    a2:string = "";
    a3:string = "";
    a4:string = "";
    a5:string = "";
    a6:string = "";
    a7:string = "";
    a8:string = "";
    a9:string = "";
    a10:string = "";
    a11:string = "";
    a12:string = "";
    a13:string = "";
    a14:string = "";
    a15:string = "";
    a16:string = "";
    a17:string = "";
    a18:string = "";
    a19:string = "";
    a20:string = "";
    a21:string = "";
    a22:string = "";
    a23:string = "";
    a24:string = "";
    a25:string = "";
    a26:string = "";
    a27:string = "";
    a28:string = "";
    a29:string = "";
    a30:string = "";
    a31:string = "";
    a32:string = "";
    a33:string = "";
    a34:string = "";
    a35:string = "";
    a36:string = "";
    a37:string = "";
    a38:string = "";
    a39:string = "";
    a40:string = "";
    a41:string = "";
    a42:string = "";
    a43:string = "";
    a44:string = "";
    a45:string = "";
    a46:string = "";
    a47:string = "";
    a48:string = "";
    a49:string = "";
    a50:string = "";
    a51:string = "";
    a52:string = "";
    a53:string = "";
    a54:string = "";
    a55:string = "";
    a56:string = "";
    a57:string = "";
    a58:string = "";
    a59:string = "";
    a60:string = "";
    a61:string = "";
    a62:string = "";
    a63:string = "";
    a64:string = "";
    a65:string = "";
    a66:string = "";
    a67:string = "";
    a68:string = "";
    a69:string = "";
    a70:string = "";
    a71:string = "";
    a72:string = "";
    a73:string = "";
    a74:string = "";
    a75:string = "";
    a76:string = "";
    a77:string = "";
    a78:string = "";
    a79:string = "";
    a80:string = "";
    a81:string = "";
    a82:string = "";
    a83:string = "";
    a84:string = "";
    a85:string = "";
    a86:string = "";
    a87:string = "";
    a88:string = "";
    a89:string = "";
    a90:string = "";
    a91:string = "";
    a92:string = "";
    a93:string = "";
    a94:string = "";
    a95:string = "";
    a96:string = "";
    a97:string = "";
    a98:string = "";
    a99:string = "";
    a100:string = "";
    a101:string = "";
    a102:string = "";
    a103:string = "";
    a104:string = "";
    a105:string = "";
    a106:string = "";
    a107:string = "";
    a108:string = "";
    a109:string = "";
    a110:string = "";
    a111:string = "";
    a112:string = "";
    a113:string = "";
    a114:string = "";
    a115:string = "";
    a116:string = "";
    a117:string = "";
    a118:string = "";
    a119:string = "";
    a120:string = "";
    a121:string = "";
    a122:string = "";
    a123:string = "";
    a124:string = "";
    a125:string = "";
    a126:string = "";
    a127:string = "";
    a128:string = "";
    a129:string = "";
    a130:string = "";
    a131:string = "";
    a132:string = "";
    a133:string = "";
    a134:string = "";
    a135:string = "";
    a136:string = "";
    a137:string = "";
    a138:string = "";
    a139:string = "";
    a140:string = "";
    a141:string = "";
    a142:string = "";
    a143:string = "";
    a144:string = "";
    a145:string = "";
    a146:string = "";
    a147:string = "";
    a148:string = "";
    a149:string = "";
    a150:string = "";
    a151:string = "";
    a152:string = "";
    a153:string = "";
    a154:string = "";
    a155:string = "";
    a156:string = "";
    a157:string = "";
    a158:string = "";
    a159:string = "";
    a160:string = "";
    a161:string = "";
    a162:string = "";
    a163:string = "";
    a164:string = "";
    a165:string = "";
    a166:string = "";
    a167:string = "";
    a168:string = "";
    a169:string = "";
    a170:string = "";
    a171:string = "";
    a172:string = "";
    a173:string = "";
    a174:string = "";
    a175:string = "";
    a176:string = "";
    a177:string = "";
    a178:string = "";
    a179:string = "";
    a180:string = "";
    a181:string = "";
    a182:string = "";
    a183:string = "";
    a184:string = "";
    a185:string = "";
    a186:string = "";
    a187:string = "";
    a188:string = "";
    a189:string = "";
    a190:string = "";
    a191:string = "";
    a192:string = "";
    a193:string = "";
    a194:string = "";
    a195:string = "";
    a196:string = "";
    a197:string = "";
    a198:string = "";
    a199:string = "";
    a200:string = "";
    a201:string = "";
    a202:string = "";
    a203:string = "";
    a204:string = "";
    a205:string = "";
    a206:string = "";
    a207:string = "";
    a208:string = "";
    a209:string = "";
    a210:string = "";
    a211:string = "";
    a212:string = "";
    a213:string = "";
    a214:string = "";
    a215:string = "";
    a216:string = "";
    a217:string = "";
    a218:string = "";
    a219:string = "";
    a220:string = "";
    a221:string = "";
    a222:string = "";
    a223:string = "";
    a224:string = "";
    a225:string = "";
    a226:string = "";
    a227:string = "";
    a228:string = "";
    a229:string = "";
    a230:string = "";
    a231:string = "";
    a232:string = "";
    a233:string = "";
    a234:string = "";
    a235:string = "";
    a236:string = "";
    a237:string = "";
    a238:string = "";
    a239:string = "";
    a240:string = "";
    a241:string = "";
    a242:string = "";
    a243:string = "";
    a244:string = "";
    a245:string = "";
    a246:string = "";
    a247:string = "";
    a248:string = "";
    a249:string = "";
    a250:string = "";
    a251:string = "";
    a252:string = "";
    a253:string = "";
    a254:string = "";
    a255:string = "";
    a256:string = "";
    a257:string = "";
    a258:string = "";
    a259:string = "";
    a260:string = "";
    a261:string = "";
    a262:string = "";
    a263:string = "";
    a264:string = "";
    a265:string = "";
    a266:string = "";
    a267:string = "";
    a268:string = "";
    a269:string = "";
    a270:string = "";
    a271:string = "";
    a272:string = "";
    a273:string = "";
    a274:string = "";
    a275:string = "";
    a276:string = "";
    a277:string = "";
    a278:string = "";
    a279:string = "";
    a280:string = "";
    a281:string = "";
    a282:string = "";
    a283:string = "";
    a284:string = "";
    a285:string = "";
    a286:string = "";
    a287:string = "";
    a288:string = "";
    a289:string = "";
    a290:string = "";
    a291:string = "";
    a292:string = "";
    a293:string = "";
    a294:string = "";
    a295:string = "";
    a296:string = "";
    a297:string = "";
    a298:string = "";
    a299:string = "";
    a300:string = "";
    a301:string = "";
    a302:string = "";
    a303:string = "";
    a304:string = "";
    a305:string = "";
    a306:string = "";
    a307:string = "";
    a308:string = "";
    a309:string = "";
    a310:string = "";
    a311:string = "";
    a312:string = "";
    a313:string = "";
    a314:string = "";
    a315:string = "";
    a316:string = "";
    a317:string = "";
    a318:string = "";
    a319:string = "";
    a320:string = "";
    a321:string = "";
    a322:string = "";
    a323:string = "";
    a324:string = "";
    a325:string = "";
    a326:string = "";
    a327:string = "";
    a328:string = "";
    a329:string = "";
    a330:string = "";
    a331:string = "";
    a332:string = "";
    a333:string = "";
    a334:string = "";
    a335:string = "";
    a336:string = "";
    a337:string = "";
    a338:string = "";
    a339:string = "";
    a340:string = "";
    a341:string = "";
    a342:string = "";
    a343:string = "";
    a344:string = "";
    a345:string = "";
    a346:string = "";
    a347:string = "";
    a348:string = "";
    a349:string = "";
    a350:string = "";
    a351:string = "";
    a352:string = "";
    a353:string = "";
    a354:string = "";
    a355:string = "";
    a356:string = "";
    a357:string = "";
    a358:string = "";
    a359:string = "";
    a360:string = "";
    a361:string = "";
    a362:string = "";
    a363:string = "";
    a364:string = "";
    a365:string = "";
    a366:string = "";
    a367:string = "";
    a368:string = "";
    a369:string = "";
    a370:string = "";
    a371:string = "";
    a372:string = "";
    a373:string = "";
    a374:string = "";
    a375:string = "";
    a376:string = "";
    a377:string = "";
    a378:string = "";
    a379:string = "";
    a380:string = "";
    a381:string = "";
    a382:string = "";
    a383:string = "";
    a384:string = "";
    a385:string = "";
    a386:string = "";
    a387:string = "";
    a388:string = "";
    a389:string = "";
    a390:string = "";
    a391:string = "";
    a392:string = "";
    a393:string = "";
    a394:string = "";
    a395:string = "";
    a396:string = "";
    a397:string = "";
    a398:string = "";
    a399:string = "";
    a400:string = "";
    a401:string = "";
    a402:string = "";
    a403:string = "";
    a404:string = "";
    a405:string = "";
    a406:string = "";
    a407:string = "";
    a408:string = "";
    a409:string = "";
    a410:string = "";
    a411:string = "";
    a412:string = "";
    a413:string = "";
    a414:string = "";
    a415:string = "";
    a416:string = "";
    a417:string = "";
    a418:string = "";
    a419:string = "";
    a420:string = "";
    a421:string = "";
    a422:string = "";
    a423:string = "";
    a424:string = "";
    a425:string = "";
    a426:string = "";
    a427:string = "";
    a428:string = "";
    a429:string = "";
    a430:string = "";
    a431:string = "";
    a432:string = "";
    a433:string = "";
    a434:string = "";
    a435:string = "";
    a436:string = "";
    a437:string = "";
    a438:string = "";
    a439:string = "";
    a440:string = "";
    a441:string = "";
    a442:string = "";
    a443:string = "";
    a444:string = "";
    a445:string = "";
    a446:string = "";
    a447:string = "";
    a448:string = "";
    a449:string = "";
    a450:string = "";
    a451:string = "";
    a452:string = "";
    a453:string = "";
    a454:string = "";
    a455:string = "";
    a456:string = "";
    a457:string = "";
    a458:string = "";
    a459:string = "";
    a460:string = "";
    a461:string = "";
    a462:string = "";
    a463:string = "";
    a464:string = "";
    a465:string = "";
    a466:string = "";
    a467:string = "";
    a468:string = "";
    a469:string = "";
    a470:string = "";
    a471:string = "";
    a472:string = "";
    a473:string = "";
    a474:string = "";
    a475:string = "";
    a476:string = "";
    a477:string = "";
    a478:string = "";
    a479:string = "";
    a480:string = "";
    a481:string = "";
    a482:string = "";
    a483:string = "";
    a484:string = "";
    a485:string = "";
    a486:string = "";
    a487:string = "";
    a488:string = "";
    a489:string = "";
    a490:string = "";
    a491:string = "";
    a492:string = "";
    a493:string = "";
    a494:string = "";
    a495:string = "";
    a496:string = "";
    a497:string = "";
    a498:string = "";
    a499:string = "";
    a500:string = "";
    a501:string = "";
    a502:string = "";
    a503:string = "";
    a504:string = "";
    a505:string = "";
    a506:string = "";
    a507:string = "";
    a508:string = "";
    a509:string = "";
    a510:string = "";
    a511:string = "";
    a512:string = "";
    a513:string = "";
    a514:string = "";
    a515:string = "";
    a516:string = "";
    a517:string = "";
    a518:string = "";
    a519:string = "";
    a520:string = "";
    a521:string = "";
    a522:string = "";
    a523:string = "";
    a524:string = "";
    a525:string = "";
    a526:string = "";
    a527:string = "";
    a528:string = "";
    a529:string = "";
    a530:string = "";
    a531:string = "";
    a532:string = "";
    a533:string = "";
    a534:string = "";
    a535:string = "";
    a536:string = "";
    a537:string = "";
    a538:string = "";
    a539:string = "";
    a540:string = "";
    a541:string = "";
    a542:string = "";
    a543:string = "";
    a544:string = "";
    a545:string = "";
    a546:string = "";
    a547:string = "";
    a548:string = "";
    a549:string = "";
    a550:string = "";
    a551:string = "";
    a552:string = "";
    a553:string = "";
    a554:string = "";
    a555:string = "";
    a556:string = "";
    a557:string = "";
    a558:string = "";
    a559:string = "";
    a560:string = "";
    a561:string = "";
    a562:string = "";
    a563:string = "";
    a564:string = "";
    a565:string = "";
    a566:string = "";
    a567:string = "";
    a568:string = "";
    a569:string = "";
    a570:string = "";
    a571:string = "";
    a572:string = "";
    a573:string = "";
    a574:string = "";
    a575:string = "";
    a576:string = "";
    a577:string = "";
    a578:string = "";
    a579:string = "";
    a580:string = "";
    a581:string = "";
    a582:string = "";
    a583:string = "";
    a584:string = "";
    a585:string = "";
    a586:string = "";
    a587:string = "";
    a588:string = "";
    a589:string = "";
    a590:string = "";
    a591:string = "";
    a592:string = "";
    a593:string = "";
    a594:string = "";
    a595:string = "";
    a596:string = "";
    a597:string = "";
    a598:string = "";
    a599:string = "";
    a600:string = "";
    a601:string = "";
    a602:string = "";
    a603:string = "";
    a604:string = "";
    a605:string = "";
    a606:string = "";
    a607:string = "";
    a608:string = "";
    a609:string = "";
    a610:string = "";
    a611:string = "";
    a612:string = "";
    a613:string = "";
    a614:string = "";
    a615:string = "";
    a616:string = "";
    a617:string = "";
    a618:string = "";
    a619:string = "";
    a620:string = "";
    a621:string = "";
    a622:string = "";
    a623:string = "";
    a624:string = "";
    a625:string = "";
    a626:string = "";
    a627:string = "";
    a628:string = "";
    a629:string = "";
    a630:string = "";
    a631:string = "";
    a632:string = "";
    a633:string = "";
    a634:string = "";
    a635:string = "";
    a636:string = "";
    a637:string = "";
    a638:string = "";
    a639:string = "";
    a640:string = "";
    a641:string = "";
    a642:string = "";
    a643:string = "";
    a644:string = "";
    a645:string = "";
    a646:string = "";
    a647:string = "";
    a648:string = "";
    a649:string = "";
    a650:string = "";
    a651:string = "";
    a652:string = "";
    a653:string = "";
    a654:string = "";
    a655:string = "";
    a656:string = "";
    a657:string = "";
    a658:string = "";
    a659:string = "";
    a660:string = "";
    a661:string = "";
    a662:string = "";
    a663:string = "";
    a664:string = "";
    a665:string = "";
    a666:string = "";
    a667:string = "";
    a668:string = "";
    a669:string = "";
    a670:string = "";
    a671:string = "";
    a672:string = "";
    a673:string = "";
    a674:string = "";
    a675:string = "";
    a676:string = "";
    a677:string = "";
    a678:string = "";
    a679:string = "";
    a680:string = "";
    a681:string = "";
    a682:string = "";
    a683:string = "";
    a684:string = "";
    a685:string = "";
    a686:string = "";
    a687:string = "";
    a688:string = "";
    a689:string = "";
    a690:string = "";
    a691:string = "";
    a692:string = "";
    a693:string = "";
    a694:string = "";
    a695:string = "";
    a696:string = "";
    a697:string = "";
    a698:string = "";
    a699:string = "";
    a700:string = "";
    a701:string = "";
    a702:string = "";
    a703:string = "";
    a704:string = "";
    a705:string = "";
    a706:string = "";
    a707:string = "";
    a708:string = "";
    a709:string = "";
    a710:string = "";
    a711:string = "";
    a712:string = "";
    a713:string = "";
    a714:string = "";
    a715:string = "";
    a716:string = "";
    a717:string = "";
    a718:string = "";
    a719:string = "";
    a720:string = "";
    a721:string = "";
    a722:string = "";
    a723:string = "";
    a724:string = "";
    a725:string = "";
    a726:string = "";
    a727:string = "";
    a728:string = "";
    a729:string = "";
    a730:string = "";
    a731:string = "";
    a732:string = "";
    a733:string = "";
    a734:string = "";
    a735:string = "";
    a736:string = "";
    a737:string = "";
    a738:string = "";
    a739:string = "";
    a740:string = "";
    a741:string = "";
    a742:string = "";
    a743:string = "";
    a744:string = "";
    a745:string = "";
    a746:string = "";
    a747:string = "";
    a748:string = "";
    a749:string = "";
    a750:string = "";
    a751:string = "";
    a752:string = "";
    a753:string = "";
    a754:string = "";
    a755:string = "";
    a756:string = "";
    a757:string = "";
    a758:string = "";
    a759:string = "";
    a760:string = "";
    a761:string = "";
    a762:string = "";
    a763:string = "";
    a764:string = "";
    a765:string = "";
    a766:string = "";
    a767:string = "";
    a768:string = "";
    a769:string = "";
    a770:string = "";
    a771:string = "";
    a772:string = "";
    a773:string = "";
    a774:string = "";
    a775:string = "";
    a776:string = "";
    a777:string = "";
    a778:string = "";
    a779:string = "";
    a780:string = "";
    a781:string = "";
    a782:string = "";
    a783:string = "";
    a784:string = "";
    a785:string = "";
    a786:string = "";
    a787:string = "";
    a788:string = "";
    a789:string = "";
    a790:string = "";
    a791:string = "";
    a792:string = "";
    a793:string = "";
    a794:string = "";
    a795:string = "";
    a796:string = "";
    a797:string = "";
    a798:string = "";
    a799:string = "";
    a800:string = "";
    a801:string = "";
    a802:string = "";
    a803:string = "";
    a804:string = "";
    a805:string = "";
    a806:string = "";
    a807:string = "";
    a808:string = "";
    a809:string = "";
    a810:string = "";
    a811:string = "";
    a812:string = "";
    a813:string = "";
    a814:string = "";
    a815:string = "";
    a816:string = "";
    a817:string = "";
    a818:string = "";
    a819:string = "";
    a820:string = "";
    a821:string = "";
    a822:string = "";
    a823:string = "";
    a824:string = "";
    a825:string = "";
    a826:string = "";
    a827:string = "";
    a828:string = "";
    a829:string = "";
    a830:string = "";
    a831:string = "";
    a832:string = "";
    a833:string = "";
    a834:string = "";
    a835:string = "";
    a836:string = "";
    a837:string = "";
    a838:string = "";
    a839:string = "";
    a840:string = "";
    a841:string = "";
    a842:string = "";
    a843:string = "";
    a844:string = "";
    a845:string = "";
    a846:string = "";
    a847:string = "";
    a848:string = "";
    a849:string = "";
    a850:string = "";
    a851:string = "";
    a852:string = "";
    a853:string = "";
    a854:string = "";
    a855:string = "";
    a856:string = "";
    a857:string = "";
    a858:string = "";
    a859:string = "";
    a860:string = "";
    a861:string = "";
    a862:string = "";
    a863:string = "";
    a864:string = "";
    a865:string = "";
    a866:string = "";
    a867:string = "";
    a868:string = "";
    a869:string = "";
    a870:string = "";
    a871:string = "";
    a872:string = "";
    a873:string = "";
    a874:string = "";
    a875:string = "";
    a876:string = "";
    a877:string = "";
    a878:string = "";
    a879:string = "";
    a880:string = "";
    a881:string = "";
    a882:string = "";
    a883:string = "";
    a884:string = "";
    a885:string = "";
    a886:string = "";
    a887:string = "";
    a888:string = "";
    a889:string = "";
    a890:string = "";
    a891:string = "";
    a892:string = "";
    a893:string = "";
    a894:string = "";
    a895:string = "";
    a896:string = "";
    a897:string = "";
    a898:string = "";
    a899:string = "";
    a900:string = "";
    a901:string = "";
    a902:string = "";
    a903:string = "";
    a904:string = "";
    a905:string = "";
    a906:string = "";
    a907:string = "";
    a908:string = "";
    a909:string = "";
    a910:string = "";
    a911:string = "";
    a912:string = "";
    a913:string = "";
    a914:string = "";
    a915:string = "";
    a916:string = "";
    a917:string = "";
    a918:string = "";
    a919:string = "";
    a920:string = "";
    a921:string = "";
    a922:string = "";
    a923:string = "";
    a924:string = "";
    a925:string = "";
    a926:string = "";
    a927:string = "";
    a928:string = "";
    a929:string = "";
    a930:string = "";
    a931:string = "";
    a932:string = "";
    a933:string = "";
    a934:string = "";
    a935:string = "";
    a936:string = "";
    a937:string = "";
    a938:string = "";
    a939:string = "";
    a940:string = "";
    a941:string = "";
    a942:string = "";
    a943:string = "";
    a944:string = "";
    a945:string = "";
    a946:string = "";
    a947:string = "";
    a948:string = "";
    a949:string = "";
    a950:string = "";
    a951:string = "";
    a952:string = "";
    a953:string = "";
    a954:string = "";
    a955:string = "";
    a956:string = "";
    a957:string = "";
    a958:string = "";
    a959:string = "";
    a960:string = "";
    a961:string = "";
    a962:string = "";
    a963:string = "";
    a964:string = "";
    a965:string = "";
    a966:string = "";
    a967:string = "";
    a968:string = "";
    a969:string = "";
    a970:string = "";
    a971:string = "";
    a972:string = "";
    a973:string = "";
    a974:string = "";
    a975:string = "";
    a976:string = "";
    a977:string = "";
    a978:string = "";
    a979:string = "";
    a980:string = "";
    a981:string = "";
    a982:string = "";
    a983:string = "";
    a984:string = "";
    a985:string = "";
    a986:string = "";
    a987:string = "";
    a988:string = "";
    a989:string = "";
    a990:string = "";
    a991:string = "";
    a992:string = "";
    a993:string = "";
    a994:string = "";
    a995:string = "";
    a996:string = "";
    a997:string = "";
    a998:string = "";
    a999:string = "";
    a1000:string = "";
    a1001:string = "";
    a1002:string = "";
    a1003:string = "";
    a1004:string = "";
    a1005:string = "";
    a1006:string = "";
    a1007:string = "";
    a1008:string = "";
    a1009:string = "";
    a1010:string = "";
    a1011:string = "";
    a1012:string = "";
    a1013:string = "";
    a1014:string = "";
    a1015:string = "";
    a1016:string = "";
    a1017:string = "a1017";
    a1018:string = "";
    a1019:string = "";
    static "100":string = "100";
    "101":number = 101;

    constructor() {
        "use sendable";
        super();
    }
}

class ChildExtendsDict extends ChildToDict {
    childField: number = 0;
    static "102":string = "102";
    "103":number = 103;

    constructor() {
        "use sendable";
        super();
    }
}

class StaticDict {
    static a0:string = "";
    static a1:string = "";
    static a2:string = "";
    static a3:string = "";
    static a4:string = "";
    static a5:string = "";
    static a6:string = "";
    static a7:string = "";
    static a8:string = "";
    static a9:string = "";
    static a10:string = "";
    static a11:string = "";
    static a12:string = "";
    static a13:string = "";
    static a14:string = "";
    static a15:string = "";
    static a16:string = "";
    static a17:string = "";
    static a18:string = "";
    static a19:string = "";
    static a20:string = "";
    static a21:string = "";
    static a22:string = "";
    static a23:string = "";
    static a24:string = "";
    static a25:string = "";
    static a26:string = "";
    static a27:string = "";
    static a28:string = "";
    static a29:string = "";
    static a30:string = "";
    static a31:string = "";
    static a32:string = "";
    static a33:string = "";
    static a34:string = "";
    static a35:string = "";
    static a36:string = "";
    static a37:string = "";
    static a38:string = "";
    static a39:string = "";
    static a40:string = "";
    static a41:string = "";
    static a42:string = "";
    static a43:string = "";
    static a44:string = "";
    static a45:string = "";
    static a46:string = "";
    static a47:string = "";
    static a48:string = "";
    static a49:string = "";
    static a50:string = "";
    static a51:string = "";
    static a52:string = "";
    static a53:string = "";
    static a54:string = "";
    static a55:string = "";
    static a56:string = "";
    static a57:string = "";
    static a58:string = "";
    static a59:string = "";
    static a60:string = "";
    static a61:string = "";
    static a62:string = "";
    static a63:string = "";
    static a64:string = "";
    static a65:string = "";
    static a66:string = "";
    static a67:string = "";
    static a68:string = "";
    static a69:string = "";
    static a70:string = "";
    static a71:string = "";
    static a72:string = "";
    static a73:string = "";
    static a74:string = "";
    static a75:string = "";
    static a76:string = "";
    static a77:string = "";
    static a78:string = "";
    static a79:string = "";
    static a80:string = "";
    static a81:string = "";
    static a82:string = "";
    static a83:string = "";
    static a84:string = "";
    static a85:string = "";
    static a86:string = "";
    static a87:string = "";
    static a88:string = "";
    static a89:string = "";
    static a90:string = "";
    static a91:string = "";
    static a92:string = "";
    static a93:string = "";
    static a94:string = "";
    static a95:string = "";
    static a96:string = "";
    static a97:string = "";
    static a98:string = "";
    static a99:string = "";
    static a100:string = "";
    static a101:string = "";
    static a102:string = "";
    static a103:string = "";
    static a104:string = "";
    static a105:string = "";
    static a106:string = "";
    static a107:string = "";
    static a108:string = "";
    static a109:string = "";
    static a110:string = "";
    static a111:string = "";
    static a112:string = "";
    static a113:string = "";
    static a114:string = "";
    static a115:string = "";
    static a116:string = "";
    static a117:string = "";
    static a118:string = "";
    static a119:string = "";
    static a120:string = "";
    static a121:string = "";
    static a122:string = "";
    static a123:string = "";
    static a124:string = "";
    static a125:string = "";
    static a126:string = "";
    static a127:string = "";
    static a128:string = "";
    static a129:string = "";
    static a130:string = "";
    static a131:string = "";
    static a132:string = "";
    static a133:string = "";
    static a134:string = "";
    static a135:string = "";
    static a136:string = "";
    static a137:string = "";
    static a138:string = "";
    static a139:string = "";
    static a140:string = "";
    static a141:string = "";
    static a142:string = "";
    static a143:string = "";
    static a144:string = "";
    static a145:string = "";
    static a146:string = "";
    static a147:string = "";
    static a148:string = "";
    static a149:string = "";
    static a150:string = "";
    static a151:string = "";
    static a152:string = "";
    static a153:string = "";
    static a154:string = "";
    static a155:string = "";
    static a156:string = "";
    static a157:string = "";
    static a158:string = "";
    static a159:string = "";
    static a160:string = "";
    static a161:string = "";
    static a162:string = "";
    static a163:string = "";
    static a164:string = "";
    static a165:string = "";
    static a166:string = "";
    static a167:string = "";
    static a168:string = "";
    static a169:string = "";
    static a170:string = "";
    static a171:string = "";
    static a172:string = "";
    static a173:string = "";
    static a174:string = "";
    static a175:string = "";
    static a176:string = "";
    static a177:string = "";
    static a178:string = "";
    static a179:string = "";
    static a180:string = "";
    static a181:string = "";
    static a182:string = "";
    static a183:string = "";
    static a184:string = "";
    static a185:string = "";
    static a186:string = "";
    static a187:string = "";
    static a188:string = "";
    static a189:string = "";
    static a190:string = "";
    static a191:string = "";
    static a192:string = "";
    static a193:string = "";
    static a194:string = "";
    static a195:string = "";
    static a196:string = "";
    static a197:string = "";
    static a198:string = "";
    static a199:string = "";
    static a200:string = "";
    static a201:string = "";
    static a202:string = "";
    static a203:string = "";
    static a204:string = "";
    static a205:string = "";
    static a206:string = "";
    static a207:string = "";
    static a208:string = "";
    static a209:string = "";
    static a210:string = "";
    static a211:string = "";
    static a212:string = "";
    static a213:string = "";
    static a214:string = "";
    static a215:string = "";
    static a216:string = "";
    static a217:string = "";
    static a218:string = "";
    static a219:string = "";
    static a220:string = "";
    static a221:string = "";
    static a222:string = "";
    static a223:string = "";
    static a224:string = "";
    static a225:string = "";
    static a226:string = "";
    static a227:string = "";
    static a228:string = "";
    static a229:string = "";
    static a230:string = "";
    static a231:string = "";
    static a232:string = "";
    static a233:string = "";
    static a234:string = "";
    static a235:string = "";
    static a236:string = "";
    static a237:string = "";
    static a238:string = "";
    static a239:string = "";
    static a240:string = "";
    static a241:string = "";
    static a242:string = "";
    static a243:string = "";
    static a244:string = "";
    static a245:string = "";
    static a246:string = "";
    static a247:string = "";
    static a248:string = "";
    static a249:string = "";
    static a250:string = "";
    static a251:string = "";
    static a252:string = "";
    static a253:string = "";
    static a254:string = "";
    static a255:string = "";
    static a256:string = "";
    static a257:string = "";
    static a258:string = "";
    static a259:string = "";
    static a260:string = "";
    static a261:string = "";
    static a262:string = "";
    static a263:string = "";
    static a264:string = "";
    static a265:string = "";
    static a266:string = "";
    static a267:string = "";
    static a268:string = "";
    static a269:string = "";
    static a270:string = "";
    static a271:string = "";
    static a272:string = "";
    static a273:string = "";
    static a274:string = "";
    static a275:string = "";
    static a276:string = "";
    static a277:string = "";
    static a278:string = "";
    static a279:string = "";
    static a280:string = "";
    static a281:string = "";
    static a282:string = "";
    static a283:string = "";
    static a284:string = "";
    static a285:string = "";
    static a286:string = "";
    static a287:string = "";
    static a288:string = "";
    static a289:string = "";
    static a290:string = "";
    static a291:string = "";
    static a292:string = "";
    static a293:string = "";
    static a294:string = "";
    static a295:string = "";
    static a296:string = "";
    static a297:string = "";
    static a298:string = "";
    static a299:string = "";
    static a300:string = "";
    static a301:string = "";
    static a302:string = "";
    static a303:string = "";
    static a304:string = "";
    static a305:string = "";
    static a306:string = "";
    static a307:string = "";
    static a308:string = "";
    static a309:string = "";
    static a310:string = "";
    static a311:string = "";
    static a312:string = "";
    static a313:string = "";
    static a314:string = "";
    static a315:string = "";
    static a316:string = "";
    static a317:string = "";
    static a318:string = "";
    static a319:string = "";
    static a320:string = "";
    static a321:string = "";
    static a322:string = "";
    static a323:string = "";
    static a324:string = "";
    static a325:string = "";
    static a326:string = "";
    static a327:string = "";
    static a328:string = "";
    static a329:string = "";
    static a330:string = "";
    static a331:string = "";
    static a332:string = "";
    static a333:string = "";
    static a334:string = "";
    static a335:string = "";
    static a336:string = "";
    static a337:string = "";
    static a338:string = "";
    static a339:string = "";
    static a340:string = "";
    static a341:string = "";
    static a342:string = "";
    static a343:string = "";
    static a344:string = "";
    static a345:string = "";
    static a346:string = "";
    static a347:string = "";
    static a348:string = "";
    static a349:string = "";
    static a350:string = "";
    static a351:string = "";
    static a352:string = "";
    static a353:string = "";
    static a354:string = "";
    static a355:string = "";
    static a356:string = "";
    static a357:string = "";
    static a358:string = "";
    static a359:string = "";
    static a360:string = "";
    static a361:string = "";
    static a362:string = "";
    static a363:string = "";
    static a364:string = "";
    static a365:string = "";
    static a366:string = "";
    static a367:string = "";
    static a368:string = "";
    static a369:string = "";
    static a370:string = "";
    static a371:string = "";
    static a372:string = "";
    static a373:string = "";
    static a374:string = "";
    static a375:string = "";
    static a376:string = "";
    static a377:string = "";
    static a378:string = "";
    static a379:string = "";
    static a380:string = "";
    static a381:string = "";
    static a382:string = "";
    static a383:string = "";
    static a384:string = "";
    static a385:string = "";
    static a386:string = "";
    static a387:string = "";
    static a388:string = "";
    static a389:string = "";
    static a390:string = "";
    static a391:string = "";
    static a392:string = "";
    static a393:string = "";
    static a394:string = "";
    static a395:string = "";
    static a396:string = "";
    static a397:string = "";
    static a398:string = "";
    static a399:string = "";
    static a400:string = "";
    static a401:string = "";
    static a402:string = "";
    static a403:string = "";
    static a404:string = "";
    static a405:string = "";
    static a406:string = "";
    static a407:string = "";
    static a408:string = "";
    static a409:string = "";
    static a410:string = "";
    static a411:string = "";
    static a412:string = "";
    static a413:string = "";
    static a414:string = "";
    static a415:string = "";
    static a416:string = "";
    static a417:string = "";
    static a418:string = "";
    static a419:string = "";
    static a420:string = "";
    static a421:string = "";
    static a422:string = "";
    static a423:string = "";
    static a424:string = "";
    static a425:string = "";
    static a426:string = "";
    static a427:string = "";
    static a428:string = "";
    static a429:string = "";
    static a430:string = "";
    static a431:string = "";
    static a432:string = "";
    static a433:string = "";
    static a434:string = "";
    static a435:string = "";
    static a436:string = "";
    static a437:string = "";
    static a438:string = "";
    static a439:string = "";
    static a440:string = "";
    static a441:string = "";
    static a442:string = "";
    static a443:string = "";
    static a444:string = "";
    static a445:string = "";
    static a446:string = "";
    static a447:string = "";
    static a448:string = "";
    static a449:string = "";
    static a450:string = "";
    static a451:string = "";
    static a452:string = "";
    static a453:string = "";
    static a454:string = "";
    static a455:string = "";
    static a456:string = "";
    static a457:string = "";
    static a458:string = "";
    static a459:string = "";
    static a460:string = "";
    static a461:string = "";
    static a462:string = "";
    static a463:string = "";
    static a464:string = "";
    static a465:string = "";
    static a466:string = "";
    static a467:string = "";
    static a468:string = "";
    static a469:string = "";
    static a470:string = "";
    static a471:string = "";
    static a472:string = "";
    static a473:string = "";
    static a474:string = "";
    static a475:string = "";
    static a476:string = "";
    static a477:string = "";
    static a478:string = "";
    static a479:string = "";
    static a480:string = "";
    static a481:string = "";
    static a482:string = "";
    static a483:string = "";
    static a484:string = "";
    static a485:string = "";
    static a486:string = "";
    static a487:string = "";
    static a488:string = "";
    static a489:string = "";
    static a490:string = "";
    static a491:string = "";
    static a492:string = "";
    static a493:string = "";
    static a494:string = "";
    static a495:string = "";
    static a496:string = "";
    static a497:string = "";
    static a498:string = "";
    static a499:string = "";
    static a500:string = "";
    static a501:string = "";
    static a502:string = "";
    static a503:string = "";
    static a504:string = "";
    static a505:string = "";
    static a506:string = "";
    static a507:string = "";
    static a508:string = "";
    static a509:string = "";
    static a510:string = "";
    static a511:string = "";
    static a512:string = "";
    static a513:string = "";
    static a514:string = "";
    static a515:string = "";
    static a516:string = "";
    static a517:string = "";
    static a518:string = "";
    static a519:string = "";
    static a520:string = "";
    static a521:string = "";
    static a522:string = "";
    static a523:string = "";
    static a524:string = "";
    static a525:string = "";
    static a526:string = "";
    static a527:string = "";
    static a528:string = "";
    static a529:string = "";
    static a530:string = "";
    static a531:string = "";
    static a532:string = "";
    static a533:string = "";
    static a534:string = "";
    static a535:string = "";
    static a536:string = "";
    static a537:string = "";
    static a538:string = "";
    static a539:string = "";
    static a540:string = "";
    static a541:string = "";
    static a542:string = "";
    static a543:string = "";
    static a544:string = "";
    static a545:string = "";
    static a546:string = "";
    static a547:string = "";
    static a548:string = "";
    static a549:string = "";
    static a550:string = "";
    static a551:string = "";
    static a552:string = "";
    static a553:string = "";
    static a554:string = "";
    static a555:string = "";
    static a556:string = "";
    static a557:string = "";
    static a558:string = "";
    static a559:string = "";
    static a560:string = "";
    static a561:string = "";
    static a562:string = "";
    static a563:string = "";
    static a564:string = "";
    static a565:string = "";
    static a566:string = "";
    static a567:string = "";
    static a568:string = "";
    static a569:string = "";
    static a570:string = "";
    static a571:string = "";
    static a572:string = "";
    static a573:string = "";
    static a574:string = "";
    static a575:string = "";
    static a576:string = "";
    static a577:string = "";
    static a578:string = "";
    static a579:string = "";
    static a580:string = "";
    static a581:string = "";
    static a582:string = "";
    static a583:string = "";
    static a584:string = "";
    static a585:string = "";
    static a586:string = "";
    static a587:string = "";
    static a588:string = "";
    static a589:string = "";
    static a590:string = "";
    static a591:string = "";
    static a592:string = "";
    static a593:string = "";
    static a594:string = "";
    static a595:string = "";
    static a596:string = "";
    static a597:string = "";
    static a598:string = "";
    static a599:string = "";
    static a600:string = "";
    static a601:string = "";
    static a602:string = "";
    static a603:string = "";
    static a604:string = "";
    static a605:string = "";
    static a606:string = "";
    static a607:string = "";
    static a608:string = "";
    static a609:string = "";
    static a610:string = "";
    static a611:string = "";
    static a612:string = "";
    static a613:string = "";
    static a614:string = "";
    static a615:string = "";
    static a616:string = "";
    static a617:string = "";
    static a618:string = "";
    static a619:string = "";
    static a620:string = "";
    static a621:string = "";
    static a622:string = "";
    static a623:string = "";
    static a624:string = "";
    static a625:string = "";
    static a626:string = "";
    static a627:string = "";
    static a628:string = "";
    static a629:string = "";
    static a630:string = "";
    static a631:string = "";
    static a632:string = "";
    static a633:string = "";
    static a634:string = "";
    static a635:string = "";
    static a636:string = "";
    static a637:string = "";
    static a638:string = "";
    static a639:string = "";
    static a640:string = "";
    static a641:string = "";
    static a642:string = "";
    static a643:string = "";
    static a644:string = "";
    static a645:string = "";
    static a646:string = "";
    static a647:string = "";
    static a648:string = "";
    static a649:string = "";
    static a650:string = "";
    static a651:string = "";
    static a652:string = "";
    static a653:string = "";
    static a654:string = "";
    static a655:string = "";
    static a656:string = "";
    static a657:string = "";
    static a658:string = "";
    static a659:string = "";
    static a660:string = "";
    static a661:string = "";
    static a662:string = "";
    static a663:string = "";
    static a664:string = "";
    static a665:string = "";
    static a666:string = "";
    static a667:string = "";
    static a668:string = "";
    static a669:string = "";
    static a670:string = "";
    static a671:string = "";
    static a672:string = "";
    static a673:string = "";
    static a674:string = "";
    static a675:string = "";
    static a676:string = "";
    static a677:string = "";
    static a678:string = "";
    static a679:string = "";
    static a680:string = "";
    static a681:string = "";
    static a682:string = "";
    static a683:string = "";
    static a684:string = "";
    static a685:string = "";
    static a686:string = "";
    static a687:string = "";
    static a688:string = "";
    static a689:string = "";
    static a690:string = "";
    static a691:string = "";
    static a692:string = "";
    static a693:string = "";
    static a694:string = "";
    static a695:string = "";
    static a696:string = "";
    static a697:string = "";
    static a698:string = "";
    static a699:string = "";
    static a700:string = "";
    static a701:string = "";
    static a702:string = "";
    static a703:string = "";
    static a704:string = "";
    static a705:string = "";
    static a706:string = "";
    static a707:string = "";
    static a708:string = "";
    static a709:string = "";
    static a710:string = "";
    static a711:string = "";
    static a712:string = "";
    static a713:string = "";
    static a714:string = "";
    static a715:string = "";
    static a716:string = "";
    static a717:string = "";
    static a718:string = "";
    static a719:string = "";
    static a720:string = "";
    static a721:string = "";
    static a722:string = "";
    static a723:string = "";
    static a724:string = "";
    static a725:string = "";
    static a726:string = "";
    static a727:string = "";
    static a728:string = "";
    static a729:string = "";
    static a730:string = "";
    static a731:string = "";
    static a732:string = "";
    static a733:string = "";
    static a734:string = "";
    static a735:string = "";
    static a736:string = "";
    static a737:string = "";
    static a738:string = "";
    static a739:string = "";
    static a740:string = "";
    static a741:string = "";
    static a742:string = "";
    static a743:string = "";
    static a744:string = "";
    static a745:string = "";
    static a746:string = "";
    static a747:string = "";
    static a748:string = "";
    static a749:string = "";
    static a750:string = "";
    static a751:string = "";
    static a752:string = "";
    static a753:string = "";
    static a754:string = "";
    static a755:string = "";
    static a756:string = "";
    static a757:string = "";
    static a758:string = "";
    static a759:string = "";
    static a760:string = "";
    static a761:string = "";
    static a762:string = "";
    static a763:string = "";
    static a764:string = "";
    static a765:string = "";
    static a766:string = "";
    static a767:string = "";
    static a768:string = "";
    static a769:string = "";
    static a770:string = "";
    static a771:string = "";
    static a772:string = "";
    static a773:string = "";
    static a774:string = "";
    static a775:string = "";
    static a776:string = "";
    static a777:string = "";
    static a778:string = "";
    static a779:string = "";
    static a780:string = "";
    static a781:string = "";
    static a782:string = "";
    static a783:string = "";
    static a784:string = "";
    static a785:string = "";
    static a786:string = "";
    static a787:string = "";
    static a788:string = "";
    static a789:string = "";
    static a790:string = "";
    static a791:string = "";
    static a792:string = "";
    static a793:string = "";
    static a794:string = "";
    static a795:string = "";
    static a796:string = "";
    static a797:string = "";
    static a798:string = "";
    static a799:string = "";
    static a800:string = "";
    static a801:string = "";
    static a802:string = "";
    static a803:string = "";
    static a804:string = "";
    static a805:string = "";
    static a806:string = "";
    static a807:string = "";
    static a808:string = "";
    static a809:string = "";
    static a810:string = "";
    static a811:string = "";
    static a812:string = "";
    static a813:string = "";
    static a814:string = "";
    static a815:string = "";
    static a816:string = "";
    static a817:string = "";
    static a818:string = "";
    static a819:string = "";
    static a820:string = "";
    static a821:string = "";
    static a822:string = "";
    static a823:string = "";
    static a824:string = "";
    static a825:string = "";
    static a826:string = "";
    static a827:string = "";
    static a828:string = "";
    static a829:string = "";
    static a830:string = "";
    static a831:string = "";
    static a832:string = "";
    static a833:string = "";
    static a834:string = "";
    static a835:string = "";
    static a836:string = "";
    static a837:string = "";
    static a838:string = "";
    static a839:string = "";
    static a840:string = "";
    static a841:string = "";
    static a842:string = "";
    static a843:string = "";
    static a844:string = "";
    static a845:string = "";
    static a846:string = "";
    static a847:string = "";
    static a848:string = "";
    static a849:string = "";
    static a850:string = "";
    static a851:string = "";
    static a852:string = "";
    static a853:string = "";
    static a854:string = "";
    static a855:string = "";
    static a856:string = "";
    static a857:string = "";
    static a858:string = "";
    static a859:string = "";
    static a860:string = "";
    static a861:string = "";
    static a862:string = "";
    static a863:string = "";
    static a864:string = "";
    static a865:string = "";
    static a866:string = "";
    static a867:string = "";
    static a868:string = "";
    static a869:string = "";
    static a870:string = "";
    static a871:string = "";
    static a872:string = "";
    static a873:string = "";
    static a874:string = "";
    static a875:string = "";
    static a876:string = "";
    static a877:string = "";
    static a878:string = "";
    static a879:string = "";
    static a880:string = "";
    static a881:string = "";
    static a882:string = "";
    static a883:string = "";
    static a884:string = "";
    static a885:string = "";
    static a886:string = "";
    static a887:string = "";
    static a888:string = "";
    static a889:string = "";
    static a890:string = "";
    static a891:string = "";
    static a892:string = "";
    static a893:string = "";
    static a894:string = "";
    static a895:string = "";
    static a896:string = "";
    static a897:string = "";
    static a898:string = "";
    static a899:string = "";
    static a900:string = "";
    static a901:string = "";
    static a902:string = "";
    static a903:string = "";
    static a904:string = "";
    static a905:string = "";
    static a906:string = "";
    static a907:string = "";
    static a908:string = "";
    static a909:string = "";
    static a910:string = "";
    static a911:string = "";
    static a912:string = "";
    static a913:string = "";
    static a914:string = "";
    static a915:string = "";
    static a916:string = "";
    static a917:string = "";
    static a918:string = "";
    static a919:string = "";
    static a920:string = "";
    static a921:string = "";
    static a922:string = "";
    static a923:string = "";
    static a924:string = "";
    static a925:string = "";
    static a926:string = "";
    static a927:string = "";
    static a928:string = "";
    static a929:string = "";
    static a930:string = "";
    static a931:string = "";
    static a932:string = "";
    static a933:string = "";
    static a934:string = "";
    static a935:string = "";
    static a936:string = "";
    static a937:string = "";
    static a938:string = "";
    static a939:string = "";
    static a940:string = "";
    static a941:string = "";
    static a942:string = "";
    static a943:string = "";
    static a944:string = "";
    static a945:string = "";
    static a946:string = "";
    static a947:string = "";
    static a948:string = "";
    static a949:string = "";
    static a950:string = "";
    static a951:string = "";
    static a952:string = "";
    static a953:string = "";
    static a954:string = "";
    static a955:string = "";
    static a956:string = "";
    static a957:string = "";
    static a958:string = "";
    static a959:string = "";
    static a960:string = "";
    static a961:string = "";
    static a962:string = "";
    static a963:string = "";
    static a964:string = "";
    static a965:string = "";
    static a966:string = "";
    static a967:string = "";
    static a968:string = "";
    static a969:string = "";
    static a970:string = "";
    static a971:string = "";
    static a972:string = "";
    static a973:string = "";
    static a974:string = "";
    static a975:string = "";
    static a976:string = "";
    static a977:string = "";
    static a978:string = "";
    static a979:string = "";
    static a980:string = "";
    static a981:string = "";
    static a982:string = "";
    static a983:string = "";
    static a984:string = "";
    static a985:string = "";
    static a986:string = "";
    static a987:string = "";
    static a988:string = "";
    static a989:string = "";
    static a990:string = "";
    static a991:string = "";
    static a992:string = "";
    static a993:string = "";
    static a994:string = "";
    static a995:string = "";
    static a996:string = "";
    static a997:string = "";
    static a998:string = "";
    static a999:string = "";
    static a1000:string = "";
    static a1001:string = "";
    static a1002:string = "";
    static a1003:string = "";
    static a1004:string = "";
    static a1005:string = "";
    static a1006:string = "";
    static a1007:string = "";
    static a1008:string = "";
    static a1009:string = "";
    static a1010:string = "";
    static a1011:string = "";
    static a1012:string = "";
    static a1013:string = "";
    static a1014:string = "";
    static a1015:string = "";
    static a1016:string = "";
    static a1017:string = "a1017";
    static a1018:string = "";
    static a1019:string = "";
    static "104":number = 104
    static get a1020() {
        print("StaticDict getter 1020");
    }

    constructor() {
        "use sendable";
    }
}

function testParent(parent: Parent) {
    // test getter/setter
    parent.age;
    parent.age = 1;
    Parent.sAge;
    Parent.sAge = 1;
    // test field
    print("parent.field = " + parent.field);
    print("Parent.sField = " + Parent.sField);
    print("Parent.123 = " + parent["123"]);
    print("Parent.s123 = " + Parent[123]);
    print("Parent.aa = " + parent.aa);
    print("Parent.560 = " + parent[560]);
    print("Parent.cc = " + parent.cc);
}

function testChild(child: Child) {
    // test base
    testParent(child);
    // test child
    print("child.childField = " + child.childField);
    print("child.45 = " + child[45]);
    print("child.855 = " + child[855]);
    print("child.ff = " + child.ff);
}

function testChildToDict(child: ChildToDict) {
    // test parent
    testParent(child);
    // test childToDict
    print("child.a1017 = " + child.a1017);
    print("child.100 = " + ChildToDict[100]);
    print("child.101 = " + child["101"]);
}

function testChildExtendsDict(child: ChildExtendsDict) {
    // test parent
    testChildToDict(child);
    // test childExtendsDict
    print("child.childField = " + child.childField);
    print("child.102 = " + ChildExtendsDict[102]);
    print("child.103 = " + child["103"]);
}

function testICChecking(child: ChildToDict) {
    let loopIndex: number = 0;
    try {
        for (loopIndex = 0; loopIndex < 2000; loopIndex++) {
            child.a999 = loopIndex < 1000 ? "hi" : 1;
        }
        print("[IC] Success to assign member in dict mode times with mismatched value");
    } catch (error) {
        print("[IC] Fail to assign member in dict mode with mismatched value. err: " + error + ", loopIndex: " + loopIndex);
    }
}

function testStaticDict() {
    StaticDict.a1020;
    print("StaticDict.104 = " + StaticDict[104]);
}

function testKeys() {
    Object.keys(Parent);
    Object.keys(StaticDict);
    for (const property in Parent) {
        print(property)
    }
}

let parent = new Parent;
let child = new Child;
let childToDict = new ChildToDict;
let childExtendsDict = new ChildExtendsDict;

testParent(parent);
testChild(child);
testChildToDict(childToDict);
testChildExtendsDict(childExtendsDict);
testICChecking(childToDict);
testStaticDict();
testKeys();