Contract Address Details

0x606167F815e62D5f6196C04648df5873F960AB2D

Token
Pixudi. Searching for Dragon Stone 1. (PSFDS1)
Creator
0x5dcc5b–053863 at 0xb9dcab–4aed58
Balance
0 VLX
Tokens
Fetching tokens...
Transactions
212 Transactions
Transfers
0 Transfers
Gas Used
52,540,978
Last Balance Update
69800111

Contract Creation Code

Verify & Publish
0x60806040523480156200001157600080fd5b50604051620056fa380380620056fa8339818101604052810190620000379190620002a9565b828281600090816200004a91906200058e565b5080600190816200005c91906200058e565b50505080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005600a8190555050505062000675565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200011a82620000cf565b810181811067ffffffffffffffff821117156200013c576200013b620000e0565b5b80604052505050565b600062000151620000b1565b90506200015f82826200010f565b919050565b600067ffffffffffffffff821115620001825762000181620000e0565b5b6200018d82620000cf565b9050602081019050919050565b60005b83811015620001ba5780820151818401526020810190506200019d565b60008484015250505050565b6000620001dd620001d78462000164565b62000145565b905082815260208101848484011115620001fc57620001fb620000ca565b5b620002098482856200019a565b509392505050565b600082601f830112620002295762000228620000c5565b5b81516200023b848260208601620001c6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002718262000244565b9050919050565b620002838162000264565b81146200028f57600080fd5b50565b600081519050620002a38162000278565b92915050565b600080600060608486031215620002c557620002c4620000bb565b5b600084015167ffffffffffffffff811115620002e657620002e5620000c0565b5b620002f48682870162000211565b935050602084015167ffffffffffffffff811115620003185762000317620000c0565b5b620003268682870162000211565b9250506040620003398682870162000292565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200039657607f821691505b602082108103620003ac57620003ab6200034e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003d7565b620004228683620003d7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200046f6200046962000463846200043a565b62000444565b6200043a565b9050919050565b6000819050919050565b6200048b836200044e565b620004a36200049a8262000476565b848454620003e4565b825550505050565b600090565b620004ba620004ab565b620004c781848462000480565b505050565b5b81811015620004ef57620004e3600082620004b0565b600181019050620004cd565b5050565b601f8211156200053e576200050881620003b2565b6200051384620003c7565b8101602085101562000523578190505b6200053b6200053285620003c7565b830182620004cc565b50505b505050565b600082821c905092915050565b6000620005636000198460080262000543565b1980831691505092915050565b60006200057e838362000550565b9150826002028217905092915050565b620005998262000343565b67ffffffffffffffff811115620005b557620005b4620000e0565b5b620005c182546200037d565b620005ce828285620004f3565b600060209050601f831160018114620006065760008415620005f1578287015190505b620005fd858262000570565b8655506200066d565b601f1984166200061686620003b2565b60005b82811015620006405784890151825560018201915060208501945060208101905062000619565b868310156200066057848901516200065c601f89168262000550565b8355505b6001600288020188555050505b505050505050565b61507580620006856000396000f3fe6080604052600436106101815760003560e01c806370a08231116100d1578063c87b56dd1161008a578063e0391b0911610064578063e0391b09146105b3578063e985e9c5146105de578063ef2d17461461061b578063f0be4fac1461064657610181565b8063c87b56dd1461050e578063d4cd4c7d1461054b578063dd6d3ca71461058857610181565b806370a08231146103fb57806377eb17b41461043857806395d89b41146104755780639b1225c4146104a0578063a22cb465146104bc578063b88d4fde146104e557610181565b806323b872dd1161013e57806342842e0e1161011857806342842e0e1461031b578063576f7ea7146103445780635b2103fa146103815780636352211e146103be57610181565b806323b872dd146102ba578063321a3e2f146102e357806336f7992b146102ff57610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780630be80f39146102545780631dadae8e1461027d575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906137bd565b610671565b6040516101ba9190613805565b60405180910390f35b3480156101cf57600080fd5b506101d8610753565b6040516101e591906138b0565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190613908565b6107e5565b6040516102229190613976565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906139bd565b61082b565b005b34801561026057600080fd5b5061027b60048036038101906102769190613908565b610942565b005b34801561028957600080fd5b506102a4600480360381019061029f91906139fd565b6109a6565b6040516102b19190613bf3565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190613c15565b610d0c565b005b6102fd60048036038101906102f89190613908565b610d6c565b005b61031960048036038101906103149190613c68565b610ee7565b005b34801561032757600080fd5b50610342600480360381019061033d9190613c15565b611028565b005b34801561035057600080fd5b5061036b60048036038101906103669190613908565b611048565b6040516103789190613d38565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a391906139fd565b6112da565b6040516103b59190613d69565b60405180910390f35b3480156103ca57600080fd5b506103e560048036038101906103e09190613908565b611326565b6040516103f29190613976565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d91906139fd565b6113ac565b60405161042f9190613d69565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190613eb9565b611463565b60405161046c9190613d69565b60405180910390f35b34801561048157600080fd5b5061048a611501565b60405161049791906138b0565b60405180910390f35b6104ba60048036038101906104b59190613908565b611593565b005b3480156104c857600080fd5b506104e360048036038101906104de9190613f70565b6117fd565b005b3480156104f157600080fd5b5061050c60048036038101906105079190614051565b611813565b005b34801561051a57600080fd5b5061053560048036038101906105309190613908565b611875565b60405161054291906138b0565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d91906139fd565b611987565b60405161057f9190613bf3565b60405180910390f35b34801561059457600080fd5b5061059d611cc8565b6040516105aa9190613d69565b60405180910390f35b3480156105bf57600080fd5b506105c8611cd2565b6040516105d59190613bf3565b60405180910390f35b3480156105ea57600080fd5b50610605600480360381019061060091906140d4565b611fb3565b6040516106129190613805565b60405180910390f35b34801561062757600080fd5b50610630612047565b60405161063d9190613d69565b60405180910390f35b34801561065257600080fd5b5061065b612058565b6040516106689190613bf3565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061073c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061074c575061074b8261233a565b5b9050919050565b60606000805461076290614143565b80601f016020809104026020016040519081016040528092919081815260200182805461078e90614143565b80156107db5780601f106107b0576101008083540402835291602001916107db565b820191906000526020600020905b8154815290600101906020018083116107be57829003601f168201915b5050505050905090565b60006107f0826123a4565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061083682611326565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d906141e6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108c56123ef565b73ffffffffffffffffffffffffffffffffffffffff1614806108f457506108f3816108ee6123ef565b611fb3565b5b610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90614278565b60405180910390fd5b61093d83836123f7565b505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c57600080fd5b80600a8190555050565b606060006109b460076124b0565b90506000806000600190505b838111610a25578573ffffffffffffffffffffffffffffffffffffffff166109e7826124be565b73ffffffffffffffffffffffffffffffffffffffff1603610a1257600183610a0f91906142c7565b92505b8080610a1d906142fb565b9150506109c0565b506000610a3260076124b0565b905060008367ffffffffffffffff811115610a5057610a4f613d8e565b5b604051908082528060200260200182016040528015610a8957816020015b610a76613703565b815260200190600190039081610a6e5790505b5090506000600190505b828111610cfe578773ffffffffffffffffffffffffffffffffffffffff16610aba826124be565b73ffffffffffffffffffffffffffffffffffffffff1603610ceb57600b600082815260200190815260200160002060000154828581518110610aff57610afe614343565b5b60200260200101516000018181525050610b1881611875565b828581518110610b2b57610b2a614343565b5b602002602001015160800181905250600b600082815260200190815260200160002060020160009054906101000a900460ff16828581518110610b7157610b70614343565b5b60200260200101516060019015159081151581525050600b600082815260200190815260200160002060010154828581518110610bb157610bb0614343565b5b60200260200101516020018181525050610bca816124be565b828581518110610bdd57610bdc614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60008281526020019081526020016000206003018054610c3c90614143565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6890614143565b8015610cb55780601f10610c8a57610100808354040283529160200191610cb5565b820191906000526020600020905b815481529060010190602001808311610c9857829003601f168201915b5050505050828581518110610ccd57610ccc614343565b5b602002602001015160a001819052508380610ce7906142fb565b9450505b8080610cf6906142fb565b915050610a93565b508095505050505050919050565b610d1d610d176123ef565b826124fb565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906143e4565b60405180910390fd5b610d67838383612590565b505050565b6000610d77826124be565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90614450565b60405180910390fd5b60011515600b600084815260200190815260200160002060020160009054906101000a900460ff16151514610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e48906144bc565b60405180910390fd5b610e5b6008612889565b6000600b600084815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506000600b600084815260200190815260200160002060010181905550817f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda3282600080604051610edb93929190614521565b60405180910390a25050565b6000610ef2826124be565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5990614450565b60405180910390fd5b60011515600b600084815260200190815260200160002060020160009054906101000a900460ff16151514610f9c57610f9b60086128e5565b5b6001600b600084815260200190815260200160002060020160006101000a81548160ff02191690831515021790555082600b600084815260200190815260200160002060010181905550817f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda328260018660405161101b93929190614558565b60405180910390a2505050565b61104383838360405180602001604052806000815250611813565b505050565b611050613703565b6000600167ffffffffffffffff81111561106d5761106c613d8e565b5b6040519080825280602002602001820160405280156110a657816020015b611093613703565b81526020019060019003908161108b5790505b509050600b600084815260200190815260200160002060000154816000815181106110d4576110d3614343565b5b602002602001015160000181815250506110ed83611875565b8160008151811061110157611100614343565b5b602002602001015160800181905250600b600084815260200190815260200160002060020160009054906101000a900460ff168160008151811061114857611147614343565b5b60200260200101516060019015159081151581525050600b6000848152602001908152602001600020600101548160008151811061118957611188614343565b5b602002602001015160200181815250506111a2836124be565b816000815181106111b6576111b5614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b6000848152602001908152602001600020600301805461121590614143565b80601f016020809104026020016040519081016040528092919081815260200182805461124190614143565b801561128e5780601f106112635761010080835404028352916020019161128e565b820191906000526020600020905b81548152906001019060200180831161127157829003601f168201915b5050505050816000815181106112a7576112a6614343565b5b602002602001015160a00181905250806000815181106112ca576112c9614343565b5b6020026020010151915050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600080611332836124be565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a906145db565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139061466d565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114bf57600080fd5b6114c960076128e5565b60006114d560076124b0565b90506114e184826128fb565b6114eb8186612919565b6114f6818585612986565b809150509392505050565b60606001805461151090614143565b80601f016020809104026020016040519081016040528092919081815260200182805461153c90614143565b80156115895780601f1061155e57610100808354040283529160200191611589565b820191906000526020600020905b81548152906001019060200180831161156c57829003601f168201915b5050505050905090565b6000600b60008381526020019081526020016000206001015490506000600b600084815260200190815260200160002060020160009054906101000a900460ff16905066038d7ea4c68000826115e9919061468d565b341461162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162190614741565b60405180910390fd5b6001151581151514611671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611668906147ad565b60405180910390fd5b6000600b600085815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506116aa6008612889565b60006116b5846124be565b90506116c2813386612590565b6116cc308561082b565b8073ffffffffffffffffffffffffffffffffffffffff166108fc606434600a5460646116f891906147cd565b611702919061468d565b61170c9190614830565b9081150290604051600060405180830381858888f19350505050158015611737573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606434600a54611784919061468d565b61178e9190614830565b9081150290604051600060405180830381858888f193505050501580156117b9573d6000803e3d6000fd5b50837f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda32336000806040516117ef93929190614521565b60405180910390a250505050565b61180f6118086123ef565b8383612a48565b5050565b61182461181e6123ef565b836124fb565b611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a906143e4565b60405180910390fd5b61186f84848484612bb4565b50505050565b6060611880826123a4565b60006006600084815260200190815260200160002080546118a090614143565b80601f01602080910402602001604051908101604052809291908181526020018280546118cc90614143565b80156119195780601f106118ee57610100808354040283529160200191611919565b820191906000526020600020905b8154815290600101906020018083116118fc57829003601f168201915b50505050509050600061192a612c10565b9050600081510361193f578192505050611982565b60008251111561197457808260405160200161195c92919061489d565b60405160208183030381529060405292505050611982565b61197d84612c27565b925050505b919050565b60606000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000808267ffffffffffffffff8111156119ed576119ec613d8e565b5b604051908082528060200260200182016040528015611a2657816020015b611a13613703565b815260200190600190039081611a0b5790505b5090506000805b84811015611cbb57600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110611a8657611a85614343565b5b90600052602060002001549150600b600083815260200190815260200160002060000154838581518110611abd57611abc614343565b5b60200260200101516000018181525050611ad682611875565b838581518110611ae957611ae8614343565b5b602002602001015160800181905250600b600083815260200190815260200160002060020160009054906101000a900460ff16838581518110611b2f57611b2e614343565b5b60200260200101516060019015159081151581525050600b600083815260200190815260200160002060010154838581518110611b6f57611b6e614343565b5b60200260200101516020018181525050611b88826124be565b838581518110611b9b57611b9a614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60008381526020019081526020016000206003018054611bfa90614143565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2690614143565b8015611c735780601f10611c4857610100808354040283529160200191611c73565b820191906000526020600020905b815481529060010190602001808311611c5657829003601f168201915b5050505050838581518110611c8b57611c8a614343565b5b602002602001015160a001819052508380611ca5906142fb565b9450508080611cb3906142fb565b915050611a2d565b5081945050505050919050565b6000600a54905090565b60606000611ce060076124b0565b905060008167ffffffffffffffff811115611cfe57611cfd613d8e565b5b604051908082528060200260200182016040528015611d3757816020015b611d24613703565b815260200190600190039081611d1c5790505b5090506000600190505b828111611faa57600b60008281526020019081526020016000206000015482600183611d6d91906147cd565b81518110611d7e57611d7d614343565b5b60200260200101516000018181525050611d9781611875565b82600183611da591906147cd565b81518110611db657611db5614343565b5b602002602001015160800181905250600b600082815260200190815260200160002060020160009054906101000a900460ff1682600183611df791906147cd565b81518110611e0857611e07614343565b5b60200260200101516060019015159081151581525050600b60008281526020019081526020016000206001015482600183611e4391906147cd565b81518110611e5457611e53614343565b5b60200260200101516020018181525050611e6d816124be565b82600183611e7b91906147cd565b81518110611e8c57611e8b614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60008281526020019081526020016000206003018054611eeb90614143565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1790614143565b8015611f645780601f10611f3957610100808354040283529160200191611f64565b820191906000526020600020905b815481529060010190602001808311611f4757829003601f168201915b505050505082600183611f7791906147cd565b81518110611f8857611f87614343565b5b602002602001015160a001819052508080611fa2906142fb565b915050611d41565b50809250505090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061205360076124b0565b905090565b6060600061206660076124b0565b9050600061207460086124b0565b67ffffffffffffffff81111561208d5761208c613d8e565b5b6040519080825280602002602001820160405280156120c657816020015b6120b3613703565b8152602001906001900390816120ab5790505b509050600080600190505b8381116123305760011515600b600083815260200190815260200160002060020160009054906101000a900460ff1615150361231d57600b60008281526020019081526020016000206000015483838151811061213157612130614343565b5b6020026020010151600001818152505061214a81611875565b83838151811061215d5761215c614343565b5b602002602001015160800181905250600b600082815260200190815260200160002060020160009054906101000a900460ff168383815181106121a3576121a2614343565b5b60200260200101516060019015159081151581525050600b6000828152602001908152602001600020600101548383815181106121e3576121e2614343565b5b602002602001015160200181815250506121fc816124be565b83838151811061220f5761220e614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b6000828152602001908152602001600020600301805461226e90614143565b80601f016020809104026020016040519081016040528092919081815260200182805461229a90614143565b80156122e75780601f106122bc576101008083540402835291602001916122e7565b820191906000526020600020905b8154815290600101906020018083116122ca57829003601f168201915b50505050508383815181106122ff576122fe614343565b5b602002602001015160a001819052508180612319906142fb565b9250505b8080612328906142fb565b9150506120d1565b5081935050505090565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6123ad81612c8f565b6123ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e3906145db565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661246a83611326565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008061250783611326565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061254957506125488185611fb3565b5b8061258757508373ffffffffffffffffffffffffffffffffffffffff1661256f846107e5565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166125b082611326565b73ffffffffffffffffffffffffffffffffffffffff1614612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614933565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266c906149c5565b60405180910390fd5b6126828383836001612cd0565b8273ffffffffffffffffffffffffffffffffffffffff166126a282611326565b73ffffffffffffffffffffffffffffffffffffffff16146126f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ef90614933565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46128848383836001612cdf565b505050565b600081600001549050600081116128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc90614a31565b60405180910390fd5b6001810382600001819055505050565b6001816000016000828254019250508190555050565b612915828260405180602001604052806000815250612d55565b5050565b61292282612c8f565b612961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295890614ac3565b60405180910390fd5b806006600084815260200190815260200160002090816129819190614c85565b505050565b60405180608001604052808481526020016000815260200160001515815260200182815250600b6000858152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055506060820151816003019081612a079190614c85565b50905050827f3dbdf3c26709924d048d4516aa49a88753b9c2f8a20074ea37936cde136aca3a83604051612a3b9190613976565b60405180910390a2505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aad90614da3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612ba79190613805565b60405180910390a3505050565b612bbf848484612590565b612bcb84848484612db0565b612c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0190614e35565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060612c32826123a4565b6000612c3c612c10565b90506000815111612c5c5760405180602001604052806000815250612c87565b80612c6684612f37565b604051602001612c7792919061489d565b6040516020818303038152906040525b915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16612cb1836124be565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612cd982613005565b50505050565b612ce984836130d2565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505060019003906000526020600020016000909190919091505550505050565b612d5f8383613370565b612d6c6000848484612db0565b612dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da290614e35565b60405180910390fd5b505050565b6000612dd18473ffffffffffffffffffffffffffffffffffffffff1661358d565b15612f2a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612dfa6123ef565b8786866040518563ffffffff1660e01b8152600401612e1c9493929190614eaa565b6020604051808303816000875af1925050508015612e5857506040513d601f19601f82011682018060405250810190612e559190614f0b565b60015b612eda573d8060008114612e88576040519150601f19603f3d011682016040523d82523d6000602084013e612e8d565b606091505b506000815103612ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec990614e35565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612f2f565b600190505b949350505050565b606060006001612f46846135b0565b01905060008167ffffffffffffffff811115612f6557612f64613d8e565b5b6040519080825280601f01601f191660200182016040528015612f975781602001600182028036833780820191505090505b509050600082602001820190505b600115612ffa578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612fee57612fed614801565b5b04945060008503612fa5575b819350505050919050565b60011515600b600083815260200190815260200160002060020160009054906101000a900460ff161515036130cf5761303e6008612889565b6000600b600083815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506000600b600083815260200190815260200160002060010181905550807f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda326130b4836124be565b6000806040516130c693929190614521565b60405180910390a25b50565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16031561336c5760005b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156133055781600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106131a6576131a5614343565b5b9060005260206000200154036132f25760008190505b6001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061320b91906147cd565b8110156132ec57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018261325e91906142c7565b8154811061326f5761326e614343565b5b9060005260206000200154600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106132cb576132ca614343565b5b906000526020600020018190555080806132e4906142fb565b9150506131bc565b50613305565b80806132fd906142fb565b91505061310a565b50600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061335557613354614f38565b5b600190038181906000526020600020016000905590555b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d690614fb3565b60405180910390fd5b6133e881612c8f565b15613428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341f9061501f565b60405180910390fd5b613436600083836001612cd0565b61343f81612c8f565b1561347f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134769061501f565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613589600083836001612cdf565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061360e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161360457613603614801565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061364b576d04ee2d6d415b85acef8100000000838161364157613640614801565b5b0492506020810190505b662386f26fc10000831061367a57662386f26fc1000083816136705761366f614801565b5b0492506010810190505b6305f5e10083106136a3576305f5e100838161369957613698614801565b5b0492506008810190505b61271083106136c85761271083816136be576136bd614801565b5b0492506004810190505b606483106136eb57606483816136e1576136e0614801565b5b0492506002810190505b600a83106136fa576001810190505b80915050919050565b6040518060c001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160608152602001606081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61379a81613765565b81146137a557600080fd5b50565b6000813590506137b781613791565b92915050565b6000602082840312156137d3576137d261375b565b5b60006137e1848285016137a8565b91505092915050565b60008115159050919050565b6137ff816137ea565b82525050565b600060208201905061381a60008301846137f6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561385a57808201518184015260208101905061383f565b60008484015250505050565b6000601f19601f8301169050919050565b600061388282613820565b61388c818561382b565b935061389c81856020860161383c565b6138a581613866565b840191505092915050565b600060208201905081810360008301526138ca8184613877565b905092915050565b6000819050919050565b6138e5816138d2565b81146138f057600080fd5b50565b600081359050613902816138dc565b92915050565b60006020828403121561391e5761391d61375b565b5b600061392c848285016138f3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061396082613935565b9050919050565b61397081613955565b82525050565b600060208201905061398b6000830184613967565b92915050565b61399a81613955565b81146139a557600080fd5b50565b6000813590506139b781613991565b92915050565b600080604083850312156139d4576139d361375b565b5b60006139e2858286016139a8565b92505060206139f3858286016138f3565b9150509250929050565b600060208284031215613a1357613a1261375b565b5b6000613a21848285016139a8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a5f816138d2565b82525050565b613a6e81613955565b82525050565b613a7d816137ea565b82525050565b600082825260208201905092915050565b6000613a9f82613820565b613aa98185613a83565b9350613ab981856020860161383c565b613ac281613866565b840191505092915050565b600060c083016000830151613ae56000860182613a56565b506020830151613af86020860182613a56565b506040830151613b0b6040860182613a65565b506060830151613b1e6060860182613a74565b5060808301518482036080860152613b368282613a94565b91505060a083015184820360a0860152613b508282613a94565b9150508091505092915050565b6000613b698383613acd565b905092915050565b6000602082019050919050565b6000613b8982613a2a565b613b938185613a35565b935083602082028501613ba585613a46565b8060005b85811015613be15784840389528151613bc28582613b5d565b9450613bcd83613b71565b925060208a01995050600181019050613ba9565b50829750879550505050505092915050565b60006020820190508181036000830152613c0d8184613b7e565b905092915050565b600080600060608486031215613c2e57613c2d61375b565b5b6000613c3c868287016139a8565b9350506020613c4d868287016139a8565b9250506040613c5e868287016138f3565b9150509250925092565b60008060408385031215613c7f57613c7e61375b565b5b6000613c8d858286016138f3565b9250506020613c9e858286016138f3565b9150509250929050565b600060c083016000830151613cc06000860182613a56565b506020830151613cd36020860182613a56565b506040830151613ce66040860182613a65565b506060830151613cf96060860182613a74565b5060808301518482036080860152613d118282613a94565b91505060a083015184820360a0860152613d2b8282613a94565b9150508091505092915050565b60006020820190508181036000830152613d528184613ca8565b905092915050565b613d63816138d2565b82525050565b6000602082019050613d7e6000830184613d5a565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613dc682613866565b810181811067ffffffffffffffff82111715613de557613de4613d8e565b5b80604052505050565b6000613df8613751565b9050613e048282613dbd565b919050565b600067ffffffffffffffff821115613e2457613e23613d8e565b5b613e2d82613866565b9050602081019050919050565b82818337600083830152505050565b6000613e5c613e5784613e09565b613dee565b905082815260208101848484011115613e7857613e77613d89565b5b613e83848285613e3a565b509392505050565b600082601f830112613ea057613e9f613d84565b5b8135613eb0848260208601613e49565b91505092915050565b600080600060608486031215613ed257613ed161375b565b5b600084013567ffffffffffffffff811115613ef057613eef613760565b5b613efc86828701613e8b565b9350506020613f0d868287016139a8565b925050604084013567ffffffffffffffff811115613f2e57613f2d613760565b5b613f3a86828701613e8b565b9150509250925092565b613f4d816137ea565b8114613f5857600080fd5b50565b600081359050613f6a81613f44565b92915050565b60008060408385031215613f8757613f8661375b565b5b6000613f95858286016139a8565b9250506020613fa685828601613f5b565b9150509250929050565b600067ffffffffffffffff821115613fcb57613fca613d8e565b5b613fd482613866565b9050602081019050919050565b6000613ff4613fef84613fb0565b613dee565b9050828152602081018484840111156140105761400f613d89565b5b61401b848285613e3a565b509392505050565b600082601f83011261403857614037613d84565b5b8135614048848260208601613fe1565b91505092915050565b6000806000806080858703121561406b5761406a61375b565b5b6000614079878288016139a8565b945050602061408a878288016139a8565b935050604061409b878288016138f3565b925050606085013567ffffffffffffffff8111156140bc576140bb613760565b5b6140c887828801614023565b91505092959194509250565b600080604083850312156140eb576140ea61375b565b5b60006140f9858286016139a8565b925050602061410a858286016139a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061415b57607f821691505b60208210810361416e5761416d614114565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006141d060218361382b565b91506141db82614174565b604082019050919050565b600060208201905081810360008301526141ff816141c3565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614262603d8361382b565b915061426d82614206565b604082019050919050565b6000602082019050818103600083015261429181614255565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142d2826138d2565b91506142dd836138d2565b92508282019050808211156142f5576142f4614298565b5b92915050565b6000614306826138d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361433857614337614298565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006143ce602d8361382b565b91506143d982614372565b604082019050919050565b600060208201905081810360008301526143fd816143c1565b9050919050565b7f4f6e6c79206e6674206f776e65722063616e20707574206f6e2073616c650000600082015250565b600061443a601e8361382b565b915061444582614404565b602082019050919050565b600060208201905081810360008301526144698161442d565b9050919050565b7f4e6674206d757374206265206f6e2073616c6500000000000000000000000000600082015250565b60006144a660138361382b565b91506144b182614470565b602082019050919050565b600060208201905081810360008301526144d581614499565b9050919050565b6000819050919050565b6000819050919050565b600061450b614506614501846144dc565b6144e6565b6138d2565b9050919050565b61451b816144f0565b82525050565b60006060820190506145366000830186613967565b61454360208301856137f6565b6145506040830184614512565b949350505050565b600060608201905061456d6000830186613967565b61457a60208301856137f6565b6145876040830184613d5a565b949350505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006145c560188361382b565b91506145d08261458f565b602082019050919050565b600060208201905081810360008301526145f4816145b8565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061465760298361382b565b9150614662826145fb565b604082019050919050565b600060208201905081810360008301526146868161464a565b9050919050565b6000614698826138d2565b91506146a3836138d2565b92508282026146b1816138d2565b915082820484148315176146c8576146c7614298565b5b5092915050565b7f506c65617365207375626d6974207468652061736b696e67207072696365206960008201527f6e206f7264657220746f20636f6d706c65746520746865207075726368617365602082015250565b600061472b60408361382b565b9150614736826146cf565b604082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b7f546f6b656e206e6f74206f6e2073616c65000000000000000000000000000000600082015250565b600061479760118361382b565b91506147a282614761565b602082019050919050565b600060208201905081810360008301526147c68161478a565b9050919050565b60006147d8826138d2565b91506147e3836138d2565b92508282039050818111156147fb576147fa614298565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061483b826138d2565b9150614846836138d2565b92508261485657614855614801565b5b828204905092915050565b600081905092915050565b600061487782613820565b6148818185614861565b935061489181856020860161383c565b80840191505092915050565b60006148a9828561486c565b91506148b5828461486c565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061491d60258361382b565b9150614928826148c1565b604082019050919050565b6000602082019050818103600083015261494c81614910565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149af60248361382b565b91506149ba82614953565b604082019050919050565b600060208201905081810360008301526149de816149a2565b9050919050565b7f436f756e7465723a2064656372656d656e74206f766572666c6f770000000000600082015250565b6000614a1b601b8361382b565b9150614a26826149e5565b602082019050919050565b60006020820190508181036000830152614a4a81614a0e565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000614aad602e8361382b565b9150614ab882614a51565b604082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614b457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614b08565b614b4f8683614b08565b95508019841693508086168417925050509392505050565b6000614b82614b7d614b78846138d2565b6144e6565b6138d2565b9050919050565b6000819050919050565b614b9c83614b67565b614bb0614ba882614b89565b848454614b15565b825550505050565b600090565b614bc5614bb8565b614bd0818484614b93565b505050565b5b81811015614bf457614be9600082614bbd565b600181019050614bd6565b5050565b601f821115614c3957614c0a81614ae3565b614c1384614af8565b81016020851015614c22578190505b614c36614c2e85614af8565b830182614bd5565b50505b505050565b600082821c905092915050565b6000614c5c60001984600802614c3e565b1980831691505092915050565b6000614c758383614c4b565b9150826002028217905092915050565b614c8e82613820565b67ffffffffffffffff811115614ca757614ca6613d8e565b5b614cb18254614143565b614cbc828285614bf8565b600060209050601f831160018114614cef5760008415614cdd578287015190505b614ce78582614c69565b865550614d4f565b601f198416614cfd86614ae3565b60005b82811015614d2557848901518255600182019150602085019450602081019050614d00565b86831015614d425784890151614d3e601f891682614c4b565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614d8d60198361382b565b9150614d9882614d57565b602082019050919050565b60006020820190508181036000830152614dbc81614d80565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614e1f60328361382b565b9150614e2a82614dc3565b604082019050919050565b60006020820190508181036000830152614e4e81614e12565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614e7c82614e55565b614e868185614e60565b9350614e9681856020860161383c565b614e9f81613866565b840191505092915050565b6000608082019050614ebf6000830187613967565b614ecc6020830186613967565b614ed96040830185613d5a565b8181036060830152614eeb8184614e71565b905095945050505050565b600081519050614f0581613791565b92915050565b600060208284031215614f2157614f2061375b565b5b6000614f2f84828501614ef6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614f9d60208361382b565b9150614fa882614f67565b602082019050919050565b60006020820190508181036000830152614fcc81614f90565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615009601c8361382b565b915061501482614fd3565b602082019050919050565b6000602082019050818103600083015261503881614ffc565b905091905056fea2646970667358221220d891e68dd5d8cca04de6ab1fb84f759d8b8ca20ca1db6fdbac0639fa8258ac2364736f6c63430008120033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000005dcc5b724025a9f03692ef7a483aad0cba05386300000000000000000000000000000000000000000000000000000000000000255069787564692e20536561726368696e6720666f7220447261676f6e2053746f6e6520312e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065053464453310000000000000000000000000000000000000000000000000000

