60806040526605543df729c000600c556000600d553480156200002157600080fd5b50604051620040ad380380620040ad83398181016040528101906200004791906200033e565b6040518060400160405280600e81526020017f3842697442617262617269616e730000000000000000000000000000000000008152506040518060400160405280600e81526020017f3842495442415242415249414e530000000000000000000000000000000000008152508160029080519060200190620000cb9291906200021c565b508060039080519060200190620000e49291906200021c565b50620000f56200014560201b60201c565b60008190555050506200011d620001116200014e60201b60201c565b6200015660201b60201c565b600160098190555080600b90805190602001906200013d9291906200021c565b5050620004f3565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200022a9062000418565b90600052602060002090601f0160209004810192826200024e57600085556200029a565b82601f106200026957805160ff19168380011785556200029a565b828001600101855582156200029a579182015b82811115620002995782518255916020019190600101906200027c565b5b509050620002a99190620002ad565b5090565b5b80821115620002c8576000816000905550600101620002ae565b5090565b6000620002e3620002dd84620003ac565b62000383565b905082815260208101848484011115620002fc57600080fd5b62000309848285620003e2565b509392505050565b600082601f8301126200032357600080fd5b815162000335848260208601620002cc565b91505092915050565b6000602082840312156200035157600080fd5b600082015167ffffffffffffffff8111156200036c57600080fd5b6200037a8482850162000311565b91505092915050565b60006200038f620003a2565b90506200039d82826200044e565b919050565b6000604051905090565b600067ffffffffffffffff821115620003ca57620003c9620004b3565b5b620003d582620004e2565b9050602081019050919050565b60005b8381101562000402578082015181840152602081019050620003e5565b8381111562000412576000848401525b50505050565b600060028204905060018216806200043157607f821691505b6020821081141562000448576200044762000484565b5b50919050565b6200045982620004e2565b810181811067ffffffffffffffff821117156200047b576200047a620004b3565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b613baa80620005036000396000f3fe6080604052600436106101cd5760003560e01c80636352211e116100f757806395d89b4111610095578063c87b56dd11610064578063c87b56dd14610643578063dc33e68114610680578063e985e9c5146106bd578063f2fde38b146106fa576101cd565b806395d89b41146105aa578063a0712d68146105d5578063a22cb465146105f1578063b88d4fde1461061a576101cd565b8063715018a6116100d1578063715018a61461051457806382481c0e1461052b5780638d6cc56d146105565780638da5cb5b1461057f576101cd565b80636352211e1461046f57806363eb8bb6146104ac57806370a08231146104d7576101cd565b8063200d2ed21161016f57806342842e0e1161013e57806342842e0e146103c957806351cff8d9146103f257806355f804b31461041b578063611f3f1014610444576101cd565b8063200d2ed21461032157806323b872dd1461034c5780632e49d78b1461037557806332cb6b0c1461039e576101cd565b8063081812fc116101ab578063081812fc14610265578063095ea7b3146102a257806316154862146102cb57806318160ddd146102f6576101cd565b806301ffc9a7146101d25780630528eb431461020f57806306fdde031461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190612d6e565b610723565b604051610206919061325b565b60405180910390f35b34801561021b57600080fd5b50610224610805565b60405161023191906133f3565b60405180910390f35b34801561024657600080fd5b5061024f61080a565b60405161025c9190613291565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612e2e565b61089c565b60405161029991906131cb565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190612d32565b610918565b005b3480156102d757600080fd5b506102e0610a23565b6040516102ed91906133f3565b60405180910390f35b34801561030257600080fd5b5061030b610a28565b60405161031891906133f3565b60405180910390f35b34801561032d57600080fd5b50610336610a3f565b6040516103439190613276565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e9190612c2c565b610a52565b005b34801561038157600080fd5b5061039c60048036038101906103979190612dc0565b610a62565b005b3480156103aa57600080fd5b506103b3610b31565b6040516103c091906133f3565b60405180910390f35b3480156103d557600080fd5b506103f060048036038101906103eb9190612c2c565b610b37565b005b3480156103fe57600080fd5b5061041960048036038101906104149190612bc7565b610b57565b005b34801561042757600080fd5b50610442600480360381019061043d9190612de9565b610cdf565b005b34801561045057600080fd5b50610459610d71565b60405161046691906133f3565b60405180910390f35b34801561047b57600080fd5b5061049660048036038101906104919190612e2e565b610d77565b6040516104a391906131cb565b60405180910390f35b3480156104b857600080fd5b506104c1610d8d565b6040516104ce91906133f3565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612b9e565b610d93565b60405161050b91906133f3565b60405180910390f35b34801561052057600080fd5b50610529610e63565b005b34801561053757600080fd5b50610540610eeb565b60405161054d91906133f3565b60405180910390f35b34801561056257600080fd5b5061057d60048036038101906105789190612e2e565b610ef1565b005b34801561058b57600080fd5b50610594610f77565b6040516105a191906131cb565b60405180910390f35b3480156105b657600080fd5b506105bf610fa1565b6040516105cc9190613291565b60405180910390f35b6105ef60048036038101906105ea9190612e2e565b611033565b005b3480156105fd57600080fd5b5061061860048036038101906106139190612cf6565b61139a565b005b34801561062657600080fd5b50610641600480360381019061063c9190612c7b565b611512565b005b34801561064f57600080fd5b5061066a60048036038101906106659190612e2e565b61158e565b6040516106779190613291565b60405180910390f35b34801561068c57600080fd5b506106a760048036038101906106a29190612b9e565b61160a565b6040516106b491906133f3565b60405180910390f35b3480156106c957600080fd5b506106e460048036038101906106df9190612bf0565b61161c565b6040516106f1919061325b565b60405180910390f35b34801561070657600080fd5b50610721600480360381019061071c9190612b9e565b6116b0565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107ee57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107fe57506107fd826117a8565b5b9050919050565b600281565b606060028054610819906136c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610845906136c9565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b5050505050905090565b60006108a782611812565b6108dd576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061092382610d77565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561098b576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109aa611860565b73ffffffffffffffffffffffffffffffffffffffff16141580156109dc57506109da816109d5611860565b61161c565b155b15610a13576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a1e838383611868565b505050565b600f81565b6000610a3261191a565b6001546000540303905090565b600a60009054906101000a900460ff1681565b610a5d838383611923565b505050565b610a6a611860565b73ffffffffffffffffffffffffffffffffffffffff16610a88610f77565b73ffffffffffffffffffffffffffffffffffffffff1614610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad590613373565b60405180910390fd5b80600a60006101000a81548160ff02191690836002811115610b29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555050565b61138881565b610b5283838360405180602001604052806000815250611512565b505050565b610b5f611860565b73ffffffffffffffffffffffffffffffffffffffff16610b7d610f77565b73ffffffffffffffffffffffffffffffffffffffff1614610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90613373565b60405180910390fd5b60026009541415610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c10906133b3565b60405180910390fd5b6002600981905550600047905060008273ffffffffffffffffffffffffffffffffffffffff1682604051610c4c906131b6565b60006040518083038185875af1925050503d8060008114610c89576040519150601f19603f3d011682016040523d82523d6000602084013e610c8e565b606091505b5050905080610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc9906132d3565b60405180910390fd5b5050600160098190555050565b610ce7611860565b73ffffffffffffffffffffffffffffffffffffffff16610d05610f77565b73ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5290613373565b60405180910390fd5b8181600b9190610d6c929190612973565b505050565b600c5481565b6000610d8282611e14565b600001519050919050565b6103e881565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dfb576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b610e6b611860565b73ffffffffffffffffffffffffffffffffffffffff16610e89610f77565b73ffffffffffffffffffffffffffffffffffffffff1614610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690613373565b60405180910390fd5b610ee960006120a3565b565b600d5481565b610ef9611860565b73ffffffffffffffffffffffffffffffffffffffff16610f17610f77565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6490613373565b60405180910390fd5b80600c8190555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610fb0906136c9565b80601f0160208091040260200160405190810160405280929190818152602001828054610fdc906136c9565b80156110295780601f10610ffe57610100808354040283529160200191611029565b820191906000526020600020905b81548152906001019060200180831161100c57829003601f168201915b5050505050905090565b60026009541415611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906133b3565b60405180910390fd5b6002600981905550600160028111156110bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600a60009054906101000a900460ff166002811115611103577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113a906133d3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a8906132f3565b60405180910390fd5b600f816111bd3361160a565b6111c791906134c7565b1115611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90613353565b60405180910390fd5b61138881611214610a28565b61121e91906134c7565b111561125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690613333565b60405180910390fd5b60006103e8600d5410156112f7576000600261127a3361160a565b1061128657600061129c565b61128f3361160a565b600261129b91906135a8565b5b9050808311156112b75780836112b291906135a8565b6112ba565b60005b600c546112c7919061354e565b9150808311156112d757806112d9565b825b600d60008282546112ea91906134c7565b9250508190555050611308565b81600c54611305919061354e565b90505b8034101561134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134290613313565b60405180910390fd5b6113553383612169565b7f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe3383604051611386929190613232565b60405180910390a150600160098190555050565b6113a2611860565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611407576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611414611860565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166114c1611860565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611506919061325b565b60405180910390a35050565b61151d848484611923565b61153c8373ffffffffffffffffffffffffffffffffffffffff16612187565b8015611551575061154f848484846121aa565b155b15611588576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b606061159982611812565b6115d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cf90613393565b60405180910390fd5b600b6115e38361230a565b6040516020016115f492919061317c565b6040516020818303038152906040529050919050565b6000611615826124b7565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6116b8611860565b73ffffffffffffffffffffffffffffffffffffffff166116d6610f77565b73ffffffffffffffffffffffffffffffffffffffff161461172c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172390613373565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561179c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611793906132b3565b60405180910390fd5b6117a5816120a3565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008161181d61191a565b1115801561182c575060005482105b8015611859575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b600061192e82611e14565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16611955611860565b73ffffffffffffffffffffffffffffffffffffffff16148061198857506119878260000151611982611860565b61161c565b5b806119cd5750611996611860565b73ffffffffffffffffffffffffffffffffffffffff166119b58461089c565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611a06576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614611a6f576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611ad6576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ae38585856001612587565b611af36000848460000151611868565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550836004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600085815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600184019050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611da457600054811015611da35782600001516004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602001516004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b50828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611e0d858585600161258d565b5050505050565b611e1c6129f9565b600082905080611e2a61191a565b11158015611e39575060005481105b1561206c576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050806040015161206a57600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611f4e57809250505061209e565b5b60011561206957818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161461206457809250505061209e565b611f4f565b5b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612183828260405180602001604052806000815250612593565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121d0611860565b8786866040518563ffffffff1660e01b81526004016121f294939291906131e6565b602060405180830381600087803b15801561220c57600080fd5b505af192505050801561223d57506040513d601f19601f8201168201806040525081019061223a9190612d97565b60015b6122b7573d806000811461226d576040519150601f19603f3d011682016040523d82523d6000602084013e612272565b606091505b506000815114156122af576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606000821415612352576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506124b2565b600082905060005b6000821461238457808061236d9061372c565b915050600a8261237d919061351d565b915061235a565b60008167ffffffffffffffff8111156123c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156123f85781602001600182028036833780820191505090505b5090505b600085146124ab5760018261241191906135a8565b9150600a856124209190613775565b603061242c91906134c7565b60f81b818381518110612468577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856124a4919061351d565b94506123fc565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561251f576040517f35ebb31900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160089054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b50505050565b50505050565b6125a083838360016125a5565b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612612576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084141561264d576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61265a6000868387612587565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008190506000858201905083801561282457506128238773ffffffffffffffffffffffffffffffffffffffff16612187565b5b156128ea575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461289960008884806001019550886121aa565b6128cf576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082141561282a5782600054146128e557600080fd5b612956565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808214156128eb575b81600081905550505061296c600086838761258d565b5050505050565b82805461297f906136c9565b90600052602060002090601f0160209004810192826129a157600085556129e8565b82601f106129ba57803560ff19168380011785556129e8565b828001600101855582156129e8579182015b828111156129e75782358255916020019190600101906129cc565b5b5090506129f59190612a3c565b5090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b5b80821115612a55576000816000905550600101612a3d565b5090565b6000612a6c612a6784613433565b61340e565b905082815260208101848484011115612a8457600080fd5b612a8f848285613687565b509392505050565b600081359050612aa681613af1565b92915050565b600081359050612abb81613b08565b92915050565b600081359050612ad081613b1f565b92915050565b600081359050612ae581613b36565b92915050565b600081519050612afa81613b36565b92915050565b600082601f830112612b1157600080fd5b8135612b21848260208601612a59565b91505092915050565b600081359050612b3981613b4d565b92915050565b60008083601f840112612b5157600080fd5b8235905067ffffffffffffffff811115612b6a57600080fd5b602083019150836001820283011115612b8257600080fd5b9250929050565b600081359050612b9881613b5d565b92915050565b600060208284031215612bb057600080fd5b6000612bbe84828501612a97565b91505092915050565b600060208284031215612bd957600080fd5b6000612be784828501612aac565b91505092915050565b60008060408385031215612c0357600080fd5b6000612c1185828601612a97565b9250506020612c2285828601612a97565b9150509250929050565b600080600060608486031215612c4157600080fd5b6000612c4f86828701612a97565b9350506020612c6086828701612a97565b9250506040612c7186828701612b89565b9150509250925092565b60008060008060808587031215612c9157600080fd5b6000612c9f87828801612a97565b9450506020612cb087828801612a97565b9350506040612cc187828801612b89565b925050606085013567ffffffffffffffff811115612cde57600080fd5b612cea87828801612b00565b91505092959194509250565b60008060408385031215612d0957600080fd5b6000612d1785828601612a97565b9250506020612d2885828601612ac1565b9150509250929050565b60008060408385031215612d4557600080fd5b6000612d5385828601612a97565b9250506020612d6485828601612b89565b9150509250929050565b600060208284031215612d8057600080fd5b6000612d8e84828501612ad6565b91505092915050565b600060208284031215612da957600080fd5b6000612db784828501612aeb565b91505092915050565b600060208284031215612dd257600080fd5b6000612de084828501612b2a565b91505092915050565b60008060208385031215612dfc57600080fd5b600083013567ffffffffffffffff811115612e1657600080fd5b612e2285828601612b3f565b92509250509250929050565b600060208284031215612e4057600080fd5b6000612e4e84828501612b89565b91505092915050565b612e60816135dc565b82525050565b612e6f81613600565b82525050565b6000612e8082613479565b612e8a818561348f565b9350612e9a818560208601613696565b612ea381613891565b840191505092915050565b612eb781613675565b82525050565b6000612ec882613484565b612ed281856134ab565b9350612ee2818560208601613696565b612eeb81613891565b840191505092915050565b6000612f0182613484565b612f0b81856134bc565b9350612f1b818560208601613696565b80840191505092915050565b60008154612f34816136c9565b612f3e81866134bc565b94506001821660008114612f595760018114612f6a57612f9d565b60ff19831686528186019350612f9d565b612f7385613464565b60005b83811015612f9557815481890152600182019150602081019050612f76565b838801955050505b50505092915050565b6000612fb36026836134ab565b9150612fbe826138a2565b604082019050919050565b6000612fd66011836134ab565b9150612fe1826138f1565b602082019050919050565b6000612ff9601b836134ab565b91506130048261391a565b602082019050919050565b600061301c6010836134ab565b915061302782613943565b602082019050919050565b600061303f6015836134ab565b915061304a8261396c565b602082019050919050565b6000613062601b836134ab565b915061306d82613995565b602082019050919050565b60006130856005836134bc565b9150613090826139be565b600582019050919050565b60006130a86020836134ab565b91506130b3826139e7565b602082019050919050565b60006130cb602f836134ab565b91506130d682613a10565b604082019050919050565b60006130ee6000836134a0565b91506130f982613a5f565b600082019050919050565b6000613111601f836134ab565b915061311c82613a62565b602082019050919050565b60006131346011836134ab565b915061313f82613a8b565b602082019050919050565b60006131576001836134bc565b915061316282613ab4565b600182019050919050565b6131768161366b565b82525050565b60006131888285612f27565b91506131938261314a565b915061319f8284612ef6565b91506131aa82613078565b91508190509392505050565b60006131c1826130e1565b9150819050919050565b60006020820190506131e06000830184612e57565b92915050565b60006080820190506131fb6000830187612e57565b6132086020830186612e57565b613215604083018561316d565b81810360608301526132278184612e75565b905095945050505050565b60006040820190506132476000830185612e57565b613254602083018461316d565b9392505050565b60006020820190506132706000830184612e66565b92915050565b600060208201905061328b6000830184612eae565b92915050565b600060208201905081810360008301526132ab8184612ebd565b905092915050565b600060208201905081810360008301526132cc81612fa6565b9050919050565b600060208201905081810360008301526132ec81612fc9565b9050919050565b6000602082019050818103600083015261330c81612fec565b9050919050565b6000602082019050818103600083015261332c8161300f565b9050919050565b6000602082019050818103600083015261334c81613032565b9050919050565b6000602082019050818103600083015261336c81613055565b9050919050565b6000602082019050818103600083015261338c8161309b565b9050919050565b600060208201905081810360008301526133ac816130be565b9050919050565b600060208201905081810360008301526133cc81613104565b9050919050565b600060208201905081810360008301526133ec81613127565b9050919050565b6000602082019050613408600083018461316d565b92915050565b6000613418613429565b905061342482826136fb565b919050565b6000604051905090565b600067ffffffffffffffff82111561344e5761344d613862565b5b61345782613891565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006134d28261366b565b91506134dd8361366b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613512576135116137a6565b5b828201905092915050565b60006135288261366b565b91506135338361366b565b925082613543576135426137d5565b5b828204905092915050565b60006135598261366b565b91506135648361366b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561359d5761359c6137a6565b5b828202905092915050565b60006135b38261366b565b91506135be8361366b565b9250828210156135d1576135d06137a6565b5b828203905092915050565b60006135e78261364b565b9050919050565b60006135f98261364b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600081905061364682613add565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061368082613638565b9050919050565b82818337600083830152505050565b60005b838110156136b4578082015181840152602081019050613699565b838111156136c3576000848401525b50505050565b600060028204905060018216806136e157607f821691505b602082108114156136f5576136f4613833565b5b50919050565b61370482613891565b810181811067ffffffffffffffff8211171561372357613722613862565b5b80604052505050565b60006137378261366b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561376a576137696137a6565b5b600182019050919050565b60006137808261366b565b915061378b8361366b565b92508261379b5761379a6137d5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f2d5769746864726177206661696c65642d000000000000000000000000000000600082015250565b7f2d436f6e74726163742063616c6c206e6f7420616c6c6f7765642d0000000000600082015250565b7f2d4e6f7420656e6f756768204554482d00000000000000000000000000000000600082015250565b7f2d4e6f7420656e6f756768207175616e746974792d0000000000000000000000600082015250565b7f2d54686973206973206d6f7265207468616e20616c6c6f7765642d0000000000600082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b50565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f2d4e6f742073746172746564207965742d000000000000000000000000000000600082015250565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b60038110613aee57613aed613804565b5b50565b613afa816135dc565b8114613b0557600080fd5b50565b613b11816135ee565b8114613b1c57600080fd5b50565b613b2881613600565b8114613b3357600080fd5b50565b613b3f8161360c565b8114613b4a57600080fd5b50565b60038110613b5a57600080fd5b50565b613b668161366b565b8114613b7157600080fd5b5056fea2646970667358221220ac177167d670e3023b01149b6650887a1909a9dafa3f518f9b78dc629ebbbe1864736f6c6343000804003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d5152524e4646417a6864516a46376b556b70394c585562775763387a636156786f54676b72625450484333450000000000000000000000