608060405260056001556113886002556113886003556000600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff0219169083151502179055506000600c556000600d556000600e553480156200006757600080fd5b50620000886200007c6200082d60201b60201c565b6200083560201b60201c565b60006012600a6200009a919062000e41565b6512309ce54000620000ad919062000e92565b9050620000d0620000c36200082d60201b60201c565b82620008f960201b60201c565b620000e06200082d60201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001aa30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168362000a9560201b60201c565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e919062000f47565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ee919062000f47565b6040518363ffffffff1660e01b81526004016200030d92919062000f8a565b6020604051808303816000875af11580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000f47565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016200043492919062000fc8565b6020604051808303816000875af115801562000454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047a919062001032565b506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620004e962000c6660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60006200069c62000c6660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60006200077d62000c6660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550506200126f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200096b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096290620010c5565b60405180910390fd5b620009878160065462000c8f60201b62000b261790919060201c565b600681905550620009e681600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000c8f60201b62000b261790919060201c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a899190620010e7565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000afe906200117a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b709062001212565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c599190620010e7565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000818362000c9f919062001234565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d355780860481111562000d0d5762000d0c62000ca7565b5b600185161562000d1d5780820291505b808102905062000d2d8562000cd6565b945062000ced565b94509492505050565b60008262000d50576001905062000e23565b8162000d60576000905062000e23565b816001811462000d79576002811462000d845762000dba565b600191505062000e23565b60ff84111562000d995762000d9862000ca7565b5b8360020a91508482111562000db35762000db262000ca7565b5b5062000e23565b5060208310610133831016604e8410600b841016171562000df45782820a90508381111562000dee5762000ded62000ca7565b5b62000e23565b62000e03848484600162000ce3565b9250905081840481111562000e1d5762000e1c62000ca7565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000e4e8262000e2a565b915062000e5b8362000e34565b925062000e8a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d3e565b905092915050565b600062000e9f8262000e2a565b915062000eac8362000e2a565b925082820262000ebc8162000e2a565b9150828204841483151762000ed65762000ed562000ca7565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f0f8262000ee2565b9050919050565b62000f218162000f02565b811462000f2d57600080fd5b50565b60008151905062000f418162000f16565b92915050565b60006020828403121562000f605762000f5f62000edd565b5b600062000f708482850162000f30565b91505092915050565b62000f848162000f02565b82525050565b600060408201905062000fa1600083018562000f79565b62000fb0602083018462000f79565b9392505050565b62000fc28162000e2a565b82525050565b600060408201905062000fdf600083018562000f79565b62000fee602083018462000fb7565b9392505050565b60008115159050919050565b6200100c8162000ff5565b81146200101857600080fd5b50565b6000815190506200102c8162001001565b92915050565b6000602082840312156200104b576200104a62000edd565b5b60006200105b848285016200101b565b91505092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620010ad601f8362001064565b9150620010ba8262001075565b602082019050919050565b60006020820190508181036000830152620010e0816200109e565b9050919050565b6000602082019050620010fe600083018462000fb7565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200116260248362001064565b91506200116f8262001104565b604082019050919050565b60006020820190508181036000830152620011958162001153565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011fa60228362001064565b915062001207826200119c565b604082019050919050565b600060208201905081810360008301526200122d81620011eb565b9050919050565b6000620012418262000e2a565b91506200124e8362000e2a565b925082820190508082111562001269576200126862000ca7565b5b92915050565b6127cb806200127f6000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a457c2d71161006f578063a457c2d7146103fa578063a9059cbb14610437578063cdf4bab914610474578063d54f7d5e1461049f578063dd62ed3e146104ca578063f2fde38b1461050757610161565b8063751039fc146103375780637d1db4a51461034e5780638d5f81e2146103795780638da5cb5b146103a457806395d89b41146103cf57610161565b806339509351116100f25780633950935114610261578063499a28181461029e57806351c6590a146102c757806370a08231146102e3578063715018a61461032057610161565b806306fdde0314610166578063095ea7b31461019157806318160ddd146101ce57806323b872dd146101f9578063313ce5671461023657610161565b36610161577f544c765b33ca411cce832250371569244f765a17fcd217832be093f0fd5fa45b60405160405180910390a1005b600080fd5b34801561017257600080fd5b5061017b610530565b6040516101889190611c82565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190611d3d565b61056d565b6040516101c59190611d98565b60405180910390f35b3480156101da57600080fd5b506101e361058b565b6040516101f09190611dc2565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190611ddd565b610595565b60405161022d9190611d98565b60405180910390f35b34801561024257600080fd5b5061024b61066e565b6040516102589190611e4c565b60405180910390f35b34801561026d57600080fd5b5061028860048036038101906102839190611d3d565b610677565b6040516102959190611d98565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c09190611e67565b61072a565b005b6102e160048036038101906102dc9190611e67565b610758565b005b3480156102ef57600080fd5b5061030a60048036038101906103059190611e94565b6107b5565b6040516103179190611dc2565b60405180910390f35b34801561032c57600080fd5b506103356107fe565b005b34801561034357600080fd5b5061034c610812565b005b34801561035a57600080fd5b5061036361082e565b6040516103709190611dc2565b60405180910390f35b34801561038557600080fd5b5061038e610860565b60405161039b9190611ed0565b60405180910390f35b3480156103b057600080fd5b506103b961088a565b6040516103c69190611ed0565b60405180910390f35b3480156103db57600080fd5b506103e46108b3565b6040516103f19190611c82565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190611d3d565b6108f0565b60405161042e9190611d98565b60405180910390f35b34801561044357600080fd5b5061045e60048036038101906104599190611d3d565b6109bd565b60405161046b9190611d98565b60405180910390f35b34801561048057600080fd5b506104896109db565b6040516104969190611d98565b60405180910390f35b3480156104ab57600080fd5b506104b46109f2565b6040516104c19190611ed0565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190611eeb565b610a1c565b6040516104fe9190611dc2565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190611e94565b610aa3565b005b60606040518060400160405280600c81526020017f42726f6b656e20424944454e0000000000000000000000000000000000000000815250905090565b600061058161057a610b3c565b8484610b44565b6001905092915050565b6000600654905090565b60006105a2848484610d0d565b610663846105ae610b3c565b61065e8560405180606001604052806028815260200161274960289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610614610b3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166b9092919063ffffffff16565b610b44565b600190509392505050565b60006012905090565b6000610720610684610b3c565b8461071b8560056000610695610b3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2690919063ffffffff16565b610b44565b6001905092915050565b601054331461073857600080fd5b604051338152600460208201526040812082815560648002600c55505050565b6107606116c0565b6001600860146101000a81548160ff02191690831515021790555061078d61078661088a565b3083610d0d565b610797813461173e565b6000600860146101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108066116c0565b6108106000611823565b565b61081a6116c0565b612710600381905550612710600281905550565b600061085b61271061084d6003546006546118e790919063ffffffff16565b6118fd90919063ffffffff16565b905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f424944454e000000000000000000000000000000000000000000000000000000815250905090565b60006109b36108fd610b3c565b846109ae856040518060600160405280602581526020016127716025913960056000610927610b3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166b9092919063ffffffff16565b610b44565b6001905092915050565b60006109d16109ca610b3c565b8484610d0d565b6001905092915050565b6000600860149054906101000a900460ff16905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610aab6116c0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1190611f9d565b60405180910390fd5b610b2381611823565b50565b60008183610b349190611fec565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1990612124565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d009190611dc2565b60405180910390a3505050565b610d18838383611913565b600080610d2361088a565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d915750610d6161088a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561130657600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e3a5750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561130557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015610eea5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610f405750600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610f965750600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561109057610fc6612710610fb86003546006546118e790919063ffffffff16565b6118fd90919063ffffffff16565b831115611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff906121b6565b60405180910390fd5b6110336127106110256002546006546118e790919063ffffffff16565b6118fd90919063ffffffff16565b61104e84611040876107b5565b610b2690919063ffffffff16565b111561108f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108690612248565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561111957503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156111b957611147612710611139600d54866118e790919063ffffffff16565b6118fd90919063ffffffff16565b9150611172612710611164600c54866118e790919063ffffffff16565b6118fd90919063ffffffff16565b905043600960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156112645750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561130457611292612710611284600d54866118e790919063ffffffff16565b6118fd90919063ffffffff16565b91506112bd6127106112af600e54866118e790919063ffffffff16565b6118fd90919063ffffffff16565b905043600960003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b600061131b8284610b2690919063ffffffff16565b905060008111156114ba57600083111561133a576113398684611a39565b5b60008211156114a4576113b78260046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2690919063ffffffff16565b60046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161149b9190611dc2565b60405180910390a35b6114b78185611bdc90919063ffffffff16565b93505b6115268460405180606001604052806026815260200161272360269139600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166b9092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115bb84600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2690919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161165b9190611dc2565b60405180910390a3505050505050565b60008383111582906116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa9190611c82565b60405180910390fd5b5082840390509392505050565b6116c8610b3c565b73ffffffffffffffffffffffffffffffffffffffff166116e661088a565b73ffffffffffffffffffffffffffffffffffffffff161461173c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611733906122b4565b60405180910390fd5b565b61176b30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b44565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806117b761088a565b426040518863ffffffff1660e01b81526004016117d996959493929190612319565b60606040518083038185885af11580156117f7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061181c919061238f565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836118f591906123e2565b905092915050565b6000818361190b9190612453565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611982576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611979906124f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e890612588565b60405180910390fd5b60008111611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b9061261a565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f906126ac565b60405180910390fd5b611b148160405180606001604052806022815260200161270160229139600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166b9092919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b6c81600654611bdc90919063ffffffff16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd09190611dc2565b60405180910390a35050565b60008183611bea91906126cc565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c2c578082015181840152602081019050611c11565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c5482611bf2565b611c5e8185611bfd565b9350611c6e818560208601611c0e565b611c7781611c38565b840191505092915050565b60006020820190508181036000830152611c9c8184611c49565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611cd482611ca9565b9050919050565b611ce481611cc9565b8114611cef57600080fd5b50565b600081359050611d0181611cdb565b92915050565b6000819050919050565b611d1a81611d07565b8114611d2557600080fd5b50565b600081359050611d3781611d11565b92915050565b60008060408385031215611d5457611d53611ca4565b5b6000611d6285828601611cf2565b9250506020611d7385828601611d28565b9150509250929050565b60008115159050919050565b611d9281611d7d565b82525050565b6000602082019050611dad6000830184611d89565b92915050565b611dbc81611d07565b82525050565b6000602082019050611dd76000830184611db3565b92915050565b600080600060608486031215611df657611df5611ca4565b5b6000611e0486828701611cf2565b9350506020611e1586828701611cf2565b9250506040611e2686828701611d28565b9150509250925092565b600060ff82169050919050565b611e4681611e30565b82525050565b6000602082019050611e616000830184611e3d565b92915050565b600060208284031215611e7d57611e7c611ca4565b5b6000611e8b84828501611d28565b91505092915050565b600060208284031215611eaa57611ea9611ca4565b5b6000611eb884828501611cf2565b91505092915050565b611eca81611cc9565b82525050565b6000602082019050611ee56000830184611ec1565b92915050565b60008060408385031215611f0257611f01611ca4565b5b6000611f1085828601611cf2565b9250506020611f2185828601611cf2565b9150509250929050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f87602683611bfd565b9150611f9282611f2b565b604082019050919050565b60006020820190508181036000830152611fb681611f7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ff782611d07565b915061200283611d07565b925082820190508082111561201a57612019611fbd565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061207c602483611bfd565b915061208782612020565b604082019050919050565b600060208201905081810360008301526120ab8161206f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061210e602283611bfd565b9150612119826120b2565b604082019050919050565b6000602082019050818103600083015261213d81612101565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006121a0602883611bfd565b91506121ab82612144565b604082019050919050565b600060208201905081810360008301526121cf81612193565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e740000000000000000000000000000000000000000000000000000000000602082015250565b6000612232602383611bfd565b915061223d826121d6565b604082019050919050565b6000602082019050818103600083015261226181612225565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061229e602083611bfd565b91506122a982612268565b602082019050919050565b600060208201905081810360008301526122cd81612291565b9050919050565b6000819050919050565b6000819050919050565b60006123036122fe6122f9846122d4565b6122de565b611d07565b9050919050565b612313816122e8565b82525050565b600060c08201905061232e6000830189611ec1565b61233b6020830188611db3565b612348604083018761230a565b612355606083018661230a565b6123626080830185611ec1565b61236f60a0830184611db3565b979650505050505050565b60008151905061238981611d11565b92915050565b6000806000606084860312156123a8576123a7611ca4565b5b60006123b68682870161237a565b93505060206123c78682870161237a565b92505060406123d88682870161237a565b9150509250925092565b60006123ed82611d07565b91506123f883611d07565b925082820261240681611d07565b9150828204841483151761241d5761241c611fbd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061245e82611d07565b915061246983611d07565b92508261247957612478612424565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006124e0602583611bfd565b91506124eb82612484565b604082019050919050565b6000602082019050818103600083015261250f816124d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612572602383611bfd565b915061257d82612516565b604082019050919050565b600060208201905081810360008301526125a181612565565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612604602983611bfd565b915061260f826125a8565b604082019050919050565b60006020820190508181036000830152612633816125f7565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612696602183611bfd565b91506126a18261263a565b604082019050919050565b600060208201905081810360008301526126c581612689565b9050919050565b60006126d782611d07565b91506126e283611d07565b92508282039050818111156126fa576126f9611fbd565b5b9291505056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f8b02e65a01745306a5b6c2a157375623ea2cc658e9292d2bb6f56d557220f5d64736f6c63430008110033