0 txs
130 calls
constructor
No constructor.
functions
estimateDepositFeeWei
purefunction estimateDepositFeeWei() pure returns (uint256)
estimateEnrollmentFeeWei
purefunction estimateEnrollmentFeeWei() pure returns (uint256)
getL2Bridge
viewfunction getL2Bridge() view returns (uint256)
getMaxTotalBalance
viewfunction getMaxTotalBalance(address token) view returns (uint256)
getRemainingIntradayAllowance
viewfunction getRemainingIntradayAllowance(address token) view returns (uint256)
getStatus
viewfunction getStatus(address token) view returns (uint8)
identify
purefunction identify() pure returns (string)
isAppGovernor
viewfunction isAppGovernor(address account) view returns (bool)
isAppRoleAdmin
viewfunction isAppRoleAdmin(address account) view returns (bool)
isFrozen
viewfunction isFrozen() view returns (bool)
isGovernanceAdmin
viewfunction isGovernanceAdmin(address account) view returns (bool)
isOperator
viewfunction isOperator(address account) view returns (bool)
isSecurityAdmin
viewfunction isSecurityAdmin(address account) view returns (bool)
isSecurityAgent
viewfunction isSecurityAgent(address account) view returns (bool)
isServicingToken
viewfunction isServicingToken(address token) view returns (bool)
isTokenAdmin
viewfunction isTokenAdmin(address account) view returns (bool)
isUpgradeGovernor
viewfunction isUpgradeGovernor(address account) view returns (bool)
maxDeposit
purefunction maxDeposit() pure returns (uint256)
checkDeploymentStatus
nonpayablefunction checkDeploymentStatus(address token)
deactivate
nonpayablefunction deactivate(address token)
deposit
payablefunction deposit(address token, uint256 amount, uint256 l2Recipient) payable
depositCancelRequest
nonpayablefunction depositCancelRequest(address token, uint256 amount, uint256 l2Recipient, uint256 nonce)
depositReclaim
nonpayablefunction depositReclaim(address token, uint256 amount, uint256 l2Recipient, uint256 nonce)
depositWithMessage
payablefunction depositWithMessage(address token, uint256 amount, uint256 l2Recipient, uint256[] message) payable
depositWithMessageCancelRequest
nonpayablefunction depositWithMessageCancelRequest(address token, uint256 amount, uint256 l2Recipient, uint256[] message, uint256 nonce)
depositWithMessageReclaim
nonpayablefunction depositWithMessageReclaim(address token, uint256 amount, uint256 l2Recipient, uint256[] message, uint256 nonce)
disableWithdrawalLimit
nonpayablefunction disableWithdrawalLimit(address token)
enableWithdrawalLimit
nonpayablefunction enableWithdrawalLimit(address token)
enrollToken
payablefunction enrollToken(address token) payable
initialize
nonpayablefunction initialize(bytes data)
registerAppGovernor
nonpayablefunction registerAppGovernor(address account)
registerAppRoleAdmin
nonpayablefunction registerAppRoleAdmin(address account)
registerGovernanceAdmin
nonpayablefunction registerGovernanceAdmin(address account)
registerOperator
nonpayablefunction registerOperator(address account)
registerSecurityAdmin
nonpayablefunction registerSecurityAdmin(address account)
registerSecurityAgent
nonpayablefunction registerSecurityAgent(address account)
registerTokenAdmin
nonpayablefunction registerTokenAdmin(address account)
registerUpgradeGovernor
nonpayablefunction registerUpgradeGovernor(address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeAppGovernor
nonpayablefunction revokeAppGovernor(address account)
revokeAppRoleAdmin
nonpayablefunction revokeAppRoleAdmin(address account)
revokeGovernanceAdmin
nonpayablefunction revokeGovernanceAdmin(address account)
revokeOperator
nonpayablefunction revokeOperator(address account)
revokeSecurityAdmin
nonpayablefunction revokeSecurityAdmin(address account)
revokeSecurityAgent
nonpayablefunction revokeSecurityAgent(address account)
revokeTokenAdmin
nonpayablefunction revokeTokenAdmin(address account)
revokeUpgradeGovernor
nonpayablefunction revokeUpgradeGovernor(address account)
setL2TokenBridge
nonpayablefunction setL2TokenBridge(uint256 l2TokenBridge_)
setMaxTotalBalance
nonpayablefunction setMaxTotalBalance(address token, uint256 maxTotalBalance_)
withdraw
nonpayablefunction withdraw(address token, uint256 amount, address recipient)
withdraw
nonpayablefunction withdraw(address token, uint256 amount)
events
Deposit
event Deposit(address indexed sender, address indexed token, uint256 amount, uint256 indexed l2Recipient, uint256 nonce, uint256 fee)
DepositCancelRequest
event DepositCancelRequest(address indexed sender, address indexed token, uint256 amount, uint256 indexed l2Recipient, uint256 nonce)
DepositReclaimed
event DepositReclaimed(address indexed sender, address indexed token, uint256 amount, uint256 indexed l2Recipient, uint256 nonce)
DepositWithMessage
event DepositWithMessage(address indexed sender, address indexed token, uint256 amount, uint256 indexed l2Recipient, uint256[] message, uint256 nonce, uint256 fee)
DepositWithMessageCancelRequest
event DepositWithMessageCancelRequest(address indexed sender, address indexed token, uint256 amount, uint256 indexed l2Recipient, uint256[] message, uint256 nonce)
DepositWithMessageReclaimed
event DepositWithMessageReclaimed(address indexed sender, address indexed token, uint256 amount, uint256 indexed l2Recipient, uint256[] message, uint256 nonce)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SetL2TokenBridge
event SetL2TokenBridge(uint256 value)
SetMaxTotalBalance
event SetMaxTotalBalance(address indexed token, uint256 value)
TokenDeactivated
event TokenDeactivated(address token)
TokenEnrollmentInitiated
event TokenEnrollmentInitiated(address token, bytes32 deploymentMsgHash)
Withdrawal
event Withdrawal(address indexed recipient, address indexed token, uint256 amount)
WithdrawalLimitDisabled
event WithdrawalLimitDisabled(address indexed sender, address indexed token)
WithdrawalLimitEnabled
event WithdrawalLimitEnabled(address indexed sender, address indexed token)
errors
No errors.
creation bytecode
0x60e060405246600114620000155760016200001c565b64e8d4a510005b64ffffffffff1660805234801562000032575f80fd5b503060a052600160c0819052620000486200004f565b50620004ff565b336200005c81806200005f565b50565b62000069620001be565b1562000101576001600160a01b0382165f9081527fa5fdb349cc4ffac7e8ce7d3b075149d1bc847367d814e69a9beca89ef02db8b0602052604090205460ff16620000fb5760405162461bcd60e51b815260206004820152601960248201527f524f4c45535f414c52454144595f494e495449414c495a45440000000000000060448201526064015b60405180910390fd5b6200010c565b6200010c826200020f565b6200011662000352565b15620001b3576001600160a01b0381165f9081527f2c11a1f9c63817dbb9f0faa966615764d2db5d6e008269e948a99e0b52181c23602052604090205460ff16620001af5760405162461bcd60e51b815260206004820152602260248201527f53454355524954595f524f4c45535f414c52454144595f494e495449414c495a604482015261115160f21b6064820152608401620000f2565b5050565b620001af81620003a1565b5f8051602062004d228339815191525f9081525f8051602062004d628339815191526020527fa5fdb349cc4ffac7e8ce7d3b075149d1bc847367d814e69a9beca89ef02db8b15481905b1415905090565b620002295f8051602062004d22833981519152826200040a565b620002627ed2ead78c620e94b02d0a996e99298c59ddccfa1d8a0149080ac3a20de060685f8051602062004d82833981519152620004a8565b6200028a5f8051602062004d828339815191525f8051602062004d22833981519152620004a8565b620002a45f8051602062004d2283398151915280620004a8565b620002de7f023edb77f7c8cc9e38e8afe78954f703aeeda7fffe014eeb6e56ea84e62f6da75f8051602062004d82833981519152620004a8565b620003187f0128d63adbf6b09002c26caf55c47e2f26635807e3ef1b027218aa74c8d61a3e5f8051602062004d82833981519152620004a8565b6200005c7f0251e864ca2a080f55bce5da2452e8cfcafdbc951a3e7fff5023d558452ec2285f8051602062004d22833981519152620004a8565b5f8051602062004d428339815191525f9081525f8051602062004d628339815191526020527f2c11a1f9c63817dbb9f0faa966615764d2db5d6e008269e948a99e0b52181c2454819062000208565b620003bb5f8051602062004d4283398151915280620004a8565b620003f57f037693ba312785932d430dccf0f56ffedd0aa7c0f8b6da2cc4530c2717689b965f8051602062004d42833981519152620004a8565b6200005c5f8051602062004d42833981519152825b5f8281525f8051602062004d62833981519152602090815260408083206001600160a01b038516845290915290205460ff16620001af575f8281525f8051602062004d62833981519152602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b5f8281525f8051602062004d628339815191526020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60805160a05160c0516147f86200052a5f395f610c6601525f610e2101525f612cb501526147f85ff3fe6080604052600436106102d9575f3560e01c80636fc97cbf11610189578063cdd1f70d116100d8578063deec9c5a11610092578063eeb728661161006d578063eeb7286614610886578063f3fef3a3146108a7578063fa0f73ba146108c6578063fad8b32a146108e5575f80fd5b8063deec9c5a14610829578063ed9ef16a14610848578063ee0e680714610867575f80fd5b8063cdd1f70d1461076f578063cf50fd1c1461078e578063d08fb6cb146107ad578063d12fc182146107cc578063d2b51eea146107eb578063d9fa70911461080a575f80fd5b8063a2bdde3d11610143578063af8bc15e1161011e578063af8bc15e1461070a578063b5cd0c3c1461071e578063be58b18e1461073d578063cb1cccce14610750575f80fd5b8063a2bdde3d146106b9578063a6d1d6c6146106d8578063ad8b92b4146106f7575f80fd5b80636fc97cbf146105ff578063757bd9ab1461061e5780637fc2ab3e1461063d5780638101b64c1461065c5780638e5224ff1461067b5780639463629a1461069a575f80fd5b80633682a450116102455780635a5d1bb9116101ff57806362a14376116101da57806362a143761461058357806369328dec146105a25780636c04d9d5146105c15780636d70f7ae146105e0575f80fd5b80635a5d1bb9146105325780635a72af89146105515780636083e59a14610570575f80fd5b80633682a450146104835780633ea053eb146104a2578063439fab91146104c1578063496ae54c146104e05780634baf43da146104ff5780634d8b92a51461051e575f80fd5b806323205c521161029657806323205c52146103a25780632f951985146103c157806330ccebb5146103e057806333eeb147146104305780633429072c1461044257806336568abe14610464575f80fd5b80630b3a2d21146102dd5780630c6f8664146102fe5780630e770f23146103325780630efe6a8b1461035157806314af98b3146103645780631789638314610383575b5f80fd5b3480156102e8575f80fd5b506102fc6102f7366004613cb9565b610904565b005b348015610309575f80fd5b5061031d610318366004613cb9565b61091e565b60405190151581526020015b60405180910390f35b34801561033d575f80fd5b506102fc61034c366004613cb9565b61097d565b6102fc61035f366004613cd4565b610994565b34801561036f575f80fd5b506102fc61037e366004613cb9565b610a4c565b34801561038e575f80fd5b506102fc61039d366004613cb9565b610af2565b3480156103ad575f80fd5b506102fc6103bc366004613d06565b610b09565b3480156103cc575f80fd5b506102fc6103db366004613cb9565b610bfb565b3480156103eb575f80fd5b506104236103fa366004613cb9565b6001600160a01b03165f9081525f80516020614763833981519152602052604090205460ff1690565b6040516103299190613d52565b34801561043b575f80fd5b505f61031d565b34801561044d575f80fd5b50610456610c3f565b604051908152602001610329565b34801561046f575f80fd5b506102fc61047e366004613d78565b610c4d565b34801561048e575f80fd5b506102fc61049d366004613cb9565b610cde565b3480156104ad575f80fd5b506102fc6104bc366004613cb9565b610cf5565b3480156104cc575f80fd5b506102fc6104db366004613da6565b610e1e565b3480156104eb575f80fd5b506104566104fa366004613cb9565b610fca565b34801561050a575f80fd5b50610456610519366004613cb9565b61100e565b348015610529575f80fd5b5061045661104a565b34801561053d575f80fd5b5061031d61054c366004613cb9565b611053565b34801561055c575f80fd5b506102fc61056b366004613cb9565b61106b565b34801561057b575f80fd5b505f19610456565b34801561058e575f80fd5b506102fc61059d366004613cb9565b61110e565b3480156105ad575f80fd5b506102fc6105bc366004613e12565b611125565b3480156105cc575f80fd5b5061031d6105db366004613cb9565b611210565b3480156105eb575f80fd5b5061031d6105fa366004613cb9565b611228565b34801561060a575f80fd5b506102fc610619366004613cb9565b611240565b348015610629575f80fd5b5061031d610638366004613cb9565b611257565b348015610648575f80fd5b506102fc610657366004613e51565b61126f565b348015610667575f80fd5b506102fc610676366004613cb9565b611394565b348015610686575f80fd5b5061031d610695366004613cb9565b6113d4565b3480156106a5575f80fd5b506102fc6106b4366004613cb9565b6113ec565b3480156106c4575f80fd5b5061031d6106d3366004613cb9565b611403565b3480156106e3575f80fd5b506102fc6106f2366004613d06565b61141b565b6102fc610705366004613cb9565b6114f8565b348015610715575f80fd5b5061045661173b565b348015610729575f80fd5b506102fc610738366004613eb0565b611744565b6102fc61074b366004613f1d565b611876565b34801561075b575f80fd5b5061031d61076a366004613cb9565b611983565b34801561077a575f80fd5b506102fc610789366004613cb9565b61199b565b348015610799575f80fd5b506102fc6107a8366004613eb0565b6119b2565b3480156107b8575f80fd5b5061031d6107c7366004613cb9565b611ac9565b3480156107d7575f80fd5b506102fc6107e6366004613cb9565b611ae1565b3480156107f6575f80fd5b506102fc610805366004613f82565b611cf6565b348015610815575f80fd5b506102fc610824366004613cb9565b611dfc565b348015610834575f80fd5b506102fc610843366004613cb9565b611e13565b348015610853575f80fd5b506102fc610862366004613cb9565b611e2a565b348015610872575f80fd5b506102fc610881366004613cb9565b611e41565b348015610891575f80fd5b5061089a611e81565b6040516103299190613fce565b3480156108b2575f80fd5b506102fc6108c1366004613f82565b611ea1565b3480156108d1575f80fd5b506102fc6108e0366004613cb9565b611eac565b3480156108f0575f80fd5b506102fc6108ff366004613cb9565b611ec3565b61091b5f805160206147a383398151915282611eda565b50565b6001600160a01b0381165f9081525f80516020614763833981519152602052604081205460ff16600181600381111561095957610959613d3e565b14806109765750600281600381111561097457610974613d3e565b145b9392505050565b61091b5f8051602061468f83398151915282611eda565b8261099e8161091e565b6109e45760405162461bcd60e51b81526020600482015260126024820152711513d2d15397d393d517d4d154959250d15160721b60448201526064015b60405180910390fd5b604080515f80825260208201909252906109fe8686611efb565b90505f610a1c878787865f8051602061474383398151915287611fdb565b9050610a3a878787865f805160206147438339815191528688612139565b610a4387611ae1565b50505050505050565b610a5533611257565b610a975760405162461bcd60e51b815260206004820152601360248201527213d3931657d4d150d55492551657d051d15395606a1b60448201526064016109db565b6001600160a01b0381165f8181525f805160206147638339815191526020526040808220600401805460ff191660011790555133917fe2deca319add01142d26def2de47e64bf1fdc70e6f90c13a1862a48bdaaa7cfd91a350565b61091b5f805160206146af83398151915282611eda565b610b1161224c565b6001600160a01b0316636170ff1b610b2761226e565b5f80516020614743833981519152610b40888888612290565b856040518563ffffffff1660e01b8152600401610b60949392919061404d565b6020604051808303815f875af1158015610b7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba0919061407c565b50610bac8484336122b9565b604080518481526020810183905283916001600160a01b0387169133917f50485fb0face2cfd73784044ab4191986b4a6713f01854414e2331a6bb41837d91015b60405180910390a450505050565b80336001600160a01b03821603610c245760405162461bcd60e51b81526004016109db90614093565b610c3b5f805160206146af833981519152836122c4565b5050565b5f610c4861226e565b905090565b5f8051602061458183398151915282148015610c8757507f0000000000000000000000000000000000000000000000000000000000000000155b15610cd45760405162461bcd60e51b815260206004820181905260248201527f43414e4e4f545f52454e4f554e43455f474f5645524e414e43455f41444d494e60448201526064016109db565b610c3b82826122e0565b61091b5f8051602061478383398151915282611eda565b33610cfe61235a565b6001600160a01b031614610d435760405162461bcd60e51b815260206004820152600c60248201526b27a7262cafa6a0a720a3a2a960a11b60448201526064016109db565b6001600160a01b0381165f9081525f80516020614763833981519152602052604081205460ff166003811115610d7b57610d7b613d3e565b03610db85760405162461bcd60e51b815260206004820152600d60248201526c2aa725a727aba72faa27a5a2a760991b60448201526064016109db565b6001600160a01b0381165f8181525f805160206147638339815191526020908152604091829020805460ff1916600317905590519182527f86d6e4556eae726303caf49a75add7d92ac713e46db458dab0622aa263fb48e691015b60405180910390a150565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610e8f5760405162461bcd60e51b81526020600482015260166024820152751112549150d517d0d0531317d11254d0531313d5d15160521b60448201526064016109db565b5f610e9b8160206140d7565b90505f610ea98260206140ee565b905080831015610ef15760405162461bcd60e51b81526020600482015260136024820152721253925517d110551057d513d3d7d4d3505313606a1b60448201526064016109db565b5f610efe82848688614101565b810190610f0b9190613cb9565b9050365f610f1b8582888a614101565b91509150365f610f2d8887818c614101565b90925090506001600160a01b03851615610f5757610f4c85838361237c565b505050505050505050565b610f5f6124ba565b15610fae578015610fa95760405162461bcd60e51b8152602060048201526014602482015273554e45585045435445445f494e49545f4441544160601b60448201526064016109db565b610f4c565b610fb882826124d4565b610fc282826125eb565b610f4c612619565b6001600160a01b0381165f9081525f80516020614763833981519152602052604081206004015460ff16610fff575f19611008565b61100882612624565b92915050565b6001600160a01b0381165f9081525f80516020614763833981519152602052604081206003015480156110415780610976565b5f199392505050565b5f610c48612644565b5f6110085f805160206145e883398151915283612657565b61107433611ac9565b6110b65760405162461bcd60e51b815260206004820152601360248201527227a7262cafa9a2a1aaa924aa2cafa0a226a4a760691b60448201526064016109db565b6001600160a01b0381165f8181525f805160206147638339815191526020526040808220600401805460ff191690555133917f109dee66091b7a145f557f52c55d7beccb6a29011fc705557e2975749474076b91a350565b61091b5f805160206145a183398151915282611eda565b6001600160a01b03811661116f5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016109db565b61117a83838361268d565b6001600160a01b0383165f9081525f80516020614763833981519152602052604090206004015460ff16156111b3576111b38383612825565b6111be8383836122b9565b826001600160a01b0316816001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63988460405161120391815260200190565b60405180910390a3505050565b5f6110085f8051602061460883398151915283612657565b5f6110085f8051602061478383398151915283612657565b61091b5f8051602061460883398151915282611eda565b5f6110085f8051602061468f83398151915283612657565b61127833611053565b6112b85760405162461bcd60e51b815260206004820152601160248201527027a7262cafa0a8282fa3a7ab22a92727a960791b60448201526064016109db565b6112c06124ba565b61130c5760405162461bcd60e51b815260206004820152601860248201527f434f4e54524143545f4e4f545f494e495449414c495a4544000000000000000060448201526064016109db565b61131581612894565b61135b5760405162461bcd60e51b81526020600482015260176024820152764c325f414444524553535f4f55545f4f465f52414e474560481b60448201526064016109db565b611364816128b6565b6040518181527f90fc3f39f8e4669d1bf5f9038707949f8af42a973f62988143be0fa7c3997f1890602001610e13565b80336001600160a01b038216036113bd5760405162461bcd60e51b81526004016109db90614093565b610c3b5f805160206145a1833981519152836122c4565b5f6110085f805160206146af83398151915283612657565b61091b5f8051602061458183398151915282611eda565b5f6110085f805160206147a383398151915283612657565b61142361224c565b6001600160a01b0316637a98660b61143961226e565b5f80516020614743833981519152611452888888612290565b856040518563ffffffff1660e01b8152600401611472949392919061404d565b6020604051808303815f875af115801561148e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b2919061407c565b50604080518481526020810183905283916001600160a01b0387169133917f8f3da3ce93acd45e015b069c8f032d37be93dc9efcaaeda368aa9ca74f64c30a9101610bed565b3361150161235a565b6001600160a01b0316146115465760405162461bcd60e51b815260206004820152600c60248201526b27a7262cafa6a0a720a3a2a960a11b60448201526064016109db565b6001600160a01b0381165f9081525f80516020614763833981519152602052604081205460ff16600381111561157e5761157e613d3e565b146115c45760405162461bcd60e51b81526020600482015260166024820152751513d2d15397d053149150511657d1539493d313115160521b60448201526064016109db565b5f6115ce826128d8565b90505f6115d961224c565b6001600160a01b03166377c7d7a9836040518263ffffffff1660e01b815260040161160691815260200190565b602060405180830381865afa158015611621573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611645919061407c565b116116925760405162461bcd60e51b815260206004820152601c60248201527f4445504c4f594d454e545f4d4553534147455f4e4f545f45584953540000000060448201526064016109db565b6001600160a01b0382165f9081525f8051602061476383398151915260205260409020805460ff191660019081178255018190556116d362069780426140ee565b5f805160206147638339815191526001600160a01b0384165f81815260209283526040908190206002019390935582519081529081018390527fb670c236b17dd3aaf925b2bc17b1a1cc9a5c1523d8f620f09e33f4403fb1c73a910160405180910390a15050565b5f610c486129b8565b61174c61224c565b6001600160a01b0316636170ff1b61176261226e565b5f8051602061466f8339815191526117b08a8a8a60018b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506129ca92505050565b856040518563ffffffff1660e01b81526004016117d0949392919061404d565b6020604051808303815f875af11580156117ec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611810919061407c565b5061181c8686336122b9565b83866001600160a01b0316336001600160a01b03167fa465a02eedf06ceffd1d99159ad98c5d8fa7f17b870eb22e0bfcec06398a8f73888787876040516118669493929190614128565b60405180910390a4505050505050565b846118808161091e565b6118c15760405162461bcd60e51b81526020600482015260126024820152711513d2d15397d393d517d4d154959250d15160721b60448201526064016109db565b5f6118cc8787611efb565b90505f61191e8888888888808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505f8051602061466f8339815191529250899150611fdb9050565b90506119708888888888808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505f8051602061466f8339815191529250889150899050612139565b61197988611ae1565b5050505050505050565b5f6110085f8051602061458183398151915283612657565b61091b5f805160206145e883398151915282611eda565b6119ba61224c565b6001600160a01b0316637a98660b6119d061226e565b5f8051602061466f833981519152611a1e8a8a8a60018b8b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506129ca92505050565b856040518563ffffffff1660e01b8152600401611a3e949392919061404d565b6020604051808303815f875af1158015611a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7e919061407c565b5083866001600160a01b0316336001600160a01b03167f889e470f207032611b2f68dbd2124e3139794f19a6b536c83892fd5057603860888787876040516118669493929190614128565b5f6110085f805160206145a183398151915283612657565b6001600160a01b0381165f9081525f805160206147638339815191526020526040902054819060019060ff166003811115611b1e57611b1e613d3e565b14611b27575050565b6001600160a01b0382165f9081525f80516020614763833981519152602052604090206001810154611b5761224c565b6001600160a01b03166377c7d7a9826040518263ffffffff1660e01b8152600401611b8491815260200190565b602060405180830381865afa158015611b9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bc3919061407c565b5f03611bd957815460ff19166002178255611cf0565b8160020154421115611cf0576001600160a01b0384165f9081525f8051602061476383398151915260205260408120805460ff199081168255600182018390556002820183905560038201839055600490910180549091169055611c3b61235a565b6001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c9a919061416c565b604051630caca05160e31b81526001600160a01b038781166004830152919250908216906365650288906024015f604051808303815f87803b158015611cde575f80fd5b505af1158015610f4c573d5f803e3d5ffd5b50505050565b611cff33611053565b611d3f5760405162461bcd60e51b815260206004820152601160248201527027a7262cafa0a8282fa3a7ab22a92727a960791b60448201526064016109db565b805f03611d8e5760405162461bcd60e51b815260206004820152601960248201527f494e56414c49445f4d41585f544f54414c5f42414c414e43450000000000000060448201526064016109db565b816001600160a01b03167fb895637c7d86c9b7b5b747e72195206a3fc21d8df0e019edd2312454ffa733b182604051611dc991815260200190565b60405180910390a26001600160a01b03919091165f9081525f805160206147638339815191526020526040902060030155565b61091b5f8051602061468f833981519152826122c4565b61091b5f805160206145e8833981519152826122c4565b61091b5f80516020614608833981519152826122c4565b80336001600160a01b03821603611e6a5760405162461bcd60e51b81526004016109db90614093565b610c3b5f80516020614581833981519152836122c4565b606060405180606001604052806023815260200161472060239139905090565b610c3b828233611125565b61091b5f805160206147a3833981519152826122c4565b61091b5f80516020614783833981519152826122c4565b611ee382612c15565b611eec81612c35565b611ef68383612c3f565b505050565b5f611f0534612cb3565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015611f49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f6d919061407c565b9050611f788461100e565b611f8284836140ee565b1115611fc75760405162461bcd60e51b815260206004820152601460248201527313505617d09053105390d157d15610d15151115160621b60448201526064016109db565b611fd2843385612d68565b50349392505050565b5f611fe461226e565b5f036120025760405162461bcd60e51b81526004016109db90614187565b5f86116120405760405162461bcd60e51b815260206004820152600c60248201526b16915493d7d1115413d4d25560a21b60448201526064016109db565b61204985612894565b61208f5760405162461bcd60e51b81526020600482015260176024820152764c325f414444524553535f4f55545f4f465f52414e474560481b60448201526064016109db565b5f8051602061466f83398151915283145f6120a861224c565b6001600160a01b0316633e3aa6c5856120bf61226e565b886120cd8e8e8e8a8f6129ca565b6040518563ffffffff1660e01b81526004016120eb939291906141b2565b604080518083038185885af1158015612106573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061212b91906141d0565b9a9950505050505050505050565b5f8051602061474383398151915283036121a257604080518781526020810184905290810182905285906001600160a01b0389169033907f5f971bd00bf3ffbca8a6d72cdd4fd92cfd4f62636161921d1e5a64f0b64ccb6d9060600160405180910390a4610a43565b5f8051602061466f83398151915283146121f15760405162461bcd60e51b815260206004820152601060248201526f2aa725a727aba72fa9a2a622a1aa27a960811b60448201526064016109db565b84876001600160a01b0316336001600160a01b03167f2203a49c69f1a46c1164f5e4a30643dd77b7c59c0ff9bc433256048365c247f18988878760405161223b94939291906141f2565b60405180910390a450505050505050565b5f610c4860405180606001604052806028815260200161455960289139612f56565b5f610c4860405180606001604052806027815260200161464860279139612f56565b604080515f80825260208201909252606091506122b08585855f856129ca565b95945050505050565b611ef6838284612f89565b6122cd82612c15565b6122d681612c35565b611ef683836130c0565b6001600160a01b03811633146123505760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016109db565b610c3b82826130c0565b5f610c486040518060600160405280602681526020016146cf60269139612f56565b6001600160a01b0383163b6123c85760405162461bcd60e51b8152602060048201526012602482015271115250d7d393d517d057d0d3d395149050d560721b60448201526064016109db565b5f80846001600160a01b031663439fab9160e01b85856040516024016123ef92919061421d565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161242d919061424b565b5f60405180830381855af49150503d805f8114612465576040519150601f19603f3d011682016040523d82523d5f602084013e61246a565b606091505b509150915081819061248f5760405162461bcd60e51b81526004016109db9190613fce565b5080518190156124b25760405162461bcd60e51b81526004016109db9190613fce565b505050505050565b5f806124c461224c565b6001600160a01b03161415905090565b604081146125185760405162461bcd60e51b8152602060048201526011602482015270494c4c4547414c5f444154415f53495a4560781b60448201526064016109db565b5f8061252683850185614266565b9150915061253d816001600160a01b03163b151590565b6125945760405162461bcd60e51b815260206004820152602260248201527f494e56414c49445f4d4553534147494e475f434f4e54524143545f4144445245604482015261535360f01b60648201526084016109db565b6001600160a01b0382163b611cf05760405162461bcd60e51b815260206004820181905260248201527f494e56414c49445f4d414e414745525f434f4e54524143545f4144445245535360448201526064016109db565b5f806125f983850185614266565b9150915061260681613132565b61260f82613154565b611cf06005613176565b3361091b8180613198565b5f61262e8261329a565b61263b57611008826132c5565b61100882613374565b5f610c4864012a05f200620186a06140d7565b5f9182525f80516020614628833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61269561226e565b5f036126b35760405162461bcd60e51b81526004016109db90614187565b60408051600580825260c082019092525f916020820160a0803683370190505090505f815f815181106126e8576126e8614292565b602002602001018181525050816001600160a01b03168160018151811061271157612711614292565b602002602001018181525050836001600160a01b03168160028151811061273a5761273a614292565b6020908102919091010152600161275360806002614386565b61275d9190614391565b83168160038151811061277257612772614292565b602002602001018181525050608083901c8160048151811061279657612796614292565b6020026020010181815250506127aa61224c565b6001600160a01b0316632c9dd5c06127c061226e565b836040518363ffffffff1660e01b81526004016127de9291906143a4565b6020604051808303815f875af11580156127fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061281e919061407c565b5050505050565b5f61282f83612624565b9050818110156128815760405162461bcd60e51b815260206004820152601d60248201527f455843454544535f474c4f42414c5f57495448445241575f4c494d495400000060448201526064016109db565b611ef68361288f8484614391565b6133a1565b5f8115801590611008575061100882600167080000000000001160c01b011190565b61091b60405180606001604052806027815260200161464860279139826133d2565b5f6128e161226e565b5f036128ff5760405162461bcd60e51b81526004016109db90614187565b61290834612cb3565b5f61291161224c565b6001600160a01b0316633e3aa6c53461292861226e565b7f03d78c7ddffebbba7bd7263963b2e0e86b2ed9e990a4fc1b9aed7acd11b37dbc61295288613420565b6040518563ffffffff1660e01b8152600401612970939291906141b2565b604080518083038185885af115801561298b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906129b091906141d0565b509392505050565b5f610c4864012a05f200614e206140d7565b60605f836129d95760056129e5565b6129e5600160056140ee565b90505f8351826129f591906140ee565b67ffffffffffffffff811115612a0d57612a0d614000565b604051908082528060200260200182016040528015612a36578160200160208202803683370190505b509050876001600160a01b0316815f81518110612a5557612a55614292565b602002602001018181525050336001600160a01b031681600181518110612a7e57612a7e614292565b6020026020010181815250508581600281518110612a9e57612a9e614292565b60209081029190910101526001612ab760806002614386565b612ac19190614391565b871681600381518110612ad657612ad6614292565b602002602001018181525050608087901c81600481518110612afa57612afa614292565b6020026020010181815250508415612c0a57835181612b1a600185614391565b81518110612b2a57612b2a614292565b6020026020010181815250505f5b8451811015612c0857612b71858281518110612b5657612b56614292565b6020026020010151600167080000000000001160c01b011190565b612bb45760405162461bcd60e51b8152602060048201526014602482015273494e56414c49445f4d4553534147455f4441544160601b60448201526064016109db565b848181518110612bc657612bc6614292565b6020026020010151828483612bdb91906140ee565b81518110612beb57612beb614292565b602090810291909101015280612c00816143bc565b915050612b38565b505b979650505050505050565b5f9081525f80516020614628833981519152602052604090206001015490565b61091b81336135dd565b612c498282612657565b610c3b575f8281525f80516020614628833981519152602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b7f0000000000000000000000000000000000000000000000000000000000000000811015612d1c5760405162461bcd60e51b8152602060048201526016602482015275494e53554646494349454e545f4645455f56414c554560501b60448201526064016109db565b662386f26fc1000081111561091b5760405162461bcd60e51b815260206004820152601260248201527108c8a8abeac8298aa8abea89e9ebe90928e960731b60448201526064016109db565b805f03612d7457505050565b6040516370a0823160e01b815230600482015283905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015612dba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dde919061407c565b90505f612deb84836140ee565b905081811015612e285760405162461bcd60e51b81526020600482015260086024820152674f564552464c4f5760c01b60448201526064016109db565b6040516001600160a01b0386166024820152306044820152606481018590525f906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050612e9d6001600160a01b03881682613641565b6040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015612ee1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f05919061407c565b90508281146119795760405162461bcd60e51b815260206004820152601c60248201527f494e434f52524543545f414d4f554e545f5452414e534645525245440000000060448201526064016109db565b5f8082604051602001612f69919061424b565b60408051601f198184030181529190528051602090910120549392505050565b6001600160a01b038216612fd35760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016109db565b805f03612fdf57505050565b6040516370a0823160e01b815230600482015283905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015613025573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613049919061407c565b90505f6130568483614391565b9050818111156130945760405162461bcd60e51b8152602060048201526009602482015268554e444552464c4f5760b81b60448201526064016109db565b6040516001600160a01b0386166024820152604481018590525f9063a9059cbb60e01b90606401612e56565b6130ca8282612657565b15610c3b575f8281525f80516020614628833981519152602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b61091b6040518060600160405280602881526020016145596028913982613761565b61091b6040518060600160405280602681526020016146cf6026913982613761565b61091b6040518060600160405280602b81526020016146f5602b9139826137af565b6131a06137e1565b1561320d576131bc5f8051602061458183398151915283612657565b6132085760405162461bcd60e51b815260206004820152601960248201527f524f4c45535f414c52454144595f494e495449414c495a45440000000000000060448201526064016109db565b613216565b61321682613800565b61321e6138e2565b156132915761323a5f805160206145a183398151915282612657565b610c3b5760405162461bcd60e51b815260206004820152602260248201527f53454355524954595f524f4c45535f414c52454144595f494e495449414c495a604482015261115160f21b60648201526084016109db565b610c3b816138fa565b5f6132a361394c565b5f6132ad8461396e565b81526020019081526020015f20545f14159050919050565b5f8062455447196001600160a01b038416016132e257504761334b565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015613324573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613348919061407c565b90505b5f6133546139ba565b9050606461336282846140d7565b61336c91906143d4565b949350505050565b5f600161337f61394c565b5f6133898561396e565b81526020019081526020015f20546110089190614391565b6133ac6001826140ee565b6133b461394c565b5f6133be8561396e565b815260208101919091526040015f20555050565b6133db82612f56565b156134165760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b60448201526064016109db565b610c3b82826137af565b60408051600480825260a0820190925260609183915f9160208201608080368337019050509050836001600160a01b0316815f8151811061346357613463614292565b6020026020010181815250506134d9826001600160a01b03166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa1580156134ad573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526134d491908101906143f3565b6139dc565b816001815181106134ec576134ec614292565b602002602001018181525050613536826001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa1580156134ad573d5f803e3d5ffd5b8160028151811061354957613549614292565b602002602001018181525050816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613591573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135b59190614490565b60ff16816003815181106135cb576135cb614292565b60209081029190910101529392505050565b6135e78282612657565b610c3b576135ff816001600160a01b031660146139fc565b61360a8360206139fc565b60405160200161361b9291906144b0565b60408051601f198184030181529082905262461bcd60e51b82526109db91600401613fce565b813b6136835760405162461bcd60e51b81526020600482015260116024820152704241445f544f4b454e5f4144445245535360781b60448201526064016109db565b5f80836001600160a01b03168360405161369d919061424b565b5f604051808303815f865af19150503d805f81146136d6576040519150601f19603f3d011682016040523d82523d5f602084013e6136db565b606091505b50915091508181906137005760405162461bcd60e51b81526004016109db9190613fce565b50805115611cf0578080602001905181019061371c9190614524565b611cf05760405162461bcd60e51b81526020600482015260166024820152751513d2d15397d3d4115490551253d397d1905253115160521b60448201526064016109db565b5f61376b83612f56565b6001600160a01b0316146134165760405162461bcd60e51b815260206004820152600b60248201526a1053149150511657d4d15560aa1b60448201526064016109db565b5f826040516020016137c1919061424b565b604051602081830303815290604052805190602001209050818155505050565b5f806137f95f80516020614581833981519152612c15565b1415905090565b6138175f8051602061458183398151915282612c3f565b61383b5f805160206145e88339815191525f805160206146af833981519152613b92565b61385f5f805160206146af8339815191525f80516020614581833981519152613b92565b6138765f8051602061458183398151915280613b92565b61389a5f805160206147838339815191525f805160206146af833981519152613b92565b6138be5f805160206147a38339815191525f805160206146af833981519152613b92565b61091b5f805160206146088339815191525f80516020614581833981519152613b92565b5f806137f95f805160206145a1833981519152612c15565b6139115f805160206145a183398151915280613b92565b6139355f8051602061468f8339815191525f805160206145a1833981519152613b92565b61091b5f805160206145a183398151915282612c3f565b5f610c486040518060600160405280602781526020016145c160279139613bef565b5f8061397d62015180426143d4565b604080516001600160a01b038616602082015290810182905290915060600160405160208183030381529060405280519060200120915050919050565b5f610c486040518060600160405280602b81526020016146f5602b9139612f56565b5f806139f0601f6139eb855190565b613c21565b90506109768382613c36565b60605f613a0a8360026140d7565b613a159060026140ee565b67ffffffffffffffff811115613a2d57613a2d614000565b6040519080825280601f01601f191660200182016040528015613a57576020820181803683370190505b509050600360fc1b815f81518110613a7157613a71614292565b60200101906001600160f81b03191690815f1a905350600f60fb1b81600181518110613a9f57613a9f614292565b60200101906001600160f81b03191690815f1a9053505f613ac18460026140d7565b613acc9060016140ee565b90505b6001811115613b43576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613b0057613b00614292565b1a60f81b828281518110613b1657613b16614292565b60200101906001600160f81b03191690815f1a90535060049490941c93613b3c81614543565b9050613acf565b5083156109765760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016109db565b5f613b9c83612c15565b5f8481525f805160206146288339815191526020526040808220600101859055519192508391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f8082604051602001613c02919061424b565b60408051601f1981840301815291905280516020909101209392505050565b5f818310613c2f5781610976565b5090919050565b5f601f821115613c7a5760405162461bcd60e51b815260206004820152600f60248201526e535452494e475f544f4f5f4c4f4e4760881b60448201526064016109db565b602083810151905f90613c8e908590614391565b613c999060086140d7565b9190911c949350505050565b6001600160a01b038116811461091b575f80fd5b5f60208284031215613cc9575f80fd5b813561097681613ca5565b5f805f60608486031215613ce6575f80fd5b8335613cf181613ca5565b95602085013595506040909401359392505050565b5f805f8060808587031215613d19575f80fd5b8435613d2481613ca5565b966020860135965060408601359560600135945092505050565b634e487b7160e01b5f52602160045260245ffd5b6020810160048310613d7257634e487b7160e01b5f52602160045260245ffd5b91905290565b5f8060408385031215613d89575f80fd5b823591506020830135613d9b81613ca5565b809150509250929050565b5f8060208385031215613db7575f80fd5b823567ffffffffffffffff80821115613dce575f80fd5b818501915085601f830112613de1575f80fd5b813581811115613def575f80fd5b866020828501011115613e00575f80fd5b60209290920196919550909350505050565b5f805f60608486031215613e24575f80fd5b8335613e2f81613ca5565b9250602084013591506040840135613e4681613ca5565b809150509250925092565b5f60208284031215613e61575f80fd5b5035919050565b5f8083601f840112613e78575f80fd5b50813567ffffffffffffffff811115613e8f575f80fd5b6020830191508360208260051b8501011115613ea9575f80fd5b9250929050565b5f805f805f8060a08789031215613ec5575f80fd5b8635613ed081613ca5565b95506020870135945060408701359350606087013567ffffffffffffffff811115613ef9575f80fd5b613f0589828a01613e68565b979a9699509497949695608090950135949350505050565b5f805f805f60808688031215613f31575f80fd5b8535613f3c81613ca5565b94506020860135935060408601359250606086013567ffffffffffffffff811115613f65575f80fd5b613f7188828901613e68565b969995985093965092949392505050565b5f8060408385031215613f93575f80fd5b8235613f9e81613ca5565b946020939093013593505050565b5f5b83811015613fc6578181015183820152602001613fae565b50505f910152565b602081525f8251806020840152613fec816040850160208701613fac565b601f01601f19169190910160400192915050565b634e487b7160e01b5f52604160045260245ffd5b5f8151808452602080850194508084015f5b8381101561404257815187529582019590820190600101614026565b509495945050505050565b848152836020820152608060408201525f61406b6080830185614014565b905082606083015295945050505050565b5f6020828403121561408c575f80fd5b5051919050565b60208082526016908201527521a0a72727aa2fa822a92327a926afa7a72fa9a2a62360511b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611008576110086140c3565b80820180821115611008576110086140c3565b5f808585111561410f575f80fd5b8386111561411b575f80fd5b5050820193919092039150565b84815260606020820181905281018390525f6001600160fb1b0384111561414d575f80fd5b8360051b80866080850137604083019390935250016080019392505050565b5f6020828403121561417c575f80fd5b815161097681613ca5565b602080825260119082015270130c97d094925111d157d393d517d4d155607a1b604082015260600190565b838152826020820152606060408201525f6122b06060830184614014565b5f80604083850312156141e1575f80fd5b505080516020909101519092909150565b848152608060208201525f61420a6080830186614014565b6040830194909452506060015292915050565b60208152816020820152818360408301375f818301604090810191909152601f909201601f19160101919050565b5f825161425c818460208701613fac565b9190910192915050565b5f8060408385031215614277575f80fd5b823561428281613ca5565b91506020830135613d9b81613ca5565b634e487b7160e01b5f52603260045260245ffd5b600181815b808511156142e057815f19048211156142c6576142c66140c3565b808516156142d357918102915b93841c93908002906142ab565b509250929050565b5f826142f657506001611008565b8161430257505f611008565b816001811461431857600281146143225761433e565b6001915050611008565b60ff841115614333576143336140c3565b50506001821b611008565b5060208310610133831016604e8410600b8410161715614361575081810a611008565b61436b83836142a6565b805f190482111561437e5761437e6140c3565b029392505050565b5f61097683836142e8565b81810381811115611008576110086140c3565b828152604060208201525f61336c6040830184614014565b5f600182016143cd576143cd6140c3565b5060010190565b5f826143ee57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215614403575f80fd5b815167ffffffffffffffff8082111561441a575f80fd5b818401915084601f83011261442d575f80fd5b81518181111561443f5761443f614000565b604051601f8201601f19908116603f0116810190838211818310171561446757614467614000565b8160405282815287602084870101111561447f575f80fd5b612c0a836020830160208801613fac565b5f602082840312156144a0575f80fd5b815160ff81168114610976575f80fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f83516144e7816017850160208801613fac565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614518816028840160208801613fac565b01602801949350505050565b5f60208284031215614534575f80fd5b81518015158114610976575f80fd5b5f81614551576145516140c3565b505f19019056fe535441524b4e45545f544f4b454e5f4252494447455f4d4553534147494e475f434f4e545241435403711c9d994faf6055172091cb841fd4831aa743e6f3315163b06a122c841846026bd110619d11cfdfc28e281df893bc24828e89177318e9dbd860cdaedeb6b357495448445241574c5f4c494d49545f494e5452414441595f51554f54415f534c4f545f54414700d2ead78c620e94b02d0a996e99298c59ddccfa1d8a0149080ac3a20de060680251e864ca2a080f55bce5da2452e8cfcafdbc951a3e7fff5023d558452ec22853e43b954ba190a7e49386f1f78b01dcd9f628db23f432fa029a7dfd6d98e8fb535441524b4e45545f544f4b454e5f4252494447455f4c325f544f4b454e5f434f4e5452414354008bce41827dd5484d80312a2e43bc42a896e3fcf75bf84c2b49339168dfa00a037693ba312785932d430dccf0f56ffedd0aa7c0f8b6da2cc4530c2717689b9603e615638e0b79444a70f8c695bf8f2a47033bf1cf95691ec3130f64939cee99535441524b4e45545f544f4b454e5f4252494447455f4d414e414745525f534c4f545f54414757495448445241574c5f4c494d49545f57495448445241575f4c494d49545f5043545f534c4f545f544147537461726b576172655f537461726b6e6574546f6b656e4272696467655f322e305f3601b64b1b3b690b43b9b514fb81377518f4039cd3e4f4914d8a6bdf01d679fb19c59c20aaa96597268f595db30ec21108a505370e3266ed3a6515637f16b8b689023edb77f7c8cc9e38e8afe78954f703aeeda7fffe014eeb6e56ea84e62f6da70128d63adbf6b09002c26caf55c47e2f26635807e3ef1b027218aa74c8d61a3ea26469706673582212207f9092c56effe336444ab4eb235deb5fad03ea3cb4a5cb003b53c16fd0f3c80864736f6c6343000814003303711c9d994faf6055172091cb841fd4831aa743e6f3315163b06a122c841846026bd110619d11cfdfc28e281df893bc24828e89177318e9dbd860cdaedeb6b353e43b954ba190a7e49386f1f78b01dcd9f628db23f432fa029a7dfd6d98e8fb03e615638e0b79444a70f8c695bf8f2a47033bf1cf95691ec3130f64939cee99