skill-wallet
Version:
The SkillWallet is a permissionless, open-source protocol for the creation of universal, self-sovereign Identities - based on Skills instead of personal data. <br/> It comes as an upgradable, Non-Transferable, Non-Fungible-Token (U-NT-NFT) - and it entile
197 lines (196 loc) • 34.3 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "OffchainSignatureMechanism",
"sourceName": "contracts/main/OSM.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_linkToken",
"type": "address"
},
{
"internalType": "address",
"name": "_oracle",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "ValidationFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"name": "ValidationPassed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ValidationRequestIdSent",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_oracle",
"type": "address"
},
{
"internalType": "bytes32",
"name": "_jobID",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_fee",
"type": "uint256"
}
],
"name": "setChainlinkDetails",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "signature",
"type": "string"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "action",
"type": "uint256"
},
{
"internalType": "string[]",
"name": "stringParams",
"type": "string[]"
},
{
"internalType": "uint256[]",
"name": "intParams",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "addressParams",
"type": "address[]"
}
],
"name": "validate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_requestId",
"type": "bytes32"
},
{
"internalType": "bool",
"name": "_isValid",
"type": "bool"
}
],
"name": "validationCallback",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405260016004553480156200001657600080fd5b5060405162001df938038062001df98339810160408190526200003991620000ce565b6200004d826001600160e01b03620000ac16565b600680546001600160a01b039092166001600160a01b03199283161790557f393661376465306233633431343062346230346264633264303538653535396360075566b1a2bc2ec5000060085560098054909116331790555062000125565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008060408385031215620000e1578182fd5b8251620000ee816200010c565b602084015190925062000101816200010c565b809150509250929050565b6001600160a01b03811681146200012257600080fd5b50565b611cc480620001356000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630fddba5f146100465780631ad563961461005b5780635f6c93ad1461006e575b600080fd5b6100596100543660046115d7565b610081565b005b610059610069366004611627565b6100dd565b61005961007c366004611656565b610696565b6009546001600160a01b031633146100b45760405162461bcd60e51b81526004016100ab90611a51565b60405180910390fd5b600680546001600160a01b0319166001600160a01b039490941693909317909255600755600855565b60008281526005602052604090205482906001600160a01b031633146101155760405162461bcd60e51b81526004016100ab90611b81565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a261016061115c565b6000848152600a602090815260409182902082516060810190935280546001600160a01b03811684529091830190600160a01b900460ff1660058111156101a357fe5b60058111156101ae57fe5b81526020016001820160405180606001604052908160008201805480602002602001604051908101604052809291908181526020016000905b828210156102925760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561027e5780601f106102535761010080835404028352916020019161027e565b820191906000526020600020905b81548152906001019060200180831161026157829003601f168201915b5050505050815260200190600101906101e7565b505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156102e957602002820191906000526020600020905b8154815260200190600101908083116102d5575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561034b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161032d575b5050505050815250508152505090508215610657577f9deb3aa1850ce8b8beb0fc836ebcff5a08e5347d0c2a2ec2f40ab96ff6593eab8460405161038f9190611955565b60405180910390a16000848152600b60205260409020805460ff19166001908117909155816020015160058111156103c357fe5b14156103cf5750610691565b6000816020015160058111156103e157fe5b14156104c25760095481516040516342ca962960e01b81526001600160a01b039092169163617fc19d9183916342ca96299161041f916004016118b2565b60206040518083038186803b15801561043757600080fd5b505afa15801561044b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046f9190611784565b6040518263ffffffff1660e01b815260040161048b9190611955565b600060405180830381600087803b1580156104a557600080fd5b505af11580156104b9573d6000803e3d6000fd5b50505050610652565b60095481516040516342ca962960e01b81526001600160a01b0390921691638f4b3f599183916342ca9629916104fa916004016118b2565b60206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190611784565b6040518263ffffffff1660e01b81526004016105669190611955565b60206040518083038186803b15801561057e57600080fd5b505afa158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b6919061160b565b6105d25760405162461bcd60e51b81526004016100ab90611afa565b6009546020808301518351604080860151938401518451948201519151630ed552f560e21b81526001600160a01b03909616958695633b554bd49561061e95909490939260040161197d565b600060405180830381600087803b15801561063857600080fd5b505af115801561064c573d6000803e3d6000fd5b50505050505b61068f565b7f306479af91d8f74801639ceeee450e67ce1ce1dc4d904eaa6a900053c490ab49846040516106869190611955565b60405180910390a15b505b505050565b60095460405163388620d360e01b81526000916001600160a01b03169063388620d3906106c7908990600401611955565b60006040518083038186803b1580156106df57600080fd5b505afa1580156106f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261071b9190810190611717565b51116107395760405162461bcd60e51b81526004016100ab90611aa4565b610741611180565b6007546107569030630d6ab1cb60e11b610aee565b60408051808201825260068152657075624b657960d01b6020820152600954915163388620d360e01b815292935061080a9290916001600160a01b03169063388620d3906107a8908b90600401611955565b60006040518083038186803b1580156107c057600080fd5b505afa1580156107d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107fc9190810190611717565b83919063ffffffff610b1916565b610875604051806040016040528060098152602001687369676e617475726560b81b81525089898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086949392505063ffffffff610b19169050565b6108dd6040518060400160405280600b81526020016a19d95d139bdb98d9555c9b60aa1b8152506108a588610b43565b6108ae88610b43565b6040516020016108bf92919061182a565b60408051601f1981840301815291905283919063ffffffff610b1916565b61090d6040518060400160405280600b81526020016a19195b139bdb98d9555c9b60aa1b8152506108a588610b43565b6009546040516331a9108f60e11b81526000916001600160a01b031690636352211e9061093e908a90600401611955565b60206040518083038186803b15801561095657600080fd5b505afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e91906115bb565b6006546008549192506000916109af916001600160a01b0316908590610c20565b90506040518060600160405280836001600160a01b031681526020018860058111156109d757fe5b60058111156109e257fe5b81526040805160608101825289815260208082018a9052818301899052928301526000848152600a835220825181546001600160a01b0319166001600160a01b0390911617808255918301519091829060ff60a01b1916600160a01b836005811115610a4a57fe5b02179055506040820151805180516001840191610a6c918391602001906111b0565b506020828101518051610a85926001850192019061120d565b5060408201518051610aa1916002840191602090910190611254565b5050509050507f333949fca308f4036f410b4043d12561c861b3b69bc64792706725b52bd7d49881838a604051610ada9392919061195e565b60405180910390a150505050505050505050565b610af6611180565b610afe611180565b610b108186868663ffffffff610d5f16565b95945050505050565b6080830151610b2e908363ffffffff610d9c16565b6080830151610691908263ffffffff610d9c16565b606081610b6857506040805180820190915260018152600360fc1b6020820152610c1b565b8160005b8115610b8057600101600a82049150610b6c565b60608167ffffffffffffffff81118015610b9957600080fd5b506040519080825280601f01601f191660200182016040528015610bc4576020820181803683370190505b50859350905060001982015b8315610c1557600a840660300160f81b82828060019003935081518110610bf357fe5b60200101906001600160f81b031916908160001a905350600a84049350610bd0565b50925050505b919050565b600030600454604051602001610c37929190611808565b60408051808303601f19018152918152815160209283012060045460608701526000818152600590935281832080546001600160a01b0319166001600160a01b038916179055905190925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af991a26002546001600160a01b0316634000aea08584610cc387610db9565b6040518463ffffffff1660e01b8152600401610ce19392919061192e565b602060405180830381600087803b158015610cfb57600080fd5b505af1158015610d0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d33919061160b565b610d4f5760405162461bcd60e51b81526004016100ab90611b3e565b6004805460010190559392505050565b610d67611180565b610d778560800151610100610e35565b50509183526001600160a01b031660208301526001600160e01b031916604082015290565b610da98260038351610e75565b610691828263ffffffff610f7f16565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401610dfc9897969594939291906118c6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050919050565b610e3d6112b5565b6020820615610e525760208206602003820191505b506020808301829052604080518085526000815283019091019052815b92915050565b60178111610e9c57610e968360e0600585901b16831763ffffffff610fa016565b50610691565b60ff8111610ed257610ebf836018611fe0600586901b161763ffffffff610fa016565b50610e968382600163ffffffff610fb816565b61ffff8111610f0957610ef6836019611fe0600586901b161763ffffffff610fa016565b50610e968382600263ffffffff610fb816565b63ffffffff8111610f4257610f2f83601a611fe0600586901b161763ffffffff610fa016565b50610e968382600463ffffffff610fb816565b67ffffffffffffffff811161069157610f6c83601b611fe0600586901b161763ffffffff610fa016565b5061068f8382600863ffffffff610fb816565b610f876112b5565b610f9983846000015151848551610fd9565b9392505050565b610fa86112b5565b610f998384600001515184611085565b610fc06112b5565b610fd18485600001515185856110d0565b949350505050565b610fe16112b5565b8251821115610fef57600080fd5b846020015182850111156110195761101985611011876020015187860161112e565b600202611145565b6000808651805187602083010193508088870111156110385787860182525b505050602084015b6020841061105f5780518252601f199093019260209182019101611040565b51815160001960208690036101000a019081169019919091161790525083949350505050565b61108d6112b5565b836020015183106110a9576110a9848560200151600202611145565b8351805160208583010184815350808514156110c6576001810182525b5093949350505050565b6110d86112b5565b846020015184830111156110f5576110f585858401600202611145565b60006001836101000a0390508551838682010185831982511617815250805184870111156111235783860181525b509495945050505050565b60008183111561113f575081610e6f565b50919050565b81516111518383610e35565b5061068f8382610f7f565b604080516060810182526000808252602082015290810161117b6112cf565b905290565b6040805160a08101825260008082526020820181905291810182905260608101919091526080810161117b6112b5565b8280548282559060005260206000209081019282156111fd579160200282015b828111156111fd57825180516111ed9184916020909101906112f0565b50916020019190600101906111d0565b5061120992915061135d565b5090565b828054828255906000526020600020908101928215611248579160200282015b8281111561124857825182559160200191906001019061122d565b50611209929150611383565b8280548282559060005260206000209081019282156112a9579160200282015b828111156112a957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611274565b5061120992915061139d565b604051806040016040528060608152602001600081525090565b60405180606001604052806060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133157805160ff1916838001178555611248565b82800160010185558215611248579182018281111561124857825182559160200191906001019061122d565b61138091905b8082111561120957600061137782826113c1565b50600101611363565b90565b61138091905b808211156112095760008155600101611389565b61138091905b808211156112095780546001600160a01b03191681556001016113a3565b50805460018160011615610100020316600290046000825580601f106113e75750611405565b601f0160209004906000526020600020908101906114059190611383565b50565b600082601f830112611418578081fd5b813561142b61142682611bf0565b611bc9565b81815291506020808301908481018184028601820187101561144c57600080fd5b60005b8481101561147457813561146281611c6b565b8452928201929082019060010161144f565b505050505092915050565b600082601f83011261148f578081fd5b813561149d61142682611bf0565b818152915060208083019084810160005b84811015611474578135870188603f8201126114c957600080fd5b838101356114d961142682611c10565b81815260408b818486010111156114ef57600080fd5b828185018884013750600091810186019190915285525092820192908201906001016114ae565b600082601f830112611526578081fd5b813561153461142682611bf0565b81815291506020808301908481018184028601820187101561155557600080fd5b60005b8481101561147457813584529282019290820190600101611558565b60008083601f840112611585578182fd5b50813567ffffffffffffffff81111561159c578182fd5b6020830191508360208285010111156115b457600080fd5b9250929050565b6000602082840312156115cc578081fd5b8151610f9981611c6b565b6000806000606084860312156115eb578182fd5b83356115f681611c6b565b95602085013595506040909401359392505050565b60006020828403121561161c578081fd5b8151610f9981611c80565b60008060408385031215611639578182fd5b82359150602083013561164b81611c80565b809150509250929050565b600080600080600080600060c0888a031215611670578283fd5b873567ffffffffffffffff80821115611687578485fd5b6116938b838c01611574565b909950975060208a0135965060408a0135955060608a01359150808211156116b9578485fd5b6116c58b838c0161147f565b945060808a01359150808211156116da578384fd5b6116e68b838c01611516565b935060a08a01359150808211156116fb578283fd5b506117088a828b01611408565b91505092959891949750929550565b600060208284031215611728578081fd5b815167ffffffffffffffff81111561173e578182fd5b80830184601f82011261174f578283fd5b8051915061175f61142683611c10565b828152856020848401011115611773578384fd5b610b10836020830160208501611c3f565b600060208284031215611795578081fd5b5051919050565b815260200190565b6000815180845260208085019450808401835b838110156111235781516001600160a01b0316875295820195908201906001016117b7565b600081518084526117f4816020860160208601611c3f565b601f01601f19169290920160200192915050565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b60007f68747470733a2f2f6170692e736b696c6c77616c6c65742e69642f6170692f7382526a6b696c6c77616c6c65742f60a81b6020830152835161187681602b850160208801611c3f565b8083016e2f6e6f6e6365733f616374696f6e3d60881b602b820152845191506118a682603a830160208801611c3f565b01603a01949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061191f838201856117dc565b9b9a5050505050505050505050565b600060018060a01b038516825283602083015260606040830152610b1060608301846117dc565b90815260200190565b9283526001600160a01b03919091166020830152604082015260600190565b600060a0820161198c88611c34565b8352602060018060a01b0388168185015260a060408501528187516119b18185611955565b91508289019350845b818110156119db576119cd83865161179c565b9484019492506001016119ba565b5050848103606086015280925086516119f48183611955565b93508391508281028401838901865b83811015611a2d578483038752611a1b8383516117dc565b96860196925090850190600101611a03565b50508681036080880152611a4181896117a4565b9c9b505050505050505050505050565b60208082526033908201527f4f6e6c7920536b696c6c57616c6c657420636f6e74726163742063616e2073656040820152727420636861696e6c696e6b2064657461696c7360681b606082015260800190565b60208082526036908201527f5075624b65792073686f756c642062652061737369676e656420746f2074686560408201527520736b696c6c2077616c6c657449442066697273742160501b606082015260800190565b60208082526024908201527f536b696c6c57616c6c6574206d757374206265206163746976617465642066696040820152637273742160e01b606082015260800190565b60208082526023908201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604082015262636c6560e81b606082015260800190565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b60405181810167ffffffffffffffff81118282101715611be857600080fd5b604052919050565b600067ffffffffffffffff821115611c06578081fd5b5060209081020190565b600067ffffffffffffffff821115611c26578081fd5b50601f01601f191660200190565b8060068110610c1b57fe5b60005b83811015611c5a578181015183820152602001611c42565b8381111561068f5750506000910152565b6001600160a01b038116811461140557600080fd5b801515811461140557600080fdfea2646970667358221220645f0cbe5e63302cce23cd32114a4f0f7a96ef457ce1a74834b10503e47c37ea64736f6c634300060a0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630fddba5f146100465780631ad563961461005b5780635f6c93ad1461006e575b600080fd5b6100596100543660046115d7565b610081565b005b610059610069366004611627565b6100dd565b61005961007c366004611656565b610696565b6009546001600160a01b031633146100b45760405162461bcd60e51b81526004016100ab90611a51565b60405180910390fd5b600680546001600160a01b0319166001600160a01b039490941693909317909255600755600855565b60008281526005602052604090205482906001600160a01b031633146101155760405162461bcd60e51b81526004016100ab90611b81565b60008181526005602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a261016061115c565b6000848152600a602090815260409182902082516060810190935280546001600160a01b03811684529091830190600160a01b900460ff1660058111156101a357fe5b60058111156101ae57fe5b81526020016001820160405180606001604052908160008201805480602002602001604051908101604052809291908181526020016000905b828210156102925760008481526020908190208301805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561027e5780601f106102535761010080835404028352916020019161027e565b820191906000526020600020905b81548152906001019060200180831161026157829003601f168201915b5050505050815260200190600101906101e7565b505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156102e957602002820191906000526020600020905b8154815260200190600101908083116102d5575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561034b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161032d575b5050505050815250508152505090508215610657577f9deb3aa1850ce8b8beb0fc836ebcff5a08e5347d0c2a2ec2f40ab96ff6593eab8460405161038f9190611955565b60405180910390a16000848152600b60205260409020805460ff19166001908117909155816020015160058111156103c357fe5b14156103cf5750610691565b6000816020015160058111156103e157fe5b14156104c25760095481516040516342ca962960e01b81526001600160a01b039092169163617fc19d9183916342ca96299161041f916004016118b2565b60206040518083038186803b15801561043757600080fd5b505afa15801561044b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046f9190611784565b6040518263ffffffff1660e01b815260040161048b9190611955565b600060405180830381600087803b1580156104a557600080fd5b505af11580156104b9573d6000803e3d6000fd5b50505050610652565b60095481516040516342ca962960e01b81526001600160a01b0390921691638f4b3f599183916342ca9629916104fa916004016118b2565b60206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190611784565b6040518263ffffffff1660e01b81526004016105669190611955565b60206040518083038186803b15801561057e57600080fd5b505afa158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b6919061160b565b6105d25760405162461bcd60e51b81526004016100ab90611afa565b6009546020808301518351604080860151938401518451948201519151630ed552f560e21b81526001600160a01b03909616958695633b554bd49561061e95909490939260040161197d565b600060405180830381600087803b15801561063857600080fd5b505af115801561064c573d6000803e3d6000fd5b50505050505b61068f565b7f306479af91d8f74801639ceeee450e67ce1ce1dc4d904eaa6a900053c490ab49846040516106869190611955565b60405180910390a15b505b505050565b60095460405163388620d360e01b81526000916001600160a01b03169063388620d3906106c7908990600401611955565b60006040518083038186803b1580156106df57600080fd5b505afa1580156106f3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261071b9190810190611717565b51116107395760405162461bcd60e51b81526004016100ab90611aa4565b610741611180565b6007546107569030630d6ab1cb60e11b610aee565b60408051808201825260068152657075624b657960d01b6020820152600954915163388620d360e01b815292935061080a9290916001600160a01b03169063388620d3906107a8908b90600401611955565b60006040518083038186803b1580156107c057600080fd5b505afa1580156107d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107fc9190810190611717565b83919063ffffffff610b1916565b610875604051806040016040528060098152602001687369676e617475726560b81b81525089898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086949392505063ffffffff610b19169050565b6108dd6040518060400160405280600b81526020016a19d95d139bdb98d9555c9b60aa1b8152506108a588610b43565b6108ae88610b43565b6040516020016108bf92919061182a565b60408051601f1981840301815291905283919063ffffffff610b1916565b61090d6040518060400160405280600b81526020016a19195b139bdb98d9555c9b60aa1b8152506108a588610b43565b6009546040516331a9108f60e11b81526000916001600160a01b031690636352211e9061093e908a90600401611955565b60206040518083038186803b15801561095657600080fd5b505afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e91906115bb565b6006546008549192506000916109af916001600160a01b0316908590610c20565b90506040518060600160405280836001600160a01b031681526020018860058111156109d757fe5b60058111156109e257fe5b81526040805160608101825289815260208082018a9052818301899052928301526000848152600a835220825181546001600160a01b0319166001600160a01b0390911617808255918301519091829060ff60a01b1916600160a01b836005811115610a4a57fe5b02179055506040820151805180516001840191610a6c918391602001906111b0565b506020828101518051610a85926001850192019061120d565b5060408201518051610aa1916002840191602090910190611254565b5050509050507f333949fca308f4036f410b4043d12561c861b3b69bc64792706725b52bd7d49881838a604051610ada9392919061195e565b60405180910390a150505050505050505050565b610af6611180565b610afe611180565b610b108186868663ffffffff610d5f16565b95945050505050565b6080830151610b2e908363ffffffff610d9c16565b6080830151610691908263ffffffff610d9c16565b606081610b6857506040805180820190915260018152600360fc1b6020820152610c1b565b8160005b8115610b8057600101600a82049150610b6c565b60608167ffffffffffffffff81118015610b9957600080fd5b506040519080825280601f01601f191660200182016040528015610bc4576020820181803683370190505b50859350905060001982015b8315610c1557600a840660300160f81b82828060019003935081518110610bf357fe5b60200101906001600160f81b031916908160001a905350600a84049350610bd0565b50925050505b919050565b600030600454604051602001610c37929190611808565b60408051808303601f19018152918152815160209283012060045460608701526000818152600590935281832080546001600160a01b0319166001600160a01b038916179055905190925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af991a26002546001600160a01b0316634000aea08584610cc387610db9565b6040518463ffffffff1660e01b8152600401610ce19392919061192e565b602060405180830381600087803b158015610cfb57600080fd5b505af1158015610d0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d33919061160b565b610d4f5760405162461bcd60e51b81526004016100ab90611b3e565b6004805460010190559392505050565b610d67611180565b610d778560800151610100610e35565b50509183526001600160a01b031660208301526001600160e01b031916604082015290565b610da98260038351610e75565b610691828263ffffffff610f7f16565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401610dfc9897969594939291906118c6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050919050565b610e3d6112b5565b6020820615610e525760208206602003820191505b506020808301829052604080518085526000815283019091019052815b92915050565b60178111610e9c57610e968360e0600585901b16831763ffffffff610fa016565b50610691565b60ff8111610ed257610ebf836018611fe0600586901b161763ffffffff610fa016565b50610e968382600163ffffffff610fb816565b61ffff8111610f0957610ef6836019611fe0600586901b161763ffffffff610fa016565b50610e968382600263ffffffff610fb816565b63ffffffff8111610f4257610f2f83601a611fe0600586901b161763ffffffff610fa016565b50610e968382600463ffffffff610fb816565b67ffffffffffffffff811161069157610f6c83601b611fe0600586901b161763ffffffff610fa016565b5061068f8382600863ffffffff610fb816565b610f876112b5565b610f9983846000015151848551610fd9565b9392505050565b610fa86112b5565b610f998384600001515184611085565b610fc06112b5565b610fd18485600001515185856110d0565b949350505050565b610fe16112b5565b8251821115610fef57600080fd5b846020015182850111156110195761101985611011876020015187860161112e565b600202611145565b6000808651805187602083010193508088870111156110385787860182525b505050602084015b6020841061105f5780518252601f199093019260209182019101611040565b51815160001960208690036101000a019081169019919091161790525083949350505050565b61108d6112b5565b836020015183106110a9576110a9848560200151600202611145565b8351805160208583010184815350808514156110c6576001810182525b5093949350505050565b6110d86112b5565b846020015184830111156110f5576110f585858401600202611145565b60006001836101000a0390508551838682010185831982511617815250805184870111156111235783860181525b509495945050505050565b60008183111561113f575081610e6f565b50919050565b81516111518383610e35565b5061068f8382610f7f565b604080516060810182526000808252602082015290810161117b6112cf565b905290565b6040805160a08101825260008082526020820181905291810182905260608101919091526080810161117b6112b5565b8280548282559060005260206000209081019282156111fd579160200282015b828111156111fd57825180516111ed9184916020909101906112f0565b50916020019190600101906111d0565b5061120992915061135d565b5090565b828054828255906000526020600020908101928215611248579160200282015b8281111561124857825182559160200191906001019061122d565b50611209929150611383565b8280548282559060005260206000209081019282156112a9579160200282015b828111156112a957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611274565b5061120992915061139d565b604051806040016040528060608152602001600081525090565b60405180606001604052806060815260200160608152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133157805160ff1916838001178555611248565b82800160010185558215611248579182018281111561124857825182559160200191906001019061122d565b61138091905b8082111561120957600061137782826113c1565b50600101611363565b90565b61138091905b808211156112095760008155600101611389565b61138091905b808211156112095780546001600160a01b03191681556001016113a3565b50805460018160011615610100020316600290046000825580601f106113e75750611405565b601f0160209004906000526020600020908101906114059190611383565b50565b600082601f830112611418578081fd5b813561142b61142682611bf0565b611bc9565b81815291506020808301908481018184028601820187101561144c57600080fd5b60005b8481101561147457813561146281611c6b565b8452928201929082019060010161144f565b505050505092915050565b600082601f83011261148f578081fd5b813561149d61142682611bf0565b818152915060208083019084810160005b84811015611474578135870188603f8201126114c957600080fd5b838101356114d961142682611c10565b81815260408b818486010111156114ef57600080fd5b828185018884013750600091810186019190915285525092820192908201906001016114ae565b600082601f830112611526578081fd5b813561153461142682611bf0565b81815291506020808301908481018184028601820187101561155557600080fd5b60005b8481101561147457813584529282019290820190600101611558565b60008083601f840112611585578182fd5b50813567ffffffffffffffff81111561159c578182fd5b6020830191508360208285010111156115b457600080fd5b9250929050565b6000602082840312156115cc578081fd5b8151610f9981611c6b565b6000806000606084860312156115eb578182fd5b83356115f681611c6b565b95602085013595506040909401359392505050565b60006020828403121561161c578081fd5b8151610f9981611c80565b60008060408385031215611639578182fd5b82359150602083013561164b81611c80565b809150509250929050565b600080600080600080600060c0888a031215611670578283fd5b873567ffffffffffffffff80821115611687578485fd5b6116938b838c01611574565b909950975060208a0135965060408a0135955060608a01359150808211156116b9578485fd5b6116c58b838c0161147f565b945060808a01359150808211156116da578384fd5b6116e68b838c01611516565b935060a08a01359150808211156116fb578283fd5b506117088a828b01611408565b91505092959891949750929550565b600060208284031215611728578081fd5b815167ffffffffffffffff81111561173e578182fd5b80830184601f82011261174f578283fd5b8051915061175f61142683611c10565b828152856020848401011115611773578384fd5b610b10836020830160208501611c3f565b600060208284031215611795578081fd5b5051919050565b815260200190565b6000815180845260208085019450808401835b838110156111235781516001600160a01b0316875295820195908201906001016117b7565b600081518084526117f4816020860160208601611c3f565b601f01601f19169290920160200192915050565b60609290921b6bffffffffffffffffffffffff19168252601482015260340190565b60007f68747470733a2f2f6170692e736b696c6c77616c6c65742e69642f6170692f7382526a6b696c6c77616c6c65742f60a81b6020830152835161187681602b850160208801611c3f565b8083016e2f6e6f6e6365733f616374696f6e3d60881b602b820152845191506118a682603a830160208801611c3f565b01603a01949350505050565b6001600160a01b0391909116815260200190565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061191f838201856117dc565b9b9a5050505050505050505050565b600060018060a01b038516825283602083015260606040830152610b1060608301846117dc565b90815260200190565b9283526001600160a01b03919091166020830152604082015260600190565b600060a0820161198c88611c34565b8352602060018060a01b0388168185015260a060408501528187516119b18185611955565b91508289019350845b818110156119db576119cd83865161179c565b9484019492506001016119ba565b5050848103606086015280925086516119f48183611955565b93508391508281028401838901865b83811015611a2d578483038752611a1b8383516117dc565b96860196925090850190600101611a03565b50508681036080880152611a4181896117a4565b9c9b505050505050505050505050565b60208082526033908201527f4f6e6c7920536b696c6c57616c6c657420636f6e74726163742063616e2073656040820152727420636861696e6c696e6b2064657461696c7360681b606082015260800190565b60208082526036908201527f5075624b65792073686f756c642062652061737369676e656420746f2074686560408201527520736b696c6c2077616c6c657449442066697273742160501b606082015260800190565b60208082526024908201527f536b696c6c57616c6c6574206d757374206265206163746976617465642066696040820152637273742160e01b606082015260800190565b60208082526023908201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604082015262636c6560e81b606082015260800190565b60208082526028908201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604082015267081c995c5d595cdd60c21b606082015260800190565b60405181810167ffffffffffffffff81118282101715611be857600080fd5b604052919050565b600067ffffffffffffffff821115611c06578081fd5b5060209081020190565b600067ffffffffffffffff821115611c26578081fd5b50601f01601f191660200190565b8060068110610c1b57fe5b60005b83811015611c5a578181015183820152602001611c42565b8381111561068f5750506000910152565b6001600160a01b038116811461140557600080fd5b801515811461140557600080fdfea2646970667358221220645f0cbe5e63302cce23cd32114a4f0f7a96ef457ce1a74834b10503e47c37ea64736f6c634300060a0033",
"linkReferences": {},
"deployedLinkReferences": {}
}