{
  "_format": "hh-sol-artifact-1",
  "contractName": "Snippet",
  "sourceName": "contracts/V3/snippet/Snippet.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "stateCounter_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "clusterArea_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "inBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "inTokenSlotIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token",
              "name": "inToken",
              "type": "tuple"
            }
          ],
          "internalType": "struct ISnippet.PreInputTokenParams",
          "name": "preInputToken",
          "type": "tuple"
        }
      ],
      "name": "preInputToken",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "attrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrOpt",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "attrType",
                  "type": "uint8"
                },
                {
                  "internalType": "int40",
                  "name": "attrAmount",
                  "type": "int40"
                },
                {
                  "internalType": "string",
                  "name": "attrText",
                  "type": "string"
                },
                {
                  "internalType": "uint32",
                  "name": "parentAttrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrState",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes4",
                  "name": "attrFormula",
                  "type": "bytes4"
                }
              ],
              "internalType": "struct Attribute.AttributeOpt[]",
              "name": "attributeOptList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.TokenSnippet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "inBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "inRound",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            }
          ],
          "internalType": "struct ISnippet.ExecuteDelayParams",
          "name": "executeDelay",
          "type": "tuple"
        }
      ],
      "name": "processExecuteDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "inBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "inRound",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "ruleDurationType",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "ruleDelayTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "ruleDelayBlockNumber",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "delayTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "delayBlockNumber",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token[]",
              "name": "inTokenList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.InitDelayParams",
          "name": "initDelay",
          "type": "tuple"
        }
      ],
      "name": "processInitDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "inTokenSlotIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token",
              "name": "inToken",
              "type": "tuple"
            }
          ],
          "internalType": "struct ISnippet.InputTokenParams",
          "name": "inputToken",
          "type": "tuple"
        }
      ],
      "name": "processInputToken",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "attrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrOpt",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "attrType",
                  "type": "uint8"
                },
                {
                  "internalType": "int40",
                  "name": "attrAmount",
                  "type": "int40"
                },
                {
                  "internalType": "string",
                  "name": "attrText",
                  "type": "string"
                },
                {
                  "internalType": "uint32",
                  "name": "parentAttrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrState",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes4",
                  "name": "attrFormula",
                  "type": "bytes4"
                }
              ],
              "internalType": "struct Attribute.AttributeOpt[]",
              "name": "attributeOptList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.TokenSnippet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "random",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "tokenSlotIndex",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            }
          ],
          "internalType": "struct ISnippet.TokenSlotDelayParams",
          "name": "tokenSlotDelay",
          "type": "tuple"
        }
      ],
      "name": "processInputTokenSlotDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "random",
              "type": "uint256"
            },
            {
              "internalType": "uint32",
              "name": "outTokenSlotIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token",
              "name": "outToken",
              "type": "tuple"
            }
          ],
          "internalType": "struct ISnippet.OutputTokenParams",
          "name": "outputToken",
          "type": "tuple"
        }
      ],
      "name": "processOutputToken",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "attrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrOpt",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "attrType",
                  "type": "uint8"
                },
                {
                  "internalType": "int40",
                  "name": "attrAmount",
                  "type": "int40"
                },
                {
                  "internalType": "string",
                  "name": "attrText",
                  "type": "string"
                },
                {
                  "internalType": "uint32",
                  "name": "parentAttrId",
                  "type": "uint32"
                },
                {
                  "internalType": "uint8",
                  "name": "attrState",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes4",
                  "name": "attrFormula",
                  "type": "bytes4"
                }
              ],
              "internalType": "struct Attribute.AttributeOpt[]",
              "name": "attributeOptList",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct ISnippet.TokenSnippet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "outBranch",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "random",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "tokenSlotIndex",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "erc",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            }
          ],
          "internalType": "struct ISnippet.TokenSlotDelayParams",
          "name": "tokenSlotDelay",
          "type": "tuple"
        }
      ],
      "name": "processOutputTokenSlotDelayTime",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610a90380380610a9083398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b6109d2806100be6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806324d56ffe146100725780635de70a0d1461009b5780636557196a146100c2578063814645dc1461009b5780638cb665ff146100d05780639090fa45146100d0578063b6ee96de146100de575b600080fd5b610085610080366004610386565b6100ec565b604051610092919061049e565b60405180910390f35b6100af6100a93660046105c8565b50600090565b60405160039190910b8152602001610092565b6100af6100a936600461070f565b6100856100803660046108d3565b6100af6100a936600461090f565b6100f4610102565b6100fc610102565b92915050565b6040518060a00160405280600060ff16815260200160006001600160a01b031681526020016000815260200160008152602001606081525090565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156101755761017561013d565b60405290565b604080519081016001600160401b03811182821017156101755761017561013d565b60405160e081016001600160401b03811182821017156101755761017561013d565b60405161014081016001600160401b03811182821017156101755761017561013d565b604051601f8201601f191681016001600160401b038111828210171561020a5761020a61013d565b604052919050565b80356001600160a01b038116811461022957600080fd5b919050565b803563ffffffff8116811461022957600080fd5b803560ff8116811461022957600080fd5b60006001600160401b0382111561026c5761026c61013d565b5060051b60200190565b600060a0828403121561028857600080fd5b610290610153565b905061029b82610242565b815260206102aa818401610212565b81830152604080840135818401526060840135606084015260808401356001600160401b038111156102db57600080fd5b8401601f810186136102ec57600080fd5b80356102ff6102fa82610253565b6101e2565b81815260069190911b8201840190848101908883111561031e57600080fd5b928501925b828410156103755784848a03121561033b5760008081fd5b61034361017b565b61034c8561022e565b8152868501358060040b81146103625760008081fd5b8188015282529284019290850190610323565b608087015250939695505050505050565b60006020828403121561039857600080fd5b81356001600160401b03808211156103af57600080fd5b9083019060e082860312156103c357600080fd5b6103cb61019d565b6103d483610212565b81526103e26020840161022e565b60208201526103f360408401610242565b60408201526104046060840161022e565b60608201526080830135608082015261041f60a0840161022e565b60a082015260c08301358281111561043657600080fd5b61044287828601610276565b60c08301525095945050505050565b6000815180845260005b818110156104775760208185018101518683018201520161045b565b81811115610489576000602083870101525b50601f01601f19169290920160200192915050565b6000602080835260c080840160ff808751168487015283870151604060018060a01b03821681890152808901519150606082818a0152808a01519250608083818b0152808b0151935060a080818c015286855180895260e09850888d019150888160051b8e01018b8801975060005b828110156105b5578e820360df190184528851805163ffffffff1683528d8101518b168e8401528881015160ff16898401528781015160040b88840152868101516101008885018190529061056482860182610451565b9150508682015161057c8886018263ffffffff169052565b508d82015161058f8f86018260ff169052565b50908c01516001600160e01b031916928c0192909252978c0197928c019260010161050d565b509e9d5050505050505050505050505050565b60006101008083850312156105dc57600080fd5b604051908101906001600160401b03821181831017156105fe576105fe61013d565b8160405261060b84610212565b81526106196020850161022e565b602082015261062a60408501610242565b604082015261063b6060850161022e565b60608201526080840135608082015261065660a08501610242565b60a082015261066760c08501610242565b60c082015261067860e08501610212565b60e0820152949350505050565b600082601f83011261069657600080fd5b813560206106a66102fa83610253565b82815260059290921b840181019181810190868411156106c557600080fd5b8286015b848110156107045780356001600160401b038111156106e85760008081fd5b6106f68986838b0101610276565b8452509183019183016106c9565b509695505050505050565b60006020828403121561072157600080fd5b81356001600160401b038082111561073857600080fd5b90830190610140828603121561074d57600080fd5b6107556101bf565b61075e83610212565b815261076c6020840161022e565b602082015261077d60408401610242565b604082015261078e60608401610242565b606082015261079f60808401610242565b60808201526107b060a0840161022e565b60a08201526107c160c0840161022e565b60c08201526107d260e0840161022e565b60e08201526101006107e581850161022e565b9082015261012083810135838111156107fd57600080fd5b61080988828701610685565b918301919091525095945050505050565b600060c0828403121561082c57600080fd5b60405160c081016001600160401b03828210818311171561084f5761084f61013d565b8160405282935061085f85610212565b835261086d6020860161022e565b602084015261087e60408601610242565b604084015261088f6060860161022e565b60608401526108a06080860161022e565b608084015260a08501359150808211156108b957600080fd5b506108c685828601610276565b60a0830152505092915050565b6000602082840312156108e557600080fd5b81356001600160401b038111156108fb57600080fd5b6109078482850161081a565b949350505050565b600060a0828403121561092157600080fd5b60405160a081018181106001600160401b03821117156109435761094361013d565b60405261094f83610212565b815261095d6020840161022e565b602082015261096e60408401610242565b604082015261097f60608401610242565b60608201526109906080840161022e565b6080820152939250505056fea26469706673582212201473b4c24a1dd9649406431db4fd57aa503bff0de3bb446b42cf6f286449482f64736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061006d5760003560e01c806324d56ffe146100725780635de70a0d1461009b5780636557196a146100c2578063814645dc1461009b5780638cb665ff146100d05780639090fa45146100d0578063b6ee96de146100de575b600080fd5b610085610080366004610386565b6100ec565b604051610092919061049e565b60405180910390f35b6100af6100a93660046105c8565b50600090565b60405160039190910b8152602001610092565b6100af6100a936600461070f565b6100856100803660046108d3565b6100af6100a936600461090f565b6100f4610102565b6100fc610102565b92915050565b6040518060a00160405280600060ff16815260200160006001600160a01b031681526020016000815260200160008152602001606081525090565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156101755761017561013d565b60405290565b604080519081016001600160401b03811182821017156101755761017561013d565b60405160e081016001600160401b03811182821017156101755761017561013d565b60405161014081016001600160401b03811182821017156101755761017561013d565b604051601f8201601f191681016001600160401b038111828210171561020a5761020a61013d565b604052919050565b80356001600160a01b038116811461022957600080fd5b919050565b803563ffffffff8116811461022957600080fd5b803560ff8116811461022957600080fd5b60006001600160401b0382111561026c5761026c61013d565b5060051b60200190565b600060a0828403121561028857600080fd5b610290610153565b905061029b82610242565b815260206102aa818401610212565b81830152604080840135818401526060840135606084015260808401356001600160401b038111156102db57600080fd5b8401601f810186136102ec57600080fd5b80356102ff6102fa82610253565b6101e2565b81815260069190911b8201840190848101908883111561031e57600080fd5b928501925b828410156103755784848a03121561033b5760008081fd5b61034361017b565b61034c8561022e565b8152868501358060040b81146103625760008081fd5b8188015282529284019290850190610323565b608087015250939695505050505050565b60006020828403121561039857600080fd5b81356001600160401b03808211156103af57600080fd5b9083019060e082860312156103c357600080fd5b6103cb61019d565b6103d483610212565b81526103e26020840161022e565b60208201526103f360408401610242565b60408201526104046060840161022e565b60608201526080830135608082015261041f60a0840161022e565b60a082015260c08301358281111561043657600080fd5b61044287828601610276565b60c08301525095945050505050565b6000815180845260005b818110156104775760208185018101518683018201520161045b565b81811115610489576000602083870101525b50601f01601f19169290920160200192915050565b6000602080835260c080840160ff808751168487015283870151604060018060a01b03821681890152808901519150606082818a0152808a01519250608083818b0152808b0151935060a080818c015286855180895260e09850888d019150888160051b8e01018b8801975060005b828110156105b5578e820360df190184528851805163ffffffff1683528d8101518b168e8401528881015160ff16898401528781015160040b88840152868101516101008885018190529061056482860182610451565b9150508682015161057c8886018263ffffffff169052565b508d82015161058f8f86018260ff169052565b50908c01516001600160e01b031916928c0192909252978c0197928c019260010161050d565b509e9d5050505050505050505050505050565b60006101008083850312156105dc57600080fd5b604051908101906001600160401b03821181831017156105fe576105fe61013d565b8160405261060b84610212565b81526106196020850161022e565b602082015261062a60408501610242565b604082015261063b6060850161022e565b60608201526080840135608082015261065660a08501610242565b60a082015261066760c08501610242565b60c082015261067860e08501610212565b60e0820152949350505050565b600082601f83011261069657600080fd5b813560206106a66102fa83610253565b82815260059290921b840181019181810190868411156106c557600080fd5b8286015b848110156107045780356001600160401b038111156106e85760008081fd5b6106f68986838b0101610276565b8452509183019183016106c9565b509695505050505050565b60006020828403121561072157600080fd5b81356001600160401b038082111561073857600080fd5b90830190610140828603121561074d57600080fd5b6107556101bf565b61075e83610212565b815261076c6020840161022e565b602082015261077d60408401610242565b604082015261078e60608401610242565b606082015261079f60808401610242565b60808201526107b060a0840161022e565b60a08201526107c160c0840161022e565b60c08201526107d260e0840161022e565b60e08201526101006107e581850161022e565b9082015261012083810135838111156107fd57600080fd5b61080988828701610685565b918301919091525095945050505050565b600060c0828403121561082c57600080fd5b60405160c081016001600160401b03828210818311171561084f5761084f61013d565b8160405282935061085f85610212565b835261086d6020860161022e565b602084015261087e60408601610242565b604084015261088f6060860161022e565b60608401526108a06080860161022e565b608084015260a08501359150808211156108b957600080fd5b506108c685828601610276565b60a0830152505092915050565b6000602082840312156108e557600080fd5b81356001600160401b038111156108fb57600080fd5b6109078482850161081a565b949350505050565b600060a0828403121561092157600080fd5b60405160a081018181106001600160401b03821117156109435761094361013d565b60405261094f83610212565b815261095d6020840161022e565b602082015261096e60408401610242565b604082015261097f60608401610242565b60608201526109906080840161022e565b6080820152939250505056fea26469706673582212201473b4c24a1dd9649406431db4fd57aa503bff0de3bb446b42cf6f286449482f64736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
