6080604052610aa0600d5566071afd498d0000600e55600a600f5560016010556101f460115560646012553480156200003757600080fd5b50604051620045d3380380620045d383398181016040528101906200005d9190620005c4565b6040518060400160405280600e81526020017f43727970746f56616772616e747a0000000000000000000000000000000000008152506040518060400160405280600381526020017f43565a00000000000000000000000000000000000000000000000000000000008152508160029081620000da919062000860565b508060039081620000ec919062000860565b50620000fd6200015a60201b60201c565b600081905550505062000125620001196200015f60201b60201c565b6200016760201b60201c565b600160098190555080601390816200013e919062000860565b5062000153336103e86200022d60201b60201c565b5062000a62565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200028082826200028460201b60201c565b5050565b620002946200042760201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115620002f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ec90620009ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000367576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200035e9062000a40565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000612710905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200049a826200044f565b810181811067ffffffffffffffff82111715620004bc57620004bb62000460565b5b80604052505050565b6000620004d162000431565b9050620004df82826200048f565b919050565b600067ffffffffffffffff82111562000502576200050162000460565b5b6200050d826200044f565b9050602081019050919050565b60005b838110156200053a5780820151818401526020810190506200051d565b60008484015250505050565b60006200055d6200055784620004e4565b620004c5565b9050828152602081018484840111156200057c576200057b6200044a565b5b620005898482856200051a565b509392505050565b600082601f830112620005a957620005a862000445565b5b8151620005bb84826020860162000546565b91505092915050565b600060208284031215620005dd57620005dc6200043b565b5b600082015167ffffffffffffffff811115620005fe57620005fd62000440565b5b6200060c8482850162000591565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200066857607f821691505b6020821081036200067e576200067d62000620565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006a9565b620006f48683620006a9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007416200073b62000735846200070c565b62000716565b6200070c565b9050919050565b6000819050919050565b6200075d8362000720565b620007756200076c8262000748565b848454620006b6565b825550505050565b600090565b6200078c6200077d565b6200079981848462000752565b505050565b5b81811015620007c157620007b560008262000782565b6001810190506200079f565b5050565b601f8211156200081057620007da8162000684565b620007e58462000699565b81016020851015620007f5578190505b6200080d620008048562000699565b8301826200079e565b50505b505050565b600082821c905092915050565b6000620008356000198460080262000815565b1980831691505092915050565b600062000850838362000822565b9150826002028217905092915050565b6200086b8262000615565b67ffffffffffffffff81111562000887576200088662000460565b5b6200089382546200064f565b620008a0828285620007c5565b600060209050601f831160018114620008d85760008415620008c3578287015190505b620008cf858262000842565b8655506200093f565b601f198416620008e88662000684565b60005b828110156200091257848901518255600182019150602085019450602081019050620008eb565b868310156200093257848901516200092e601f89168262000822565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000620009b6602a8362000947565b9150620009c38262000958565b604082019050919050565b60006020820190508181036000830152620009e981620009a7565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600062000a2860198362000947565b915062000a3582620009f0565b602082019050919050565b6000602082019050818103600083015262000a5b8162000a19565b9050919050565b613b618062000a726000396000f3fe6080604052600436106102045760003560e01c80636352211e1161011857806395d89b41116100a0578063b88d4fde1161006f578063b88d4fde14610704578063c87b56dd1461072d578063de314a591461076a578063e985e9c514610795578063f2fde38b146107d257610204565b806395d89b41146106695780639cb57d2014610694578063a0712d68146106bf578063a22cb465146106db57610204565b8063715018a6116100e7578063715018a6146105be5780637c69e207146105d55780638da5cb5b146105ec57806391b7f5ed1461061757806392910eec1461064057610204565b80636352211e146104f057806367a4f4a91461052d5780636c0360eb1461055657806370a082311461058157610204565b8063190866921161019b5780633ccfd60b1161016a5780633ccfd60b1461043e57806341c66d0a1461044857806342842e0e1461047357806355f804b31461049c5780635e1c4b60146104c557610204565b8063190866921461038157806322f4596f146103ac57806323b872dd146103d75780632a55205a1461040057610204565b8063081812fc116101d7578063081812fc146102c5578063095ea7b3146103025780630afb04db1461032b57806318160ddd1461035657610204565b806301ffc9a7146102095780630387da421461024657806304634d8d1461027157806306fdde031461029a575b600080fd5b34801561021557600080fd5b50610230600480360381019061022b91906127c3565b6107fb565b60405161023d919061280b565b60405180910390f35b34801561025257600080fd5b5061025b6108f5565b604051610268919061283f565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906128fc565b6108fb565b005b3480156102a657600080fd5b506102af61094a565b6040516102bc91906129cc565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190612a1a565b6109dc565b6040516102f99190612a56565b60405180910390f35b34801561030e57600080fd5b5061032960048036038101906103249190612a71565b610a5b565b005b34801561033757600080fd5b50610340610b9f565b60405161034d919061283f565b60405180910390f35b34801561036257600080fd5b5061036b610ba5565b604051610378919061283f565b60405180910390f35b34801561038d57600080fd5b50610396610bbc565b6040516103a39190612a56565b60405180910390f35b3480156103b857600080fd5b506103c1610be2565b6040516103ce919061283f565b60405180910390f35b3480156103e357600080fd5b506103fe60048036038101906103f99190612ab1565b610be8565b005b34801561040c57600080fd5b5061042760048036038101906104229190612b04565b610f0a565b604051610435929190612b44565b60405180910390f35b610446610f4c565b005b34801561045457600080fd5b5061045d611022565b60405161046a919061283f565b60405180910390f35b34801561047f57600080fd5b5061049a60048036038101906104959190612ab1565b611028565b005b3480156104a857600080fd5b506104c360048036038101906104be9190612ca2565b611048565b005b3480156104d157600080fd5b506104da611063565b6040516104e7919061283f565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190612a1a565b611069565b6040516105249190612a56565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190612ceb565b61107b565b005b34801561056257600080fd5b5061056b6110b4565b60405161057891906129cc565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a39190612d2b565b611142565b6040516105b5919061283f565b60405180910390f35b3480156105ca57600080fd5b506105d36111fa565b005b3480156105e157600080fd5b506105ea61120e565b005b3480156105f857600080fd5b50610601611285565b60405161060e9190612a56565b60405180910390f35b34801561062357600080fd5b5061063e60048036038101906106399190612a1a565b6112af565b005b34801561064c57600080fd5b5061066760048036038101906106629190612a1a565b6112c1565b005b34801561067557600080fd5b5061067e6112d3565b60405161068b91906129cc565b60405180910390f35b3480156106a057600080fd5b506106a9611365565b6040516106b6919061283f565b60405180910390f35b6106d960048036038101906106d49190612a1a565b61136b565b005b3480156106e757600080fd5b5061070260048036038101906106fd9190612d84565b6115b2565b005b34801561071057600080fd5b5061072b60048036038101906107269190612e65565b611729565b005b34801561073957600080fd5b50610754600480360381019061074f9190612a1a565b61179c565b60405161076191906129cc565b60405180910390f35b34801561077657600080fd5b5061077f611818565b60405161078c919061283f565b60405180910390f35b3480156107a157600080fd5b506107bc60048036038101906107b79190612ee8565b61181e565b6040516107c9919061280b565b60405180910390f35b3480156107de57600080fd5b506107f960048036038101906107f49190612d2b565b611883565b005b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061088e57506301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108be57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108ee5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600e5481565b81601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109468282611906565b5050565b60606002805461095990612f57565b80601f016020809104026020016040519081016040528092919081815260200182805461098590612f57565b80156109d25780601f106109a7576101008083540402835291602001916109d2565b820191906000526020600020905b8154815290600101906020018083116109b557829003601f168201915b5050505050905090565b60006109e782611a9b565b610a1d576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a6682611069565b90508073ffffffffffffffffffffffffffffffffffffffff16610a87611afa565b73ffffffffffffffffffffffffffffffffffffffff1614610aea57610ab381610aae611afa565b61181e565b610ae9576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600c5481565b6000610baf611b02565b6001546000540303905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6000610bf382611b07565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c5a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610c6684611bd3565b91509150610c7c8187610c77611afa565b611bfa565b610cc857610c9186610c8c611afa565b61181e565b610cc7576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d2e576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d3b8686866001611c3e565b8015610d4657600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610e1485610df0888887611c44565b7c020000000000000000000000000000000000000000000000000000000017611c6c565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610e9a5760006001850190506000600460008381526020019081526020016000205403610e98576000548114610e97578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f028686866001611c97565b505050505050565b6000806000610f198585611c9d565b915050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168192509250509250929050565b610f54611e87565b600260095403610f99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9090612fd4565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051610fc790613025565b60006040518083038185875af1925050503d8060008114611004576040519150601f19603f3d011682016040523d82523d6000602084013e611009565b606091505b505090508061101757600080fd5b506001600981905550565b60125481565b61104383838360405180602001604052806000815250611729565b505050565b611050611e87565b806013908161105f91906131e6565b5050565b60115481565b600061107482611b07565b9050919050565b611083611e87565b6110b082601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611f05565b5050565b601380546110c190612f57565b80601f01602080910402602001604051908101604052809291908181526020018280546110ed90612f57565b801561113a5780601f1061110f5761010080835404028352916020019161113a565b820191906000526020600020905b81548152906001019060200180831161111d57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111a9576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611202611e87565b61120c60006120ac565b565b611216611e87565b601254600c600082825461122a91906132e7565b925050819055507f8d8664e4328cbcd16b52db004cff5622d17995140cefada9f4578b857f9b204e61125a612172565b600c5460125460405161126f9392919061331b565b60405180910390a16112833360125461217a565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112b7611e87565b80600e8190555050565b6112c9611e87565b8060118190555050565b6060600380546112e290612f57565b80601f016020809104026020016040519081016040528092919081815260200182805461130e90612f57565b801561135b5780601f106113305761010080835404028352916020019161135b565b820191906000526020600020905b81548152906001019060200180831161133e57829003601f168201915b5050505050905090565b60105481565b6000600e5490506000600160115461138391906132e7565b8361138c610ba5565b61139691906132e7565b1080156113ef575060105483601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113ec91906132e7565b11155b8061142c57506113fd611285565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b9050801561143957600091505b81836114459190613352565b341015611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e906133e0565b60405180910390fd5b6001601254600d546114999190613400565b6114a391906132e7565b836114ac610ba5565b6114b691906132e7565b106114f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ed90613480565b60405180910390fd5b6001600f5461150591906132e7565b8310611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d906134ec565b60405180910390fd5b80156115a35782601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461159b91906132e7565b925050819055505b6115ad338461217a565b505050565b6115ba611afa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361161e576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806007600061162b611afa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166116d8611afa565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161171d919061280b565b60405180910390a35050565b611734848484610be8565b60008373ffffffffffffffffffffffffffffffffffffffff163b146117965761175f84848484612198565b611795576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60606117a782611a9b565b6117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd9061357e565b60405180910390fd5b60136117f1836122e8565b6040516020016118029291906136a9565b6040516020818303038152906040529050919050565b600f5481565b600073f849de01b080adc3a814fabe1e2087475cf2e35473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611870576000905061187d565b61187a8383612448565b90505b92915050565b61188b611e87565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f19061374a565b60405180910390fd5b611903816120ac565b50565b61190e6124dc565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111561196c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611963906137dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d290613848565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600081611aa6611b02565b11158015611ab5575060005482105b8015611af3575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600090565b60008082905080611b16611b02565b11611b9c57600054811015611b9b5760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611b99575b60008103611b8f576004600083600190039350838152602001908152602001600020549050611b65565b8092505050611bce565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611c5b8686846124e6565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000806000600b60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603611e3257600a6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000611e3c6124dc565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686611e689190613352565b611e729190613897565b90508160000151819350935050509250929050565b611e8f612172565b73ffffffffffffffffffffffffffffffffffffffff16611ead611285565b73ffffffffffffffffffffffffffffffffffffffff1614611f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efa90613914565b60405180910390fd5b565b611f0d6124dc565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f62906137dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd190613980565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600b600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6121948282604051806020016040528060008152506124ef565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121be611afa565b8786866040518563ffffffff1660e01b81526004016121e094939291906139f5565b6020604051808303816000875af192505050801561221c57506040513d601f19601f820116820180604052508101906122199190613a56565b60015b612295573d806000811461224c576040519150601f19603f3d011682016040523d82523d6000602084013e612251565b606091505b50600081510361228d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606000820361232f576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612443565b600082905060005b6000821461236157808061234a90613a83565b915050600a8261235a9190613897565b9150612337565b60008167ffffffffffffffff81111561237d5761237c612b77565b5b6040519080825280601f01601f1916602001820160405280156123af5781602001600182028036833780820191505090505b5090505b6000851461243c576001826123c89190613400565b9150600a856123d79190613acb565b60306123e391906132e7565b60f81b8183815181106123f9576123f8613afc565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856124359190613897565b94506123b3565b8093505050505b919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000612710905090565b60009392505050565b6124f9838361258c565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461258757600080549050600083820390505b6125396000868380600101945086612198565b61256f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061252657816000541461258457600080fd5b50505b505050565b600080549050600082036125cc576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125d96000848385611c3e565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612650836126416000866000611c44565b61264a85612747565b17611c6c565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146126f157808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506126b6565b506000820361272c576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506127426000848385611c97565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6127a08161276b565b81146127ab57600080fd5b50565b6000813590506127bd81612797565b92915050565b6000602082840312156127d9576127d8612761565b5b60006127e7848285016127ae565b91505092915050565b60008115159050919050565b612805816127f0565b82525050565b600060208201905061282060008301846127fc565b92915050565b6000819050919050565b61283981612826565b82525050565b60006020820190506128546000830184612830565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006128858261285a565b9050919050565b6128958161287a565b81146128a057600080fd5b50565b6000813590506128b28161288c565b92915050565b60006bffffffffffffffffffffffff82169050919050565b6128d9816128b8565b81146128e457600080fd5b50565b6000813590506128f6816128d0565b92915050565b6000806040838503121561291357612912612761565b5b6000612921858286016128a3565b9250506020612932858286016128e7565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561297657808201518184015260208101905061295b565b60008484015250505050565b6000601f19601f8301169050919050565b600061299e8261293c565b6129a88185612947565b93506129b8818560208601612958565b6129c181612982565b840191505092915050565b600060208201905081810360008301526129e68184612993565b905092915050565b6129f781612826565b8114612a0257600080fd5b50565b600081359050612a14816129ee565b92915050565b600060208284031215612a3057612a2f612761565b5b6000612a3e84828501612a05565b91505092915050565b612a508161287a565b82525050565b6000602082019050612a6b6000830184612a47565b92915050565b60008060408385031215612a8857612a87612761565b5b6000612a96858286016128a3565b9250506020612aa785828601612a05565b9150509250929050565b600080600060608486031215612aca57612ac9612761565b5b6000612ad8868287016128a3565b9350506020612ae9868287016128a3565b9250506040612afa86828701612a05565b9150509250925092565b60008060408385031215612b1b57612b1a612761565b5b6000612b2985828601612a05565b9250506020612b3a85828601612a05565b9150509250929050565b6000604082019050612b596000830185612a47565b612b666020830184612830565b9392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612baf82612982565b810181811067ffffffffffffffff82111715612bce57612bcd612b77565b5b80604052505050565b6000612be1612757565b9050612bed8282612ba6565b919050565b600067ffffffffffffffff821115612c0d57612c0c612b77565b5b612c1682612982565b9050602081019050919050565b82818337600083830152505050565b6000612c45612c4084612bf2565b612bd7565b905082815260208101848484011115612c6157612c60612b72565b5b612c6c848285612c23565b509392505050565b600082601f830112612c8957612c88612b6d565b5b8135612c99848260208601612c32565b91505092915050565b600060208284031215612cb857612cb7612761565b5b600082013567ffffffffffffffff811115612cd657612cd5612766565b5b612ce284828501612c74565b91505092915050565b60008060408385031215612d0257612d01612761565b5b6000612d1085828601612a05565b9250506020612d21858286016128e7565b9150509250929050565b600060208284031215612d4157612d40612761565b5b6000612d4f848285016128a3565b91505092915050565b612d61816127f0565b8114612d6c57600080fd5b50565b600081359050612d7e81612d58565b92915050565b60008060408385031215612d9b57612d9a612761565b5b6000612da9858286016128a3565b9250506020612dba85828601612d6f565b9150509250929050565b600067ffffffffffffffff821115612ddf57612dde612b77565b5b612de882612982565b9050602081019050919050565b6000612e08612e0384612dc4565b612bd7565b905082815260208101848484011115612e2457612e23612b72565b5b612e2f848285612c23565b509392505050565b600082601f830112612e4c57612e4b612b6d565b5b8135612e5c848260208601612df5565b91505092915050565b60008060008060808587031215612e7f57612e7e612761565b5b6000612e8d878288016128a3565b9450506020612e9e878288016128a3565b9350506040612eaf87828801612a05565b925050606085013567ffffffffffffffff811115612ed057612ecf612766565b5b612edc87828801612e37565b91505092959194509250565b60008060408385031215612eff57612efe612761565b5b6000612f0d858286016128a3565b9250506020612f1e858286016128a3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f6f57607f821691505b602082108103612f8257612f81612f28565b5b50919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612fbe601f83612947565b9150612fc982612f88565b602082019050919050565b60006020820190508181036000830152612fed81612fb1565b9050919050565b600081905092915050565b50565b600061300f600083612ff4565b915061301a82612fff565b600082019050919050565b600061303082613002565b9150819050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261309c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261305f565b6130a6868361305f565b95508019841693508086168417925050509392505050565b6000819050919050565b60006130e36130de6130d984612826565b6130be565b612826565b9050919050565b6000819050919050565b6130fd836130c8565b613111613109826130ea565b84845461306c565b825550505050565b600090565b613126613119565b6131318184846130f4565b505050565b5b818110156131555761314a60008261311e565b600181019050613137565b5050565b601f82111561319a5761316b8161303a565b6131748461304f565b81016020851015613183578190505b61319761318f8561304f565b830182613136565b50505b505050565b600082821c905092915050565b60006131bd6000198460080261319f565b1980831691505092915050565b60006131d683836131ac565b9150826002028217905092915050565b6131ef8261293c565b67ffffffffffffffff81111561320857613207612b77565b5b6132128254612f57565b61321d828285613159565b600060209050601f831160018114613250576000841561323e578287015190505b61324885826131ca565b8655506132b0565b601f19841661325e8661303a565b60005b8281101561328657848901518255600182019150602085019450602081019050613261565b868310156132a3578489015161329f601f8916826131ac565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132f282612826565b91506132fd83612826565b9250828201905080821115613315576133146132b8565b5b92915050565b60006060820190506133306000830186612a47565b61333d6020830185612830565b61334a6040830184612830565b949350505050565b600061335d82612826565b915061336883612826565b925082820261337681612826565b9150828204841483151761338d5761338c6132b8565b5b5092915050565b7f506c656173652073656e642074686520657861637420616d6f756e742e000000600082015250565b60006133ca601d83612947565b91506133d582613394565b602082019050919050565b600060208201905081810360008301526133f9816133bd565b9050919050565b600061340b82612826565b915061341683612826565b925082820390508181111561342e5761342d6132b8565b5b92915050565b7f536f6c64206f7574210000000000000000000000000000000000000000000000600082015250565b600061346a600983612947565b915061347582613434565b602082019050919050565b600060208201905081810360008301526134998161345d565b9050919050565b7f4d61782070657220545820726561636865642e00000000000000000000000000600082015250565b60006134d6601383612947565b91506134e1826134a0565b602082019050919050565b60006020820190508181036000830152613505816134c9565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613568602f83612947565b91506135738261350c565b604082019050919050565b600060208201905081810360008301526135978161355b565b9050919050565b600081905092915050565b600081546135b681612f57565b6135c0818661359e565b945060018216600081146135db57600181146135f057613623565b60ff1983168652811515820286019350613623565b6135f98561303a565b60005b8381101561361b578154818901526001820191506020810190506135fc565b838801955050505b50505092915050565b60006136378261293c565b613641818561359e565b9350613651818560208601612958565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061369360058361359e565b915061369e8261365d565b600582019050919050565b60006136b582856135a9565b91506136c1828461362c565b91506136cc82613686565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613734602683612947565b915061373f826136d8565b604082019050919050565b6000602082019050818103600083015261376381613727565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b60006137c6602a83612947565b91506137d18261376a565b604082019050919050565b600060208201905081810360008301526137f5816137b9565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000613832601983612947565b915061383d826137fc565b602082019050919050565b6000602082019050818103600083015261386181613825565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138a282612826565b91506138ad83612826565b9250826138bd576138bc613868565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138fe602083612947565b9150613909826138c8565b602082019050919050565b6000602082019050818103600083015261392d816138f1565b9050919050565b7f455243323938313a20496e76616c696420706172616d65746572730000000000600082015250565b600061396a601b83612947565b915061397582613934565b602082019050919050565b600060208201905081810360008301526139998161395d565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006139c7826139a0565b6139d181856139ab565b93506139e1818560208601612958565b6139ea81612982565b840191505092915050565b6000608082019050613a0a6000830187612a47565b613a176020830186612a47565b613a246040830185612830565b8181036060830152613a3681846139bc565b905095945050505050565b600081519050613a5081612797565b92915050565b600060208284031215613a6c57613a6b612761565b5b6000613a7a84828501613a41565b91505092915050565b6000613a8e82612826565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ac057613abf6132b8565b5b600182019050919050565b6000613ad682612826565b9150613ae183612826565b925082613af157613af0613868565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212206564473637362ba6a102a964d6a65d9a6bf1ce0c91adc7087a7a43b3908776e064736f6c6343000811003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d636a6262696a634b3258557735646b5543634c46665374614b466853534e37783972786d587377665a6650532f00000000000000000000