60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600a908051906020019062000051929190620004f5565b506000600b55611e61600c55600b600d55600b600e556000600f60006101000a81548160ff02191690831515021790555060405162003e2138038062003e218339818101604052810190620000a7919062000742565b733cc6cdda760b79bafa08df41ecfa224f810dceb6600184848160029080519060200190620000d8929190620004f5565b508060039080519060200190620000f1929190620004f5565b50620001026200033b60201b60201c565b600081905550505060006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002ff578015620001c5576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200018b92919062000840565b600060405180830381600087803b158015620001a657600080fd5b505af1158015620001bb573d6000803e3d6000fd5b50505050620002fe565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200027f576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b81526004016200024592919062000840565b600060405180830381600087803b1580156200026057600080fd5b505af115801562000275573d6000803e3d6000fd5b50505050620002fd565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b8152600401620002c891906200086d565b600060405180830381600087803b158015620002e357600080fd5b505af1158015620002f8573d6000803e3d6000fd5b505050505b5b5b505062000321620003156200034060201b60201c565b6200034860201b60201c565b62000332816200040e60201b60201c565b50505062000971565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200041e6200043a60201b60201c565b806009908051906020019062000436929190620004f5565b5050565b6200044a6200034060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000470620004cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620004c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004c090620008eb565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b82805462000503906200093c565b90600052602060002090601f01602090048101928262000527576000855562000573565b82601f106200054257805160ff191683800117855562000573565b8280016001018555821562000573579182015b828111156200057257825182559160200191906001019062000555565b5b50905062000582919062000586565b5090565b5b80821115620005a157600081600090555060010162000587565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200060e82620005c3565b810181811067ffffffffffffffff8211171562000630576200062f620005d4565b5b80604052505050565b600062000645620005a5565b905062000653828262000603565b919050565b600067ffffffffffffffff821115620006765762000675620005d4565b5b6200068182620005c3565b9050602081019050919050565b60005b83811015620006ae57808201518184015260208101905062000691565b83811115620006be576000848401525b50505050565b6000620006db620006d58462000658565b62000639565b905082815260208101848484011115620006fa57620006f9620005be565b5b620007078482856200068e565b509392505050565b600082601f830112620007275762000726620005b9565b5b815162000739848260208601620006c4565b91505092915050565b6000806000606084860312156200075e576200075d620005af565b5b600084015167ffffffffffffffff8111156200077f576200077e620005b4565b5b6200078d868287016200070f565b935050602084015167ffffffffffffffff811115620007b157620007b0620005b4565b5b620007bf868287016200070f565b925050604084015167ffffffffffffffff811115620007e357620007e2620005b4565b5b620007f1868287016200070f565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082882620007fb565b9050919050565b6200083a816200081b565b82525050565b60006040820190506200085760008301856200082f565b6200086660208301846200082f565b9392505050565b60006020820190506200088460008301846200082f565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620008d36020836200088a565b9150620008e0826200089b565b602082019050919050565b600060208201905081810360008301526200090681620008c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200095557607f821691505b6020821081036200096b576200096a6200090d565b5b50919050565b6134a080620009816000396000f3fe6080604052600436106101f95760003560e01c80636c0360eb1161010d578063b88d4fde116100a0578063d0eb26b01161006f578063d0eb26b0146106bd578063d5abeb01146106e6578063da3ef23f14610711578063e985e9c51461073a578063f2fde38b14610777576101f9565b8063b88d4fde1461060e578063ba7d2c761461062a578063c668286214610655578063c87b56dd14610680576101f9565b80637f00c7a6116100dc5780637f00c7a6146105665780638da5cb5b1461058f57806395d89b41146105ba578063a22cb465146105e5576101f9565b80636c0360eb146104be5780636f8b44b0146104e957806370a0823114610512578063715018a61461054f576101f9565b8063239c70ae1161019057806342842e0e1161015f57806342842e0e146103e857806344a0d68a1461040457806355f804b31461042d5780635c975abb146104565780636352211e14610481576101f9565b8063239c70ae1461037b57806323b872dd146103a65780633ccfd60b146103c257806340c10f19146103cc576101f9565b8063095ea7b3116101cc578063095ea7b3146102cc57806313faede6146102e857806318160ddd1461031357806318cae2691461033e576101f9565b806301ffc9a7146101fe57806302329a291461023b57806306fdde0314610264578063081812fc1461028f575b600080fd5b34801561020a57600080fd5b50610225600480360381019061022091906127b5565b6107a0565b60405161023291906127fd565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190612844565b610832565b005b34801561027057600080fd5b50610279610857565b604051610286919061290a565b60405180910390f35b34801561029b57600080fd5b506102b660048036038101906102b19190612962565b6108e9565b6040516102c391906129d0565b60405180910390f35b6102e660048036038101906102e19190612a17565b610968565b005b3480156102f457600080fd5b506102fd610aac565b60405161030a9190612a66565b60405180910390f35b34801561031f57600080fd5b50610328610ab2565b6040516103359190612a66565b60405180910390f35b34801561034a57600080fd5b5061036560048036038101906103609190612a81565b610ac9565b6040516103729190612a66565b60405180910390f35b34801561038757600080fd5b50610390610ae1565b60405161039d9190612a66565b60405180910390f35b6103c060048036038101906103bb9190612aae565b610ae7565b005b6103ca610cc9565b005b6103e660048036038101906103e19190612a17565b610d51565b005b61040260048036038101906103fd9190612aae565b610f1d565b005b34801561041057600080fd5b5061042b60048036038101906104269190612962565b6110ff565b005b34801561043957600080fd5b50610454600480360381019061044f9190612c36565b611111565b005b34801561046257600080fd5b5061046b611133565b60405161047891906127fd565b60405180910390f35b34801561048d57600080fd5b506104a860048036038101906104a39190612962565b611146565b6040516104b591906129d0565b60405180910390f35b3480156104ca57600080fd5b506104d3611158565b6040516104e0919061290a565b60405180910390f35b3480156104f557600080fd5b50610510600480360381019061050b9190612962565b6111e6565b005b34801561051e57600080fd5b5061053960048036038101906105349190612a81565b6111f8565b6040516105469190612a66565b60405180910390f35b34801561055b57600080fd5b506105646112b0565b005b34801561057257600080fd5b5061058d60048036038101906105889190612962565b6112c4565b005b34801561059b57600080fd5b506105a46112d6565b6040516105b191906129d0565b60405180910390f35b3480156105c657600080fd5b506105cf611300565b6040516105dc919061290a565b60405180910390f35b3480156105f157600080fd5b5061060c60048036038101906106079190612c7f565b611392565b005b61062860048036038101906106239190612d60565b61149d565b005b34801561063657600080fd5b5061063f611682565b60405161064c9190612a66565b60405180910390f35b34801561066157600080fd5b5061066a611688565b604051610677919061290a565b60405180910390f35b34801561068c57600080fd5b506106a760048036038101906106a29190612962565b611716565b6040516106b4919061290a565b60405180910390f35b3480156106c957600080fd5b506106e460048036038101906106df9190612962565b6117c0565b005b3480156106f257600080fd5b506106fb6117d2565b6040516107089190612a66565b60405180910390f35b34801561071d57600080fd5b5061073860048036038101906107339190612c36565b6117d8565b005b34801561074657600080fd5b50610761600480360381019061075c9190612de3565b6117fa565b60405161076e91906127fd565b60405180910390f35b34801561078357600080fd5b5061079e60048036038101906107999190612a81565b61188e565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107fb57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061082b5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b61083a611911565b80600f60006101000a81548160ff02191690831515021790555050565b60606002805461086690612e52565b80601f016020809104026020016040519081016040528092919081815260200182805461089290612e52565b80156108df5780601f106108b4576101008083540402835291602001916108df565b820191906000526020600020905b8154815290600101906020018083116108c257829003601f168201915b5050505050905090565b60006108f48261198f565b61092a576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061097382611146565b90508073ffffffffffffffffffffffffffffffffffffffff166109946119ee565b73ffffffffffffffffffffffffffffffffffffffff16146109f7576109c0816109bb6119ee565b6117fa565b6109f6576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600b5481565b6000610abc6119f6565b6001546000540303905090565b60106020528060005260406000206000915090505481565b600d5481565b8260006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610cb7573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b5957610b548484846119fb565b610cc3565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401610ba2929190612e83565b602060405180830381865afa158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be39190612ec1565b8015610c7557506daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401610c33929190612e83565b602060405180830381865afa158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c749190612ec1565b5b610cb657336040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610cad91906129d0565b60405180910390fd5b5b610cc28484846119fb565b5b50505050565b610cd1611911565b6000610cdb6112d6565b73ffffffffffffffffffffffffffffffffffffffff1647604051610cfe90612f1f565b60006040518083038185875af1925050503d8060008114610d3b576040519150601f19603f3d011682016040523d82523d6000602084013e610d40565b606091505b5050905080610d4e57600080fd5b50565b6000610d5b610ab2565b9050600f60009054906101000a900460ff1615610d7757600080fd5b60008211610d8457600080fd5b610d8c6112d6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e9757600d54821115610dcd57600080fd5b600c548282610ddc9190612f63565b1115610de757600080fd5b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600e548382610e3a9190612f63565b1115610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290613005565b60405180910390fd5b82600b54610e899190613025565b341015610e9557600080fd5b505b6000600190505b828111610f0d57601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610ef59061307f565b91905055508080610f059061307f565b915050610e9e565b50610f188383611d1d565b505050565b8260006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b11156110ed573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f8f57610f8a848484611d3b565b6110f9565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401610fd8929190612e83565b602060405180830381865afa158015610ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110199190612ec1565b80156110ab57506daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611069929190612e83565b602060405180830381865afa158015611086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110aa9190612ec1565b5b6110ec57336040517fede71dcc0000000000000000000000000000000000000000000000000000000081526004016110e391906129d0565b60405180910390fd5b5b6110f8848484611d3b565b5b50505050565b611107611911565b80600b8190555050565b611119611911565b806009908051906020019061112f9291906126a6565b5050565b600f60009054906101000a900460ff1681565b600061115182611d5b565b9050919050565b6009805461116590612e52565b80601f016020809104026020016040519081016040528092919081815260200182805461119190612e52565b80156111de5780601f106111b3576101008083540402835291602001916111de565b820191906000526020600020905b8154815290600101906020018083116111c157829003601f168201915b505050505081565b6111ee611911565b80600c8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125f576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6112b8611911565b6112c26000611e27565b565b6112cc611911565b80600d8190555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461130f90612e52565b80601f016020809104026020016040519081016040528092919081815260200182805461133b90612e52565b80156113885780601f1061135d57610100808354040283529160200191611388565b820191906000526020600020905b81548152906001019060200180831161136b57829003601f168201915b5050505050905090565b806007600061139f6119ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661144c6119ee565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161149191906127fd565b60405180910390a35050565b8360006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b111561166e573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115105761150b85858585611eed565b61167b565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401611559929190612e83565b602060405180830381865afa158015611576573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159a9190612ec1565b801561162c57506daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b81526004016115ea929190612e83565b602060405180830381865afa158015611607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162b9190612ec1565b5b61166d57336040517fede71dcc00000000000000000000000000000000000000000000000000000000815260040161166491906129d0565b60405180910390fd5b5b61167a85858585611eed565b5b5050505050565b600e5481565b600a805461169590612e52565b80601f01602080910402602001604051908101604052809291908181526020018280546116c190612e52565b801561170e5780601f106116e35761010080835404028352916020019161170e565b820191906000526020600020905b8154815290600101906020018083116116f157829003601f168201915b505050505081565b60606117218261198f565b611760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175790613139565b60405180910390fd5b600061176a611f60565b9050600081511161178a57604051806020016040528060008152506117b8565b8061179484611ff2565b600a6040516020016117a893929190613229565b6040516020818303038152906040525b915050919050565b6117c8611911565b80600e8190555050565b600c5481565b6117e0611911565b80600a90805190602001906117f69291906126a6565b5050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611896611911565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc906132cc565b60405180910390fd5b61190e81611e27565b50565b6119196120c0565b73ffffffffffffffffffffffffffffffffffffffff166119376112d6565b73ffffffffffffffffffffffffffffffffffffffff161461198d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198490613338565b60405180910390fd5b565b60008161199a6119f6565b111580156119a9575060005482105b80156119e7575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600090565b6000611a0682611d5b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a6d576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080611a79846120c8565b91509150611a8f8187611a8a6119ee565b6120ef565b611adb57611aa486611a9f6119ee565b6117fa565b611ada576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611b41576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b4e8686866001612133565b8015611b5957600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550611c2785611c03888887612139565b7c020000000000000000000000000000000000000000000000000000000017612161565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603611cad5760006001850190506000600460008381526020019081526020016000205403611cab576000548114611caa578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611d15868686600161218c565b505050505050565b611d37828260405180602001604052806000815250612192565b5050565b611d568383836040518060200160405280600081525061149d565b505050565b60008082905080611d6a6119f6565b11611df057600054811015611def5760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611ded575b60008103611de3576004600083600190039350838152602001908152602001600020549050611db9565b8092505050611e22565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611ef8848484610ae7565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611f5a57611f238484848461222f565b611f59576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606060098054611f6f90612e52565b80601f0160208091040260200160405190810160405280929190818152602001828054611f9b90612e52565b8015611fe85780601f10611fbd57610100808354040283529160200191611fe8565b820191906000526020600020905b815481529060010190602001808311611fcb57829003601f168201915b5050505050905090565b6060600060016120018461237f565b01905060008167ffffffffffffffff8111156120205761201f612b0b565b5b6040519080825280601f01601f1916602001820160405280156120525781602001600182028036833780820191505090505b509050600082602001820190505b6001156120b5578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120a9576120a8613358565b5b04945060008503612060575b819350505050919050565b600033905090565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86121508686846124d2565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61219c83836124db565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461222a57600080549050600083820390505b6121dc600086838060010194508661222f565b612212576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106121c957816000541461222757600080fd5b50505b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026122556119ee565b8786866040518563ffffffff1660e01b815260040161227794939291906133dc565b6020604051808303816000875af19250505080156122b357506040513d601f19601f820116820180604052508101906122b0919061343d565b60015b61232c573d80600081146122e3576040519150601f19603f3d011682016040523d82523d6000602084013e6122e8565b606091505b506000815103612324576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106123dd577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816123d3576123d2613358565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061241a576d04ee2d6d415b85acef810000000083816124105761240f613358565b5b0492506020810190505b662386f26fc10000831061244957662386f26fc10000838161243f5761243e613358565b5b0492506010810190505b6305f5e1008310612472576305f5e100838161246857612467613358565b5b0492506008810190505b612710831061249757612710838161248d5761248c613358565b5b0492506004810190505b606483106124ba57606483816124b0576124af613358565b5b0492506002810190505b600a83106124c9576001810190505b80915050919050565b60009392505050565b6000805490506000820361251b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125286000848385612133565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061259f836125906000866000612139565b61259985612696565b17612161565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461264057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612605565b506000820361267b576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050612691600084838561218c565b505050565b60006001821460e11b9050919050565b8280546126b290612e52565b90600052602060002090601f0160209004810192826126d4576000855561271b565b82601f106126ed57805160ff191683800117855561271b565b8280016001018555821561271b579182015b8281111561271a5782518255916020019190600101906126ff565b5b509050612728919061272c565b5090565b5b8082111561274557600081600090555060010161272d565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127928161275d565b811461279d57600080fd5b50565b6000813590506127af81612789565b92915050565b6000602082840312156127cb576127ca612753565b5b60006127d9848285016127a0565b91505092915050565b60008115159050919050565b6127f7816127e2565b82525050565b600060208201905061281260008301846127ee565b92915050565b612821816127e2565b811461282c57600080fd5b50565b60008135905061283e81612818565b92915050565b60006020828403121561285a57612859612753565b5b60006128688482850161282f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128ab578082015181840152602081019050612890565b838111156128ba576000848401525b50505050565b6000601f19601f8301169050919050565b60006128dc82612871565b6128e6818561287c565b93506128f681856020860161288d565b6128ff816128c0565b840191505092915050565b6000602082019050818103600083015261292481846128d1565b905092915050565b6000819050919050565b61293f8161292c565b811461294a57600080fd5b50565b60008135905061295c81612936565b92915050565b60006020828403121561297857612977612753565b5b60006129868482850161294d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129ba8261298f565b9050919050565b6129ca816129af565b82525050565b60006020820190506129e560008301846129c1565b92915050565b6129f4816129af565b81146129ff57600080fd5b50565b600081359050612a11816129eb565b92915050565b60008060408385031215612a2e57612a2d612753565b5b6000612a3c85828601612a02565b9250506020612a4d8582860161294d565b9150509250929050565b612a608161292c565b82525050565b6000602082019050612a7b6000830184612a57565b92915050565b600060208284031215612a9757612a96612753565b5b6000612aa584828501612a02565b91505092915050565b600080600060608486031215612ac757612ac6612753565b5b6000612ad586828701612a02565b9350506020612ae686828701612a02565b9250506040612af78682870161294d565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b43826128c0565b810181811067ffffffffffffffff82111715612b6257612b61612b0b565b5b80604052505050565b6000612b75612749565b9050612b818282612b3a565b919050565b600067ffffffffffffffff821115612ba157612ba0612b0b565b5b612baa826128c0565b9050602081019050919050565b82818337600083830152505050565b6000612bd9612bd484612b86565b612b6b565b905082815260208101848484011115612bf557612bf4612b06565b5b612c00848285612bb7565b509392505050565b600082601f830112612c1d57612c1c612b01565b5b8135612c2d848260208601612bc6565b91505092915050565b600060208284031215612c4c57612c4b612753565b5b600082013567ffffffffffffffff811115612c6a57612c69612758565b5b612c7684828501612c08565b91505092915050565b60008060408385031215612c9657612c95612753565b5b6000612ca485828601612a02565b9250506020612cb58582860161282f565b9150509250929050565b600067ffffffffffffffff821115612cda57612cd9612b0b565b5b612ce3826128c0565b9050602081019050919050565b6000612d03612cfe84612cbf565b612b6b565b905082815260208101848484011115612d1f57612d1e612b06565b5b612d2a848285612bb7565b509392505050565b600082601f830112612d4757612d46612b01565b5b8135612d57848260208601612cf0565b91505092915050565b60008060008060808587031215612d7a57612d79612753565b5b6000612d8887828801612a02565b9450506020612d9987828801612a02565b9350506040612daa8782880161294d565b925050606085013567ffffffffffffffff811115612dcb57612dca612758565b5b612dd787828801612d32565b91505092959194509250565b60008060408385031215612dfa57612df9612753565b5b6000612e0885828601612a02565b9250506020612e1985828601612a02565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e6a57607f821691505b602082108103612e7d57612e7c612e23565b5b50919050565b6000604082019050612e9860008301856129c1565b612ea560208301846129c1565b9392505050565b600081519050612ebb81612818565b92915050565b600060208284031215612ed757612ed6612753565b5b6000612ee584828501612eac565b91505092915050565b600081905092915050565b50565b6000612f09600083612eee565b9150612f1482612ef9565b600082019050919050565b6000612f2a82612efc565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f6e8261292c565b9150612f798361292c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fae57612fad612f34565b5b828201905092915050565b7f6d6178204e465420706572206164647265737320657863656564656400000000600082015250565b6000612fef601c8361287c565b9150612ffa82612fb9565b602082019050919050565b6000602082019050818103600083015261301e81612fe2565b9050919050565b60006130308261292c565b915061303b8361292c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561307457613073612f34565b5b828202905092915050565b600061308a8261292c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130bc576130bb612f34565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613123602f8361287c565b915061312e826130c7565b604082019050919050565b6000602082019050818103600083015261315281613116565b9050919050565b600081905092915050565b600061316f82612871565b6131798185613159565b935061318981856020860161288d565b80840191505092915050565b60008190508160005260206000209050919050565b600081546131b781612e52565b6131c18186613159565b945060018216600081146131dc57600181146131ed57613220565b60ff19831686528186019350613220565b6131f685613195565b60005b83811015613218578154818901526001820191506020810190506131f9565b838801955050505b50505092915050565b60006132358286613164565b91506132418285613164565b915061324d82846131aa565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006132b660268361287c565b91506132c18261325a565b604082019050919050565b600060208201905081810360008301526132e5816132a9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061332260208361287c565b915061332d826132ec565b602082019050919050565b6000602082019050818103600083015261335181613315565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b60006133ae82613387565b6133b88185613392565b93506133c881856020860161288d565b6133d1816128c0565b840191505092915050565b60006080820190506133f160008301876129c1565b6133fe60208301866129c1565b61340b6040830185612a57565b818103606083015261341d81846133a3565b905095945050505050565b60008151905061343781612789565b92915050565b60006020828403121561345357613452612753565b5b600061346184828501613428565b9150509291505056fea2646970667358221220fc47e308e692b037615a97ae2905d9f031f993242c008556248c89424e81726364736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000e416e67656c73206f66205a6575730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003414f5a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c68747470733a2f2f6465767a6575732e696f2f6a736f6e2f616f7a2f00000000