608060405260405180602001604052806000815250600a90805190602001906200002b92919062000321565b506000600b556000600c60006101000a81548160ff0219169083151502179055503480156200005957600080fd5b5060405162003c0c38038062003c0c83398181016040528101906200007f91906200056e565b6040518060400160405280600781526020017f42414d66657273000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f42414d464552530000000000000000000000000000000000000000000000000081525081600290805190602001906200010392919062000321565b5080600390805190602001906200011c92919062000321565b506200012d6200017560201b60201c565b600081905550505062000155620001496200017e60201b60201c565b6200018660201b60201c565b60016009819055506200016e816200024c60201b60201c565b50620006a7565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200025c6200017e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000282620002f760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002db576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002d29062000620565b60405180910390fd5b80600a9080519060200190620002f392919062000321565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200032f9062000671565b90600052602060002090601f0160209004810192826200035357600085556200039f565b82601f106200036e57805160ff19168380011785556200039f565b828001600101855582156200039f579182015b828111156200039e57825182559160200191906001019062000381565b5b509050620003ae9190620003b2565b5090565b5b80821115620003cd576000816000905550600101620003b3565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200043a82620003ef565b810181811067ffffffffffffffff821117156200045c576200045b62000400565b5b80604052505050565b600062000471620003d1565b90506200047f82826200042f565b919050565b600067ffffffffffffffff821115620004a257620004a162000400565b5b620004ad82620003ef565b9050602081019050919050565b60005b83811015620004da578082015181840152602081019050620004bd565b83811115620004ea576000848401525b50505050565b600062000507620005018462000484565b62000465565b905082815260208101848484011115620005265762000525620003ea565b5b62000533848285620004ba565b509392505050565b600082601f830112620005535762000552620003e5565b5b815162000565848260208601620004f0565b91505092915050565b600060208284031215620005875762000586620003db565b5b600082015167ffffffffffffffff811115620005a857620005a7620003e0565b5b620005b6848285016200053b565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000608602083620005bf565b91506200061582620005d0565b602082019050919050565b600060208201905081810360008301526200063b81620005f9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200068a57607f821691505b60208210811415620006a157620006a062000642565b5b50919050565b61355580620006b76000396000f3fe6080604052600436106101c25760003560e01c806370a08231116100f7578063a22cb46511610095578063e985e9c511610064578063e985e9c5146105fb578063eb8d244414610638578063f0234ed214610663578063f2fde38b1461068e576101c2565b8063a22cb46514610555578063b88d4fde1461057e578063c87b56dd146105a7578063dd9c1f23146105e4576101c2565b80638da5cb5b116100d15780638da5cb5b146104ba57806395d89b41146104e5578063a0712d6814610510578063a0bcfc7f1461052c576101c2565b806370a082311461043d578063715018a61461047a5780637c928fe914610491576101c2565b80633abc1a441161016457806342842e0e1161013e57806342842e0e146103815780636352211e146103aa5780636373a6b1146103e75780636f48525414610412576101c2565b80633abc1a44146103145780633ccfd60b1461033f5780633e4faa3e14610356576101c2565b8063095ea7b3116101a0578063095ea7b31461026c5780630f0e28321461029557806318160ddd146102c057806323b872dd146102eb576101c2565b806301ffc9a7146101c757806306fdde0314610204578063081812fc1461022f575b600080fd5b3480156101d357600080fd5b506101ee60048036038101906101e9919061292e565b6106b7565b6040516101fb9190612976565b60405180910390f35b34801561021057600080fd5b50610219610799565b6040516102269190612a2a565b60405180910390f35b34801561023b57600080fd5b5061025660048036038101906102519190612a82565b61082b565b6040516102639190612af0565b60405180910390f35b34801561027857600080fd5b50610293600480360381019061028e9190612b37565b6108a7565b005b3480156102a157600080fd5b506102aa6109b2565b6040516102b79190612b86565b60405180910390f35b3480156102cc57600080fd5b506102d56109c0565b6040516102e29190612b86565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d9190612ba1565b6109d7565b005b34801561032057600080fd5b506103296109e7565b6040516103369190612b86565b60405180910390f35b34801561034b57600080fd5b506103546109ec565b005b34801561036257600080fd5b5061036b610ae8565b6040516103789190612b86565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a39190612ba1565b610aee565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190612a82565b610b0e565b6040516103de9190612af0565b60405180910390f35b3480156103f357600080fd5b506103fc610b24565b6040516104099190612a2a565b60405180910390f35b34801561041e57600080fd5b50610427610b40565b6040516104349190612b86565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190612bf4565b610b4b565b6040516104719190612b86565b60405180910390f35b34801561048657600080fd5b5061048f610c1b565b005b34801561049d57600080fd5b506104b860048036038101906104b39190612a82565b610ca3565b005b3480156104c657600080fd5b506104cf610eab565b6040516104dc9190612af0565b60405180910390f35b3480156104f157600080fd5b506104fa610ed5565b6040516105079190612a2a565b60405180910390f35b61052a60048036038101906105259190612a82565b610f67565b005b34801561053857600080fd5b50610553600480360381019061054e9190612d56565b611162565b005b34801561056157600080fd5b5061057c60048036038101906105779190612dcb565b6111f8565b005b34801561058a57600080fd5b506105a560048036038101906105a09190612eac565b611370565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190612a82565b6113ec565b6040516105db9190612a2a565b60405180910390f35b3480156105f057600080fd5b506105f961148b565b005b34801561060757600080fd5b50610622600480360381019061061d9190612f2f565b611533565b60405161062f9190612976565b60405180910390f35b34801561064457600080fd5b5061064d6115c7565b60405161065a9190612976565b60405180910390f35b34801561066f57600080fd5b506106786115da565b6040516106859190612b86565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190612bf4565b6115e0565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061078257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107925750610791826116d8565b5b9050919050565b6060600280546107a890612f9e565b80601f01602080910402602001604051908101604052809291908181526020018280546107d490612f9e565b80156108215780601f106107f657610100808354040283529160200191610821565b820191906000526020600020905b81548152906001019060200180831161080457829003601f168201915b5050505050905090565b600061083682611742565b61086c576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108b282610b0e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561091a576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610939611790565b73ffffffffffffffffffffffffffffffffffffffff161415801561096b575061096981610964611790565b611533565b155b156109a2576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109ad838383611798565b505050565b6000600b5461014d03905090565b60006109ca61184a565b6001546000540303905090565b6109e2838383611853565b505050565b601481565b6109f4611790565b73ffffffffffffffffffffffffffffffffffffffff16610a12610eab565b73ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f9061301c565b60405180910390fd5b6000610a72610eab565b73ffffffffffffffffffffffffffffffffffffffff1647604051610a959061306d565b60006040518083038185875af1925050503d8060008114610ad2576040519150601f19603f3d011682016040523d82523d6000602084013e610ad7565b606091505b5050905080610ae557600080fd5b50565b61014d81565b610b0983838360405180602001604052806000815250611370565b505050565b6000610b1982611d44565b600001519050919050565b6040518060600160405280604081526020016134e06040913981565b662386f26fc1000081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bb3576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b610c23611790565b73ffffffffffffffffffffffffffffffffffffffff16610c41610eab565b73ffffffffffffffffffffffffffffffffffffffff1614610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e9061301c565b60405180910390fd5b610ca16000611fd3565b565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610d08576040517fee57192000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026009541415610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d45906130ce565b60405180910390fd5b600260098190555080600c60009054906101000a900460ff16610d9c576040517eecac0100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6014811115610dd7576040517f01f4f2d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0581610de36109c0565b610ded919061311d565b1115610e25576040517f8a164f6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61014d82600b54610e36919061311d565b1115610e6e576040517f5911b0ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e8f610e79611790565b8360405180602001604052806000815250612099565b81600b6000828254019250508190555050600160098190555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610ee490612f9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1090612f9e565b8015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517fee57192000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60026009541415611012576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611009906130ce565b60405180910390fd5b600260098190555080600c60009054906101000a900460ff16611060576040517eecac0100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601481111561109b576040517f01f4f2d400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d05816110a76109c0565b6110b1919061311d565b11156110e9576040517f8a164f6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81662386f26fc100006110fc9190613173565b341015611135576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611156611140611790565b8360405180602001604052806000815250612099565b50600160098190555050565b61116a611790565b73ffffffffffffffffffffffffffffffffffffffff16611188610eab565b73ffffffffffffffffffffffffffffffffffffffff16146111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d59061301c565b60405180910390fd5b80600a90805190602001906111f49291906127dc565b5050565b611200611790565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611265576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611272611790565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661131f611790565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113649190612976565b60405180910390a35050565b61137b848484611853565b61139a8373ffffffffffffffffffffffffffffffffffffffff166120ab565b80156113af57506113ad848484846120be565b155b156113e6576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60606113f782611742565b61142d576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061143761220f565b90506000815114156114585760405180602001604052806000815250611483565b80611462846122a1565b604051602001611473929190613209565b6040516020818303038152906040525b915050919050565b611493611790565b73ffffffffffffffffffffffffffffffffffffffff166114b1610eab565b73ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe9061301c565b60405180910390fd5b600c60009054906101000a900460ff1615600c60006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600c60009054906101000a900460ff1681565b610d0581565b6115e8611790565b73ffffffffffffffffffffffffffffffffffffffff16611606610eab565b73ffffffffffffffffffffffffffffffffffffffff161461165c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116539061301c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c39061329f565b60405180910390fd5b6116d581611fd3565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008161174d61184a565b1115801561175c575060005482105b8015611789575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b600061185e82611d44565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16611885611790565b73ffffffffffffffffffffffffffffffffffffffff1614806118b857506118b782600001516118b2611790565b611533565b5b806118fd57506118c6611790565b73ffffffffffffffffffffffffffffffffffffffff166118e58461082b565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611936576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161461199f576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611a06576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a138585856001612402565b611a236000848460000151611798565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550836004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600085815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600184019050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cd457600054811015611cd35782600001516004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602001516004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b50828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611d3d8585856001612408565b5050505050565b611d4c612862565b600082905080611d5a61184a565b11158015611d69575060005481105b15611f9c576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff16151515158152505090508060400151611f9a57600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611e7e578092505050611fce565b5b600115611f9957818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611f94578092505050611fce565b611e7f565b5b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6120a6838383600161240e565b505050565b600080823b905060008111915050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120e4611790565b8786866040518563ffffffff1660e01b81526004016121069493929190613314565b6020604051808303816000875af192505050801561214257506040513d601f19601f8201168201806040525081019061213f9190613375565b60015b6121bc573d8060008114612172576040519150601f19603f3d011682016040523d82523d6000602084013e612177565b606091505b506000815114156121b4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a805461221e90612f9e565b80601f016020809104026020016040519081016040528092919081815260200182805461224a90612f9e565b80156122975780601f1061226c57610100808354040283529160200191612297565b820191906000526020600020905b81548152906001019060200180831161227a57829003601f168201915b5050505050905090565b606060008214156122e9576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506123fd565b600082905060005b6000821461231b578080612304906133a2565b915050600a82612314919061341a565b91506122f1565b60008167ffffffffffffffff81111561233757612336612c2b565b5b6040519080825280601f01601f1916602001820160405280156123695781602001600182028036833780820191505090505b5090505b600085146123f657600182612382919061344b565b9150600a85612391919061347f565b603061239d919061311d565b60f81b8183815181106123b3576123b26134b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123ef919061341a565b945061236d565b8093505050505b919050565b50505050565b50505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561247b576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008414156124b6576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124c36000868387612402565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008190506000858201905083801561268d575061268c8773ffffffffffffffffffffffffffffffffffffffff166120ab565b5b15612753575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461270260008884806001019550886120be565b612738576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082141561269357826000541461274e57600080fd5b6127bf565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480821415612754575b8160008190555050506127d56000868387612408565b5050505050565b8280546127e890612f9e565b90600052602060002090601f01602090048101928261280a5760008555612851565b82601f1061282357805160ff1916838001178555612851565b82800160010185558215612851579182015b82811115612850578251825591602001919060010190612835565b5b50905061285e91906128a5565b5090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b5b808211156128be5760008160009055506001016128a6565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61290b816128d6565b811461291657600080fd5b50565b60008135905061292881612902565b92915050565b600060208284031215612944576129436128cc565b5b600061295284828501612919565b91505092915050565b60008115159050919050565b6129708161295b565b82525050565b600060208201905061298b6000830184612967565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129cb5780820151818401526020810190506129b0565b838111156129da576000848401525b50505050565b6000601f19601f8301169050919050565b60006129fc82612991565b612a06818561299c565b9350612a168185602086016129ad565b612a1f816129e0565b840191505092915050565b60006020820190508181036000830152612a4481846129f1565b905092915050565b6000819050919050565b612a5f81612a4c565b8114612a6a57600080fd5b50565b600081359050612a7c81612a56565b92915050565b600060208284031215612a9857612a976128cc565b5b6000612aa684828501612a6d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ada82612aaf565b9050919050565b612aea81612acf565b82525050565b6000602082019050612b056000830184612ae1565b92915050565b612b1481612acf565b8114612b1f57600080fd5b50565b600081359050612b3181612b0b565b92915050565b60008060408385031215612b4e57612b4d6128cc565b5b6000612b5c85828601612b22565b9250506020612b6d85828601612a6d565b9150509250929050565b612b8081612a4c565b82525050565b6000602082019050612b9b6000830184612b77565b92915050565b600080600060608486031215612bba57612bb96128cc565b5b6000612bc886828701612b22565b9350506020612bd986828701612b22565b9250506040612bea86828701612a6d565b9150509250925092565b600060208284031215612c0a57612c096128cc565b5b6000612c1884828501612b22565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c63826129e0565b810181811067ffffffffffffffff82111715612c8257612c81612c2b565b5b80604052505050565b6000612c956128c2565b9050612ca18282612c5a565b919050565b600067ffffffffffffffff821115612cc157612cc0612c2b565b5b612cca826129e0565b9050602081019050919050565b82818337600083830152505050565b6000612cf9612cf484612ca6565b612c8b565b905082815260208101848484011115612d1557612d14612c26565b5b612d20848285612cd7565b509392505050565b600082601f830112612d3d57612d3c612c21565b5b8135612d4d848260208601612ce6565b91505092915050565b600060208284031215612d6c57612d6b6128cc565b5b600082013567ffffffffffffffff811115612d8a57612d896128d1565b5b612d9684828501612d28565b91505092915050565b612da88161295b565b8114612db357600080fd5b50565b600081359050612dc581612d9f565b92915050565b60008060408385031215612de257612de16128cc565b5b6000612df085828601612b22565b9250506020612e0185828601612db6565b9150509250929050565b600067ffffffffffffffff821115612e2657612e25612c2b565b5b612e2f826129e0565b9050602081019050919050565b6000612e4f612e4a84612e0b565b612c8b565b905082815260208101848484011115612e6b57612e6a612c26565b5b612e76848285612cd7565b509392505050565b600082601f830112612e9357612e92612c21565b5b8135612ea3848260208601612e3c565b91505092915050565b60008060008060808587031215612ec657612ec56128cc565b5b6000612ed487828801612b22565b9450506020612ee587828801612b22565b9350506040612ef687828801612a6d565b925050606085013567ffffffffffffffff811115612f1757612f166128d1565b5b612f2387828801612e7e565b91505092959194509250565b60008060408385031215612f4657612f456128cc565b5b6000612f5485828601612b22565b9250506020612f6585828601612b22565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612fb657607f821691505b60208210811415612fca57612fc9612f6f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061300660208361299c565b915061301182612fd0565b602082019050919050565b6000602082019050818103600083015261303581612ff9565b9050919050565b600081905092915050565b50565b600061305760008361303c565b915061306282613047565b600082019050919050565b60006130788261304a565b9150819050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006130b8601f8361299c565b91506130c382613082565b602082019050919050565b600060208201905081810360008301526130e7816130ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061312882612a4c565b915061313383612a4c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613168576131676130ee565b5b828201905092915050565b600061317e82612a4c565b915061318983612a4c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131c2576131c16130ee565b5b828202905092915050565b600081905092915050565b60006131e382612991565b6131ed81856131cd565b93506131fd8185602086016129ad565b80840191505092915050565b600061321582856131d8565b915061322182846131d8565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061328960268361299c565b91506132948261322d565b604082019050919050565b600060208201905081810360008301526132b88161327c565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006132e6826132bf565b6132f081856132ca565b93506133008185602086016129ad565b613309816129e0565b840191505092915050565b60006080820190506133296000830187612ae1565b6133366020830186612ae1565b6133436040830185612b77565b818103606083015261335581846132db565b905095945050505050565b60008151905061336f81612902565b92915050565b60006020828403121561338b5761338a6128cc565b5b600061339984828501613360565b91505092915050565b60006133ad82612a4c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156133e0576133df6130ee565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061342582612a4c565b915061343083612a4c565b9250826134405761343f6133eb565b5b828204905092915050565b600061345682612a4c565b915061346183612a4c565b925082821015613474576134736130ee565b5b828203905092915050565b600061348a82612a4c565b915061349583612a4c565b9250826134a5576134a46133eb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfe37343638633931646466336666363063663134636338666430616265306330343263333333376339346331343334633762383862323837346139656661656464a26469706673582212207d458f8cbc709e6a627565b146b9b0bdea93d2b66d939ce82fa038f01737ef3364736f6c634300080a003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000043697066733a2f2f626166796265696337687537747665756d756732336e6d33637967777a6c70713235637371787175717635716235676b7062356a73346c636477792f0000000000000000000000000000000000000000000000000000000000