60a06040523060601b6080523480156200001857600080fd5b50600054610100900460ff16158080156200003a5750600054600160ff909116105b806200006a575062000057306200014460201b620020271760201c565b1580156200006a575060005460ff166001145b620000d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000f6576000805461ff0019166101001790555b80156200013d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000153565b6001600160a01b03163b151590565b60805160601c614cb46200018e60003960008181610d8e01528181610e3e0152818161128801528181611338015261147d0152614cb46000f3fe6080604052600436106102bb5760003560e01c806370a082311161016e578063a457c2d7116100cb578063d53913931161007f578063dd62ed3e11610064578063dd62ed3e146107e8578063e63ab1e91461083b578063f72c0d8b1461086f57600080fd5b8063d539139314610794578063d547741f146107c857600080fd5b8063babcc539116100b0578063babcc53914610734578063c9892a5f14610754578063d505accf1461077457600080fd5b8063a457c2d7146106f4578063a9059cbb1461071457600080fd5b806391d1485411610122578063987c5ced11610107578063987c5ced1461069f5780639884f090146106bf578063a217fddf146106df57600080fd5b806391d148541461063757806395d89b411461068a57600080fd5b806379cc67901161015357806379cc6790146105e25780637ecebe00146106025780638456cb591461062257600080fd5b806370a082311461056b578063797669c9146105ae57600080fd5b80633659cfe61161021c57806342966c68116101d057806352d1902d116101b557806352d1902d1461050a5780635c975abb1461051f57806363e849cb1461053757600080fd5b806342966c68146104d75780634f1ef286146104f757600080fd5b8063395093511161020157806339509351146104825780633f4ba83a146104a257806340c10f19146104b757600080fd5b80633659cfe61461041957806338b903331461043957600080fd5b8063248a9ca311610273578063313ce56711610258578063313ce567146103c85780633644e515146103e457806336568abe146103f957600080fd5b8063248a9ca3146103765780632f2ff15d146103a657600080fd5b8063095ea7b3116102a4578063095ea7b31461031757806318160ddd1461033757806323b872dd1461035657600080fd5b806301ffc9a7146102c057806306fdde03146102f5575b600080fd5b3480156102cc57600080fd5b506102e06102db3660046147b1565b6108a3565b60405190151581526020015b60405180910390f35b34801561030157600080fd5b5061030a61093c565b6040516102ec91906149f6565b34801561032357600080fd5b506102e06103323660046146bd565b6109ce565b34801561034357600080fd5b506035545b6040519081526020016102ec565b34801561036257600080fd5b506102e06103713660046145ac565b610c64565b34801561038257600080fd5b5061034861039136600461475c565b600090815260fb602052604090206001015490565b3480156103b257600080fd5b506103c66103c136600461478e565b610c8a565b005b3480156103d457600080fd5b50604051601281526020016102ec565b3480156103f057600080fd5b50610348610cb4565b34801561040557600080fd5b506103c661041436600461478e565b610cc3565b34801561042557600080fd5b506103c661043436600461455e565b610d76565b34801561044557600080fd5b5061030a6040518060400160405280600681526020017f302e302e3133000000000000000000000000000000000000000000000000000081525081565b34801561048e57600080fd5b506102e061049d3660046146bd565b610f7c565b3480156104ae57600080fd5b506103c6611200565b3480156104c357600080fd5b506103c66104d23660046146bd565b611232565b3480156104e357600080fd5b506103c66104f236600461475c565b611266565b6103c661050536600461465b565b611270565b34801561051657600080fd5b50610348611463565b34801561052b57600080fd5b5060975460ff166102e0565b34801561054357600080fd5b506103487f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a81565b34801561057757600080fd5b5061034861058636600461455e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526033602052604090205490565b3480156105ba57600080fd5b506103487f71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f81565b3480156105ee57600080fd5b506103c66105fd3660046146bd565b61154f565b34801561060e57600080fd5b5061034861061d36600461455e565b611564565b34801561062e57600080fd5b506103c6611590565b34801561064357600080fd5b506102e061065236600461478e565b600091825260fb6020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b34801561069657600080fd5b5061030a6115c2565b3480156106ab57600080fd5b506103c66106ba3660046146e7565b6115d1565b3480156106cb57600080fd5b506103c66106da3660046147f3565b6116fb565b3480156106eb57600080fd5b50610348600081565b34801561070057600080fd5b506102e061070f3660046146bd565b611a58565b34801561072057600080fd5b506102e061072f3660046146bd565b611ba8565b34801561074057600080fd5b506102e061074f36600461455e565b611bc0565b34801561076057600080fd5b506103c661076f3660046146e7565b611c80565b34801561078057600080fd5b506103c661078f3660046145e8565b611d70565b3480156107a057600080fd5b506103487f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b3480156107d457600080fd5b506103c66107e336600461478e565b612002565b3480156107f457600080fd5b50610348610803366004614579565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260346020908152604080832093909416825291909152205490565b34801561084757600080fd5b506103487f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b34801561087b57600080fd5b506103487f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061093657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606036805461094b90614b14565b80601f016020809104026020016040519081016040528092919081815260200182805461097790614b14565b80156109c45780601f10610999576101008083540402835291602001916109c4565b820191906000526020600020905b8154815290600101906020018083116109a757829003601f168201915b5050505050905090565b60003360016101f85460ff1660018111156109eb576109eb614bca565b1415610a895773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16610a4282612043565b90610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b60405180910390fd5b50610b15565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff1615610adb82612043565b90610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b8360016101f85460ff166001811115610b3057610b30614bca565b1415610bc55773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16610b8782612043565b90610bbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b50610c51565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff1615610c1782612043565b90610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b610c5b85856120b8565b95945050505050565b600033610c728582856120c6565b610c7d858585612197565b60019150505b9392505050565b600082815260fb6020526040902060010154610ca581612455565b610caf838361245f565b505050565b6000610cbe612553565b905090565b73ffffffffffffffffffffffffffffffffffffffff81163314610d68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a7a565b610d7282826125d0565b5050565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161415610e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610a7a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610eb17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610a7a565b610f5d8161268b565b60408051600080825260208201909252610f79918391906126b5565b50565b60003360016101f85460ff166001811115610f9957610f99614bca565b141561102e5773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16610ff082612043565b90611028576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b506110ba565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff161561108082612043565b906110b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b8360016101f85460ff1660018111156110d5576110d5614bca565b141561116a5773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff1661112c82612043565b90611164576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b506111f6565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16156111bc82612043565b906111f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b610c5b85856128c3565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61122a81612455565b610f7961290f565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661125c81612455565b610caf838361298c565b610f793382612ab8565b3073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161415611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610a7a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113ab7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161461144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610a7a565b6114578261268b565b610d72828260016126b5565b60003073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461152a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a7a565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61155a8233836120c6565b610d728282612ab8565b73ffffffffffffffffffffffffffffffffffffffff811660009081526101616020526040812054610936565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6115ba81612455565b610f79612cb1565b60606037805461094b90614b14565b7f71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f6115fb81612455565b60016101f85460ff16600181111561161557611615614bca565b141561168e5760005b82811015611688576116767f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a85858481811061165c5761165c614bf9565b9050602002016020810190611671919061455e565b61245f565b8061168081614b62565b91505061161e565b50505050565b60005b82811015611688576116e97f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a8585848181106116cf576116cf614bf9565b90506020020160208101906116e4919061455e565b6125d0565b806116f381614b62565b915050611691565b600054610100900460ff161580801561171b5750600054600160ff909116105b806117355750303b158015611735575060005460ff166001145b6117c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a7a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561181f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6118298888612d0c565b611831612dad565b611839612e46565b611841612dad565b61184a88612ee5565b611852612dad565b6101f880548391907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001838181111561188f5761188f614bca565b021790555060018260018111156118a8576118a8614bca565b141561192d576118d97f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a600061245f565b6119037f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a8761245f565b61192d7f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a8661245f565b6119577f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68761245f565b6119817f71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f8761245f565b6119ab7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8761245f565b6119d57f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38461245f565b6119e060008561245f565b6119eb6000336125d0565b8015611a4e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60003360016101f85460ff166001811115611a7557611a75614bca565b1415611b0a5773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16611acc82612043565b90611b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b50611b96565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff1615611b5c82612043565b90611b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b611ba08484612fbb565b949350505050565b600033611bb6818585612197565b5060019392505050565b600060016101f85460ff166001811115611bdc57611bdc614bca565b1415611c2f5773ffffffffffffffffffffffffffffffffffffffff821660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16610936565b5073ffffffffffffffffffffffffffffffffffffffff1660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff161590565b919050565b7f71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f611caa81612455565b60016101f85460ff166001811115611cc457611cc4614bca565b1415611d1d5760005b8281101561168857611d0b7f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a8585848181106116cf576116cf614bf9565b80611d1581614b62565b915050611ccd565b60005b8281101561168857611d5e7f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a85858481811061165c5761165c614bf9565b80611d6881614b62565b915050611d20565b8660016101f85460ff166001811115611d8b57611d8b614bca565b1415611e205773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16611de282612043565b90611e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b50611eac565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff1615611e7282612043565b90611eaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b8660016101f85460ff166001811115611ec757611ec7614bca565b1415611f5c5773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff16611f1e82612043565b90611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b50611fe8565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff1615611fae82612043565b90611fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b611ff789898989898989613097565b505050505050505050565b600082815260fb602052604090206001015461201d81612455565b610caf83836125d0565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60606120668273ffffffffffffffffffffffffffffffffffffffff166014613256565b6120917f122c3c5f9caf2fe2940018f2188acecda5c38f4da0bc5e215c7a38055432bb6a6020613256565b6040516020016120a29291906148ce565b6040516020818303038152906040529050919050565b600033611bb6818585613499565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152603460209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611688578181101561218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a7a565b6116888484848403613499565b73ffffffffffffffffffffffffffffffffffffffff831661223a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610a7a565b73ffffffffffffffffffffffffffffffffffffffff82166122dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610a7a565b6122e883838361364c565b73ffffffffffffffffffffffffffffffffffffffff83166000908152603360205260409020548181101561239e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610a7a565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152603360205260408082208585039055918516815290812080548492906123e2908490614a47565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161244891815260200190565b60405180910390a3611688565b610f7981336138d3565b600082815260fb6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610d7257600082815260fb6020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556124f53390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610cbe7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61258361012d5490565b61012e546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b600082815260fb6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610d7257600082815260fb6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610d7281612455565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156126e857610caf836139a5565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561272e57600080fd5b505afa92505050801561277c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261277991810190614775565b60015b612808576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610a7a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146128b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610a7a565b50610caf838383613aaf565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190611bb6908290869061290a908790614a47565b613499565b612917613ad4565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b73ffffffffffffffffffffffffffffffffffffffff8216612a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a7a565b612a156000838361364c565b8060356000828254612a279190614a47565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604081208054839290612a61908490614a47565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216612b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610a7a565b612b678260008361364c565b73ffffffffffffffffffffffffffffffffffffffff821660009081526033602052604090205481811015612c1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610a7a565b73ffffffffffffffffffffffffffffffffffffffff83166000908152603360205260408120838303905560358054849290612c59908490614a9c565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b612cb9613b40565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586129623390565b600054610100900460ff16612da3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a7a565b610d728282613bad565b600054610100900460ff16612e44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a7a565b565b600054610100900460ff16612edd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a7a565b612e44613c6b565b600054610100900460ff16612f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a7a565b610f79816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250613d2c565b33600081815260346020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561307f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610a7a565b61308c8286868403613499565b506001949350505050565b83421115613101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610a7a565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886131308c613ddf565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061319882613e15565b905060006131a882878787613e7e565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461323f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610a7a565b61324a8a8a8a613499565b50505050505050505050565b60606000613265836002614a5f565b613270906002614a47565b67ffffffffffffffff81111561328857613288614c28565b6040519080825280601f01601f1916602001820160405280156132b2576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106132e9576132e9614bf9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061334c5761334c614bf9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613388846002614a5f565b613393906001614a47565b90505b6001811115613430577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106133d4576133d4614bf9565b1a60f81b8282815181106133ea576133ea614bf9565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9361342981614adf565b9050613396565b508315610c83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a7a565b73ffffffffffffffffffffffffffffffffffffffff831661353b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610a7a565b73ffffffffffffffffffffffffffffffffffffffff82166135de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610a7a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b613654613b40565b8260016101f85460ff16600181111561366f5761366f614bca565b14156137045773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff166136c682612043565b906136fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b50613790565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff161561375682612043565b9061378e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b8260016101f85460ff1660018111156137ab576137ab614bca565b14156138405773ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff1661380282612043565b9061383a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b506138cc565b73ffffffffffffffffffffffffffffffffffffffff811660009081527fb529720f30c35c401a0925da82c86fd1ca747d36f28afbaa002c440d37bff59a602052604090205460ff161561389282612043565b906138ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b505b5050505050565b600082815260fb6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610d725761392b8173ffffffffffffffffffffffffffffffffffffffff166014613256565b613936836020613256565b604051602001613947929190614975565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610a7a916004016149f6565b73ffffffffffffffffffffffffffffffffffffffff81163b613a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610a7a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b613ab883613ea6565b600082511180613ac55750805b15610caf576116888383613ef3565b60975460ff16612e44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a7a565b60975460ff1615612e44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a7a565b600054610100900460ff16613c44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a7a565b8151613c579060369060208501906143ed565b508051610caf9060379060208401906143ed565b600054610100900460ff16613d02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a7a565b609780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16613dc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a7a565b81516020928301208151919092012061012d9190915561012e55565b73ffffffffffffffffffffffffffffffffffffffff81166000908152610161602052604090208054600181018255905b50919050565b6000610936613e22612553565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000613e8f87878787614029565b91509150613e9c81614141565b5095945050505050565b613eaf816139a5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606073ffffffffffffffffffffffffffffffffffffffff83163b613f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610a7a565b6000808473ffffffffffffffffffffffffffffffffffffffff1684604051613fc191906148b2565b600060405180830381855af49150503d8060008114613ffc576040519150601f19603f3d011682016040523d82523d6000602084013e614001565b606091505b5091509150610c5b8282604051806060016040528060278152602001614c586027913961439a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156140605750600090506003614138565b8460ff16601b1415801561407857508460ff16601c14155b156140895750600090506004614138565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156140dd573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661413157600060019250925050614138565b9150600090505b94509492505050565b600081600481111561415557614155614bca565b141561415e5750565b600181600481111561417257614172614bca565b14156141da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a7a565b60028160048111156141ee576141ee614bca565b1415614256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a7a565b600381600481111561426a5761426a614bca565b14156142f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610a7a565b600481600481111561430c5761430c614bca565b1415610f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610a7a565b606083156143a9575081610c83565b8251156143b95782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a91906149f6565b8280546143f990614b14565b90600052602060002090601f01602090048101928261441b5760008555614461565b82601f1061443457805160ff1916838001178555614461565b82800160010185558215614461579182015b82811115614461578251825591602001919060010190614446565b5061446d929150614471565b5090565b5b8082111561446d5760008155600101614472565b600067ffffffffffffffff808411156144a1576144a1614c28565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156144e7576144e7614c28565b8160405280935085815286868601111561450057600080fd5b858560208301376000602087830101525050509392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611c7b57600080fd5b600082601f83011261454f57600080fd5b610c8383833560208501614486565b60006020828403121561457057600080fd5b610c838261451a565b6000806040838503121561458c57600080fd5b6145958361451a565b91506145a36020840161451a565b90509250929050565b6000806000606084860312156145c157600080fd5b6145ca8461451a565b92506145d86020850161451a565b9150604084013590509250925092565b600080600080600080600060e0888a03121561460357600080fd5b61460c8861451a565b965061461a6020890161451a565b95506040880135945060608801359350608088013560ff8116811461463e57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561466e57600080fd5b6146778361451a565b9150602083013567ffffffffffffffff81111561469357600080fd5b8301601f810185136146a457600080fd5b6146b385823560208401614486565b9150509250929050565b600080604083850312156146d057600080fd5b6146d98361451a565b946020939093013593505050565b600080602083850312156146fa57600080fd5b823567ffffffffffffffff8082111561471257600080fd5b818501915085601f83011261472657600080fd5b81358181111561473557600080fd5b8660208260051b850101111561474a57600080fd5b60209290920196919550909350505050565b60006020828403121561476e57600080fd5b5035919050565b60006020828403121561478757600080fd5b5051919050565b600080604083850312156147a157600080fd5b823591506145a36020840161451a565b6000602082840312156147c357600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610c8357600080fd5b600080600080600080600060e0888a03121561480e57600080fd5b873567ffffffffffffffff8082111561482657600080fd5b6148328b838c0161453e565b985060208a013591508082111561484857600080fd5b506148558a828b0161453e565b9650506148646040890161451a565b94506148726060890161451a565b93506148806080890161451a565b925061488e60a0890161451a565b915060c0880135600281106148a257600080fd5b8091505092959891949750929550565b600082516148c4818460208701614ab3565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614906816017850160208801614ab3565b7f20646f6573206e6f74206861766520636f6e74726f6c6c6564206163636573736017918401918201527f2076696120726f6c65200000000000000000000000000000000000000000000060378201528351614969816041840160208801614ab3565b01604101949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516149ad816017850160208801614ab3565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516149ea816028840160208801614ab3565b01602801949350505050565b6020815260008251806020840152614a15816040850160208701614ab3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008219821115614a5a57614a5a614b9b565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a9757614a97614b9b565b500290565b600082821015614aae57614aae614b9b565b500390565b60005b83811015614ace578181015183820152602001614ab6565b838111156116885750506000910152565b600081614aee57614aee614b9b565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600181811c90821680614b2857607f821691505b60208210811415613e0f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614b9457614b94614b9b565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203104293c4a9633ffd47a7eb3072f379c2ac504d0de6f073bd35d73892ac177d864736f6c63430008070033