0x6101806040526305f5e1006080523480156200001a57600080fd5b506040516200404d3803806200404d8339810160408190526200003d91620005f7565b8051602082015160408301516060840151608085015160a08087015160c080890151928490526001600160a01b03851690529082828289898989868686868484848481811015620000e45760405162461bcd60e51b815260206004820152602760248201527f5072696365416363756d756c61746f723a20494e56414c49445f5550444154456044820152665f44454c41595360c81b606482015260840160405180910390fd5b6001600160a01b0394851660e05261010091909152610120525050959095166101405250505061016052506200011b90506200018b565b6004805463ffffffff9485166001600160401b031990911617640100000000938516939093029290921763ffffffff60401b191668010000000000000000919093160291909117905550508651620001829550600594506020880193509150620004379050565b50505062000707565b620001a66000805160206200402d8339815191523362000283565b620001c16000805160206200402d8339815191528062000293565b620001fc7fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af6000805160206200402d83398151915262000293565b620002367ef7280a0db925c0d1e88a56cb8ae89369595b41df40ca283519b9b197f5fed06000805160206200402d83398151915262000293565b620002817f9792fdc19ab98adfa72ab2fa98d342618c661e01c406979c105b31eda87f5e6f7ef7280a0db925c0d1e88a56cb8ae89369595b41df40ca283519b9b197f5fed062000293565b565b6200028f8282620002de565b5050565b600082815260026020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b620002f582826200032160201b620014bb1760201c565b60008281526003602090815260409091206200031c9183906200155d620003c5821b17901c565b505050565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff166200028f5760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003813390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620003dc836001600160a01b038416620003e5565b90505b92915050565b60008181526001830160205260408120546200042e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620003df565b506000620003df565b8280546200044590620006cb565b90600052602060002090601f016020900481019282620004695760008555620004b4565b82601f106200048457805160ff1916838001178555620004b4565b82800160010185558215620004b4579182015b82811115620004b457825182559160200191906001019062000497565b50620004c2929150620004c6565b5090565b5b80821115620004c25760008155600101620004c7565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200051e576200051e620004dd565b604052919050565b6001600160a01b03811681146200053c57600080fd5b50565b80516200054c8162000526565b919050565b600060e082840312156200056457600080fd5b60405160e081016001600160401b0381118282101715620005895762000589620004dd565b806040525080915082516200059e8162000526565b81526020830151620005b08162000526565b602082015260408381015190820152620005cd606084016200053f565b60608201526080830151608082015260a083015160a082015260c083015160c08201525092915050565b60008061010083850312156200060c57600080fd5b82516001600160401b03808211156200062457600080fd5b818501915085601f8301126200063957600080fd5b8151818111156200064e576200064e620004dd565b6020915062000666601f8201601f19168301620004f3565b81815287838386010111156200067b57600080fd5b60005b828110156200069b5784810184015182820185015283016200067e565b82811115620006ad5760008484840101525b509450620006c090508686830162000551565b925050509250929050565b600181811c90821680620006e057607f821691505b6020821081036200070157634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610120516101405161016051613860620007cd600039600081816107a3015261292801526000818161045901526128e801526000505060005050600081816106710152818161186201526119910152600081816103a70152818161072e0152818161091201528181610bd701528181611021015281816113200152818161136c0152818161171f01528181611c6901528181611eb70152611fef015260005050600081816106ef015261247d01526138606000f3fe608060405234801561001057600080fd5b50600436106102c85760003560e01c80639010d07c1161017b578063bdbdf285116100d8578063e06df80b1161008c578063ee7b547411610071578063ee7b5474146107d5578063fb5e8315146107e8578063fc46c8591461036657600080fd5b8063e06df80b146107c5578063e2543742146107cd57600080fd5b8063ca15c873116100bd578063ca15c87314610778578063d547741f1461078b578063db4c545e1461079e57600080fd5b8063bdbdf28514610752578063c43ed2c81461076557600080fd5b80639b4a95e01161012f578063a217fddf11610114578063a217fddf14610711578063afbe528214610719578063bad346201461072c57600080fd5b80639b4a95e0146106d75780639f6024d8146106ea57600080fd5b8063924965ce11610160578063924965ce1461066c5780639407f5cb146106935780639aae129d1461069b57600080fd5b80639010d07c1461062057806391d148541461063357600080fd5b806336568abe1161022957806357611cac116101dd5780636d421f3e116101c25780636d421f3e1461059e5780638194fe9e146105b15780638a04ff3c146105c457600080fd5b806357611cac146105605780635ee5e8be1461058b57600080fd5b80634fd23d2d1161020e5780634fd23d2d146104a85780635460115a146104bb578063554f94db1461054a57600080fd5b806336568abe1461047b5780633defb9621461048e57600080fd5b8063234398bd1161028057806327624b071161026557806327624b07146104255780632f2ff15d1461043f5780633119049a1461045457600080fd5b8063234398bd146103e1578063248a9ca3146103f457600080fd5b80630b8cdc59116102b15780630b8cdc591461030a5780630e6159db14610366578063217a4b70146103a257600080fd5b806301ffc9a7146102cd57806306fdde03146102f5575b600080fd5b6102e06102db366004612d13565b6107fb565b60405190151581526020015b60405180910390f35b6102fd61081b565b6040516102ec9190612d6d565b610342610318366004612db5565b6000602081905290815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff9091166020830152016102ec565b6102fd6040518060400160405280600681526020017f76342e302e30000000000000000000000000000000000000000000000000000081525081565b6103c97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ec565b6102e06103ef366004612e97565b6108a9565b610417610402366004612ecc565b60009081526002602052604090206001015490565b6040519081526020016102ec565b61042d6108be565b60405160ff90911681526020016102ec565b61045261044d366004612ee5565b6109ab565b005b6103c97f000000000000000000000000000000000000000000000000000000000000000081565b610452610489366004612ee5565b6109d5565b60045468010000000000000000900463ffffffff16610417565b6104526104b6366004612f15565b610a6b565b6105206104c9366004612db5565b6040805180820190915260008082526020820152506001600160a01b0316600090815260208181526040918290208251808401909352546001600160e01b0381168352600160e01b900463ffffffff169082015290565b6040805182516001600160e01b0316815260209283015163ffffffff1692810192909252016102ec565b600454640100000000900463ffffffff16610417565b61057361056e366004612f27565b610bd3565b6040516001600160701b0390911681526020016102ec565b610573610599366004612f65565b610d74565b6105206105ac366004612db5565b610ede565b6105736105bf366004612db5565b61101d565b6105fc6105d2366004612db5565b6001602052600090815260409020546001600160701b03811690600160701b900463ffffffff1682565b604080516001600160701b03909316835263ffffffff9091166020830152016102ec565b6103c961062e366004612f9a565b611119565b6102e0610641366004612ee5565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c97f000000000000000000000000000000000000000000000000000000000000000081565b610417611138565b6102fd6040518060400160405280600681526020017f76302e312e30000000000000000000000000000000000000000000000000000081525081565b6102e06106e5366004612e97565b611149565b6104177f000000000000000000000000000000000000000000000000000000000000000081565b610417600081565b610417610727366004612e97565b6111a6565b7f00000000000000000000000000000000000000000000000000000000000000006103c9565b610417610760366004612e97565b6111bb565b6102e0610773366004612e97565b6111fe565b610417610786366004612ecc565b6112dd565b610452610799366004612ee5565b6112f4565b6104177f000000000000000000000000000000000000000000000000000000000000000081565b6102fd611319565b6102fd611365565b6102e06107e3366004612fbc565b6113b1565b6102e06107f6366004612e97565b61141b565b600061080682611572565b806108155750610815826115b0565b92915050565b6005805461082890613001565b80601f016020809104026020016040519081016040528092919081815260200182805461085490613001565b80156108a15780601f10610876576101008083540402835291602001916108a1565b820191906000526020600020905b81548152906001019060200180831161088457829003601f168201915b505050505081565b6000610815826107e360045463ffffffff1690565b60408051600481526024810182526020810180516001600160e01b03167f313ce567000000000000000000000000000000000000000000000000000000001790529051600091829182916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169161093d9190613035565b600060405180830381855afa9150503d8060008114610978576040519150601f19603f3d011682016040523d82523d6000602084013e61097d565b606091505b5091509150816109905760129250505090565b808060200190518101906109a49190613067565b9250505090565b6000828152600260205260409020600101546109c6816116b3565b6109d083836116c0565b505050565b6001600160a01b0381163314610a585760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610a6282826116e2565b5050565b905090565b7fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af610a95816116b3565b610aa56060830160408401613094565b63ffffffff16610abb6040840160208501613094565b63ffffffff161115610afb57816040517f844edefc000000000000000000000000000000000000000000000000000000008152600401610a4f91906130fa565b610b086020830183613094565b63ffffffff16600003610b4957816040517f844edefc000000000000000000000000000000000000000000000000000000008152600401610a4f91906130fa565b604080516060810182526004805463ffffffff8082168452640100000000820481166020850152680100000000000000009091041692820192909252908390610b928282613108565b9050507fd8a61dbcfb5d6c4bf580fec4f5edcbabfedb79848780c5a08783b258349710d98184604051610bc69291906131cb565b60405180910390a1505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610c2857610c166108be565b610c2190600a613420565b9050610815565b81600003610c5c57604080516001600160a01b0385166020820152610c219101604051602081830303815290604052611704565b6001600160a01b038316600090815260016020526040812080549091600160701b90910463ffffffff169003610cfa5760405162461bcd60e51b815260206004820152602560248201527f5072696365416363756d756c61746f723a204d495353494e475f4f425345525660448201527f4154494f4e0000000000000000000000000000000000000000000000000000006064820152608401610a4f565b8054610d14908490600160701b900463ffffffff1661342f565b421115610d635760405162461bcd60e51b815260206004820152601e60248201527f5072696365416363756d756c61746f723a20524154455f544f4f5f4f4c4400006044820152606401610a4f565b546001600160701b03169392505050565b6000610d866040840160208501613094565b63ffffffff16600003610e015760405162461bcd60e51b815260206004820152602a60248201527f5072696365416363756d756c61746f723a2054494d455354414d505f43414e4e60448201527f4f545f42455f5a45524f000000000000000000000000000000000000000000006064820152608401610a4f565b6000610e136040850160208601613094565b610e236040850160208601613094565b610e2d9190613447565b63ffffffff16905080600003610eab5760405162461bcd60e51b815260206004820152602b60248201527f5072696365416363756d756c61746f723a2044454c54415f54494d455f43414e60448201527f4e4f545f42455f5a45524f0000000000000000000000000000000000000000006064820152608401610a4f565b610ed6610ed1610ebe602086018661346c565b610ecb602088018861346c565b8461181d565b6118d5565b949350505050565b60408051808201909152600080825260208201526001600160a01b038216600090815260016020526040812080549091600160701b90910463ffffffff169003610f6a5760405162461bcd60e51b815260206004820152601f60248201527f5072696365416363756d756c61746f723a20554e494e495449414c495a4544006044820152606401610a4f565b6001600160a01b0383166000908152602081815260408083208151808301909252546001600160e01b038116825263ffffffff600160e01b9091048116928201929092528354909450610fc691600160701b9091041642613495565b90508015611016578154600090610fef90610fea906001600160701b031684611958565b611a04565b845181016001600160e01b03168552905061100942611a83565b63ffffffff166020850152505b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361106b576110606108be565b61081590600a613420565b6001600160a01b038216600090815260016020526040812080549091600160701b90910463ffffffff1690036111095760405162461bcd60e51b815260206004820152602560248201527f5072696365416363756d756c61746f723a204d495353494e475f4f425345525660448201527f4154494f4e0000000000000000000000000000000000000000000000000000006064820152608401610a4f565b546001600160701b031692915050565b60008281526003602052604081206111319083611aff565b9392505050565b6000610a6660045463ffffffff1690565b600080611155836111a6565b600454909150640100000000900463ffffffff168110156111795750600092915050565b60045468010000000000000000900463ffffffff16811061119d5750600192915050565b611131836108a9565b60006111b1826111bb565b6108159042613495565b600080828060200190518101906111d291906134ac565b6001600160a01b0316600090815260016020526040902054600160701b900463ffffffff169392505050565b60008080527f64d1039f5909dad8f4344a7afec10c4325f1b855609670c536fdbbbbf75cf7c26020527f69c3c2c8c8d952189ac5185c60ffcbad50894226db9c8aa664ecdc46db4d8b9a547f9792fdc19ab98adfa72ab2fa98d342618c661e01c406979c105b31eda87f5e6f9060ff166112ce57600081815260026020908152604080832033845290915290205460ff166112ce576040517f0161a64a00000000000000000000000000000000000000000000000000000000815233600482015260248101829052604401610a4f565b61113183611b0b565b50919050565b600081815260036020526040812061081590611b2c565b60008281526002602052604090206001015461130f816116b3565b6109d083836116e2565b6060610a667f00000000000000000000000000000000000000000000000000000000000000007f95d89b4100000000000000000000000000000000000000000000000000000000611b36565b6060610a667f00000000000000000000000000000000000000000000000000000000000000007f06fdde0300000000000000000000000000000000000000000000000000000000611b36565b6000806113bd84611704565b6001600160701b031690506000848060200190518101906113de91906134ac565b6001600160a01b03811660009081526001602052604090208054919250906114119084906001600160701b031687611c16565b9695505050505050565b60008080527f64d1039f5909dad8f4344a7afec10c4325f1b855609670c536fdbbbbf75cf7c26020527f69c3c2c8c8d952189ac5185c60ffcbad50894226db9c8aa664ecdc46db4d8b9a5460ff161580156114a557503360009081527f64d1039f5909dad8f4344a7afec10c4325f1b855609670c536fdbbbbf75cf7c2602052604090205460ff16155b156114b257506000919050565b61081582611c3d565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff16610a625760008281526002602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115193390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611131836001600160a01b038416611cd1565b60006001600160e01b031982167f5a05180f000000000000000000000000000000000000000000000000000000001480610815575061081582611d20565b60006001600160e01b031982167f67c7e6da00000000000000000000000000000000000000000000000000000000148061161357506001600160e01b031982167fd6f5e23200000000000000000000000000000000000000000000000000000000145b8061164757506001600160e01b031982167fb629643a00000000000000000000000000000000000000000000000000000000145b8061167b57507f9f88c26e000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061081557507faeff3063000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610815565b6116bd8133611d87565b50565b6116ca82826114bb565b60008281526003602052604090206109d0908261155d565b6116ec8282611e07565b60008281526003602052604090206109d09082611e8a565b6000808280602001905181019061171b91906134ac565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316148061176457506001600160a01b038116155b156117a6576040517f961c9a4f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610a4f565b6000806117b283611e9f565b91509150816117f8576040517f92ba6ee40000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610a4f565b8060000361180b57506001949350505050565b611814816118d5565b95945050505050565b6040517f3d7be91f0000000000000000000000000000000000000000000000000000000081528284036001600160e01b031660048201819052602482018390526000917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633d7be91f90604401602060405180830381865afa1580156118b1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181491906134c9565b60006001600160701b038211156119545760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f31322062697473000000000000000000000000000000000000000000000000006064820152608401610a4f565b5090565b6040517f0c6dcae800000000000000000000000000000000000000000000000000000000815260048101839052602481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630c6dcae890604401602060405180830381865afa1580156119e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113191906134c9565b60006001600160e01b038211156119545760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610a4f565b600063ffffffff8211156119545760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610a4f565b60006111318383612032565b6000611b1682611149565b15611b24576108158261205c565b506000919050565b6000610815825490565b60408051600481526024810182526020810180516001600160e01b03166001600160e01b03198516179052905160609160009182916001600160a01b03871691611b809190613035565b600060405180830381855afa9150503d8060008114611bbb576040519150601f19603f3d011682016040523d82523d6000602084013e611bc0565b606091505b509150915081611be3576040518060200160405280600081525092505050610815565b8051602014611c055780806020019051810190611c0091906134e2565b611814565b611814611c1182613550565b6122e3565b6000806000611c258686612442565b91509150808061141157505091909110159392505050565b60008082806020019051810190611c5491906134ac565b90506001600160a01b0381161580611c9d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b15611cab5750600092915050565b6000611cb682611e9f565b50905080611cc8575060009392505050565b610ed6846124d5565b6000818152600183016020526040812054611d1857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610815565b506000610815565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061081557507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610815565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff16610a6257611dc5816001600160a01b031660146124e0565b611dd08360206124e0565b604051602001611de1929190613574565b60408051601f198184030181529082905262461bcd60e51b8252610a4f91600401612d6d565b60008281526002602090815260408083206001600160a01b038516845290915290205460ff1615610a625760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611131836001600160a01b038416612709565b6000806000611ead846127fc565b90506000611edb857f000000000000000000000000000000000000000000000000000000000000000061286b565b90506001600160a01b0381163b15612025576000816001600160a01b0316631a6865026040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5191906135f5565b6fffffffffffffffffffffffffffffffff16905080600003611f7b57506000958695509350505050565b6000826001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e060405180830381865afa158015611fbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fdf9190613639565b50505050505090506000612015887f0000000000000000000000000000000000000000000000000000000000000000848861296e565b6001999098509650505050505050565b5060009485945092505050565b6000826000018281548110612049576120496136d4565b9060005260206000200154905092915050565b60008061206883611704565b905060008380602001905181019061208091906134ac565b905061208c8483612ad4565b61209a575060009392505050565b6001600160a01b0381166000908152600160209081526040808320918390528220815491929091600160701b900463ffffffff1690036121a35781546dffffffffffffffffffffffffffff19166001600160701b0385161782556120fd42611a83565b81546001600160e01b0316600160e01b63ffffffff9290921691820217825582547fffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff16600160701b909102178255604080516001600160701b03861681524260208201526001600160a01b038516917f99cc044fd36aeecc372e0e5efa3b9fb561c7bd355a7c7de464a05776716b1476910160405180910390a250600195945050505050565b81546000906121bf90600160701b900463ffffffff1642613495565b905080156122d65782546000906121e390610fea906001600160701b031684611958565b83546001600160e01b031981166001600160e01b03918216830190911617845584546dffffffffffffffffffffffffffff19166001600160701b038816178555905061222e42611a83565b83546001600160e01b0316600160e01b63ffffffff9290921691820217845584547fffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff16600160701b909102178455604080516001600160701b03881681524260208201526001600160a01b038716917f99cc044fd36aeecc372e0e5efa3b9fb561c7bd355a7c7de464a05776716b1476910160405180910390a2506001979650505050505050565b5060009695505050505050565b606060005b60208110801561232e5750828160208110612305576123056136d4565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b156123435761233c816136ea565b90506122e8565b60008167ffffffffffffffff81111561235e5761235e612dd2565b6040519080825280601f01601f191660200182016040528015612388576020820181803683370190505b509050600091505b6020821080156123d657508382602081106123ad576123ad6136d4565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b15611131578382602081106123ed576123ed6136d4565b1a60f81b818381518110612403576124036136d4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061243b826136ea565b9150612390565b60008082841015612451579192915b83600003612464575060009050806124ce565b8260000361247857506000905060016124ce565b8284037f00000000000000000000000000000000000000000000000000000000000000008102818110156124b557600060019350935050506124ce565b8481816124c4576124c4613704565b0493506000925050505b9250929050565b600061081582611149565b606060006124ef83600261371a565b6124fa90600261342f565b67ffffffffffffffff81111561251257612512612dd2565b6040519080825280601f01601f19166020018201604052801561253c576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612573576125736136d4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106125d6576125d66136d4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600061261284600261371a565b61261d90600161342f565b90505b60018111156126ba577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061265e5761265e6136d4565b1a60f81b828281518110612674576126746136d4565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936126b381613739565b9050612620565b5083156111315760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a4f565b600081815260018301602052604081205480156127f257600061272d600183613495565b855490915060009061274190600190613495565b90508181146127a6576000866000018281548110612761576127616136d4565b9060005260206000200154905080876000018481548110612784576127846136d4565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806127b7576127b7613750565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610815565b6000915050610815565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561283c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128609190613067565b61081590600a613766565b6000816001600160a01b0316836001600160a01b0316111561288b579091905b604080516001600160a01b0385811660208084019190915290851682840152825180830384018152606080840190945280519101207fff0000000000000000000000000000000000000000000000000000000000000060808301527f000000000000000000000000000000000000000000000000000000000000000090921b6bffffffffffffffffffffffff1916608182015260958101919091527f000000000000000000000000000000000000000000000000000000000000000060b582015260d50160408051601f1981840301815291905280516020909101209392505050565b60006fffffffffffffffffffffffffffffffff6001600160a01b03841611612a395760006129a56001600160a01b0385168061371a565b9050846001600160a01b0316866001600160a01b0316106129fb576129f67801000000000000000000000000000000000000000000000000846fffffffffffffffffffffffffffffffff1683612bbd565b612a31565b612a3181846fffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000612bbd565b915050610ed6565b6000612a586001600160a01b0385168068010000000000000000612bbd565b9050846001600160a01b0316866001600160a01b031610612aa657612aa1700100000000000000000000000000000000846fffffffffffffffffffffffffffffffff1683612bbd565b611411565b61141181846fffffffffffffffffffffffffffffffff16700100000000000000000000000000000000612bbd565b6000612ade612c6b565b600080600085806020019051810190612af79190613787565b9250925092506000612b0884612cbc565b90506000612b29876001600160701b0316856001600160701b031684611c16565b1590506000612b3784612cd9565b90506000828015612b455750815b604080516001600160701b038c8116825289166020820152428183015263ffffffff88166060820152821515608082015290519192506001600160a01b038916917f5b8fb8cc0bd0b75580c69c314b665eb0d923c5f510776fa455b00c21e7bf7e919181900360a00190a29998505050505050505050565b6000808060001985870985870292508281108382030391505080600003612bf65760008411612beb57600080fd5b508290049050611131565b808411612c0257600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b333214612cba5760405162461bcd60e51b815260206004820152601d60248201527f5072696365416363756d756c61746f723a204d5553545f42455f454f410000006044820152606401610a4f565b565b60006002612ccf60045463ffffffff1690565b61081591906137e0565b600061012c612ce88184613802565b63ffffffff1642111580156111315750612d03600a84613447565b63ffffffff164210159392505050565b600060208284031215612d2557600080fd5b81356001600160e01b03198116811461113157600080fd5b60005b83811015612d58578181015183820152602001612d40565b83811115612d67576000848401525b50505050565b6020815260008251806020840152612d8c816040850160208701612d3d565b601f01601f19169190910160400192915050565b6001600160a01b03811681146116bd57600080fd5b600060208284031215612dc757600080fd5b813561113181612da0565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612e1157612e11612dd2565b604052919050565b600067ffffffffffffffff821115612e3357612e33612dd2565b50601f01601f191660200190565b600082601f830112612e5257600080fd5b8135612e65612e6082612e19565b612de8565b818152846020838601011115612e7a57600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215612ea957600080fd5b813567ffffffffffffffff811115612ec057600080fd5b610ed684828501612e41565b600060208284031215612ede57600080fd5b5035919050565b60008060408385031215612ef857600080fd5b823591506020830135612f0a81612da0565b809150509250929050565b6000606082840312156112d757600080fd5b60008060408385031215612f3a57600080fd5b8235612f4581612da0565b946020939093013593505050565b6000604082840312156112d757600080fd5b60008060808385031215612f7857600080fd5b612f828484612f53565b9150612f918460408501612f53565b90509250929050565b60008060408385031215612fad57600080fd5b50508035926020909101359150565b60008060408385031215612fcf57600080fd5b823567ffffffffffffffff811115612fe657600080fd5b612ff285828601612e41565b95602094909401359450505050565b600181811c9082168061301557607f821691505b6020821081036112d757634e487b7160e01b600052602260045260246000fd5b60008251613047818460208701612d3d565b9190910192915050565b805160ff8116811461306257600080fd5b919050565b60006020828403121561307957600080fd5b61113182613051565b63ffffffff811681146116bd57600080fd5b6000602082840312156130a657600080fd5b813561113181613082565b80356130bc81613082565b63ffffffff90811683526020820135906130d582613082565b90811660208401526040820135906130ec82613082565b808216604085015250505050565b6060810161081582846130b1565b813561311381613082565b63ffffffff811690508154817fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000008216178355602084013561315381613082565b67ffffffff000000008160201b16905080837fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000841617178455604085013561319a81613082565b6bffffffff00000000000000008160401b16846bffffffffffffffffffffffff198516178317178555505050505050565b600060c08201905063ffffffff8085511683528060208601511660208401528060408601511660408401525061113160608301846130b1565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561325557816000190482111561323b5761323b613204565b8085161561324857918102915b93841c939080029061321f565b509250929050565b600181815b8085111561325557816fffffffffffffffffffffffffffffffff0482111561328c5761328c613204565b8085161561329957918102915b93841c9390800290613262565b6000826132b557506001610815565b816132c257506000610815565b81600181146132d857600281146132e2576132fe565b6001915050610815565b60ff8411156132f3576132f3613204565b50506001821b610815565b5060208310610133831016604e8410600b8410161715613321575081810a610815565b61332b838361321a565b806000190482111561333f5761333f613204565b029392505050565b60008261335657506001610815565b8161336357506000610815565b81600181146132d857600281036133b15760ff84111561338557613385613204565b6001841b91506fffffffffffffffffffffffffffffffff8211156133ab576133ab613204565b50610815565b5060208310610133831016604e8410600b84101617156133f4575081810a6fffffffffffffffffffffffffffffffff8111156133ef576133ef613204565b610815565b6133fe838361325d565b806fffffffffffffffffffffffffffffffff0482111561333f5761333f613204565b600061113160ff8416836132a6565b6000821982111561344257613442613204565b500190565b600063ffffffff8381169083168181101561346457613464613204565b039392505050565b60006020828403121561347e57600080fd5b81356001600160e01b038116811461113157600080fd5b6000828210156134a7576134a7613204565b500390565b6000602082840312156134be57600080fd5b815161113181612da0565b6000602082840312156134db57600080fd5b5051919050565b6000602082840312156134f457600080fd5b815167ffffffffffffffff81111561350b57600080fd5b8201601f8101841361351c57600080fd5b805161352a612e6082612e19565b81815285602083850101111561353f57600080fd5b611814826020830160208601612d3d565b805160208083015191908110156112d75760001960209190910360031b1b16919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516135ac816017850160208801612d3d565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516135e9816028840160208801612d3d565b01602801949350505050565b60006020828403121561360757600080fd5b81516fffffffffffffffffffffffffffffffff8116811461113157600080fd5b805161ffff8116811461306257600080fd5b600080600080600080600060e0888a03121561365457600080fd5b875161365f81612da0565b8097505060208801518060020b811461367757600080fd5b955061368560408901613627565b945061369360608901613627565b93506136a160808901613051565b92506136af60a08901613051565b915060c088015180151581146136c457600080fd5b8091505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b600060001982036136fd576136fd613204565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600081600019048311821515161561373457613734613204565b500290565b60008161374857613748613204565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600061113160ff84166fffffffffffffffffffffffffffffffff8416613347565b60008060006060848603121561379c57600080fd5b83516137a781612da0565b60208501519093506001600160701b03811681146137c457600080fd5b60408501519092506137d581613082565b809150509250925092565b6000826137fd57634e487b7160e01b600052601260045260246000fd5b500490565b600063ffffffff80831681851680830382111561382157613821613204565b0194935050505056fea2646970667358221220ba9b0686da76cd416df1610bde2c597d6031974e7a1fc9b3f21b0b8563b37a5064736f6c634300080d0033a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177500000000000000000000000000000000000000000000000000000000000001000000000000000000000000007f2cc67f056df576028fe24b6588d60d252d14dc0000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12706ec6c9c8091d160c0aa74b2b14ba9c1717e95093bd3ac085cee99a49aab294a40000000000000000000000004f9a0e7fd2bf6067db6994cf12e4495df938e6e9000000000000000000000000000000000000000000000000000000000007a120000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000000014517569636b737761702076332050412057455448000000000000000000000000