Loading
608060405269152d02c7e14af68000006000196200001e91906200053d565b6000196200002d9190620004f8565b600a556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff02191690831515021790555069152d02c7e14af68000006012553480156200009c57600080fd5b506000620000af6200049960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073e9d8e9440f69f7e0229b9ba3536b2820bb8e0999600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e9d8e9440f69f7e0229b9ba3536b2820bb8e0999600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54600260006200020e6200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000262620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040f6200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16738edcaab2e3d01482f5b184ce978e968d7a5d61dc73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69152d02c7e14af68000006040516200048b9190620004db565b60405180910390a3620005d3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004d58162000533565b82525050565b6000602082019050620004f26000830184620004ca565b92915050565b6000620005058262000533565b9150620005128362000533565b92508282101562000528576200052762000575565b5b828203905092915050565b6000819050919050565b60006200054a8262000533565b9150620005578362000533565b9250826200056a5762000569620005a4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61406f80620005e36000396000f3fe60806040526004361061014f5760003560e01c8063684c77ff116100b6578063c9567bf91161006f578063c9567bf914610489578063cd697315146104a0578063dd62ed3e146104b7578063ec28438a146104f4578063f42938901461051d578063ffecf5161461053457610156565b8063684c77ff1461037757806370a08231146103a2578063715018a6146103df5780638da5cb5b146103f657806395d89b4114610421578063a9059cbb1461044c57610156565b806323b872dd1161010857806323b872dd1461027d578063273123b7146102ba578063313ce567146102e3578063328264081461030e57806351bc3c85146103375780635932ead11461034e57610156565b8063069f5bdd1461015b57806306fdde0314610198578063095ea7b3146101c357806318160ddd146102005780631b3107591461022b5780632206035f1461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610182600480360381019061017d9190613142565b61055d565b60405161018f91906138bc565b60405180910390f35b3480156101a457600080fd5b506101ad61063b565b6040516101ba919061375a565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e5919061322f565b610678565b6040516101f7919061373f565b60405180910390f35b34801561020c57600080fd5b50610215610696565b60405161022291906138bc565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d91906132b8565b6106a8565b005b34801561026057600080fd5b5061027b6004803603810190610276919061322f565b6108d7565b005b34801561028957600080fd5b506102a4600480360381019061029f91906131dc565b6109b4565b6040516102b1919061373f565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190613142565b610a8d565b005b3480156102ef57600080fd5b506102f8610b7d565b6040516103059190613931565b60405180910390f35b34801561031a57600080fd5b506103356004803603810190610330919061326f565b610b86565b005b34801561034357600080fd5b5061034c610d4b565b005b34801561035a57600080fd5b5061037560048036038101906103709190613330565b610dc5565b005b34801561038357600080fd5b5061038c610e77565b60405161039991906138bc565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190613142565b610fc5565b6040516103d691906138bc565b60405180910390f35b3480156103eb57600080fd5b506103f4611016565b005b34801561040257600080fd5b5061040b611169565b6040516104189190613671565b60405180910390f35b34801561042d57600080fd5b50610436611192565b604051610443919061375a565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e919061322f565b6111cf565b604051610480919061373f565b60405180910390f35b34801561049557600080fd5b5061049e6111ed565b005b3480156104ac57600080fd5b506104b5611753565b005b3480156104c357600080fd5b506104de60048036038101906104d9919061319c565b61198a565b6040516104eb91906138bc565b60405180910390f35b34801561050057600080fd5b5061051b6004803603810190610516919061338a565b611a11565b005b34801561052957600080fd5b50610532611abf565b005b34801561054057600080fd5b5061055b60048036038101906105569190613142565b611b31565b005b6000610567611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105eb9061381c565b60405180910390fd5b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600b81526020017f546f676173686920496e75000000000000000000000000000000000000000000815250905090565b600061068c610685611c21565b8484611c29565b6001905092915050565b600069152d02c7e14af6800000905090565b6106b0611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461073d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107349061381c565b60405180910390fd5b60005b82518110156108d257600783828151811061075e5761075d613ca5565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550633b9aca008282815181106107de576107dd613ca5565b5b60200260200101516107f09190613aa5565b6008600085848151811061080757610806613ca5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600085848151811061086657610865613ca5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108ca90613bfe565b915050610740565b505050565b6108df611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109639061381c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60006109c1848484611df4565b610a82846109cd611c21565b610a7d8560405180606001604052806028815260200161401260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a33611c21565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247a9092919063ffffffff16565b611c29565b600190509392505050565b610a95611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b199061381c565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610b8e611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c129061381c565b60405180910390fd5b60005b8151811015610d4757818181518110610c3a57610c39613ca5565b5b602002602001015160078281548110610c5657610c55613ca5565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600060078481548110610cb857610cb7613ca5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d3f90613bfe565b915050610c1e565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d8c611c21565b73ffffffffffffffffffffffffffffffffffffffff1614610dac57600080fd5b6000610db730610fc5565b9050610dc2816124de565b50565b610dcd611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e519061381c565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b6000610e81611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f059061381c565b60405180910390fd5b6000805b600780549050811015610fbd576008600060078381548110610f3757610f36613ca5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610fa89190613a1e565b91508080610fb590613bfe565b915050610f12565b508091505090565b600061100f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612766565b9050919050565b61101e611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a29061381c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f544f474153484900000000000000000000000000000000000000000000000000815250905090565b60006111e36111dc611c21565b8484611df4565b6001905092915050565b6111f5611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611282576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112799061381c565b60405180910390fd5b601160149054906101000a900460ff16156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c99061389c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061136330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af6800000611c29565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156113a957600080fd5b505afa1580156113bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e1919061316f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561144357600080fd5b505afa158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b919061316f565b6040518363ffffffff1660e01b815260040161149892919061368c565b602060405180830381600087803b1580156114b257600080fd5b505af11580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea919061316f565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061157330610fc5565b60008061157e611169565b426040518863ffffffff1660e01b81526004016115a0969594939291906136de565b6060604051808303818588803b1580156115b957600080fd5b505af11580156115cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115f291906133b7565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff02191690831515021790555069010f0cf064dd592000006012819055506001601160146101000a81548160ff02191690831515021790555043601381905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116fd9291906136b5565b602060405180830381600087803b15801561171757600080fd5b505af115801561172b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174f919061335d565b5050565b61175b611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df9061381c565b60405180910390fd5b6000600c819055506000600d8190555060005b600780549050811015611977576118ce33600783815481106118205761181f613ca5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006007868154811061186357611862613ca5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d4565b600060056000600784815481106118e8576118e7613ca5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061196f90613bfe565b9150506117fb565b506002600c819055506008600d81905550565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a19611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d9061381c565b60405180910390fd5b633b9aca0081611ab69190613aa5565b60128190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b00611c21565b73ffffffffffffffffffffffffffffffffffffffff1614611b2057600080fd5b6000479050611b2e816127e4565b50565b611b39611c21565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd9061381c565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c909061387c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d00906137bc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611de791906138bc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5b9061385c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb9061377c565b60405180910390fd5b60008111611f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0e9061383c565b60405180910390fd5b6002600c819055506008600d81905550611f2f611169565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f9d5750611f6d611169565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561246a57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120465750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61204f57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120fa5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121505750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156121685750601160179054906101000a900460ff165b156122185760125481111561217c57600080fd5b42600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106121c757600080fd5b601e426121d49190613a1e565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b4360036013546122289190613a1e565b101580156122835750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15612299576063600c819055506001600d819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156123445750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561239a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123b0576002600c819055506008600d819055505b60006123bb30610fc5565b9050601160159054906101000a900460ff161580156124285750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156124405750601160169054906101000a900460ff165b156124685761244e816124de565b6000479050600081111561246657612465476127e4565b5b505b505b6124758383836127d4565b505050565b60008383111582906124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b9919061375a565b60405180910390fd5b50600083856124d19190613aff565b9050809150509392505050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561251657612515613cd4565b5b6040519080825280602002602001820160405280156125445781602001602082028036833780820191505090505b509050308160008151811061255c5761255b613ca5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156125fe57600080fd5b505afa158015612612573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612636919061316f565b8160018151811061264a57612649613ca5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126b130601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c29565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127159594939291906138d7565b600060405180830381600087803b15801561272f57600080fd5b505af1158015612743573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000600a548211156127ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a49061379c565b60405180910390fd5b60006127b76128df565b90506127cc818461290a90919063ffffffff16565b915050919050565b6127df838383612954565b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61283460028461290a90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561285f573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6128b060028461290a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156128db573d6000803e3d6000fd5b5050565b60008060006128ec612b1f565b91509150612903818361290a90919063ffffffff16565b9250505090565b600061294c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b84565b905092915050565b60008060008060008061296687612be7565b9550955095509550955095506129c486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c4f90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a5985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aa581612cf7565b612aaf8483612db4565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b0c91906138bc565b60405180910390a3505050505050505050565b6000806000600a549050600069152d02c7e14af68000009050612b5769152d02c7e14af6800000600a5461290a90919063ffffffff16565b821015612b7757600a5469152d02c7e14af6800000935093505050612b80565b81819350935050505b9091565b60008083118290612bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc2919061375a565b60405180910390fd5b5060008385612bda9190613a74565b9050809150509392505050565b6000806000806000806000806000612c048a600c54600d54612dee565b9250925092506000612c146128df565b90506000806000612c278e878787612e84565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612c9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061247a565b905092915050565b6000808284612ca89190613a1e565b905083811015612ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce4906137dc565b60405180910390fd5b8091505092915050565b6000612d016128df565b90506000612d188284612f0d90919063ffffffff16565b9050612d6c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c9990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612dc982600a54612c4f90919063ffffffff16565b600a81905550612de481600b54612c9990919063ffffffff16565b600b819055505050565b600080600080612e1a6064612e0c888a612f0d90919063ffffffff16565b61290a90919063ffffffff16565b90506000612e446064612e36888b612f0d90919063ffffffff16565b61290a90919063ffffffff16565b90506000612e6d82612e5f858c612c4f90919063ffffffff16565b612c4f90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612e9d8589612f0d90919063ffffffff16565b90506000612eb48689612f0d90919063ffffffff16565b90506000612ecb8789612f0d90919063ffffffff16565b90506000612ef482612ee68587612c4f90919063ffffffff16565b612c4f90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612f205760009050612f82565b60008284612f2e9190613aa5565b9050828482612f3d9190613a74565b14612f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f74906137fc565b60405180910390fd5b809150505b92915050565b6000612f9b612f9684613971565b61394c565b90508083825260208201905082856020860282011115612fbe57612fbd613d08565b5b60005b85811015612fee5781612fd48882613068565b845260208401935060208301925050600181019050612fc1565b5050509392505050565b600061300b6130068461399d565b61394c565b9050808382526020820190508285602086028201111561302e5761302d613d08565b5b60005b8581101561305e57816130448882613118565b845260208401935060208301925050600181019050613031565b5050509392505050565b60008135905061307781613fcc565b92915050565b60008151905061308c81613fcc565b92915050565b600082601f8301126130a7576130a6613d03565b5b81356130b7848260208601612f88565b91505092915050565b600082601f8301126130d5576130d4613d03565b5b81356130e5848260208601612ff8565b91505092915050565b6000813590506130fd81613fe3565b92915050565b60008151905061311281613fe3565b92915050565b60008135905061312781613ffa565b92915050565b60008151905061313c81613ffa565b92915050565b60006020828403121561315857613157613d12565b5b600061316684828501613068565b91505092915050565b60006020828403121561318557613184613d12565b5b60006131938482850161307d565b91505092915050565b600080604083850312156131b3576131b2613d12565b5b60006131c185828601613068565b92505060206131d285828601613068565b9150509250929050565b6000806000606084860312156131f5576131f4613d12565b5b600061320386828701613068565b935050602061321486828701613068565b925050604061322586828701613118565b9150509250925092565b6000806040838503121561324657613245613d12565b5b600061325485828601613068565b925050602061326585828601613118565b9150509250929050565b60006020828403121561328557613284613d12565b5b600082013567ffffffffffffffff8111156132a3576132a2613d0d565b5b6132af84828501613092565b91505092915050565b600080604083850312156132cf576132ce613d12565b5b600083013567ffffffffffffffff8111156132ed576132ec613d0d565b5b6132f985828601613092565b925050602083013567ffffffffffffffff81111561331a57613319613d0d565b5b613326858286016130c0565b9150509250929050565b60006020828403121561334657613345613d12565b5b6000613354848285016130ee565b91505092915050565b60006020828403121561337357613372613d12565b5b600061338184828501613103565b91505092915050565b6000602082840312156133a05761339f613d12565b5b60006133ae84828501613118565b91505092915050565b6000806000606084860312156133d0576133cf613d12565b5b60006133de8682870161312d565b93505060206133ef8682870161312d565b92505060406134008682870161312d565b9150509250925092565b60006134168383613422565b60208301905092915050565b61342b81613b33565b82525050565b61343a81613b33565b82525050565b600061344b826139d9565b61345581856139fc565b9350613460836139c9565b8060005b83811015613491578151613478888261340a565b9750613483836139ef565b925050600181019050613464565b5085935050505092915050565b6134a781613b45565b82525050565b6134b681613b88565b82525050565b60006134c7826139e4565b6134d18185613a0d565b93506134e1818560208601613b9a565b6134ea81613d17565b840191505092915050565b6000613502602383613a0d565b915061350d82613d28565b604082019050919050565b6000613525602a83613a0d565b915061353082613d77565b604082019050919050565b6000613548602283613a0d565b915061355382613dc6565b604082019050919050565b600061356b601b83613a0d565b915061357682613e15565b602082019050919050565b600061358e602183613a0d565b915061359982613e3e565b604082019050919050565b60006135b1602083613a0d565b91506135bc82613e8d565b602082019050919050565b60006135d4602983613a0d565b91506135df82613eb6565b604082019050919050565b60006135f7602583613a0d565b915061360282613f05565b604082019050919050565b600061361a602483613a0d565b915061362582613f54565b604082019050919050565b600061363d601783613a0d565b915061364882613fa3565b602082019050919050565b61365c81613b71565b82525050565b61366b81613b7b565b82525050565b60006020820190506136866000830184613431565b92915050565b60006040820190506136a16000830185613431565b6136ae6020830184613431565b9392505050565b60006040820190506136ca6000830185613431565b6136d76020830184613653565b9392505050565b600060c0820190506136f36000830189613431565b6137006020830188613653565b61370d60408301876134ad565b61371a60608301866134ad565b6137276080830185613431565b61373460a0830184613653565b979650505050505050565b6000602082019050613754600083018461349e565b92915050565b6000602082019050818103600083015261377481846134bc565b905092915050565b60006020820190508181036000830152613795816134f5565b9050919050565b600060208201905081810360008301526137b581613518565b9050919050565b600060208201905081810360008301526137d58161353b565b9050919050565b600060208201905081810360008301526137f58161355e565b9050919050565b6000602082019050818103600083015261381581613581565b9050919050565b60006020820190508181036000830152613835816135a4565b9050919050565b60006020820190508181036000830152613855816135c7565b9050919050565b60006020820190508181036000830152613875816135ea565b9050919050565b600060208201905081810360008301526138958161360d565b9050919050565b600060208201905081810360008301526138b581613630565b9050919050565b60006020820190506138d16000830184613653565b92915050565b600060a0820190506138ec6000830188613653565b6138f960208301876134ad565b818103604083015261390b8186613440565b905061391a6060830185613431565b6139276080830184613653565b9695505050505050565b60006020820190506139466000830184613662565b92915050565b6000613956613967565b90506139628282613bcd565b919050565b6000604051905090565b600067ffffffffffffffff82111561398c5761398b613cd4565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156139b8576139b7613cd4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613a2982613b71565b9150613a3483613b71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6957613a68613c47565b5b828201905092915050565b6000613a7f82613b71565b9150613a8a83613b71565b925082613a9a57613a99613c76565b5b828204905092915050565b6000613ab082613b71565b9150613abb83613b71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613af457613af3613c47565b5b828202905092915050565b6000613b0a82613b71565b9150613b1583613b71565b925082821015613b2857613b27613c47565b5b828203905092915050565b6000613b3e82613b51565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b9382613b71565b9050919050565b60005b83811015613bb8578082015181840152602081019050613b9d565b83811115613bc7576000848401525b50505050565b613bd682613d17565b810181811067ffffffffffffffff82111715613bf557613bf4613cd4565b5b80604052505050565b6000613c0982613b71565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c3c57613c3b613c47565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613fd581613b33565b8114613fe057600080fd5b50565b613fec81613b45565b8114613ff757600080fd5b50565b61400381613b71565b811461400e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220961eaf09e28271bf46dddff42a4987cae8e988191db2658f7f9f618bb44e151a64736f6c63430008070033