Loading
61010060405273962228f791e745273700024d54e3f9897a3e819873ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250604051806080016040528060438152602001620040766043913960099081620000769190620004db565b50660aa87bee53800060a0908152506103e863ffffffff1660c09063ffffffff16815250600363ffffffff1660e09063ffffffff16815250348015620000bb57600080fd5b506040518060400160405280600881526020017f506565706f6d676f0000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f50656570000000000000000000000000000000000000000000000000000000008152508160029081620001399190620004db565b5080600390816200014b9190620004db565b506200015c6200018a60201b60201c565b600081905550505062000184620001786200019360201b60201c565b6200019b60201b60201c565b620005c2565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002e357607f821691505b602082108103620002f957620002f86200029b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000324565b6200036f868362000324565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003bc620003b6620003b08462000387565b62000391565b62000387565b9050919050565b6000819050919050565b620003d8836200039b565b620003f0620003e782620003c3565b84845462000331565b825550505050565b600090565b62000407620003f8565b62000414818484620003cd565b505050565b5b818110156200043c5762000430600082620003fd565b6001810190506200041a565b5050565b601f8211156200048b576200045581620002ff565b620004608462000314565b8101602085101562000470578190505b620004886200047f8562000314565b83018262000419565b50505b505050565b600082821c905092915050565b6000620004b06000198460080262000490565b1980831691505092915050565b6000620004cb83836200049d565b9150826002028217905092915050565b620004e68262000261565b67ffffffffffffffff8111156200050257620005016200026c565b5b6200050e8254620002ca565b6200051b82828562000440565b600060209050601f8311600181146200055357600084156200053e578287015190505b6200054a8582620004bd565b865550620005ba565b601f1984166200056386620002ff565b60005b828110156200058d5784890151825560018201915060208501945060208101905062000566565b86831015620005ad5784890151620005a9601f8916826200049d565b8355505b6001600288020188555050505b505050505050565b60805160a05160c05160e051613a576200061f6000396000611313015260008181610ebf01526111d8015260008181610a950152610e52015260008181610bf301528181611c8b015281816121ce01526122570152613a576000f3fe6080604052600436106101665760003560e01c806370a08231116100d1578063a22cb4651161008a578063d5abeb0111610064578063d5abeb0114610519578063e985e9c514610544578063f2fde38b14610581578063f968adbe146105aa57610166565b8063a22cb4651461048a578063b88d4fde146104b3578063c87b56dd146104dc57610166565b806370a08231146103895780638a886986146103c65780638da5cb5b146103ef57806395d89b411461041a5780639b642de114610445578063a0712d681461046e57610166565b80633ccfd60b116101235780633ccfd60b1461028d57806342842e0e146102a45780635fd22840146102cd57806362b99ad4146102f65780636352211e146103215780636817c76c1461035e57610166565b806301ffc9a71461016b57806306fdde03146101a8578063081812fc146101d3578063095ea7b31461021057806318160ddd1461023957806323b872dd14610264575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190612780565b6105d5565b60405161019f91906127c8565b60405180910390f35b3480156101b457600080fd5b506101bd6106b7565b6040516101ca9190612873565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f591906128cb565b610749565b6040516102079190612939565b60405180910390f35b34801561021c57600080fd5b5061023760048036038101906102329190612980565b6107c5565b005b34801561024557600080fd5b5061024e6108cf565b60405161025b91906129cf565b60405180910390f35b34801561027057600080fd5b5061028b600480360381019061028691906129ea565b6108e6565b005b34801561029957600080fd5b506102a26108f6565b005b3480156102b057600080fd5b506102cb60048036038101906102c691906129ea565b6109bb565b005b3480156102d957600080fd5b506102f460048036038101906102ef91906128cb565b6109db565b005b34801561030257600080fd5b5061030b6109ef565b6040516103189190612873565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906128cb565b610a7d565b6040516103559190612939565b60405180910390f35b34801561036a57600080fd5b50610373610a93565b60405161038091906129cf565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612a3d565b610ab7565b6040516103bd91906129cf565b60405180910390f35b3480156103d257600080fd5b506103ed60048036038101906103e89190612caf565b610c4b565b005b3480156103fb57600080fd5b50610404610d0a565b6040516104119190612939565b60405180910390f35b34801561042657600080fd5b5061042f610d34565b60405161043c9190612873565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190612ddc565b610dc6565b005b610488600480360381019061048391906128cb565b610de1565b005b34801561049657600080fd5b506104b160048036038101906104ac9190612e51565b610f45565b005b3480156104bf57600080fd5b506104da60048036038101906104d59190612f32565b6110bc565b005b3480156104e857600080fd5b5061050360048036038101906104fe91906128cb565b611138565b6040516105109190612873565b60405180910390f35b34801561052557600080fd5b5061052e6111d6565b60405161053b9190612fd4565b60405180910390f35b34801561055057600080fd5b5061056b60048036038101906105669190612fef565b6111fa565b60405161057891906127c8565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a39190612a3d565b61128e565b005b3480156105b657600080fd5b506105bf611311565b6040516105cc9190612fd4565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106a057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106b057506106af82611335565b5b9050919050565b6060600280546106c69061305e565b80601f01602080910402602001604051908101604052809291908181526020018280546106f29061305e565b801561073f5780601f106107145761010080835404028352916020019161073f565b820191906000526020600020905b81548152906001019060200180831161072257829003601f168201915b5050505050905090565b60006107548261139f565b61078a576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107d082610a7d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610837576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108566113ed565b73ffffffffffffffffffffffffffffffffffffffff16141580156108885750610886816108816113ed565b6111fa565b155b156108bf576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108ca8383836113f5565b505050565b60006108d96114a7565b6001546000540303905090565b6108f18383836114b0565b505050565b6108fe61199f565b6000479050600033905060008173ffffffffffffffffffffffffffffffffffffffff168360405161092e906130c0565b60006040518083038185875af1925050503d806000811461096b576040519150601f19603f3d011682016040523d82523d6000602084013e610970565b606091505b505080915050806109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90613121565b60405180910390fd5b505050565b6109d6838383604051806020016040528060008152506110bc565b505050565b6109e361199f565b6109ec81611a1d565b50565b600980546109fc9061305e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a289061305e565b8015610a755780601f10610a4a57610100808354040283529160200191610a75565b820191906000526020600020905b815481529060010190602001808311610a5857829003601f168201915b505050505081565b6000610a8882611a29565b600001519050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b1e576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1614610bee57600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050610c46565b6000547f000000000000000000000000000000000000000000000000000000000000000083610c1d9190613170565b73ffffffffffffffffffffffffffffffffffffffff1611610c415760019050610c46565b600090505b919050565b610c5361199f565b60008251118015610c65575080518251145b610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b90613204565b60405180910390fd5b60005b8251811015610d0557610cf2838281518110610cc657610cc5613224565b5b6020026020010151838381518110610ce157610ce0613224565b5b602002602001015161ffff16611d26565b8080610cfd90613253565b915050610ca7565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610d439061305e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6f9061305e565b8015610dbc5780601f10610d9157610100808354040283529160200191610dbc565b820191906000526020600020905b815481529060010190602001808311610d9f57829003601f168201915b5050505050905090565b610dce61199f565b8060099081610ddd9190613447565b5050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4690613565565b60405180910390fd5b807f0000000000000000000000000000000000000000000000000000000000000000610e7b9190613585565b341015610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490613613565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681610eed6108cf565b610ef79190613633565b1115610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f906136b3565b60405180910390fd5b610f423382611d26565b50565b610f4d6113ed565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb1576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000610fbe6113ed565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661106b6113ed565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110b091906127c8565b60405180910390a35050565b6110c78484846114b0565b6110e68373ffffffffffffffffffffffffffffffffffffffff16611d44565b80156110fb57506110f984848484611d67565b155b15611132576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60606111438261139f565b611179576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611183611eb7565b905060008151036111a357604051806020016040528060008152506111ce565b806111ad84611f49565b6040516020016111be92919061370f565b6040516020818303038152906040525b915050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61129661199f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc906137a5565b60405180910390fd5b61130e816120a9565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000816113aa6114a7565b111580156113b9575060005482105b80156113e6575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b60006114bb82611a29565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff166114e26113ed565b73ffffffffffffffffffffffffffffffffffffffff1614806115155750611514826000015161150f6113ed565b6111fa565b5b8061155a57506115236113ed565b73ffffffffffffffffffffffffffffffffffffffff1661154284610749565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611593576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146115fc576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611662576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61166f858585600161216f565b61167f60008484600001516113f5565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550836004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600085815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600184019050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361192f5760005481101561192e5782600001516004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082602001516004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b50828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46119988585856001612175565b5050505050565b6119a76113ed565b73ffffffffffffffffffffffffffffffffffffffff166119c5610d0a565b73ffffffffffffffffffffffffffffffffffffffff1614611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1290613811565b60405180910390fd5b565b611a268161217b565b50565b611a316126d1565b600082905080611a3f6114a7565b11158015611a4e575060005481105b15611cef576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff16151515158152505090508060400151611ced57600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611b63578092505050611d21565b6000600990505b828060019003935050600460008481526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509150600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614611c7957819350505050611d21565b6000816001900391508111611b6a57847f000000000000000000000000000000000000000000000000000000000000000001826000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050819350505050611d21565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b611d408282604051806020016040528060008152506122f5565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611d8d6113ed565b8786866040518563ffffffff1660e01b8152600401611daf9493929190613886565b6020604051808303816000875af1925050508015611deb57506040513d601f19601f82011682018060405250810190611de891906138e7565b60015b611e64573d8060008114611e1b576040519150601f19603f3d011682016040523d82523d6000602084013e611e20565b606091505b506000815103611e5c576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060098054611ec69061305e565b80601f0160208091040260200160405190810160405280929190818152602001828054611ef29061305e565b8015611f3f5780601f10611f1457610100808354040283529160200191611f3f565b820191906000526020600020905b815481529060010190602001808311611f2257829003601f168201915b5050505050905090565b606060008203611f90576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506120a4565b600082905060005b60008214611fc2578080611fab90613253565b915050600a82611fbb9190613943565b9150611f98565b60008167ffffffffffffffff811115611fde57611fdd612a6f565b5b6040519080825280601f01601f1916602001820160405280156120105781602001600182028036833780820191505090505b5090505b6000851461209d576001826120299190613974565b9150600a8561203891906139a8565b60306120449190613633565b60f81b81838151811061205a57612059613224565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856120969190613943565b9450612014565b8093505050505b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b50505050565b50505050565b600081036121b5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080549050600082826121c99190613633565b9050817f00000000000000000000000000000000000000000000000000000000000000006121f791906139d9565b600460008054815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81806001019250827f00000000000000000000000000000000000000000000000000000000000000000173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480820361224d57826000808282546122e99190613633565b92505081905550505050565b6123028383836001612307565b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612373576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084036123ad576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6123ba600086838761216f565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008190506000858201905083801561258457506125838773ffffffffffffffffffffffffffffffffffffffff16611d44565b5b15612649575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46125f96000888480600101955088611d67565b61262f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80820361258a57826000541461264457600080fd5b6126b4565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480820361264a575b8160008190555050506126ca6000868387612175565b5050505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61275d81612728565b811461276857600080fd5b50565b60008135905061277a81612754565b92915050565b6000602082840312156127965761279561271e565b5b60006127a48482850161276b565b91505092915050565b60008115159050919050565b6127c2816127ad565b82525050565b60006020820190506127dd60008301846127b9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561281d578082015181840152602081019050612802565b60008484015250505050565b6000601f19601f8301169050919050565b6000612845826127e3565b61284f81856127ee565b935061285f8185602086016127ff565b61286881612829565b840191505092915050565b6000602082019050818103600083015261288d818461283a565b905092915050565b6000819050919050565b6128a881612895565b81146128b357600080fd5b50565b6000813590506128c58161289f565b92915050565b6000602082840312156128e1576128e061271e565b5b60006128ef848285016128b6565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612923826128f8565b9050919050565b61293381612918565b82525050565b600060208201905061294e600083018461292a565b92915050565b61295d81612918565b811461296857600080fd5b50565b60008135905061297a81612954565b92915050565b600080604083850312156129975761299661271e565b5b60006129a58582860161296b565b92505060206129b6858286016128b6565b9150509250929050565b6129c981612895565b82525050565b60006020820190506129e460008301846129c0565b92915050565b600080600060608486031215612a0357612a0261271e565b5b6000612a118682870161296b565b9350506020612a228682870161296b565b9250506040612a33868287016128b6565b9150509250925092565b600060208284031215612a5357612a5261271e565b5b6000612a618482850161296b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612aa782612829565b810181811067ffffffffffffffff82111715612ac657612ac5612a6f565b5b80604052505050565b6000612ad9612714565b9050612ae58282612a9e565b919050565b600067ffffffffffffffff821115612b0557612b04612a6f565b5b602082029050602081019050919050565b600080fd5b6000612b2e612b2984612aea565b612acf565b90508083825260208201905060208402830185811115612b5157612b50612b16565b5b835b81811015612b7a5780612b66888261296b565b845260208401935050602081019050612b53565b5050509392505050565b600082601f830112612b9957612b98612a6a565b5b8135612ba9848260208601612b1b565b91505092915050565b600067ffffffffffffffff821115612bcd57612bcc612a6f565b5b602082029050602081019050919050565b600061ffff82169050919050565b612bf581612bde565b8114612c0057600080fd5b50565b600081359050612c1281612bec565b92915050565b6000612c2b612c2684612bb2565b612acf565b90508083825260208201905060208402830185811115612c4e57612c4d612b16565b5b835b81811015612c775780612c638882612c03565b845260208401935050602081019050612c50565b5050509392505050565b600082601f830112612c9657612c95612a6a565b5b8135612ca6848260208601612c18565b91505092915050565b60008060408385031215612cc657612cc561271e565b5b600083013567ffffffffffffffff811115612ce457612ce3612723565b5b612cf085828601612b84565b925050602083013567ffffffffffffffff811115612d1157612d10612723565b5b612d1d85828601612c81565b9150509250929050565b600080fd5b600067ffffffffffffffff821115612d4757612d46612a6f565b5b612d5082612829565b9050602081019050919050565b82818337600083830152505050565b6000612d7f612d7a84612d2c565b612acf565b905082815260208101848484011115612d9b57612d9a612d27565b5b612da6848285612d5d565b509392505050565b600082601f830112612dc357612dc2612a6a565b5b8135612dd3848260208601612d6c565b91505092915050565b600060208284031215612df257612df161271e565b5b600082013567ffffffffffffffff811115612e1057612e0f612723565b5b612e1c84828501612dae565b91505092915050565b612e2e816127ad565b8114612e3957600080fd5b50565b600081359050612e4b81612e25565b92915050565b60008060408385031215612e6857612e6761271e565b5b6000612e768582860161296b565b9250506020612e8785828601612e3c565b9150509250929050565b600067ffffffffffffffff821115612eac57612eab612a6f565b5b612eb582612829565b9050602081019050919050565b6000612ed5612ed084612e91565b612acf565b905082815260208101848484011115612ef157612ef0612d27565b5b612efc848285612d5d565b509392505050565b600082601f830112612f1957612f18612a6a565b5b8135612f29848260208601612ec2565b91505092915050565b60008060008060808587031215612f4c57612f4b61271e565b5b6000612f5a8782880161296b565b9450506020612f6b8782880161296b565b9350506040612f7c878288016128b6565b925050606085013567ffffffffffffffff811115612f9d57612f9c612723565b5b612fa987828801612f04565b91505092959194509250565b600063ffffffff82169050919050565b612fce81612fb5565b82525050565b6000602082019050612fe96000830184612fc5565b92915050565b600080604083850312156130065761300561271e565b5b60006130148582860161296b565b92505060206130258582860161296b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307657607f821691505b6020821081036130895761308861302f565b5b50919050565b600081905092915050565b50565b60006130aa60008361308f565b91506130b58261309a565b600082019050919050565b60006130cb8261309d565b9150819050919050565b7f5472616e73616374696f6e20556e7375636365737366756c0000000000000000600082015250565b600061310b6018836127ee565b9150613116826130d5565b602082019050919050565b6000602082019050818103600083015261313a816130fe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061317b826128f8565b9150613186836128f8565b9250828203905073ffffffffffffffffffffffffffffffffffffffff8111156131b2576131b1613141565b5b92915050565b7f4c656e677468206e6f74206d6174636800000000000000000000000000000000600082015250565b60006131ee6010836127ee565b91506131f9826131b8565b602082019050919050565b6000602082019050818103600083015261321d816131e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061325e82612895565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132905761328f613141565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026132fd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826132c0565b61330786836132c0565b95508019841693508086168417925050509392505050565b6000819050919050565b600061334461333f61333a84612895565b61331f565b612895565b9050919050565b6000819050919050565b61335e83613329565b61337261336a8261334b565b8484546132cd565b825550505050565b600090565b61338761337a565b613392818484613355565b505050565b5b818110156133b6576133ab60008261337f565b600181019050613398565b5050565b601f8211156133fb576133cc8161329b565b6133d5846132b0565b810160208510156133e4578190505b6133f86133f0856132b0565b830182613397565b50505b505050565b600082821c905092915050565b600061341e60001984600802613400565b1980831691505092915050565b6000613437838361340d565b9150826002028217905092915050565b613450826127e3565b67ffffffffffffffff81111561346957613468612a6f565b5b613473825461305e565b61347e8282856133ba565b600060209050601f8311600181146134b1576000841561349f578287015190505b6134a9858261342b565b865550613511565b601f1984166134bf8661329b565b60005b828110156134e7578489015182556001820191506020850194506020810190506134c2565b868310156135045784890151613500601f89168261340d565b8355505b6001600288020188555050505b505050505050565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b600061354f601e836127ee565b915061355a82613519565b602082019050919050565b6000602082019050818103600083015261357e81613542565b9050919050565b600061359082612895565b915061359b83612895565b92508282026135a981612895565b915082820484148315176135c0576135bf613141565b5b5092915050565b7f696e73756666696369656e740000000000000000000000000000000000000000600082015250565b60006135fd600c836127ee565b9150613608826135c7565b602082019050919050565b6000602082019050818103600083015261362c816135f0565b9050919050565b600061363e82612895565b915061364983612895565b925082820190508082111561366157613660613141565b5b92915050565b7f736f6c64206f7574000000000000000000000000000000000000000000000000600082015250565b600061369d6008836127ee565b91506136a882613667565b602082019050919050565b600060208201905081810360008301526136cc81613690565b9050919050565b600081905092915050565b60006136e9826127e3565b6136f381856136d3565b93506137038185602086016127ff565b80840191505092915050565b600061371b82856136de565b915061372782846136de565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061378f6026836127ee565b915061379a82613733565b604082019050919050565b600060208201905081810360008301526137be81613782565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137fb6020836127ee565b9150613806826137c5565b602082019050919050565b6000602082019050818103600083015261382a816137ee565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061385882613831565b613862818561383c565b93506138728185602086016127ff565b61387b81612829565b840191505092915050565b600060808201905061389b600083018761292a565b6138a8602083018661292a565b6138b560408301856129c0565b81810360608301526138c7818461384d565b905095945050505050565b6000815190506138e181612754565b92915050565b6000602082840312156138fd576138fc61271e565b5b600061390b848285016138d2565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061394e82612895565b915061395983612895565b92508261396957613968613914565b5b828204905092915050565b600061397f82612895565b915061398a83612895565b92508282039050818111156139a2576139a1613141565b5b92915050565b60006139b382612895565b91506139be83612895565b9250826139ce576139cd613914565b5b828206905092915050565b60006139e4826128f8565b91506139ef836128f8565b9250828201905073ffffffffffffffffffffffffffffffffffffffff811115613a1b57613a1a613141565b5b9291505056fea2646970667358221220d565bff85025ad25f85aeaaef8a5ffcd32c787812ed80dae3985c9856babbcff64736f6c63430008120033697066733a2f2f626166796265696166347775677471776f6279346479766b336c6d616a6a667961326b75796d34356f746375736d70376f69646c6577746a6c36652f