0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103c0578063bf474bed146103fd578063c876d0b914610428578063c9567bf914610453578063dd62ed3e1461046a5761012a565b8063751039fc146102fd5780637d1db4a5146103145780638da5cb5b1461033f5780638f9a55c01461036a57806395d89b41146103955761012a565b8063313ce567116100e7578063313ce5671461022a5780633bbac5791461025557806351bc3c851461029257806370a08231146102a9578063715018a6146102e65761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a7565b6040516101519190612555565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612610565b6104e4565b60405161018e919061266b565b60405180910390f35b3480156101a357600080fd5b506101ac610502565b6040516101b99190612695565b60405180910390f35b3480156101ce57600080fd5b506101d7610508565b6040516101e49190612695565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f91906126b0565b61052c565b604051610221919061266b565b60405180910390f35b34801561023657600080fd5b5061023f610605565b60405161024c919061271f565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061273a565b61060e565b604051610289919061266b565b60405180910390f35b34801561029e57600080fd5b506102a7610664565b005b3480156102b557600080fd5b506102d060048036038101906102cb919061273a565b610701565b6040516102dd9190612695565b60405180910390f35b3480156102f257600080fd5b506102fb61074a565b005b34801561030957600080fd5b5061031261089d565b005b34801561032057600080fd5b506103296109e8565b6040516103369190612695565b60405180910390f35b34801561034b57600080fd5b506103546109ee565b6040516103619190612776565b60405180910390f35b34801561037657600080fd5b5061037f610a17565b60405161038c9190612695565b60405180910390f35b3480156103a157600080fd5b506103aa610a1d565b6040516103b79190612555565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612610565b610a5a565b6040516103f4919061266b565b60405180910390f35b34801561040957600080fd5b50610412610a78565b60405161041f9190612695565b60405180910390f35b34801561043457600080fd5b5061043d610a7e565b60405161044a919061266b565b60405180910390f35b34801561045f57600080fd5b50610468610a91565b005b34801561047657600080fd5b50610491600480360381019061048c9190612791565b611172565b60405161049e9190612695565b60405180910390f35b60606040518060400160405280600681526020017f434f534d43530000000000000000000000000000000000000000000000000000815250905090565b60006104f86104f16111f9565b8484611201565b6001905092915050565b60135481565b60006008600a6105189190612933565b6305f5e100610527919061297e565b905090565b60006105398484846113ca565b6105fa846105456111f9565b6105f5856040518060600160405280602881526020016134c860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ab6111f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b611201565b600190509392505050565b60006008905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a56111f9565b73ffffffffffffffffffffffffffffffffffffffff16146106c557600080fd5b60006106d030610701565b905060008111156106e5576106e481611fc8565b5b600047905060008111156106fd576106fc8161225e565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107526111f9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d690612a0c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108a56111f9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612a0c565b60405180910390fd5b6008600a6109409190612933565b6305f5e10061094f919061297e565b6010819055506008600a6109639190612933565b6305f5e100610972919061297e565b6011819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109c29190612933565b6305f5e1006109d1919061297e565b6040516109de9190612695565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f434f534d43530000000000000000000000000000000000000000000000000000815250905090565b6000610a6e610a676111f9565b84846113ca565b6001905092915050565b60125481565b600760009054906101000a900460ff1681565b610a996111f9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90612a0c565b60405180910390fd5b601560149054906101000a900460ff1615610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612a78565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c1430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c009190612933565b6305f5e100610c0f919061297e565b611201565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190612aad565b90508073ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190612aad565b6040518363ffffffff1660e01b8152600401610d74929190612ada565b602060405180830381865afa158015610d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db59190612aad565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f9a578073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef99190612aad565b6040518363ffffffff1660e01b8152600401610f16929190612ada565b6020604051808303816000875af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190612aad565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe330610701565b600080610fee6109ee565b426040518863ffffffff1660e01b815260040161101096959493929190612b48565b60606040518083038185885af115801561102e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110539190612bbe565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110f5929190612c11565b6020604051808303816000875af1158015611114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111389190612c66565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612d05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690612d97565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113bd9190612695565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612e29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f90612ebb565b60405180910390fd5b600081116114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e290612f4d565b60405180910390fd5b60006114f56109ee565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561156357506115336109ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca757600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561160c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61161557600080fd5b600760009054906101000a900460ff16156117a257601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116d65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117a15743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390612fdf565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561184d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118a35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d6576010548211156118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e49061304b565b60405180910390fd5b601154826118fa85610701565b611904919061306b565b1115611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c906130eb565b60405180910390fd5b600e54600f5410156119655761195a836122ca565b1561196457600080fd5b5b600f60008154809291906119789061310b565b91905055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611a126064611a04600c54600f54116119f1576008546119f5565b600a545b856122dd90919063ffffffff16565b61235790919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a9d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bc057601054821115611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade9061304b565b60405180910390fd5b611b236064611b15600d54600f5411611b0257600954611b06565b600b545b856122dd90919063ffffffff16565b61235790919063ffffffff16565b9050600e54600f541180611b805750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb69061319f565b60405180910390fd5b5b6000611bcb30610701565b905060158054906101000a900460ff16158015611c355750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c4d5750601560169054906101000a900460ff165b8015611c5a575060125481115b8015611c695750600e54600f54115b15611ca557611c8b611c8684611c81846013546123a1565b6123a1565b611fc8565b60004790506000811115611ca357611ca24761225e565b5b505b505b6000811115611dab57611d0281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da29190612695565b60405180910390a35b611dfd82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea4611e56828461241890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f49848661241890919063ffffffff16565b604051611f569190612695565b60405180910390a350505050565b6000838311158290611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa39190612555565b60405180910390fd5b5060008385611fbb91906131bf565b9050809150509392505050565b60016015806101000a81548160ff021916908315150217905550600081031561224157601560149054906101000a900460ff1615612241576000600267ffffffffffffffff81111561201d5761201c6131f3565b5b60405190808252806020026020018201604052801561204b5781602001602082028036833780820191505090505b509050308160008151811061206357612062613222565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212e9190612aad565b8160018151811061214257612141613222565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611201565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161220d95949392919061330f565b600060405180830381600087803b15801561222757600080fd5b505af115801561223b573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122c6573d6000803e3d6000fd5b5050565b600080823b905060008111915050919050565b60008083036122ef5760009050612351565b600082846122fd919061297e565b905082848261230c9190613398565b1461234c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123439061343b565b60405180910390fd5b809150505b92915050565b600061239983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612462565b905092915050565b60008183116123b057826123b2565b815b905092915050565b60008082846123c9919061306b565b90508381101561240e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612405906134a7565b60405180910390fd5b8091505092915050565b600061245a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f64565b905092915050565b600080831182906124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a09190612555565b60405180910390fd5b50600083856124b89190613398565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124ff5780820151818401526020810190506124e4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612527826124c5565b61253181856124d0565b93506125418185602086016124e1565b61254a8161250b565b840191505092915050565b6000602082019050818103600083015261256f818461251c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125a78261257c565b9050919050565b6125b78161259c565b81146125c257600080fd5b50565b6000813590506125d4816125ae565b92915050565b6000819050919050565b6125ed816125da565b81146125f857600080fd5b50565b60008135905061260a816125e4565b92915050565b6000806040838503121561262757612626612577565b5b6000612635858286016125c5565b9250506020612646858286016125fb565b9150509250929050565b60008115159050919050565b61266581612650565b82525050565b6000602082019050612680600083018461265c565b92915050565b61268f816125da565b82525050565b60006020820190506126aa6000830184612686565b92915050565b6000806000606084860312156126c9576126c8612577565b5b60006126d7868287016125c5565b93505060206126e8868287016125c5565b92505060406126f9868287016125fb565b9150509250925092565b600060ff82169050919050565b61271981612703565b82525050565b60006020820190506127346000830184612710565b92915050565b6000602082840312156127505761274f612577565b5b600061275e848285016125c5565b91505092915050565b6127708161259c565b82525050565b600060208201905061278b6000830184612767565b92915050565b600080604083850312156127a8576127a7612577565b5b60006127b6858286016125c5565b92505060206127c7858286016125c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561285757808604811115612833576128326127d1565b5b60018516156128425780820291505b808102905061285085612800565b9450612817565b94509492505050565b600082612870576001905061292c565b8161287e576000905061292c565b8160018114612894576002811461289e576128cd565b600191505061292c565b60ff8411156128b0576128af6127d1565b5b8360020a9150848211156128c7576128c66127d1565b5b5061292c565b5060208310610133831016604e8410600b84101617156129025782820a9050838111156128fd576128fc6127d1565b5b61292c565b61290f848484600161280d565b92509050818404811115612926576129256127d1565b5b81810290505b9392505050565b600061293e826125da565b915061294983612703565b92506129767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612860565b905092915050565b6000612989826125da565b9150612994836125da565b92508282026129a2816125da565b915082820484148315176129b9576129b86127d1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129f66020836124d0565b9150612a01826129c0565b602082019050919050565b60006020820190508181036000830152612a25816129e9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a626017836124d0565b9150612a6d82612a2c565b602082019050919050565b60006020820190508181036000830152612a9181612a55565b9050919050565b600081519050612aa7816125ae565b92915050565b600060208284031215612ac357612ac2612577565b5b6000612ad184828501612a98565b91505092915050565b6000604082019050612aef6000830185612767565b612afc6020830184612767565b9392505050565b6000819050919050565b6000819050919050565b6000612b32612b2d612b2884612b03565b612b0d565b6125da565b9050919050565b612b4281612b17565b82525050565b600060c082019050612b5d6000830189612767565b612b6a6020830188612686565b612b776040830187612b39565b612b846060830186612b39565b612b916080830185612767565b612b9e60a0830184612686565b979650505050505050565b600081519050612bb8816125e4565b92915050565b600080600060608486031215612bd757612bd6612577565b5b6000612be586828701612ba9565b9350506020612bf686828701612ba9565b9250506040612c0786828701612ba9565b9150509250925092565b6000604082019050612c266000830185612767565b612c336020830184612686565b9392505050565b612c4381612650565b8114612c4e57600080fd5b50565b600081519050612c6081612c3a565b92915050565b600060208284031215612c7c57612c7b612577565b5b6000612c8a84828501612c51565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cef6024836124d0565b9150612cfa82612c93565b604082019050919050565b60006020820190508181036000830152612d1e81612ce2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d816022836124d0565b9150612d8c82612d25565b604082019050919050565b60006020820190508181036000830152612db081612d74565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e136025836124d0565b9150612e1e82612db7565b604082019050919050565b60006020820190508181036000830152612e4281612e06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea56023836124d0565b9150612eb082612e49565b604082019050919050565b60006020820190508181036000830152612ed481612e98565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f376029836124d0565b9150612f4282612edb565b604082019050919050565b60006020820190508181036000830152612f6681612f2a565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612fc96024836124d0565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130356019836124d0565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b6000613076826125da565b9150613081836125da565b9250828201905080821115613099576130986127d1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130d5601a836124d0565b91506130e08261309f565b602082019050919050565b60006020820190508181036000830152613104816130c8565b9050919050565b6000613116826125da565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613148576131476127d1565b5b600182019050919050565b7f53656c6c6572206973206e6f7420627579657200000000000000000000000000600082015250565b60006131896013836124d0565b915061319482613153565b602082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b60006131ca826125da565b91506131d5836125da565b92508282039050818111156131ed576131ec6127d1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132868161259c565b82525050565b6000613298838361327d565b60208301905092915050565b6000602082019050919050565b60006132bc82613251565b6132c6818561325c565b93506132d18361326d565b8060005b838110156133025781516132e9888261328c565b97506132f4836132a4565b9250506001810190506132d5565b5085935050505092915050565b600060a0820190506133246000830188612686565b6133316020830187612b39565b818103604083015261334381866132b1565b90506133526060830185612767565b61335f6080830184612686565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a3826125da565b91506133ae836125da565b9250826133be576133bd613369565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134256021836124d0565b9150613430826133c9565b604082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613491601b836124d0565b915061349c8261345b565b602082019050919050565b600060208201905081810360008301526134c081613484565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202869fab840c9084e9d9d4f9af2045510e942708d7b550fecb8326941d3374c2264736f6c63430008130033
0x60806040526000600760006101000a81548160ff021916908315150217905550600f600855600f6009556000600a556000600b556014600c556014600d556002600e556000600f556008600a62000057919062000628565b621e848062000067919062000679565b6010556008600a6200007a919062000628565b621e84806200008a919062000679565b6011556008600a6200009d919062000628565b6000620000ab919062000679565b6012556008600a620000be919062000628565b621e8480620000ce919062000679565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200011357600080fd5b506000620001266200045d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d46200045d60201b60201c565b600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000224919062000628565b6305f5e10062000235919062000679565b60016000620002496200045d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200029d6200046560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d06200045d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200042f919062000628565b6305f5e10062000440919062000679565b6040516200044f9190620006d5565b60405180910390a3620006f2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200051c57808604811115620004f457620004f36200048e565b5b6001851615620005045780820291505b80810290506200051485620004bd565b9450620004d4565b94509492505050565b6000826200053757600190506200060a565b816200054757600090506200060a565b81600181146200056057600281146200056b57620005a1565b60019150506200060a565b60ff84111562000580576200057f6200048e565b5b8360020a9150848211156200059a57620005996200048e565b5b506200060a565b5060208310610133831016604e8410600b8410161715620005db5782820a905083811115620005d557620005d46200048e565b5b6200060a565b620005ea8484846001620004ca565b925090508184048111156200060457620006036200048e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006358262000611565b915062000642836200061b565b9250620006717fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000525565b905092915050565b6000620006868262000611565b9150620006938362000611565b9250828202620006a38162000611565b91508282048414831517620006bd57620006bc6200048e565b5b5092915050565b620006cf8162000611565b82525050565b6000602082019050620006ec6000830184620006c4565b92915050565b61352580620007026000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146103c0578063bf474bed146103fd578063c876d0b914610428578063c9567bf914610453578063dd62ed3e1461046a5761012a565b8063751039fc146102fd5780637d1db4a5146103145780638da5cb5b1461033f5780638f9a55c01461036a57806395d89b41146103955761012a565b8063313ce567116100e7578063313ce5671461022a5780633bbac5791461025557806351bc3c851461029257806370a08231146102a9578063715018a6146102e65761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461019757806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104a7565b6040516101519190612555565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612610565b6104e4565b60405161018e919061266b565b60405180910390f35b3480156101a357600080fd5b506101ac610502565b6040516101b99190612695565b60405180910390f35b3480156101ce57600080fd5b506101d7610508565b6040516101e49190612695565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f91906126b0565b61052c565b604051610221919061266b565b60405180910390f35b34801561023657600080fd5b5061023f610605565b60405161024c919061271f565b60405180910390f35b34801561026157600080fd5b5061027c6004803603810190610277919061273a565b61060e565b604051610289919061266b565b60405180910390f35b34801561029e57600080fd5b506102a7610664565b005b3480156102b557600080fd5b506102d060048036038101906102cb919061273a565b610701565b6040516102dd9190612695565b60405180910390f35b3480156102f257600080fd5b506102fb61074a565b005b34801561030957600080fd5b5061031261089d565b005b34801561032057600080fd5b506103296109e8565b6040516103369190612695565b60405180910390f35b34801561034b57600080fd5b506103546109ee565b6040516103619190612776565b60405180910390f35b34801561037657600080fd5b5061037f610a17565b60405161038c9190612695565b60405180910390f35b3480156103a157600080fd5b506103aa610a1d565b6040516103b79190612555565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612610565b610a5a565b6040516103f4919061266b565b60405180910390f35b34801561040957600080fd5b50610412610a78565b60405161041f9190612695565b60405180910390f35b34801561043457600080fd5b5061043d610a7e565b60405161044a919061266b565b60405180910390f35b34801561045f57600080fd5b50610468610a91565b005b34801561047657600080fd5b50610491600480360381019061048c9190612791565b611172565b60405161049e9190612695565b60405180910390f35b60606040518060400160405280600681526020017f434f534d43530000000000000000000000000000000000000000000000000000815250905090565b60006104f86104f16111f9565b8484611201565b6001905092915050565b60135481565b60006008600a6105189190612933565b6305f5e100610527919061297e565b905090565b60006105398484846113ca565b6105fa846105456111f9565b6105f5856040518060600160405280602881526020016134c860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ab6111f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f649092919063ffffffff16565b611201565b600190509392505050565b60006008905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a56111f9565b73ffffffffffffffffffffffffffffffffffffffff16146106c557600080fd5b60006106d030610701565b905060008111156106e5576106e481611fc8565b5b600047905060008111156106fd576106fc8161225e565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107526111f9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d690612a0c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108a56111f9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092990612a0c565b60405180910390fd5b6008600a6109409190612933565b6305f5e10061094f919061297e565b6010819055506008600a6109639190612933565b6305f5e100610972919061297e565b6011819055506000600760006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109c29190612933565b6305f5e1006109d1919061297e565b6040516109de9190612695565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600681526020017f434f534d43530000000000000000000000000000000000000000000000000000815250905090565b6000610a6e610a676111f9565b84846113ca565b6001905092915050565b60125481565b600760009054906101000a900460ff1681565b610a996111f9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d90612a0c565b60405180910390fd5b601560149054906101000a900460ff1615610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612a78565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c1430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c009190612933565b6305f5e100610c0f919061297e565b611201565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190612aad565b90508073ffffffffffffffffffffffffffffffffffffffff1663e6a4390530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190612aad565b6040518363ffffffff1660e01b8152600401610d74929190612ada565b602060405180830381865afa158015610d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db59190612aad565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f9a578073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef99190612aad565b6040518363ffffffff1660e01b8152600401610f16929190612ada565b6020604051808303816000875af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190612aad565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe330610701565b600080610fee6109ee565b426040518863ffffffff1660e01b815260040161101096959493929190612b48565b60606040518083038185885af115801561102e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110539190612bbe565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110f5929190612c11565b6020604051808303816000875af1158015611114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111389190612c66565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612d05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690612d97565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113bd9190612695565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612e29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f90612ebb565b60405180910390fd5b600081116114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e290612f4d565b60405180910390fd5b60006114f56109ee565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561156357506115336109ee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca757600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561160c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61161557600080fd5b600760009054906101000a900460ff16156117a257601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116d65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117a15743600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061175c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175390612fdf565b60405180910390fd5b43600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561184d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118a35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d6576010548211156118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e49061304b565b60405180910390fd5b601154826118fa85610701565b611904919061306b565b1115611945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c906130eb565b60405180910390fd5b600e54600f5410156119655761195a836122ca565b1561196457600080fd5b5b600f60008154809291906119789061310b565b91905055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b611a126064611a04600c54600f54116119f1576008546119f5565b600a545b856122dd90919063ffffffff16565b61235790919063ffffffff16565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a9d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bc057601054821115611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade9061304b565b60405180910390fd5b611b236064611b15600d54600f5411611b0257600954611b06565b600b545b856122dd90919063ffffffff16565b61235790919063ffffffff16565b9050600e54600f541180611b805750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb69061319f565b60405180910390fd5b5b6000611bcb30610701565b905060158054906101000a900460ff16158015611c355750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c4d5750601560169054906101000a900460ff165b8015611c5a575060125481115b8015611c695750600e54600f54115b15611ca557611c8b611c8684611c81846013546123a1565b6123a1565b611fc8565b60004790506000811115611ca357611ca24761225e565b5b505b505b6000811115611dab57611d0281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da29190612695565b60405180910390a35b611dfd82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea4611e56828461241890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ba90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f49848661241890919063ffffffff16565b604051611f569190612695565b60405180910390a350505050565b6000838311158290611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa39190612555565b60405180910390fd5b5060008385611fbb91906131bf565b9050809150509392505050565b60016015806101000a81548160ff021916908315150217905550600081031561224157601560149054906101000a900460ff1615612241576000600267ffffffffffffffff81111561201d5761201c6131f3565b5b60405190808252806020026020018201604052801561204b5781602001602082028036833780820191505090505b509050308160008151811061206357612062613222565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212e9190612aad565b8160018151811061214257612141613222565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121a930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611201565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161220d95949392919061330f565b600060405180830381600087803b15801561222757600080fd5b505af115801561223b573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122c6573d6000803e3d6000fd5b5050565b600080823b905060008111915050919050565b60008083036122ef5760009050612351565b600082846122fd919061297e565b905082848261230c9190613398565b1461234c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123439061343b565b60405180910390fd5b809150505b92915050565b600061239983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612462565b905092915050565b60008183116123b057826123b2565b815b905092915050565b60008082846123c9919061306b565b90508381101561240e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612405906134a7565b60405180910390fd5b8091505092915050565b600061245a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f64565b905092915050565b600080831182906124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a09190612555565b60405180910390fd5b50600083856124b89190613398565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124ff5780820151818401526020810190506124e4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612527826124c5565b61253181856124d0565b93506125418185602086016124e1565b61254a8161250b565b840191505092915050565b6000602082019050818103600083015261256f818461251c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125a78261257c565b9050919050565b6125b78161259c565b81146125c257600080fd5b50565b6000813590506125d4816125ae565b92915050565b6000819050919050565b6125ed816125da565b81146125f857600080fd5b50565b60008135905061260a816125e4565b92915050565b6000806040838503121561262757612626612577565b5b6000612635858286016125c5565b9250506020612646858286016125fb565b9150509250929050565b60008115159050919050565b61266581612650565b82525050565b6000602082019050612680600083018461265c565b92915050565b61268f816125da565b82525050565b60006020820190506126aa6000830184612686565b92915050565b6000806000606084860312156126c9576126c8612577565b5b60006126d7868287016125c5565b93505060206126e8868287016125c5565b92505060406126f9868287016125fb565b9150509250925092565b600060ff82169050919050565b61271981612703565b82525050565b60006020820190506127346000830184612710565b92915050565b6000602082840312156127505761274f612577565b5b600061275e848285016125c5565b91505092915050565b6127708161259c565b82525050565b600060208201905061278b6000830184612767565b92915050565b600080604083850312156127a8576127a7612577565b5b60006127b6858286016125c5565b92505060206127c7858286016125c5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561285757808604811115612833576128326127d1565b5b60018516156128425780820291505b808102905061285085612800565b9450612817565b94509492505050565b600082612870576001905061292c565b8161287e576000905061292c565b8160018114612894576002811461289e576128cd565b600191505061292c565b60ff8411156128b0576128af6127d1565b5b8360020a9150848211156128c7576128c66127d1565b5b5061292c565b5060208310610133831016604e8410600b84101617156129025782820a9050838111156128fd576128fc6127d1565b5b61292c565b61290f848484600161280d565b92509050818404811115612926576129256127d1565b5b81810290505b9392505050565b600061293e826125da565b915061294983612703565b92506129767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612860565b905092915050565b6000612989826125da565b9150612994836125da565b92508282026129a2816125da565b915082820484148315176129b9576129b86127d1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129f66020836124d0565b9150612a01826129c0565b602082019050919050565b60006020820190508181036000830152612a25816129e9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a626017836124d0565b9150612a6d82612a2c565b602082019050919050565b60006020820190508181036000830152612a9181612a55565b9050919050565b600081519050612aa7816125ae565b92915050565b600060208284031215612ac357612ac2612577565b5b6000612ad184828501612a98565b91505092915050565b6000604082019050612aef6000830185612767565b612afc6020830184612767565b9392505050565b6000819050919050565b6000819050919050565b6000612b32612b2d612b2884612b03565b612b0d565b6125da565b9050919050565b612b4281612b17565b82525050565b600060c082019050612b5d6000830189612767565b612b6a6020830188612686565b612b776040830187612b39565b612b846060830186612b39565b612b916080830185612767565b612b9e60a0830184612686565b979650505050505050565b600081519050612bb8816125e4565b92915050565b600080600060608486031215612bd757612bd6612577565b5b6000612be586828701612ba9565b9350506020612bf686828701612ba9565b9250506040612c0786828701612ba9565b9150509250925092565b6000604082019050612c266000830185612767565b612c336020830184612686565b9392505050565b612c4381612650565b8114612c4e57600080fd5b50565b600081519050612c6081612c3a565b92915050565b600060208284031215612c7c57612c7b612577565b5b6000612c8a84828501612c51565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cef6024836124d0565b9150612cfa82612c93565b604082019050919050565b60006020820190508181036000830152612d1e81612ce2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d816022836124d0565b9150612d8c82612d25565b604082019050919050565b60006020820190508181036000830152612db081612d74565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e136025836124d0565b9150612e1e82612db7565b604082019050919050565b60006020820190508181036000830152612e4281612e06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea56023836124d0565b9150612eb082612e49565b604082019050919050565b60006020820190508181036000830152612ed481612e98565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f376029836124d0565b9150612f4282612edb565b604082019050919050565b60006020820190508181036000830152612f6681612f2a565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612fc96024836124d0565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130356019836124d0565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b6000613076826125da565b9150613081836125da565b9250828201905080821115613099576130986127d1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006130d5601a836124d0565b91506130e08261309f565b602082019050919050565b60006020820190508181036000830152613104816130c8565b9050919050565b6000613116826125da565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613148576131476127d1565b5b600182019050919050565b7f53656c6c6572206973206e6f7420627579657200000000000000000000000000600082015250565b60006131896013836124d0565b915061319482613153565b602082019050919050565b600060208201905081810360008301526131b88161317c565b9050919050565b60006131ca826125da565b91506131d5836125da565b92508282039050818111156131ed576131ec6127d1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132868161259c565b82525050565b6000613298838361327d565b60208301905092915050565b6000602082019050919050565b60006132bc82613251565b6132c6818561325c565b93506132d18361326d565b8060005b838110156133025781516132e9888261328c565b97506132f4836132a4565b9250506001810190506132d5565b5085935050505092915050565b600060a0820190506133246000830188612686565b6133316020830187612b39565b818103604083015261334381866132b1565b90506133526060830185612767565b61335f6080830184612686565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a3826125da565b91506133ae836125da565b9250826133be576133bd613369565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134256021836124d0565b9150613430826133c9565b604082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613491601b836124d0565b915061349c8261345b565b602082019050919050565b600060208201905081810360008301526134c081613484565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202869fab840c9084e9d9d4f9af2045510e942708d7b550fecb8326941d3374c2264736f6c63430008130033