{
  "contractName": "CertifiedEmailDeployer",
  "abi": [
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "fileId",
          "type": "string"
        }
      ],
      "name": "deployFile",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "certificateId",
          "type": "string"
        },
        {
          "name": "deployer",
          "type": "address"
        }
      ],
      "name": "deployCertificate",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "eventId",
          "type": "string"
        },
        {
          "name": "eventType",
          "type": "string"
        },
        {
          "name": "eventUserAgent",
          "type": "string"
        },
        {
          "name": "eventCreatedAt",
          "type": "uint256"
        }
      ],
      "name": "deployEvent",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50612718806100206000396000f3fe60806040526004361061003d5763ffffffff60e060020a600035041663547952cf8114610042578063a91710121461011a578063f776d03b146101cb575b600080fd5b34801561004e57600080fd5b506100fe6004803603604081101561006557600080fd5b810190602081018135602060020a81111561007f57600080fd5b82018360208201111561009157600080fd5b803590602001918460018302840111602060020a831117156100b257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506103889050565b60408051600160a060020a039092168252519081900360200190f35b34801561012657600080fd5b506100fe6004803603602081101561013d57600080fd5b810190602081018135602060020a81111561015757600080fd5b82018360208201111561016957600080fd5b803590602001918460018302840111602060020a8311171561018a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610434945050505050565b3480156101d757600080fd5b506100fe600480360360808110156101ee57600080fd5b810190602081018135602060020a81111561020857600080fd5b82018360208201111561021a57600080fd5b803590602001918460018302840111602060020a8311171561023b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561028d57600080fd5b82018360208201111561029f57600080fd5b803590602001918460018302840111602060020a831117156102c057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561031257600080fd5b82018360208201111561032457600080fd5b803590602001918460018302840111602060020a8311171561034557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506104ca915050565b6000828261039461063d565b600160a060020a03821660208083019190915260408083528451908301528351829160608301919086019080838360005b838110156103dd5781810151838201526020016103c5565b50505050905090810190601f16801561040a5780820380516001836020036101000a031916815260200191505b509350505050604051809103906000f08015801561042c573d6000803e3d6000fd5b509392505050565b60008161043f61064d565b60208082528251818301528251829160408301919085019080838360005b8381101561047557818101518382015260200161045d565b50505050905090810190601f1680156104a25780820380516001836020036101000a031916815260200191505b5092505050604051809103906000f0801580156104c3573d6000803e3d6000fd5b5092915050565b6000848484846104d861065d565b80806020018060200180602001858152602001848103845288818151815260200191508051906020019080838360005b83811015610520578181015183820152602001610508565b50505050905090810190601f16801561054d5780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b83811015610580578181015183820152602001610568565b50505050905090810190601f1680156105ad5780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b838110156105e05781810151838201526020016105c8565b50505050905090810190601f16801561060d5780820380516001836020036101000a031916815260200191505b50975050505050505050604051809103906000f080158015610633573d6000803e3d6000fd5b5095945050505050565b6040516113fd8061066e83390190565b60405161076280611a6b83390190565b604051610520806121cd8339019056fe60806040523480156200001157600080fd5b50604051620013fd380380620013fd833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505060209182015181519194509250620000a091600b9190850190620000d1565b50600a8054600160a060020a03909216600160a060020a031992831617905560088054909116331790555062000176565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011457805160ff191683800117855562000144565b8280016001018555821562000144579182015b828111156200014457825182559160200191906001019062000127565b506200015292915062000156565b5090565b6200017391905b808211156200015257600081556001016200015d565b90565b61127780620001866000396000f3fe6080604052600436106100a05763ffffffff60e060020a600035041663399ae72481146100a557806357ac264e146100e05780636a470b28146101075780636bee1e1b1461013857806372c97e7f146102f85780638525855d146103975780638da5cb5b146103ac578063af640d0f146103c1578063cf09e0d0146103d6578063d5f39488146103eb578063de4cd84214610400578063e1902063146105bd575b600080fd5b3480156100b157600080fd5b506100de600480360360408110156100c857600080fd5b50600160a060020a03813516906020013561066e565b005b3480156100ec57600080fd5b506100f56106f8565b60408051918252519081900360200190f35b34801561011357600080fd5b5061011c6106ff565b60408051600160a060020a039092168252519081900360200190f35b34801561014457600080fd5b506100de600480360360a081101561015b57600080fd5b810190602081018135602060020a81111561017557600080fd5b82018360208201111561018757600080fd5b803590602001918460018302840111602060020a831117156101a857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a8111156101fa57600080fd5b82018360208201111561020c57600080fd5b803590602001918460018302840111602060020a8311171561022d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561027f57600080fd5b82018360208201111561029157600080fd5b803590602001918460018302840111602060020a831117156102b257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550508235935050506020013561070e565b34801561030457600080fd5b506103226004803603602081101561031b57600080fd5b5035610a91565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561035c578181015183820152602001610344565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a357600080fd5b5061011c610b38565b3480156103b857600080fd5b5061011c610b47565b3480156103cd57600080fd5b50610322610b56565b3480156103e257600080fd5b506100f5610bb1565b3480156103f757600080fd5b5061011c610bb7565b34801561040c57600080fd5b506100de6004803603608081101561042357600080fd5b810190602081018135602060020a81111561043d57600080fd5b82018360208201111561044f57600080fd5b803590602001918460018302840111602060020a8311171561047057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a8111156104c257600080fd5b8201836020820111156104d457600080fd5b803590602001918460018302840111602060020a831117156104f557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561054757600080fd5b82018360208201111561055957600080fd5b803590602001918460018302840111602060020a8311171561057a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610bc6915050565b3480156105c957600080fd5b5061011c600480360360208110156105e057600080fd5b810190602081018135602060020a8111156105fa57600080fd5b82018360208201111561060c57600080fd5b803590602001918460018302840111602060020a8311171561062d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611073945050505050565b600854600160a060020a031633146106d2576040805160e560020a62461bcd028152602060048201526033602482015260008051602061122c833981519152604482015260008051602061120c833981519152606482015290519081900360840190fd5b60098054600160a060020a031916600160a060020a039390931692909217909155600d55565b600c545b90565b600854600160a060020a031681565b600854600160a060020a03163314610772576040805160e560020a62461bcd028152602060048201526033602482015260008051602061122c833981519152604482015260008051602061120c833981519152606482015290519081900360840190fd5b600a54604051602060248201818152875160448401528751600094606094600160a060020a03909116938a93928392606401918501908083838b5b838110156107c55781810151838201526020016107ad565b50505050905090810190601f1680156107f25780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152918152602082018051600160e060020a031660e160020a63548b880902178152905182519295509350839250908083835b602083106108505780518252601f199092019160209182019101610831565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146108b0576040519150601f19603f3d011682016040523d82523d6000602084013e6108b5565b606091505b5091509150811515610928576040805160e560020a62461bcd02815260206004820152602b60248201527f4572726f72207768696c65206465706c6f79696e672066696c652066726f6d20604482015260a860020a6a636572746966696361746502606482015290519081900360840190fd5b6109318161116c565b600e8054600160a060020a031916600160a060020a03928316179081905560405160e260020a6321f20119028152604481018790526064810186905260806004820190815288516084830152885192909316926387c804649289928c928a928a928291602482019160a40190602089019080838360005b838110156109c05781810151838201526020016109a8565b50505050905090810190601f1680156109ed5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015610a20578181015183820152602001610a08565b50505050905090810190601f168015610a4d5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050505050565b600c805482908110610a9f57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015610b305780601f10610b0557610100808354040283529160200191610b30565b820191906000526020600020905b815481529060010190602001808311610b1357829003601f168201915b505050505081565b600e54600160a060020a031681565b600954600160a060020a031681565b600b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b305780601f10610b0557610100808354040283529160200191610b30565b600d5481565b600a54600160a060020a031681565b600854600160a060020a03163314610c2a576040805160e560020a62461bcd028152602060048201526033602482015260008051602061122c833981519152604482015260008051602061120c833981519152606482015290519081900360840190fd5b6000600160a060020a0316600f856040518082805190602001908083835b60208310610c675780518252601f199092019160209182019101610c48565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316929092149150610cf89050576040805160e560020a62461bcd02815260206004820181905260248201527f5468652063757272656e74206576656e7420616c726561647920657869737473604482015290519081900360640190fd5b60006060600a60009054906101000a9004600160a060020a0316600160a060020a03168686868660405160240180806020018060200180602001858152602001848103845288818151815260200191508051906020019080838360005b83811015610d6d578181015183820152602001610d55565b50505050905090810190601f168015610d9a5780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b83811015610dcd578181015183820152602001610db5565b50505050905090810190601f168015610dfa5780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b83811015610e2d578181015183820152602001610e15565b50505050905090810190601f168015610e5a5780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152918152602082018051600160e060020a031660e060020a63f776d03b0217815290518251929a509850889750955093508392508591508490505b60208310610ec15780518252601f199092019160209182019101610ea2565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610f21576040519150601f19603f3d011682016040523d82523d6000602084013e610f26565b606091505b5091509150811515610f9a576040805160e560020a62461bcd02815260206004820152602c60248201527f4572726f72207768696c65206465706c6f79696e67206576656e742066726f6d604482015260a060020a6b20636572746966696361746502606482015290519081900360840190fd5b610fa38161116c565b600f876040518082805190602001908083835b60208310610fd55780518252601f199092019160209182019101610fb6565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381019093208054600160a060020a031916600160a060020a03959095169490941790935550600c8054600181018083556000929092528951919350611069927fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790910191908a0190611173565b5050505050505050565b600080600160a060020a0316600f836040518082805190602001908083835b602083106110b15780518252601f199092019160209182019101611092565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316929092141591506110fb905057506000611167565b600f826040518082805190602001908083835b6020831061112d5780518252601f19909201916020918201910161110e565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316925050505b919050565b6020015190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111b457805160ff19168380011785556111e1565b828001600101855582156111e1579182015b828111156111e15782518255916020019190600101906111c6565b506111ed9291506111f1565b5090565b6106fc91905b808211156111ed57600081556001016111f756fe706572666f726d207468697320616374696f6e000000000000000000000000004f6e6c7920436572746966696564456d61696c206163636f756e742063616e20a165627a7a723058209fc69d8710b708906b92eaf71c8591883146de34d1ae0e072c4a4fef3ada626e0029608060405234801561001057600080fd5b506040516107623803806107628339810180604052602081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8201602081018481111561005e57600080fd5b815164010000000081118282018710171561007857600080fd5b5050805190935061009292506007915060208401906100ab565b505060068054600160a060020a03191633179055610146565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100ec57805160ff1916838001178555610119565b82800160010185558215610119579182015b828111156101195782518255916020019190600101906100fe565b50610125929150610129565b5090565b61014391905b80821115610125576000815560010161012f565b90565b61060d806101556000396000f3fe6080604052600436106100695763ffffffff60e060020a60003504166306fdde03811461006e57806360f96a8f146100f857806387c8046414610129578063949d225d14610266578063af640d0f1461028d578063bce00f76146102a2578063cf09e0d0146102b7575b600080fd5b34801561007a57600080fd5b506100836102cc565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100bd5781810151838201526020016100a5565b50505050905090810190601f1680156100ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561010457600080fd5b5061010d61035a565b60408051600160a060020a039092168252519081900360200190f35b34801561013557600080fd5b506102646004803603608081101561014c57600080fd5b810190602081018135602060020a81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460018302840111602060020a8311171561019957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a8111156101eb57600080fd5b8201836020820111156101fd57600080fd5b803590602001918460018302840111602060020a8311171561021e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060200135610369565b005b34801561027257600080fd5b5061027b610484565b60408051918252519081900360200190f35b34801561029957600080fd5b5061008361048a565b3480156102ae57600080fd5b506100836104e5565b3480156102c357600080fd5b5061027b610540565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103525780601f1061032757610100808354040283529160200191610352565b820191906000526020600020905b81548152906001019060200180831161033557829003601f168201915b505050505081565b600654600160a060020a031681565b600654600160a060020a031633146103e6576040805160e560020a62461bcd02815260206004820152602f60248201527f4f6e6c792074686520706172656e74206163636f756e742063616e20706572666044820152608960020a6e37b936903a3434b99030b1ba34b7b702606482015290519081900360840190fd5b6000811180156103f65750835115155b151561044c576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420696e7075742076616c756528732900000000000000000000604482015290519081900360640190fd5b835161045f906008906020870190610546565b50600b819055600a829055825161047d906009906020860190610546565b5050505050565b600b5481565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103525780601f1061032757610100808354040283529160200191610352565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103525780601f1061032757610100808354040283529160200191610352565b600a5481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061058757805160ff19168380011785556105b4565b828001600101855582156105b4579182015b828111156105b4578251825591602001919060010190610599565b506105c09291506105c4565b5090565b6105de91905b808211156105c057600081556001016105ca565b9056fea165627a7a72305820bf1470f5c6e37b80610fc902ea5a173abaf4e172a93b9c4d958fe627875032ea0029608060405234801561001057600080fd5b506040516105203803806105208339810180604052608081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8201602081018481111561005e57600080fd5b815164010000000081118282018710171561007857600080fd5b5050929190602001805164010000000081111561009457600080fd5b820160208101848111156100a757600080fd5b81516401000000008111828201871017156100c157600080fd5b505092919060200180516401000000008111156100dd57600080fd5b820160208101848111156100f057600080fd5b815164010000000081118282018710171561010a57600080fd5b505060209182015186519194509250610129916004919087019061015e565b50825161013d90600190602086019061015e565b50815161015190600690602085019061015e565b50600755506101f9915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061019f57805160ff19168380011785556101cc565b828001600101855582156101cc579182015b828111156101cc5782518255916020019190600101906101b1565b506101d89291506101dc565b5090565b6101f691905b808211156101d857600081556001016101e2565b90565b610318806102086000396000f3fe6080604052600436106100535763ffffffff60e060020a6000350416630b305f308114610058578063af640d0f146100e2578063bdf1c4a1146100f7578063cf09e0d01461010c578063d44b930014610133575b600080fd5b34801561006457600080fd5b5061006d610148565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100a757818101518382015260200161008f565b50505050905090810190601f1680156100d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ee57600080fd5b5061006d6101d6565b34801561010357600080fd5b5061006d610231565b34801561011857600080fd5b5061012161028c565b60408051918252519081900360200190f35b34801561013f57600080fd5b5061006d610292565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce565b820191906000526020600020905b8154815290600101906020018083116101b157829003601f168201915b505050505081565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce565b60075481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce56fea165627a7a72305820da7d04bdf353912ffc207cce60a1e719ade498f37d4d53fbf649747790331bd80029a165627a7a723058208eb94bb3b3d4372635aa6e852c3a6c16d24b2de138fdbcb8d225951ffd9045540029",
  "deployedBytecode": "0x60806040526004361061003d5763ffffffff60e060020a600035041663547952cf8114610042578063a91710121461011a578063f776d03b146101cb575b600080fd5b34801561004e57600080fd5b506100fe6004803603604081101561006557600080fd5b810190602081018135602060020a81111561007f57600080fd5b82018360208201111561009157600080fd5b803590602001918460018302840111602060020a831117156100b257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506103889050565b60408051600160a060020a039092168252519081900360200190f35b34801561012657600080fd5b506100fe6004803603602081101561013d57600080fd5b810190602081018135602060020a81111561015757600080fd5b82018360208201111561016957600080fd5b803590602001918460018302840111602060020a8311171561018a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610434945050505050565b3480156101d757600080fd5b506100fe600480360360808110156101ee57600080fd5b810190602081018135602060020a81111561020857600080fd5b82018360208201111561021a57600080fd5b803590602001918460018302840111602060020a8311171561023b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561028d57600080fd5b82018360208201111561029f57600080fd5b803590602001918460018302840111602060020a831117156102c057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561031257600080fd5b82018360208201111561032457600080fd5b803590602001918460018302840111602060020a8311171561034557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506104ca915050565b6000828261039461063d565b600160a060020a03821660208083019190915260408083528451908301528351829160608301919086019080838360005b838110156103dd5781810151838201526020016103c5565b50505050905090810190601f16801561040a5780820380516001836020036101000a031916815260200191505b509350505050604051809103906000f08015801561042c573d6000803e3d6000fd5b509392505050565b60008161043f61064d565b60208082528251818301528251829160408301919085019080838360005b8381101561047557818101518382015260200161045d565b50505050905090810190601f1680156104a25780820380516001836020036101000a031916815260200191505b5092505050604051809103906000f0801580156104c3573d6000803e3d6000fd5b5092915050565b6000848484846104d861065d565b80806020018060200180602001858152602001848103845288818151815260200191508051906020019080838360005b83811015610520578181015183820152602001610508565b50505050905090810190601f16801561054d5780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b83811015610580578181015183820152602001610568565b50505050905090810190601f1680156105ad5780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b838110156105e05781810151838201526020016105c8565b50505050905090810190601f16801561060d5780820380516001836020036101000a031916815260200191505b50975050505050505050604051809103906000f080158015610633573d6000803e3d6000fd5b5095945050505050565b6040516113fd8061066e83390190565b60405161076280611a6b83390190565b604051610520806121cd8339019056fe60806040523480156200001157600080fd5b50604051620013fd380380620013fd833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505060209182015181519194509250620000a091600b9190850190620000d1565b50600a8054600160a060020a03909216600160a060020a031992831617905560088054909116331790555062000176565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011457805160ff191683800117855562000144565b8280016001018555821562000144579182015b828111156200014457825182559160200191906001019062000127565b506200015292915062000156565b5090565b6200017391905b808211156200015257600081556001016200015d565b90565b61127780620001866000396000f3fe6080604052600436106100a05763ffffffff60e060020a600035041663399ae72481146100a557806357ac264e146100e05780636a470b28146101075780636bee1e1b1461013857806372c97e7f146102f85780638525855d146103975780638da5cb5b146103ac578063af640d0f146103c1578063cf09e0d0146103d6578063d5f39488146103eb578063de4cd84214610400578063e1902063146105bd575b600080fd5b3480156100b157600080fd5b506100de600480360360408110156100c857600080fd5b50600160a060020a03813516906020013561066e565b005b3480156100ec57600080fd5b506100f56106f8565b60408051918252519081900360200190f35b34801561011357600080fd5b5061011c6106ff565b60408051600160a060020a039092168252519081900360200190f35b34801561014457600080fd5b506100de600480360360a081101561015b57600080fd5b810190602081018135602060020a81111561017557600080fd5b82018360208201111561018757600080fd5b803590602001918460018302840111602060020a831117156101a857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a8111156101fa57600080fd5b82018360208201111561020c57600080fd5b803590602001918460018302840111602060020a8311171561022d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561027f57600080fd5b82018360208201111561029157600080fd5b803590602001918460018302840111602060020a831117156102b257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550508235935050506020013561070e565b34801561030457600080fd5b506103226004803603602081101561031b57600080fd5b5035610a91565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561035c578181015183820152602001610344565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a357600080fd5b5061011c610b38565b3480156103b857600080fd5b5061011c610b47565b3480156103cd57600080fd5b50610322610b56565b3480156103e257600080fd5b506100f5610bb1565b3480156103f757600080fd5b5061011c610bb7565b34801561040c57600080fd5b506100de6004803603608081101561042357600080fd5b810190602081018135602060020a81111561043d57600080fd5b82018360208201111561044f57600080fd5b803590602001918460018302840111602060020a8311171561047057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a8111156104c257600080fd5b8201836020820111156104d457600080fd5b803590602001918460018302840111602060020a831117156104f557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a81111561054757600080fd5b82018360208201111561055957600080fd5b803590602001918460018302840111602060020a8311171561057a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610bc6915050565b3480156105c957600080fd5b5061011c600480360360208110156105e057600080fd5b810190602081018135602060020a8111156105fa57600080fd5b82018360208201111561060c57600080fd5b803590602001918460018302840111602060020a8311171561062d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611073945050505050565b600854600160a060020a031633146106d2576040805160e560020a62461bcd028152602060048201526033602482015260008051602061122c833981519152604482015260008051602061120c833981519152606482015290519081900360840190fd5b60098054600160a060020a031916600160a060020a039390931692909217909155600d55565b600c545b90565b600854600160a060020a031681565b600854600160a060020a03163314610772576040805160e560020a62461bcd028152602060048201526033602482015260008051602061122c833981519152604482015260008051602061120c833981519152606482015290519081900360840190fd5b600a54604051602060248201818152875160448401528751600094606094600160a060020a03909116938a93928392606401918501908083838b5b838110156107c55781810151838201526020016107ad565b50505050905090810190601f1680156107f25780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152918152602082018051600160e060020a031660e160020a63548b880902178152905182519295509350839250908083835b602083106108505780518252601f199092019160209182019101610831565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146108b0576040519150601f19603f3d011682016040523d82523d6000602084013e6108b5565b606091505b5091509150811515610928576040805160e560020a62461bcd02815260206004820152602b60248201527f4572726f72207768696c65206465706c6f79696e672066696c652066726f6d20604482015260a860020a6a636572746966696361746502606482015290519081900360840190fd5b6109318161116c565b600e8054600160a060020a031916600160a060020a03928316179081905560405160e260020a6321f20119028152604481018790526064810186905260806004820190815288516084830152885192909316926387c804649289928c928a928a928291602482019160a40190602089019080838360005b838110156109c05781810151838201526020016109a8565b50505050905090810190601f1680156109ed5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015610a20578181015183820152602001610a08565b50505050905090810190601f168015610a4d5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050505050565b600c805482908110610a9f57fe5b600091825260209182902001805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815293509091830182828015610b305780601f10610b0557610100808354040283529160200191610b30565b820191906000526020600020905b815481529060010190602001808311610b1357829003601f168201915b505050505081565b600e54600160a060020a031681565b600954600160a060020a031681565b600b805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b305780601f10610b0557610100808354040283529160200191610b30565b600d5481565b600a54600160a060020a031681565b600854600160a060020a03163314610c2a576040805160e560020a62461bcd028152602060048201526033602482015260008051602061122c833981519152604482015260008051602061120c833981519152606482015290519081900360840190fd5b6000600160a060020a0316600f856040518082805190602001908083835b60208310610c675780518252601f199092019160209182019101610c48565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316929092149150610cf89050576040805160e560020a62461bcd02815260206004820181905260248201527f5468652063757272656e74206576656e7420616c726561647920657869737473604482015290519081900360640190fd5b60006060600a60009054906101000a9004600160a060020a0316600160a060020a03168686868660405160240180806020018060200180602001858152602001848103845288818151815260200191508051906020019080838360005b83811015610d6d578181015183820152602001610d55565b50505050905090810190601f168015610d9a5780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b83811015610dcd578181015183820152602001610db5565b50505050905090810190601f168015610dfa5780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b83811015610e2d578181015183820152602001610e15565b50505050905090810190601f168015610e5a5780820380516001836020036101000a031916815260200191505b5060408051601f19818403018152918152602082018051600160e060020a031660e060020a63f776d03b0217815290518251929a509850889750955093508392508591508490505b60208310610ec15780518252601f199092019160209182019101610ea2565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610f21576040519150601f19603f3d011682016040523d82523d6000602084013e610f26565b606091505b5091509150811515610f9a576040805160e560020a62461bcd02815260206004820152602c60248201527f4572726f72207768696c65206465706c6f79696e67206576656e742066726f6d604482015260a060020a6b20636572746966696361746502606482015290519081900360840190fd5b610fa38161116c565b600f876040518082805190602001908083835b60208310610fd55780518252601f199092019160209182019101610fb6565b51815160209384036101000a60001901801990921691161790529201948552506040519384900381019093208054600160a060020a031916600160a060020a03959095169490941790935550600c8054600181018083556000929092528951919350611069927fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c790910191908a0190611173565b5050505050505050565b600080600160a060020a0316600f836040518082805190602001908083835b602083106110b15780518252601f199092019160209182019101611092565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316929092141591506110fb905057506000611167565b600f826040518082805190602001908083835b6020831061112d5780518252601f19909201916020918201910161110e565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054600160a060020a0316925050505b919050565b6020015190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111b457805160ff19168380011785556111e1565b828001600101855582156111e1579182015b828111156111e15782518255916020019190600101906111c6565b506111ed9291506111f1565b5090565b6106fc91905b808211156111ed57600081556001016111f756fe706572666f726d207468697320616374696f6e000000000000000000000000004f6e6c7920436572746966696564456d61696c206163636f756e742063616e20a165627a7a723058209fc69d8710b708906b92eaf71c8591883146de34d1ae0e072c4a4fef3ada626e0029608060405234801561001057600080fd5b506040516107623803806107628339810180604052602081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8201602081018481111561005e57600080fd5b815164010000000081118282018710171561007857600080fd5b5050805190935061009292506007915060208401906100ab565b505060068054600160a060020a03191633179055610146565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100ec57805160ff1916838001178555610119565b82800160010185558215610119579182015b828111156101195782518255916020019190600101906100fe565b50610125929150610129565b5090565b61014391905b80821115610125576000815560010161012f565b90565b61060d806101556000396000f3fe6080604052600436106100695763ffffffff60e060020a60003504166306fdde03811461006e57806360f96a8f146100f857806387c8046414610129578063949d225d14610266578063af640d0f1461028d578063bce00f76146102a2578063cf09e0d0146102b7575b600080fd5b34801561007a57600080fd5b506100836102cc565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100bd5781810151838201526020016100a5565b50505050905090810190601f1680156100ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561010457600080fd5b5061010d61035a565b60408051600160a060020a039092168252519081900360200190f35b34801561013557600080fd5b506102646004803603608081101561014c57600080fd5b810190602081018135602060020a81111561016657600080fd5b82018360208201111561017857600080fd5b803590602001918460018302840111602060020a8311171561019957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050602060020a8111156101eb57600080fd5b8201836020820111156101fd57600080fd5b803590602001918460018302840111602060020a8311171561021e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350505060200135610369565b005b34801561027257600080fd5b5061027b610484565b60408051918252519081900360200190f35b34801561029957600080fd5b5061008361048a565b3480156102ae57600080fd5b506100836104e5565b3480156102c357600080fd5b5061027b610540565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103525780601f1061032757610100808354040283529160200191610352565b820191906000526020600020905b81548152906001019060200180831161033557829003601f168201915b505050505081565b600654600160a060020a031681565b600654600160a060020a031633146103e6576040805160e560020a62461bcd02815260206004820152602f60248201527f4f6e6c792074686520706172656e74206163636f756e742063616e20706572666044820152608960020a6e37b936903a3434b99030b1ba34b7b702606482015290519081900360840190fd5b6000811180156103f65750835115155b151561044c576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420696e7075742076616c756528732900000000000000000000604482015290519081900360640190fd5b835161045f906008906020870190610546565b50600b819055600a829055825161047d906009906020860190610546565b5050505050565b600b5481565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103525780601f1061032757610100808354040283529160200191610352565b6009805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103525780601f1061032757610100808354040283529160200191610352565b600a5481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061058757805160ff19168380011785556105b4565b828001600101855582156105b4579182015b828111156105b4578251825591602001919060010190610599565b506105c09291506105c4565b5090565b6105de91905b808211156105c057600081556001016105ca565b9056fea165627a7a72305820bf1470f5c6e37b80610fc902ea5a173abaf4e172a93b9c4d958fe627875032ea0029608060405234801561001057600080fd5b506040516105203803806105208339810180604052608081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8201602081018481111561005e57600080fd5b815164010000000081118282018710171561007857600080fd5b5050929190602001805164010000000081111561009457600080fd5b820160208101848111156100a757600080fd5b81516401000000008111828201871017156100c157600080fd5b505092919060200180516401000000008111156100dd57600080fd5b820160208101848111156100f057600080fd5b815164010000000081118282018710171561010a57600080fd5b505060209182015186519194509250610129916004919087019061015e565b50825161013d90600190602086019061015e565b50815161015190600690602085019061015e565b50600755506101f9915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061019f57805160ff19168380011785556101cc565b828001600101855582156101cc579182015b828111156101cc5782518255916020019190600101906101b1565b506101d89291506101dc565b5090565b6101f691905b808211156101d857600081556001016101e2565b90565b610318806102086000396000f3fe6080604052600436106100535763ffffffff60e060020a6000350416630b305f308114610058578063af640d0f146100e2578063bdf1c4a1146100f7578063cf09e0d01461010c578063d44b930014610133575b600080fd5b34801561006457600080fd5b5061006d610148565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100a757818101518382015260200161008f565b50505050905090810190601f1680156100d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156100ee57600080fd5b5061006d6101d6565b34801561010357600080fd5b5061006d610231565b34801561011857600080fd5b5061012161028c565b60408051918252519081900360200190f35b34801561013f57600080fd5b5061006d610292565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce565b820191906000526020600020905b8154815290600101906020018083116101b157829003601f168201915b505050505081565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce565b60075481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101ce5780601f106101a3576101008083540402835291602001916101ce56fea165627a7a72305820da7d04bdf353912ffc207cce60a1e719ade498f37d4d53fbf649747790331bd80029a165627a7a723058208eb94bb3b3d4372635aa6e852c3a6c16d24b2de138fdbcb8d225951ffd9045540029",
  "sourceMap": "130:843:4:-;;;169:23;8:9:-1;5:2;;;30:1;27;20:12;5:2;169:23:4;130:843;;;;;;",
  "deployedSourceMap": "130:843:4:-;;;;;;;;;-1:-1:-1;;;130:843:4;;;;;;;;;;;;;;;;;;;;;;;354:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;354:214:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;354:214:4;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;354:214:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;354:214:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;354:214:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;354:214:4;;-1:-1:-1;;;354:214:4;;-1:-1:-1;;;;;354:214:4;;-1:-1:-1;354:214:4;;-1:-1:-1;354:214:4;;;;;-1:-1:-1;;;;;354:214:4;;;;;;;;;;;;;;198:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;198:150:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;198:150:4;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;198:150:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;198:150:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;198:150:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;198:150:4;;-1:-1:-1;198:150:4;;-1:-1:-1;;;;;198:150:4;574:397;;8:9:-1;5:2;;;30:1;27;20:12;5:2;574:397:4;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;574:397:4;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;574:397:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;574:397:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;574:397:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;574:397:4;;;;;;;;-1:-1:-1;574:397:4;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;574:397:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;574:397:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;574:397:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;574:397:4;;;;;;;;-1:-1:-1;574:397:4;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;574:397:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;574:397:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;574:397:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;574:397:4;;-1:-1:-1;;574:397:4;;;-1:-1:-1;574:397:4;;-1:-1:-1;;574:397:4;354:214;482:7;536:13;551:8;520:40;;:::i;:::-;-1:-1:-1;;;;;520:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;520:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;505:56:4;354:214;-1:-1:-1;;;354:214:4:o;198:150::-;286:7;333:6;324:16;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;324:16:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;309:32:4;198:150;-1:-1:-1;;198:150:4:o;574:397::-;764:7;842;867:9;894:14;926;815:139;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;815:139:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;815:139:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;815:139:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;815:139:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;815:139:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;787:177:4;574:397;-1:-1:-1;;;;;574:397:4:o;130:843::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o",
  "source": "pragma solidity <0.6.0;\n\n/*\nGas to deploy: 2.712.304\n*/\n\nimport \"./File.sol\";\nimport \"./Certificate.sol\";\nimport \"./Event.sol\";\n\n\ncontract CertifiedEmailDeployer {\n\n    constructor() public {}\n\n    function deployFile(\n        string memory fileId\n    )\n        public\n        returns (address)\n    {\n        return address(new File(fileId));\n    }\n\n    function deployCertificate(\n        string memory certificateId,\n        address deployer\n    )\n        public\n        returns (address)\n    {\n        return address(new Certificate(certificateId, deployer));\n    }\n\n    function deployEvent(\n        string memory eventId,\n        string memory eventType,\n        string memory eventUserAgent,\n        uint eventCreatedAt\n    )\n        public\n        returns (address)\n    {\n        return address(\n            new Event(\n                eventId,\n                eventType,\n                eventUserAgent,\n                eventCreatedAt\n            )\n        );\n    }\n}\n",
  "sourcePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/CertifiedEmailDeployer.sol",
  "ast": {
    "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/CertifiedEmailDeployer.sol",
    "exportedSymbols": {
      "CertifiedEmailDeployer": [
        1104
      ]
    },
    "id": 1105,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1039,
        "literals": [
          "solidity",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:4"
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/File.sol",
        "file": "./File.sol",
        "id": 1040,
        "nodeType": "ImportDirective",
        "scope": 1105,
        "sourceUnit": 2343,
        "src": "57:20:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/Certificate.sol",
        "file": "./Certificate.sol",
        "id": 1041,
        "nodeType": "ImportDirective",
        "scope": 1105,
        "sourceUnit": 304,
        "src": "78:27:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/Event.sol",
        "file": "./Event.sol",
        "id": 1042,
        "nodeType": "ImportDirective",
        "scope": 1105,
        "sourceUnit": 2254,
        "src": "106:21:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          303,
          2253,
          2342
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1104,
        "linearizedBaseContracts": [
          1104
        ],
        "name": "CertifiedEmailDeployer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 1045,
              "nodeType": "Block",
              "src": "190:2:4",
              "statements": []
            },
            "documentation": null,
            "id": 1046,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1043,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "180:2:4"
            },
            "returnParameters": {
              "id": 1044,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "190:0:4"
            },
            "scope": 1104,
            "src": "169:23:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1060,
              "nodeType": "Block",
              "src": "299:49:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1056,
                            "name": "fileId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1048,
                            "src": "333:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 1055,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "324:8:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$returns$_t_contract$_File_$2342_$",
                            "typeString": "function (string memory) returns (contract File)"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1054,
                            "name": "File",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 2342,
                            "src": "328:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_File_$2342",
                              "typeString": "contract File"
                            }
                          }
                        },
                        "id": 1057,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "324:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_File_$2342",
                          "typeString": "contract File"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_File_$2342",
                          "typeString": "contract File"
                        }
                      ],
                      "id": 1053,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "316:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1058,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "316:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1052,
                  "id": 1059,
                  "nodeType": "Return",
                  "src": "309:32:4"
                }
              ]
            },
            "documentation": null,
            "id": 1061,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deployFile",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1049,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1048,
                  "name": "fileId",
                  "nodeType": "VariableDeclaration",
                  "scope": 1061,
                  "src": "227:20:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1047,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "227:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "217:36:4"
            },
            "returnParameters": {
              "id": 1052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1051,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1061,
                  "src": "286:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1050,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "286:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "285:9:4"
            },
            "scope": 1104,
            "src": "198:150:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1078,
              "nodeType": "Block",
              "src": "495:73:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1073,
                            "name": "certificateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1063,
                            "src": "536:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1074,
                            "name": "deployer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1065,
                            "src": "551:8:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1072,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "520:15:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_Certificate_$303_$",
                            "typeString": "function (string memory,address) returns (contract Certificate)"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1071,
                            "name": "Certificate",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 303,
                            "src": "524:11:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Certificate_$303",
                              "typeString": "contract Certificate"
                            }
                          }
                        },
                        "id": 1075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "520:40:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Certificate_$303",
                          "typeString": "contract Certificate"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Certificate_$303",
                          "typeString": "contract Certificate"
                        }
                      ],
                      "id": 1070,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "512:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "512:49:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1069,
                  "id": 1077,
                  "nodeType": "Return",
                  "src": "505:56:4"
                }
              ]
            },
            "documentation": null,
            "id": 1079,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deployCertificate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1066,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1063,
                  "name": "certificateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "390:27:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1062,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "390:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1065,
                  "name": "deployer",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "427:16:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1064,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "427:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "380:69:4"
            },
            "returnParameters": {
              "id": 1069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1068,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "482:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1067,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "482:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "481:9:4"
            },
            "scope": 1104,
            "src": "354:214:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1102,
              "nodeType": "Block",
              "src": "777:194:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1095,
                            "name": "eventId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1081,
                            "src": "842:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1096,
                            "name": "eventType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1083,
                            "src": "867:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1097,
                            "name": "eventUserAgent",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1085,
                            "src": "894:14:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1098,
                            "name": "eventCreatedAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1087,
                            "src": "926:14:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 1094,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "815:9:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_Event_$2253_$",
                            "typeString": "function (string memory,string memory,string memory,uint256) returns (contract Event)"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1093,
                            "name": "Event",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 2253,
                            "src": "819:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Event_$2253",
                              "typeString": "contract Event"
                            }
                          }
                        },
                        "id": 1099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "815:139:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Event_$2253",
                          "typeString": "contract Event"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Event_$2253",
                          "typeString": "contract Event"
                        }
                      ],
                      "id": 1092,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "794:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "794:170:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1091,
                  "id": 1101,
                  "nodeType": "Return",
                  "src": "787:177:4"
                }
              ]
            },
            "documentation": null,
            "id": 1103,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deployEvent",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1081,
                  "name": "eventId",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "604:21:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1080,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "604:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1083,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "635:23:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1082,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "635:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1085,
                  "name": "eventUserAgent",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "668:28:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1084,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "668:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1087,
                  "name": "eventCreatedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "706:19:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1086,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "594:137:4"
            },
            "returnParameters": {
              "id": 1091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1090,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "764:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1089,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "764:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "763:9:4"
            },
            "scope": 1104,
            "src": "574:397:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1105,
        "src": "130:843:4"
      }
    ],
    "src": "0:974:4"
  },
  "legacyAST": {
    "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/CertifiedEmailDeployer.sol",
    "exportedSymbols": {
      "CertifiedEmailDeployer": [
        1104
      ]
    },
    "id": 1105,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1039,
        "literals": [
          "solidity",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:4"
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/File.sol",
        "file": "./File.sol",
        "id": 1040,
        "nodeType": "ImportDirective",
        "scope": 1105,
        "sourceUnit": 2343,
        "src": "57:20:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/Certificate.sol",
        "file": "./Certificate.sol",
        "id": 1041,
        "nodeType": "ImportDirective",
        "scope": 1105,
        "sourceUnit": 304,
        "src": "78:27:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/Event.sol",
        "file": "./Event.sol",
        "id": 1042,
        "nodeType": "ImportDirective",
        "scope": 1105,
        "sourceUnit": 2254,
        "src": "106:21:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [
          303,
          2253,
          2342
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1104,
        "linearizedBaseContracts": [
          1104
        ],
        "name": "CertifiedEmailDeployer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 1045,
              "nodeType": "Block",
              "src": "190:2:4",
              "statements": []
            },
            "documentation": null,
            "id": 1046,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1043,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "180:2:4"
            },
            "returnParameters": {
              "id": 1044,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "190:0:4"
            },
            "scope": 1104,
            "src": "169:23:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1060,
              "nodeType": "Block",
              "src": "299:49:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1056,
                            "name": "fileId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1048,
                            "src": "333:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          ],
                          "id": 1055,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "324:8:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$returns$_t_contract$_File_$2342_$",
                            "typeString": "function (string memory) returns (contract File)"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1054,
                            "name": "File",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 2342,
                            "src": "328:4:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_File_$2342",
                              "typeString": "contract File"
                            }
                          }
                        },
                        "id": 1057,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "324:16:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_File_$2342",
                          "typeString": "contract File"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_File_$2342",
                          "typeString": "contract File"
                        }
                      ],
                      "id": 1053,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "316:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1058,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "316:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1052,
                  "id": 1059,
                  "nodeType": "Return",
                  "src": "309:32:4"
                }
              ]
            },
            "documentation": null,
            "id": 1061,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deployFile",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1049,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1048,
                  "name": "fileId",
                  "nodeType": "VariableDeclaration",
                  "scope": 1061,
                  "src": "227:20:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1047,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "227:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "217:36:4"
            },
            "returnParameters": {
              "id": 1052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1051,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1061,
                  "src": "286:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1050,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "286:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "285:9:4"
            },
            "scope": 1104,
            "src": "198:150:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1078,
              "nodeType": "Block",
              "src": "495:73:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1073,
                            "name": "certificateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1063,
                            "src": "536:13:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1074,
                            "name": "deployer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1065,
                            "src": "551:8:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1072,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "520:15:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_Certificate_$303_$",
                            "typeString": "function (string memory,address) returns (contract Certificate)"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1071,
                            "name": "Certificate",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 303,
                            "src": "524:11:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Certificate_$303",
                              "typeString": "contract Certificate"
                            }
                          }
                        },
                        "id": 1075,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "520:40:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Certificate_$303",
                          "typeString": "contract Certificate"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Certificate_$303",
                          "typeString": "contract Certificate"
                        }
                      ],
                      "id": 1070,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "512:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "512:49:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1069,
                  "id": 1077,
                  "nodeType": "Return",
                  "src": "505:56:4"
                }
              ]
            },
            "documentation": null,
            "id": 1079,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deployCertificate",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1066,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1063,
                  "name": "certificateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "390:27:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1062,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "390:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1065,
                  "name": "deployer",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "427:16:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1064,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "427:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "380:69:4"
            },
            "returnParameters": {
              "id": 1069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1068,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "482:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1067,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "482:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "481:9:4"
            },
            "scope": 1104,
            "src": "354:214:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1102,
              "nodeType": "Block",
              "src": "777:194:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1095,
                            "name": "eventId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1081,
                            "src": "842:7:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1096,
                            "name": "eventType",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1083,
                            "src": "867:9:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1097,
                            "name": "eventUserAgent",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1085,
                            "src": "894:14:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 1098,
                            "name": "eventCreatedAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1087,
                            "src": "926:14:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 1094,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "815:9:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_Event_$2253_$",
                            "typeString": "function (string memory,string memory,string memory,uint256) returns (contract Event)"
                          },
                          "typeName": {
                            "contractScope": null,
                            "id": 1093,
                            "name": "Event",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 2253,
                            "src": "819:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Event_$2253",
                              "typeString": "contract Event"
                            }
                          }
                        },
                        "id": 1099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "815:139:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Event_$2253",
                          "typeString": "contract Event"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_Event_$2253",
                          "typeString": "contract Event"
                        }
                      ],
                      "id": 1092,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "794:7:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 1100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "794:170:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1091,
                  "id": 1101,
                  "nodeType": "Return",
                  "src": "787:177:4"
                }
              ]
            },
            "documentation": null,
            "id": 1103,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "deployEvent",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1081,
                  "name": "eventId",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "604:21:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1080,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "604:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1083,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "635:23:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1082,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "635:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1085,
                  "name": "eventUserAgent",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "668:28:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1084,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "668:6:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1087,
                  "name": "eventCreatedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "706:19:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1086,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:4:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "594:137:4"
            },
            "returnParameters": {
              "id": 1091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1090,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1103,
                  "src": "764:7:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1089,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "764:7:4",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "763:9:4"
            },
            "scope": 1104,
            "src": "574:397:4",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1105,
        "src": "130:843:4"
      }
    ],
    "src": "0:974:4"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.3",
  "updatedAt": "2020-01-15T10:55:50.262Z"
}