0x608060405260405180602001604052806040518060400160405280600481526020017f3078303000000000000000000000000000000000000000000000000000000000815250815250600c9060016200005a92919062000205565b503480156200006857600080fd5b506040518060400160405280600581526020017f48414e5a490000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f48414e5a490000000000000000000000000000000000000000000000000000008152508160009080519060200190620000ed9291906200026c565b508060019080519060200190620001069291906200026c565b5050506001600a8190555062000131620001256200013760201b60201c565b6200013f60201b60201c565b620003ef565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805482825590600052602060002090810192821562000259579160200282015b8281111562000258578251829080519060200190620002479291906200026c565b509160200191906001019062000226565b5b509050620002689190620002fd565b5090565b8280546200027a906200038a565b90600052602060002090601f0160209004810192826200029e5760008555620002ea565b82601f10620002b957805160ff1916838001178555620002ea565b82800160010185558215620002ea579182015b82811115620002e9578251825591602001919060010190620002cc565b5b509050620002f9919062000325565b5090565b5b8082111562000321576000818162000317919062000344565b50600101620002fe565b5090565b5b808211156200034057600081600090555060010162000326565b5090565b50805462000352906200038a565b6000825580601f1062000366575062000387565b601f01602090049060005260206000209081019062000386919062000325565b5b50565b60006002820490506001821680620003a357607f821691505b60208210811415620003ba57620003b9620003c0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6145f180620003ff6000396000f3fe6080604052600436106101405760003560e01c80636352211e116100b6578063a22cb4651161006f578063a22cb46514610461578063b88d4fde1461048a578063c87b56dd146104b3578063e985e9c5146104f0578063f2fde38b1461052d578063fc2316d71461055657610140565b80636352211e1461034f57806370a082311461038c578063715018a6146103c95780638da5cb5b146103e057806395d89b411461040b57806396501e6a1461043657610140565b806323b872dd1161010857806323b872dd1461023e5780632f745c591461026757806332639542146102a4578063379607f5146102cd57806342842e0e146102e95780634f6ccce71461031257610140565b806301ffc9a71461014557806306fdde0314610182578063081812fc146101ad578063095ea7b3146101ea57806318160ddd14610213575b600080fd5b34801561015157600080fd5b5061016c600480360381019061016791906130d8565b610581565b6040516101799190613cd2565b60405180910390f35b34801561018e57600080fd5b506101976105fb565b6040516101a49190613ced565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf919061312a565b61068d565b6040516101e19190613c6b565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c919061305b565b610712565b005b34801561021f57600080fd5b5061022861082a565b6040516102359190613f8f565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612f55565b610837565b005b34801561027357600080fd5b5061028e6004803603810190610289919061305b565b610897565b60405161029b9190613f8f565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190613097565b61093c565b005b6102e760048036038101906102e2919061312a565b610a57565b005b3480156102f557600080fd5b50610310600480360381019061030b9190612f55565b610bb6565b005b34801561031e57600080fd5b506103396004803603810190610334919061312a565b610bd6565b6040516103469190613f8f565b60405180910390f35b34801561035b57600080fd5b506103766004803603810190610371919061312a565b610c6d565b6040516103839190613c6b565b60405180910390f35b34801561039857600080fd5b506103b360048036038101906103ae9190612ef0565b610d1f565b6040516103c09190613f8f565b60405180910390f35b3480156103d557600080fd5b506103de610dd7565b005b3480156103ec57600080fd5b506103f5610e5f565b6040516104029190613c6b565b60405180910390f35b34801561041757600080fd5b50610420610e89565b60405161042d9190613ced565b60405180910390f35b34801561044257600080fd5b5061044b610f1b565b6040516104589190613c6b565b60405180910390f35b34801561046d57600080fd5b506104886004803603810190610483919061301f565b610f33565b005b34801561049657600080fd5b506104b160048036038101906104ac9190612fa4565b6110b4565b005b3480156104bf57600080fd5b506104da60048036038101906104d5919061312a565b611116565b6040516104e79190613ced565b60405180910390f35b3480156104fc57600080fd5b5061051760048036038101906105129190612f19565b6114b1565b6040516105249190613cd2565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190612ef0565b611545565b005b34801561056257600080fd5b5061056b61163d565b6040516105789190613f8f565b60405180910390f35b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105f457506105f382611656565b5b9050919050565b60606000805461060a90614275565b80601f016020809104026020016040519081016040528092919081815260200182805461063690614275565b80156106835780601f1061065857610100808354040283529160200191610683565b820191906000526020600020905b81548152906001019060200180831161066657829003601f168201915b5050505050905090565b600061069882611738565b6106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce90613e8f565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061071d82610c6d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561078e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078590613f0f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166107ad6117a4565b73ffffffffffffffffffffffffffffffffffffffff1614806107dc57506107db816107d66117a4565b6114b1565b5b61081b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081290613e0f565b60405180910390fd5b61082583836117ac565b505050565b6000600880549050905090565b6108486108426117a4565b82611865565b610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087e90613f2f565b60405180910390fd5b610892838383611943565b505050565b60006108a283610d1f565b82106108e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108da90613d2f565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6109446117a4565b73ffffffffffffffffffffffffffffffffffffffff16610962610e5f565b73ffffffffffffffffffffffffffffffffffffffff16146109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af90613eaf565b60405180910390fd5b60005b8151811015610a5357600c8282815181106109ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190610a3f929190612c66565b508080610a4b906142a7565b9150506109bb565b5050565b6002600a541415610a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9490613f6f565b60405180910390fd5b6002600a81905550600081118015610ab65750611a6d81105b610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90613ecf565b60405180910390fd5b66354a6ba7a18000341015610b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3690613d0f565b60405180910390fd5b610b50610b4a6117a4565b82611b9f565b736e21241d859aaf5ac83d6739853a3f9501deb3ac73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610baa573d6000803e3d6000fd5b506001600a8190555050565b610bd1838383604051806020016040528060008152506110b4565b505050565b6000610be061082a565b8210610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890613f4f565b60405180910390fd5b60088281548110610c5b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90613e4f565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8790613e2f565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ddf6117a4565b73ffffffffffffffffffffffffffffffffffffffff16610dfd610e5f565b73ffffffffffffffffffffffffffffffffffffffff1614610e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4a90613eaf565b60405180910390fd5b610e5d6000611bbd565b565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610e9890614275565b80601f0160208091040260200160405190810160405280929190818152602001828054610ec490614275565b8015610f115780601f10610ee657610100808354040283529160200191610f11565b820191906000526020600020905b815481529060010190602001808311610ef457829003601f168201915b5050505050905090565b736e21241d859aaf5ac83d6739853a3f9501deb3ac81565b610f3b6117a4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa090613dcf565b60405180910390fd5b8060056000610fb66117a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110636117a4565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110a89190613cd2565b60405180910390a35050565b6110c56110bf6117a4565b83611865565b611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fb90613f2f565b60405180910390fd5b61111084848484611c83565b50505050565b6060611120612cec565b6040518060a001604052806077815260200161444b6077913981600060058110611173577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002018190525061118483611cdf565b816001600581106111be577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201819052506040518060e0016040528060ba815260200161450260ba913981600260058110611219577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002018190525061122a83611f57565b81600360058110611264577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201819052506040518060400160405280600e81526020017f3b3c2f746578743e3c2f7376673e000000000000000000000000000000000000815250816004600581106112dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020181905250600081600060058110611320577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518260016005811061135f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518360026005811061139e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020151846003600581106113dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518560046005811061141c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020020151604051602001611435959493929190613bb9565b604051602081830303815290604052905060006114826114548661202d565b61145d846121da565b60405160200161146e929190613c04565b6040516020818303038152906040526121da565b9050806040516020016114959190613c49565b6040516020818303038152906040529150819350505050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61154d6117a4565b73ffffffffffffffffffffffffffffffffffffffff1661156b610e5f565b73ffffffffffffffffffffffffffffffffffffffff16146115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890613eaf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611631576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162890613d6f565b60405180910390fd5b61163a81611bbd565b50565b60006001600c80549050611651919061418b565b905090565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061172157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611731575061173082612398565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661181f83610c6d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061187082611738565b6118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613def565b60405180910390fd5b60006118ba83610c6d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061192957508373ffffffffffffffffffffffffffffffffffffffff166119118461068d565b73ffffffffffffffffffffffffffffffffffffffff16145b8061193a575061193981856114b1565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661196382610c6d565b73ffffffffffffffffffffffffffffffffffffffff16146119b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b090613eef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2090613daf565b60405180910390fd5b611a34838383612402565b611a3f6000826117ac565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a8f919061418b565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae691906140aa565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611bb9828260405180602001604052806000815250612516565b5050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611c8e848484611943565b611c9a84848484612571565b611cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd090613d4f565b60405180910390fd5b50505050565b6060610142821415611d28576040518060400160405280600781526020017f23464637463030000000000000000000000000000000000000000000000000008152509050611f52565b6103f8821415611d6f576040518060400160405280600781526020017f23464630303030000000000000000000000000000000000000000000000000008152509050611f52565b610430821415611db6576040518060400160405280600781526020017f23464646463030000000000000000000000000000000000000000000000000008152509050611f52565b610516821415611dfd576040518060400160405280600781526020017f23443441463337000000000000000000000000000000000000000000000000008152509050611f52565b6105f6821415611e44576040518060400160405280600781526020017f23303030304646000000000000000000000000000000000000000000000000008152509050611f52565b6106c8821415611e8b576040518060400160405280600781526020017f23303046463030000000000000000000000000000000000000000000000000008152509050611f52565b6108b2821415611ed2576040518060400160405280600781526020017f23303046464646000000000000000000000000000000000000000000000000008152509050611f52565b610e81821415611f19576040518060400160405280600781526020017f23384230304646000000000000000000000000000000000000000000000000008152509050611f52565b6040518060400160405280600581526020017f776869746500000000000000000000000000000000000000000000000000000081525090505b919050565b6060600c8281548110611f93577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018054611fa890614275565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd490614275565b80156120215780601f10611ff657610100808354040283529160200191612021565b820191906000526020600020905b81548152906001019060200180831161200457829003601f168201915b50505050509050919050565b60606000821415612075576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506121d5565b600082905060005b600082146120a7578080612090906142a7565b915050600a826120a09190614100565b915061207d565b60008167ffffffffffffffff8111156120e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561211b5781602001600182028036833780820191505090505b5090505b600085146121ce57600182612134919061418b565b9150600a8561214391906142f0565b603061214f91906140aa565b60f81b81838151811061218b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121c79190614100565b945061211f565b8093505050505b919050565b606060008251905060008114156122035760405180602001604052806000815250915050612393565b6000600360028361221491906140aa565b61221e9190614100565b600461222a9190614131565b9050600060208261223b91906140aa565b67ffffffffffffffff81111561227a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156122ac5781602001600182028036833780820191505090505b50905060006040518060600160405280604081526020016144c2604091399050600181016020830160005b868110156123505760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b905080845260048401935050506122d7565b50600386066001811461236a576002811461237a57612385565b613d3d60f01b6002830352612385565b603d60f81b60018303525b508484525050819450505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61240d838383612708565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124505761244b8161270d565b61248f565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461248e5761248d8382612756565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124d2576124cd816128c3565b612511565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125105761250f8282612a06565b5b5b505050565b6125208383612a85565b61252d6000848484612571565b61256c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256390613d4f565b60405180910390fd5b505050565b60006125928473ffffffffffffffffffffffffffffffffffffffff16612c53565b156126fb578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026125bb6117a4565b8786866040518563ffffffff1660e01b81526004016125dd9493929190613c86565b602060405180830381600087803b1580156125f757600080fd5b505af192505050801561262857506040513d601f19601f820116820180604052508101906126259190613101565b60015b6126ab573d8060008114612658576040519150601f19603f3d011682016040523d82523d6000602084013e61265d565b606091505b506000815114156126a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269a90613d4f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612700565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161276384610d1f565b61276d919061418b565b9050600060076000848152602001908152602001600020549050818114612852576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506128d7919061418b565b905060006009600084815260200190815260200160002054905060006008838154811061292d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508060088381548110612975577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806129ea577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000612a1183610d1f565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aec90613e6f565b60405180910390fd5b612afe81611738565b15612b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3590613d8f565b60405180910390fd5b612b4a60008383612402565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b9a91906140aa565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612c7290614275565b90600052602060002090601f016020900481019282612c945760008555612cdb565b82601f10612cad57805160ff1916838001178555612cdb565b82800160010185558215612cdb579182015b82811115612cda578251825591602001919060010190612cbf565b5b509050612ce89190612d13565b5090565b6040518060a001604052806005905b6060815260200190600190039081612cfb5790505090565b5b80821115612d2c576000816000905550600101612d14565b5090565b6000612d43612d3e84613fdb565b613faa565b9050808382526020820190508260005b85811015612d835781358501612d698882612eb1565b845260208401935060208301925050600181019050612d53565b5050509392505050565b6000612da0612d9b84614007565b613faa565b905082815260208101848484011115612db857600080fd5b612dc3848285614233565b509392505050565b6000612dde612dd984614037565b613faa565b905082815260208101848484011115612df657600080fd5b612e01848285614233565b509392505050565b600081359050612e18816143ee565b92915050565b600082601f830112612e2f57600080fd5b8135612e3f848260208601612d30565b91505092915050565b600081359050612e5781614405565b92915050565b600081359050612e6c8161441c565b92915050565b600081519050612e818161441c565b92915050565b600082601f830112612e9857600080fd5b8135612ea8848260208601612d8d565b91505092915050565b600082601f830112612ec257600080fd5b8135612ed2848260208601612dcb565b91505092915050565b600081359050612eea81614433565b92915050565b600060208284031215612f0257600080fd5b6000612f1084828501612e09565b91505092915050565b60008060408385031215612f2c57600080fd5b6000612f3a85828601612e09565b9250506020612f4b85828601612e09565b9150509250929050565b600080600060608486031215612f6a57600080fd5b6000612f7886828701612e09565b9350506020612f8986828701612e09565b9250506040612f9a86828701612edb565b9150509250925092565b60008060008060808587031215612fba57600080fd5b6000612fc887828801612e09565b9450506020612fd987828801612e09565b9350506040612fea87828801612edb565b925050606085013567ffffffffffffffff81111561300757600080fd5b61301387828801612e87565b91505092959194509250565b6000806040838503121561303257600080fd5b600061304085828601612e09565b925050602061305185828601612e48565b9150509250929050565b6000806040838503121561306e57600080fd5b600061307c85828601612e09565b925050602061308d85828601612edb565b9150509250929050565b6000602082840312156130a957600080fd5b600082013567ffffffffffffffff8111156130c357600080fd5b6130cf84828501612e1e565b91505092915050565b6000602082840312156130ea57600080fd5b60006130f884828501612e5d565b91505092915050565b60006020828403121561311357600080fd5b600061312184828501612e72565b91505092915050565b60006020828403121561313c57600080fd5b600061314a84828501612edb565b91505092915050565b61315c816141bf565b82525050565b61316b816141d1565b82525050565b600061317c82614067565b613186818561407d565b9350613196818560208601614242565b61319f816143dd565b840191505092915050565b60006131b582614072565b6131bf818561408e565b93506131cf818560208601614242565b6131d8816143dd565b840191505092915050565b60006131ee82614072565b6131f8818561409f565b9350613208818560208601614242565b80840191505092915050565b600061322160198361408e565b91507f496e73756666696369656e742068616e646c696e6720666565000000000000006000830152602082019050919050565b6000613261602b8361408e565b91507f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008301527f74206f6620626f756e64730000000000000000000000000000000000000000006020830152604082019050919050565b60006132c760328361408e565b91507f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008301527f63656976657220696d706c656d656e74657200000000000000000000000000006020830152604082019050919050565b600061332d60268361408e565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613393601c8361408e565b91507f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006000830152602082019050919050565b60006133d360118361409f565b91507f7b226e616d65223a202248616e5a6920230000000000000000000000000000006000830152601182019050919050565b600061341360248361408e565b91507f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061347960198361408e565b91507f4552433732313a20617070726f766520746f2063616c6c6572000000000000006000830152602082019050919050565b60006134b9602c8361408e565b91507f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b600061351f60388361408e565b91507f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008301527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006020830152604082019050919050565b6000613585602a8361408e565b91507f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b60006135eb60298361408e565b91507f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008301527f656e7420746f6b656e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061365160028361409f565b91507f227d0000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b600061369160208361408e565b91507f4552433732313a206d696e7420746f20746865207a65726f20616464726573736000830152602082019050919050565b60006136d1602c8361408e565b91507f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b600061373760208361408e565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061377760108361408e565b91507f546f6b656e20494420696e76616c6964000000000000000000000000000000006000830152602082019050919050565b60006137b760298361408e565b91507f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008301527f73206e6f74206f776e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061381d60218361408e565b91507f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061388461017e8361409f565b91507f222c20226465736372697074696f6e223a2022546865204742323331322d383060008301527f2050726f6a6563742069732061204368696e657365206368617261637465722060208301527f7365742067656e65726174656420616e642073746f726564206f6e206368616960408301527f6e2e20456163682048616e5a692c20776869636820726570726573656e74732060608301527f61206672657175656e746c7920757365642073696d706c69666965642043686960808301527f6e657365206368617261637465722c2069732061205554462d38204e4654206560a08301527f6e636f6465642066726f6d207468652047422f5420323331322d31393830207360c08301527f74616e64617264206c6962726172792064657369676e6564206279205374616e60e08301527f64617264697a6174696f6e2041646d696e697374726174696f6e206f662043686101008301527f696e612e20506c65617365206665656c206672656520746f207573652048616e6101208301527f5a6920696e20616e792077617920796f752077616e742e222c2022696d6167656101408301527f223a2022646174613a696d6167652f7376672b786d6c3b6261736536342c000061016083015261017e82019050919050565b6000613a6b601d8361409f565b91507f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006000830152601d82019050919050565b6000613aab60318361408e565b91507f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008301527f776e6572206e6f7220617070726f7665640000000000000000000000000000006020830152604082019050919050565b6000613b11602c8361408e565b91507f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008301527f7574206f6620626f756e647300000000000000000000000000000000000000006020830152604082019050919050565b6000613b77601f8361408e565b91507f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006000830152602082019050919050565b613bb381614229565b82525050565b6000613bc582886131e3565b9150613bd182876131e3565b9150613bdd82866131e3565b9150613be982856131e3565b9150613bf582846131e3565b91508190509695505050505050565b6000613c0f826133c6565b9150613c1b82856131e3565b9150613c2682613876565b9150613c3282846131e3565b9150613c3d82613644565b91508190509392505050565b6000613c5482613a5e565b9150613c6082846131e3565b915081905092915050565b6000602082019050613c806000830184613153565b92915050565b6000608082019050613c9b6000830187613153565b613ca86020830186613153565b613cb56040830185613baa565b8181036060830152613cc78184613171565b905095945050505050565b6000602082019050613ce76000830184613162565b92915050565b60006020820190508181036000830152613d0781846131aa565b905092915050565b60006020820190508181036000830152613d2881613214565b9050919050565b60006020820190508181036000830152613d4881613254565b9050919050565b60006020820190508181036000830152613d68816132ba565b9050919050565b60006020820190508181036000830152613d8881613320565b9050919050565b60006020820190508181036000830152613da881613386565b9050919050565b60006020820190508181036000830152613dc881613406565b9050919050565b60006020820190508181036000830152613de88161346c565b9050919050565b60006020820190508181036000830152613e08816134ac565b9050919050565b60006020820190508181036000830152613e2881613512565b9050919050565b60006020820190508181036000830152613e4881613578565b9050919050565b60006020820190508181036000830152613e68816135de565b9050919050565b60006020820190508181036000830152613e8881613684565b9050919050565b60006020820190508181036000830152613ea8816136c4565b9050919050565b60006020820190508181036000830152613ec88161372a565b9050919050565b60006020820190508181036000830152613ee88161376a565b9050919050565b60006020820190508181036000830152613f08816137aa565b9050919050565b60006020820190508181036000830152613f2881613810565b9050919050565b60006020820190508181036000830152613f4881613a9e565b9050919050565b60006020820190508181036000830152613f6881613b04565b9050919050565b60006020820190508181036000830152613f8881613b6a565b9050919050565b6000602082019050613fa46000830184613baa565b92915050565b6000604051905081810181811067ffffffffffffffff82111715613fd157613fd06143ae565b5b8060405250919050565b600067ffffffffffffffff821115613ff657613ff56143ae565b5b602082029050602081019050919050565b600067ffffffffffffffff821115614022576140216143ae565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115614052576140516143ae565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006140b582614229565b91506140c083614229565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140f5576140f4614321565b5b828201905092915050565b600061410b82614229565b915061411683614229565b92508261412657614125614350565b5b828204905092915050565b600061413c82614229565b915061414783614229565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156141805761417f614321565b5b828202905092915050565b600061419682614229565b91506141a183614229565b9250828210156141b4576141b3614321565b5b828203905092915050565b60006141ca82614209565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015614260578082015181840152602081019050614245565b8381111561426f576000848401525b50505050565b6000600282049050600182168061428d57607f821691505b602082108114156142a1576142a061437f565b5b50919050565b60006142b282614229565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156142e5576142e4614321565b5b600182019050919050565b60006142fb82614229565b915061430683614229565b92508261431657614315614350565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6143f7816141bf565b811461440257600080fd5b50565b61440e816141d1565b811461441957600080fd5b50565b614425816141dd565b811461443057600080fd5b50565b61443c81614229565b811461444757600080fd5b5056fe3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574222076696577426f783d223020302033353020333530223e3c7374796c653e2e62617365207b2066696c6c3a204142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3b20666f6e742d66616d696c793a2053544b616974693b20666f6e742d73697a653a2032303070783b207d3c2f7374796c653e3c726563742077696474683d223130302522206865696768743d2231303025222066696c6c3d22626c61636b22202f3e3c7465787420783d223530252220793d223530252220616c69676e6d656e742d626173656c696e653d226d6964646c652220746578742d616e63686f723d226d6964646c652220636c6173733d2262617365223e262378a26469706673582212208f5cecfb44b2a738367a38d3f60747b7097e4869f0dfd128624bc66927e16ac964736f6c63430008000033