Deployed ByteCode

0x6080604052600436106101815760003560e01c806370a08231116100d1578063c87b56dd1161008a578063e0391b0911610064578063e0391b09146105b3578063e985e9c5146105de578063ef2d17461461061b578063f0be4fac1461064657610181565b8063c87b56dd1461050e578063d4cd4c7d1461054b578063dd6d3ca71461058857610181565b806370a08231146103fb57806377eb17b41461043857806395d89b41146104755780639b1225c4146104a0578063a22cb465146104bc578063b88d4fde146104e557610181565b806323b872dd1161013e57806342842e0e1161011857806342842e0e1461031b578063576f7ea7146103445780635b2103fa146103815780636352211e146103be57610181565b806323b872dd146102ba578063321a3e2f146102e357806336f7992b146102ff57610181565b806301ffc9a71461018657806306fdde03146101c3578063081812fc146101ee578063095ea7b31461022b5780630be80f39146102545780631dadae8e1461027d575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a891906137bd565b610671565b6040516101ba9190613805565b60405180910390f35b3480156101cf57600080fd5b506101d8610753565b6040516101e591906138b0565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190613908565b6107e5565b6040516102229190613976565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906139bd565b61082b565b005b34801561026057600080fd5b5061027b60048036038101906102769190613908565b610942565b005b34801561028957600080fd5b506102a4600480360381019061029f91906139fd565b6109a6565b6040516102b19190613bf3565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190613c15565b610d0c565b005b6102fd60048036038101906102f89190613908565b610d6c565b005b61031960048036038101906103149190613c68565b610ee7565b005b34801561032757600080fd5b50610342600480360381019061033d9190613c15565b611028565b005b34801561035057600080fd5b5061036b60048036038101906103669190613908565b611048565b6040516103789190613d38565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a391906139fd565b6112da565b6040516103b59190613d69565b60405180910390f35b3480156103ca57600080fd5b506103e560048036038101906103e09190613908565b611326565b6040516103f29190613976565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d91906139fd565b6113ac565b60405161042f9190613d69565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190613eb9565b611463565b60405161046c9190613d69565b60405180910390f35b34801561048157600080fd5b5061048a611501565b60405161049791906138b0565b60405180910390f35b6104ba60048036038101906104b59190613908565b611593565b005b3480156104c857600080fd5b506104e360048036038101906104de9190613f70565b6117fd565b005b3480156104f157600080fd5b5061050c60048036038101906105079190614051565b611813565b005b34801561051a57600080fd5b5061053560048036038101906105309190613908565b611875565b60405161054291906138b0565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d91906139fd565b611987565b60405161057f9190613bf3565b60405180910390f35b34801561059457600080fd5b5061059d611cc8565b6040516105aa9190613d69565b60405180910390f35b3480156105bf57600080fd5b506105c8611cd2565b6040516105d59190613bf3565b60405180910390f35b3480156105ea57600080fd5b50610605600480360381019061060091906140d4565b611fb3565b6040516106129190613805565b60405180910390f35b34801561062757600080fd5b50610630612047565b60405161063d9190613d69565b60405180910390f35b34801561065257600080fd5b5061065b612058565b6040516106689190613bf3565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061073c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061074c575061074b8261233a565b5b9050919050565b60606000805461076290614143565b80601f016020809104026020016040519081016040528092919081815260200182805461078e90614143565b80156107db5780601f106107b0576101008083540402835291602001916107db565b820191906000526020600020905b8154815290600101906020018083116107be57829003601f168201915b5050505050905090565b60006107f0826123a4565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061083682611326565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d906141e6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108c56123ef565b73ffffffffffffffffffffffffffffffffffffffff1614806108f457506108f3816108ee6123ef565b611fb3565b5b610933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092a90614278565b60405180910390fd5b61093d83836123f7565b505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c57600080fd5b80600a8190555050565b606060006109b460076124b0565b90506000806000600190505b838111610a25578573ffffffffffffffffffffffffffffffffffffffff166109e7826124be565b73ffffffffffffffffffffffffffffffffffffffff1603610a1257600183610a0f91906142c7565b92505b8080610a1d906142fb565b9150506109c0565b506000610a3260076124b0565b905060008367ffffffffffffffff811115610a5057610a4f613d8e565b5b604051908082528060200260200182016040528015610a8957816020015b610a76613703565b815260200190600190039081610a6e5790505b5090506000600190505b828111610cfe578773ffffffffffffffffffffffffffffffffffffffff16610aba826124be565b73ffffffffffffffffffffffffffffffffffffffff1603610ceb57600b600082815260200190815260200160002060000154828581518110610aff57610afe614343565b5b60200260200101516000018181525050610b1881611875565b828581518110610b2b57610b2a614343565b5b602002602001015160800181905250600b600082815260200190815260200160002060020160009054906101000a900460ff16828581518110610b7157610b70614343565b5b60200260200101516060019015159081151581525050600b600082815260200190815260200160002060010154828581518110610bb157610bb0614343565b5b60200260200101516020018181525050610bca816124be565b828581518110610bdd57610bdc614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60008281526020019081526020016000206003018054610c3c90614143565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6890614143565b8015610cb55780601f10610c8a57610100808354040283529160200191610cb5565b820191906000526020600020905b815481529060010190602001808311610c9857829003601f168201915b5050505050828581518110610ccd57610ccc614343565b5b602002602001015160a001819052508380610ce7906142fb565b9450505b8080610cf6906142fb565b915050610a93565b508095505050505050919050565b610d1d610d176123ef565b826124fb565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906143e4565b60405180910390fd5b610d67838383612590565b505050565b6000610d77826124be565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde90614450565b60405180910390fd5b60011515600b600084815260200190815260200160002060020160009054906101000a900460ff16151514610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e48906144bc565b60405180910390fd5b610e5b6008612889565b6000600b600084815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506000600b600084815260200190815260200160002060010181905550817f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda3282600080604051610edb93929190614521565b60405180910390a25050565b6000610ef2826124be565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5990614450565b60405180910390fd5b60011515600b600084815260200190815260200160002060020160009054906101000a900460ff16151514610f9c57610f9b60086128e5565b5b6001600b600084815260200190815260200160002060020160006101000a81548160ff02191690831515021790555082600b600084815260200190815260200160002060010181905550817f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda328260018660405161101b93929190614558565b60405180910390a2505050565b61104383838360405180602001604052806000815250611813565b505050565b611050613703565b6000600167ffffffffffffffff81111561106d5761106c613d8e565b5b6040519080825280602002602001820160405280156110a657816020015b611093613703565b81526020019060019003908161108b5790505b509050600b600084815260200190815260200160002060000154816000815181106110d4576110d3614343565b5b602002602001015160000181815250506110ed83611875565b8160008151811061110157611100614343565b5b602002602001015160800181905250600b600084815260200190815260200160002060020160009054906101000a900460ff168160008151811061114857611147614343565b5b60200260200101516060019015159081151581525050600b6000848152602001908152602001600020600101548160008151811061118957611188614343565b5b602002602001015160200181815250506111a2836124be565b816000815181106111b6576111b5614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b6000848152602001908152602001600020600301805461121590614143565b80601f016020809104026020016040519081016040528092919081815260200182805461124190614143565b801561128e5780601f106112635761010080835404028352916020019161128e565b820191906000526020600020905b81548152906001019060200180831161127157829003601f168201915b5050505050816000815181106112a7576112a6614343565b5b602002602001015160a00181905250806000815181106112ca576112c9614343565b5b6020026020010151915050919050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600080611332836124be565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a906145db565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114139061466d565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114bf57600080fd5b6114c960076128e5565b60006114d560076124b0565b90506114e184826128fb565b6114eb8186612919565b6114f6818585612986565b809150509392505050565b60606001805461151090614143565b80601f016020809104026020016040519081016040528092919081815260200182805461153c90614143565b80156115895780601f1061155e57610100808354040283529160200191611589565b820191906000526020600020905b81548152906001019060200180831161156c57829003601f168201915b5050505050905090565b6000600b60008381526020019081526020016000206001015490506000600b600084815260200190815260200160002060020160009054906101000a900460ff16905066038d7ea4c68000826115e9919061468d565b341461162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162190614741565b60405180910390fd5b6001151581151514611671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611668906147ad565b60405180910390fd5b6000600b600085815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506116aa6008612889565b60006116b5846124be565b90506116c2813386612590565b6116cc308561082b565b8073ffffffffffffffffffffffffffffffffffffffff166108fc606434600a5460646116f891906147cd565b611702919061468d565b61170c9190614830565b9081150290604051600060405180830381858888f19350505050158015611737573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606434600a54611784919061468d565b61178e9190614830565b9081150290604051600060405180830381858888f193505050501580156117b9573d6000803e3d6000fd5b50837f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda32336000806040516117ef93929190614521565b60405180910390a250505050565b61180f6118086123ef565b8383612a48565b5050565b61182461181e6123ef565b836124fb565b611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a906143e4565b60405180910390fd5b61186f84848484612bb4565b50505050565b6060611880826123a4565b60006006600084815260200190815260200160002080546118a090614143565b80601f01602080910402602001604051908101604052809291908181526020018280546118cc90614143565b80156119195780601f106118ee57610100808354040283529160200191611919565b820191906000526020600020905b8154815290600101906020018083116118fc57829003601f168201915b50505050509050600061192a612c10565b9050600081510361193f578192505050611982565b60008251111561197457808260405160200161195c92919061489d565b60405160208183030381529060405292505050611982565b61197d84612c27565b925050505b919050565b60606000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000808267ffffffffffffffff8111156119ed576119ec613d8e565b5b604051908082528060200260200182016040528015611a2657816020015b611a13613703565b815260200190600190039081611a0b5790505b5090506000805b84811015611cbb57600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110611a8657611a85614343565b5b90600052602060002001549150600b600083815260200190815260200160002060000154838581518110611abd57611abc614343565b5b60200260200101516000018181525050611ad682611875565b838581518110611ae957611ae8614343565b5b602002602001015160800181905250600b600083815260200190815260200160002060020160009054906101000a900460ff16838581518110611b2f57611b2e614343565b5b60200260200101516060019015159081151581525050600b600083815260200190815260200160002060010154838581518110611b6f57611b6e614343565b5b60200260200101516020018181525050611b88826124be565b838581518110611b9b57611b9a614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60008381526020019081526020016000206003018054611bfa90614143565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2690614143565b8015611c735780601f10611c4857610100808354040283529160200191611c73565b820191906000526020600020905b815481529060010190602001808311611c5657829003601f168201915b5050505050838581518110611c8b57611c8a614343565b5b602002602001015160a001819052508380611ca5906142fb565b9450508080611cb3906142fb565b915050611a2d565b5081945050505050919050565b6000600a54905090565b60606000611ce060076124b0565b905060008167ffffffffffffffff811115611cfe57611cfd613d8e565b5b604051908082528060200260200182016040528015611d3757816020015b611d24613703565b815260200190600190039081611d1c5790505b5090506000600190505b828111611faa57600b60008281526020019081526020016000206000015482600183611d6d91906147cd565b81518110611d7e57611d7d614343565b5b60200260200101516000018181525050611d9781611875565b82600183611da591906147cd565b81518110611db657611db5614343565b5b602002602001015160800181905250600b600082815260200190815260200160002060020160009054906101000a900460ff1682600183611df791906147cd565b81518110611e0857611e07614343565b5b60200260200101516060019015159081151581525050600b60008281526020019081526020016000206001015482600183611e4391906147cd565b81518110611e5457611e53614343565b5b60200260200101516020018181525050611e6d816124be565b82600183611e7b91906147cd565b81518110611e8c57611e8b614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60008281526020019081526020016000206003018054611eeb90614143565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1790614143565b8015611f645780601f10611f3957610100808354040283529160200191611f64565b820191906000526020600020905b815481529060010190602001808311611f4757829003601f168201915b505050505082600183611f7791906147cd565b81518110611f8857611f87614343565b5b602002602001015160a001819052508080611fa2906142fb565b915050611d41565b50809250505090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061205360076124b0565b905090565b6060600061206660076124b0565b9050600061207460086124b0565b67ffffffffffffffff81111561208d5761208c613d8e565b5b6040519080825280602002602001820160405280156120c657816020015b6120b3613703565b8152602001906001900390816120ab5790505b509050600080600190505b8381116123305760011515600b600083815260200190815260200160002060020160009054906101000a900460ff1615150361231d57600b60008281526020019081526020016000206000015483838151811061213157612130614343565b5b6020026020010151600001818152505061214a81611875565b83838151811061215d5761215c614343565b5b602002602001015160800181905250600b600082815260200190815260200160002060020160009054906101000a900460ff168383815181106121a3576121a2614343565b5b60200260200101516060019015159081151581525050600b6000828152602001908152602001600020600101548383815181106121e3576121e2614343565b5b602002602001015160200181815250506121fc816124be565b83838151811061220f5761220e614343565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b6000828152602001908152602001600020600301805461226e90614143565b80601f016020809104026020016040519081016040528092919081815260200182805461229a90614143565b80156122e75780601f106122bc576101008083540402835291602001916122e7565b820191906000526020600020905b8154815290600101906020018083116122ca57829003601f168201915b50505050508383815181106122ff576122fe614343565b5b602002602001015160a001819052508180612319906142fb565b9250505b8080612328906142fb565b9150506120d1565b5081935050505090565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6123ad81612c8f565b6123ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e3906145db565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661246a83611326565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008061250783611326565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061254957506125488185611fb3565b5b8061258757508373ffffffffffffffffffffffffffffffffffffffff1661256f846107e5565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166125b082611326565b73ffffffffffffffffffffffffffffffffffffffff1614612606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fd90614933565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266c906149c5565b60405180910390fd5b6126828383836001612cd0565b8273ffffffffffffffffffffffffffffffffffffffff166126a282611326565b73ffffffffffffffffffffffffffffffffffffffff16146126f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ef90614933565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46128848383836001612cdf565b505050565b600081600001549050600081116128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc90614a31565b60405180910390fd5b6001810382600001819055505050565b6001816000016000828254019250508190555050565b612915828260405180602001604052806000815250612d55565b5050565b61292282612c8f565b612961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295890614ac3565b60405180910390fd5b806006600084815260200190815260200160002090816129819190614c85565b505050565b60405180608001604052808481526020016000815260200160001515815260200182815250600b6000858152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055506060820151816003019081612a079190614c85565b50905050827f3dbdf3c26709924d048d4516aa49a88753b9c2f8a20074ea37936cde136aca3a83604051612a3b9190613976565b60405180910390a2505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aad90614da3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612ba79190613805565b60405180910390a3505050565b612bbf848484612590565b612bcb84848484612db0565b612c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0190614e35565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060612c32826123a4565b6000612c3c612c10565b90506000815111612c5c5760405180602001604052806000815250612c87565b80612c6684612f37565b604051602001612c7792919061489d565b6040516020818303038152906040525b915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16612cb1836124be565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612cd982613005565b50505050565b612ce984836130d2565b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505060019003906000526020600020016000909190919091505550505050565b612d5f8383613370565b612d6c6000848484612db0565b612dab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da290614e35565b60405180910390fd5b505050565b6000612dd18473ffffffffffffffffffffffffffffffffffffffff1661358d565b15612f2a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612dfa6123ef565b8786866040518563ffffffff1660e01b8152600401612e1c9493929190614eaa565b6020604051808303816000875af1925050508015612e5857506040513d601f19601f82011682018060405250810190612e559190614f0b565b60015b612eda573d8060008114612e88576040519150601f19603f3d011682016040523d82523d6000602084013e612e8d565b606091505b506000815103612ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec990614e35565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612f2f565b600190505b949350505050565b606060006001612f46846135b0565b01905060008167ffffffffffffffff811115612f6557612f64613d8e565b5b6040519080825280601f01601f191660200182016040528015612f975781602001600182028036833780820191505090505b509050600082602001820190505b600115612ffa578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612fee57612fed614801565b5b04945060008503612fa5575b819350505050919050565b60011515600b600083815260200190815260200160002060020160009054906101000a900460ff161515036130cf5761303e6008612889565b6000600b600083815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506000600b600083815260200190815260200160002060010181905550807f3e1295fb118ff1c96b74f6cfc2a44ca48a6d3af4c486b425704bee3ef35bda326130b4836124be565b6000806040516130c693929190614521565b60405180910390a25b50565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16031561336c5760005b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156133055781600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106131a6576131a5614343565b5b9060005260206000200154036132f25760008190505b6001600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061320b91906147cd565b8110156132ec57600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018261325e91906142c7565b8154811061326f5761326e614343565b5b9060005260206000200154600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106132cb576132ca614343565b5b906000526020600020018190555080806132e4906142fb565b9150506131bc565b50613305565b80806132fd906142fb565b91505061310a565b50600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061335557613354614f38565b5b600190038181906000526020600020016000905590555b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133d690614fb3565b60405180910390fd5b6133e881612c8f565b15613428576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341f9061501f565b60405180910390fd5b613436600083836001612cd0565b61343f81612c8f565b1561347f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134769061501f565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613589600083836001612cdf565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061360e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161360457613603614801565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061364b576d04ee2d6d415b85acef8100000000838161364157613640614801565b5b0492506020810190505b662386f26fc10000831061367a57662386f26fc1000083816136705761366f614801565b5b0492506010810190505b6305f5e10083106136a3576305f5e100838161369957613698614801565b5b0492506008810190505b61271083106136c85761271083816136be576136bd614801565b5b0492506004810190505b606483106136eb57606483816136e1576136e0614801565b5b0492506002810190505b600a83106136fa576001810190505b80915050919050565b6040518060c001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160608152602001606081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61379a81613765565b81146137a557600080fd5b50565b6000813590506137b781613791565b92915050565b6000602082840312156137d3576137d261375b565b5b60006137e1848285016137a8565b91505092915050565b60008115159050919050565b6137ff816137ea565b82525050565b600060208201905061381a60008301846137f6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561385a57808201518184015260208101905061383f565b60008484015250505050565b6000601f19601f8301169050919050565b600061388282613820565b61388c818561382b565b935061389c81856020860161383c565b6138a581613866565b840191505092915050565b600060208201905081810360008301526138ca8184613877565b905092915050565b6000819050919050565b6138e5816138d2565b81146138f057600080fd5b50565b600081359050613902816138dc565b92915050565b60006020828403121561391e5761391d61375b565b5b600061392c848285016138f3565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061396082613935565b9050919050565b61397081613955565b82525050565b600060208201905061398b6000830184613967565b92915050565b61399a81613955565b81146139a557600080fd5b50565b6000813590506139b781613991565b92915050565b600080604083850312156139d4576139d361375b565b5b60006139e2858286016139a8565b92505060206139f3858286016138f3565b9150509250929050565b600060208284031215613a1357613a1261375b565b5b6000613a21848285016139a8565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a5f816138d2565b82525050565b613a6e81613955565b82525050565b613a7d816137ea565b82525050565b600082825260208201905092915050565b6000613a9f82613820565b613aa98185613a83565b9350613ab981856020860161383c565b613ac281613866565b840191505092915050565b600060c083016000830151613ae56000860182613a56565b506020830151613af86020860182613a56565b506040830151613b0b6040860182613a65565b506060830151613b1e6060860182613a74565b5060808301518482036080860152613b368282613a94565b91505060a083015184820360a0860152613b508282613a94565b9150508091505092915050565b6000613b698383613acd565b905092915050565b6000602082019050919050565b6000613b8982613a2a565b613b938185613a35565b935083602082028501613ba585613a46565b8060005b85811015613be15784840389528151613bc28582613b5d565b9450613bcd83613b71565b925060208a01995050600181019050613ba9565b50829750879550505050505092915050565b60006020820190508181036000830152613c0d8184613b7e565b905092915050565b600080600060608486031215613c2e57613c2d61375b565b5b6000613c3c868287016139a8565b9350506020613c4d868287016139a8565b9250506040613c5e868287016138f3565b9150509250925092565b60008060408385031215613c7f57613c7e61375b565b5b6000613c8d858286016138f3565b9250506020613c9e858286016138f3565b9150509250929050565b600060c083016000830151613cc06000860182613a56565b506020830151613cd36020860182613a56565b506040830151613ce66040860182613a65565b506060830151613cf96060860182613a74565b5060808301518482036080860152613d118282613a94565b91505060a083015184820360a0860152613d2b8282613a94565b9150508091505092915050565b60006020820190508181036000830152613d528184613ca8565b905092915050565b613d63816138d2565b82525050565b6000602082019050613d7e6000830184613d5a565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613dc682613866565b810181811067ffffffffffffffff82111715613de557613de4613d8e565b5b80604052505050565b6000613df8613751565b9050613e048282613dbd565b919050565b600067ffffffffffffffff821115613e2457613e23613d8e565b5b613e2d82613866565b9050602081019050919050565b82818337600083830152505050565b6000613e5c613e5784613e09565b613dee565b905082815260208101848484011115613e7857613e77613d89565b5b613e83848285613e3a565b509392505050565b600082601f830112613ea057613e9f613d84565b5b8135613eb0848260208601613e49565b91505092915050565b600080600060608486031215613ed257613ed161375b565b5b600084013567ffffffffffffffff811115613ef057613eef613760565b5b613efc86828701613e8b565b9350506020613f0d868287016139a8565b925050604084013567ffffffffffffffff811115613f2e57613f2d613760565b5b613f3a86828701613e8b565b9150509250925092565b613f4d816137ea565b8114613f5857600080fd5b50565b600081359050613f6a81613f44565b92915050565b60008060408385031215613f8757613f8661375b565b5b6000613f95858286016139a8565b9250506020613fa685828601613f5b565b9150509250929050565b600067ffffffffffffffff821115613fcb57613fca613d8e565b5b613fd482613866565b9050602081019050919050565b6000613ff4613fef84613fb0565b613dee565b9050828152602081018484840111156140105761400f613d89565b5b61401b848285613e3a565b509392505050565b600082601f83011261403857614037613d84565b5b8135614048848260208601613fe1565b91505092915050565b6000806000806080858703121561406b5761406a61375b565b5b6000614079878288016139a8565b945050602061408a878288016139a8565b935050604061409b878288016138f3565b925050606085013567ffffffffffffffff8111156140bc576140bb613760565b5b6140c887828801614023565b91505092959194509250565b600080604083850312156140eb576140ea61375b565b5b60006140f9858286016139a8565b925050602061410a858286016139a8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061415b57607f821691505b60208210810361416e5761416d614114565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006141d060218361382b565b91506141db82614174565b604082019050919050565b600060208201905081810360008301526141ff816141c3565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614262603d8361382b565b915061426d82614206565b604082019050919050565b6000602082019050818103600083015261429181614255565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006142d2826138d2565b91506142dd836138d2565b92508282019050808211156142f5576142f4614298565b5b92915050565b6000614306826138d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361433857614337614298565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b60006143ce602d8361382b565b91506143d982614372565b604082019050919050565b600060208201905081810360008301526143fd816143c1565b9050919050565b7f4f6e6c79206e6674206f776e65722063616e20707574206f6e2073616c650000600082015250565b600061443a601e8361382b565b915061444582614404565b602082019050919050565b600060208201905081810360008301526144698161442d565b9050919050565b7f4e6674206d757374206265206f6e2073616c6500000000000000000000000000600082015250565b60006144a660138361382b565b91506144b182614470565b602082019050919050565b600060208201905081810360008301526144d581614499565b9050919050565b6000819050919050565b6000819050919050565b600061450b614506614501846144dc565b6144e6565b6138d2565b9050919050565b61451b816144f0565b82525050565b60006060820190506145366000830186613967565b61454360208301856137f6565b6145506040830184614512565b949350505050565b600060608201905061456d6000830186613967565b61457a60208301856137f6565b6145876040830184613d5a565b949350505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006145c560188361382b565b91506145d08261458f565b602082019050919050565b600060208201905081810360008301526145f4816145b8565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061465760298361382b565b9150614662826145fb565b604082019050919050565b600060208201905081810360008301526146868161464a565b9050919050565b6000614698826138d2565b91506146a3836138d2565b92508282026146b1816138d2565b915082820484148315176146c8576146c7614298565b5b5092915050565b7f506c65617365207375626d6974207468652061736b696e67207072696365206960008201527f6e206f7264657220746f20636f6d706c65746520746865207075726368617365602082015250565b600061472b60408361382b565b9150614736826146cf565b604082019050919050565b6000602082019050818103600083015261475a8161471e565b9050919050565b7f546f6b656e206e6f74206f6e2073616c65000000000000000000000000000000600082015250565b600061479760118361382b565b91506147a282614761565b602082019050919050565b600060208201905081810360008301526147c68161478a565b9050919050565b60006147d8826138d2565b91506147e3836138d2565b92508282039050818111156147fb576147fa614298565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061483b826138d2565b9150614846836138d2565b92508261485657614855614801565b5b828204905092915050565b600081905092915050565b600061487782613820565b6148818185614861565b935061489181856020860161383c565b80840191505092915050565b60006148a9828561486c565b91506148b5828461486c565b91508190509392505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061491d60258361382b565b9150614928826148c1565b604082019050919050565b6000602082019050818103600083015261494c81614910565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006149af60248361382b565b91506149ba82614953565b604082019050919050565b600060208201905081810360008301526149de816149a2565b9050919050565b7f436f756e7465723a2064656372656d656e74206f766572666c6f770000000000600082015250565b6000614a1b601b8361382b565b9150614a26826149e5565b602082019050919050565b60006020820190508181036000830152614a4a81614a0e565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000614aad602e8361382b565b9150614ab882614a51565b604082019050919050565b60006020820190508181036000830152614adc81614aa0565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614b457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614b08565b614b4f8683614b08565b95508019841693508086168417925050509392505050565b6000614b82614b7d614b78846138d2565b6144e6565b6138d2565b9050919050565b6000819050919050565b614b9c83614b67565b614bb0614ba882614b89565b848454614b15565b825550505050565b600090565b614bc5614bb8565b614bd0818484614b93565b505050565b5b81811015614bf457614be9600082614bbd565b600181019050614bd6565b5050565b601f821115614c3957614c0a81614ae3565b614c1384614af8565b81016020851015614c22578190505b614c36614c2e85614af8565b830182614bd5565b50505b505050565b600082821c905092915050565b6000614c5c60001984600802614c3e565b1980831691505092915050565b6000614c758383614c4b565b9150826002028217905092915050565b614c8e82613820565b67ffffffffffffffff811115614ca757614ca6613d8e565b5b614cb18254614143565b614cbc828285614bf8565b600060209050601f831160018114614cef5760008415614cdd578287015190505b614ce78582614c69565b865550614d4f565b601f198416614cfd86614ae3565b60005b82811015614d2557848901518255600182019150602085019450602081019050614d00565b86831015614d425784890151614d3e601f891682614c4b565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614d8d60198361382b565b9150614d9882614d57565b602082019050919050565b60006020820190508181036000830152614dbc81614d80565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614e1f60328361382b565b9150614e2a82614dc3565b604082019050919050565b60006020820190508181036000830152614e4e81614e12565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614e7c82614e55565b614e868185614e60565b9350614e9681856020860161383c565b614e9f81613866565b840191505092915050565b6000608082019050614ebf6000830187613967565b614ecc6020830186613967565b614ed96040830185613d5a565b8181036060830152614eeb8184614e71565b905095945050505050565b600081519050614f0581613791565b92915050565b600060208284031215614f2157614f2061375b565b5b6000614f2f84828501614ef6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614f9d60208361382b565b9150614fa882614f67565b602082019050919050565b60006020820190508181036000830152614fcc81614f90565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615009601c8361382b565b915061501482614fd3565b602082019050919050565b6000602082019050818103600083015261503881614ffc565b905091905056fea2646970667358221220d891e68dd5d8cca04de6ab1fb84f759d8b8ca20ca1db6fdbac0639fa8258ac2364736f6c63430008120033