{
  "annotations": [
    {
      "annotator": {
        "component": {
          "externalReferences": [
            {
              "type": "vcs",
              "url": "https://github.com/plimsollmark/plimsoll"
            }
          ],
          "name": "plimsoll-sbom",
          "type": "application",
          "version": "0.2.0"
        }
      },
      "bom-ref": "limits",
      "subjects": [
        "program"
      ],
      "text": "The attached run record is signed; this BOM is unsigned. Agent authorship is supplied example context, not a record fact, and the execution layer cannot identify the model. Network isolation is provider configuration, not a separately signed runtime measurement; a granted run reaches only the routes its grant lists, and what reached the other side is not in this record. The run's times are the daemon's own unwitnessed clock. An attached key alone establishes consistency, not signer identity; use an independently trusted key. Display names and the assessor label are unsigned presentation. The attached bundle line proves itself; the whole bundle it belongs to is referenced by digest and checked when supplied. This is run evidence, not an inventory of the image's installed packages. A qualification verdict is the platform's own signed account of one run against a simulated vendor, re-evaluated here from its evidence; it is not an independent audit, and the vendor's ledger is trusted as the signer read it.",
      "timestamp": "2026-10-23T19:39:17.244Z"
    }
  ],
  "bomFormat": "CycloneDX",
  "components": [
    {
      "bom-ref": "image",
      "externalReferences": [
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "7e0b9a40e742f401e3a006a7362ebba1c5f3ac832107858dcf104d8f2b6de603"
            }
          ],
          "type": "bom",
          "url": "https://plimsollmark.github.io/plimsoll/examples/sbom/image-a6ef2ea1c8f1.cdx.json"
        },
        {
          "type": "bom",
          "url": "urn:cdx:f9bc9442-7192-4f59-9f06-38f71e427479/1#d13ed0dc05c4b68b"
        }
      ],
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "a6ef2ea1c8f1de5c885e1a18ba7ee4d962e3a859877f6f46c2fb7ebac1f6cc5c"
        }
      ],
      "name": "sandbox",
      "properties": [
        {
          "name": "plimsoll:environment",
          "value": "docker-image:sha256:32da77b1be24de4c152667c28ab63531425cd69000acf30a328985cb857377f7"
        },
        {
          "name": "plimsoll:software_identity",
          "value": "oci-manifest:linux/amd64@sha256:a6ef2ea1c8f1de5c885e1a18ba7ee4d962e3a859877f6f46c2fb7ebac1f6cc5c"
        }
      ],
      "purl": "pkg:oci/sandbox@sha256:a6ef2ea1c8f1de5c885e1a18ba7ee4d962e3a859877f6f46c2fb7ebac1f6cc5c",
      "type": "container",
      "version": "sha256:a6ef2ea1c8f1de5c885e1a18ba7ee4d962e3a859877f6f46c2fb7ebac1f6cc5c"
    }
  ],
  "declarations": {
    "affirmation": {
      "statement": "The attached run record was stated by plimsolld, checked and signed by plimsoll-attest, and restated here; plimsoll-attest verify and this program's -check recompute it. This affirmation and BOM are unsigned."
    },
    "assessors": [
      {
        "bom-ref": "assessor",
        "organization": {
          "name": "plimsoll examples (self-assessed)"
        },
        "thirdParty": false
      }
    ],
    "attestations": [
      {
        "assessor": "assessor",
        "map": [
          {
            "claims": [
              "claim-code"
            ],
            "confidence": {
              "rationale": "a signature check and a digest recomputation, not a judgement or a probability that the runtime assertion is true",
              "score": 1
            },
            "conformance": {
              "rationale": "The claim matches the signed exchange under a deterministic comparison; this is self-assessed consistency, not independent runtime assurance.",
              "score": 1
            },
            "requirement": "req-code"
          },
          {
            "claims": [
              "claim-image"
            ],
            "confidence": {
              "rationale": "a signature check and a digest recomputation, not a judgement or a probability that the runtime assertion is true",
              "score": 1
            },
            "conformance": {
              "rationale": "The claim matches the signed exchange under a deterministic comparison; this is self-assessed consistency, not independent runtime assurance.",
              "score": 1
            },
            "requirement": "req-image"
          },
          {
            "claims": [
              "claim-tier"
            ],
            "confidence": {
              "rationale": "a signature check and a digest recomputation, not a judgement or a probability that the runtime assertion is true",
              "score": 1
            },
            "conformance": {
              "rationale": "The claim matches the signed exchange under a deterministic comparison; this is self-assessed consistency, not independent runtime assurance.",
              "score": 1
            },
            "requirement": "req-tier"
          },
          {
            "claims": [
              "claim-verdict"
            ],
            "confidence": {
              "rationale": "a deterministic re-evaluation of the recorded evidence and a signature check, not a judgement or a probability",
              "score": 1
            },
            "conformance": {
              "rationale": "All 8 rules held when re-evaluated from the attached statement's evidence. The statement's subject is this run's signed record. Self-assessed by the platform against a simulated vendor, not an independent audit.",
              "score": 1
            },
            "requirement": "req-verdict"
          }
        ],
        "summary": "A self-assessed restatement of a signed run record with reproducible consistency checks."
      }
    ],
    "claims": [
      {
        "bom-ref": "claim-code",
        "evidence": [
          "evidence-run-record"
        ],
        "predicate": "The program's 18 files, file-set digest 95675b6bf846dbb4dfef427f6ff50cfdb8d90ed11b10bbd5a199b6dba8b57267, are the files in the stored request whose signed digest 8cd7e9c60014ab20fb397cd9711d66b14cc3e7d0f0c3df0c80e00eb732938474 covers them with the isolation floor and timeout.",
        "reasoning": "Each claim restates the run record the daemon stated and the attest harness checked against the stored request and result and signed. The attached bundle line permits those checks to be repeated. This emitter did not observe execution. The tier is configuration and provider evidence plus startup smoke tests, never runtime attestation.",
        "target": "program"
      },
      {
        "bom-ref": "claim-image",
        "evidence": [
          "evidence-run-record"
        ],
        "predicate": "The daemon states that the run executed in the image whose OCI manifest digest is sha256:a6ef2ea1c8f1de5c885e1a18ba7ee4d962e3a859877f6f46c2fb7ebac1f6cc5c (environment docker-image:sha256:32da77b1be24de4c152667c28ab63531425cd69000acf30a328985cb857377f7), verified before launch.",
        "reasoning": "Each claim restates the run record the daemon stated and the attest harness checked against the stored request and result and signed. The attached bundle line permits those checks to be repeated. This emitter did not observe execution. The tier is configuration and provider evidence plus startup smoke tests, never runtime attestation.",
        "target": "program"
      },
      {
        "bom-ref": "claim-tier",
        "evidence": [
          "evidence-run-record"
        ],
        "predicate": "The daemon states provider docker and isolation tier kernel, at or above requested floor container, from 2026-10-23T19:39:15.980Z to 2026-10-23T19:39:17.244Z UTC; the stored request names host-API grant profile fleet, the run's only route out, served by the daemon's broker, and the result digest is f25c53ca4ae0ec3952550052583870a414d6cdea29648a8096a771c325e379ed. Network beyond the grant is provider configuration; this record is not a network measurement.",
        "reasoning": "Each claim restates the run record the daemon stated and the attest harness checked against the stored request and result and signed. The attached bundle line permits those checks to be repeated. This emitter did not observe execution. The tier is configuration and provider evidence plus startup smoke tests, never runtime attestation.",
        "target": "program"
      },
      {
        "bom-ref": "claim-verdict",
        "evidence": [
          "evidence-qualification",
          "evidence-run-record"
        ],
        "predicate": "The platform's qualification statement, bound to this run's record, judges adapter-v2.js (SHA-256 4085bb2e4900ee3becc6c308de1a927d073f0a9746923183ce839a6429921330) in scenario nominal (three idle robots; every order can complete) by 8 rules read from the vendor's ledger, the vendor's record of its robots and the harness's plan, never from the program's own account: ran to the end: held; kept the contract's shapes: held; the inventory is the vendor's: held; one order per command: held; the right robot and target: held; ended as it should: held; robot at the target: held; the report is true: held. Verdict: pass.",
        "reasoning": "The verdict is recomputed from the attached statement's evidence by the same rules the platform applied; the statement's seal is checked under the attached key, its subject is this run's signed record, and the files, step, report and exit code it names are checked against the stored request and response. The ledger is the simulated vendor's account as the platform read it; trusting it is trusting the signer.",
        "target": "program"
      }
    ],
    "evidence": [
      {
        "author": {
          "name": "plimsoll-attest key 2368e6af86fb7984c52ea36b04298aafc498a7461f116e0e998efed702974567"
        },
        "bom-ref": "evidence-run-record",
        "created": "2026-10-23T19:39:17.244Z",
        "data": [
          {
            "contents": {
              "attachment": {
                "content": "eyJwYXlsb2FkVHlwZSI6ImFwcGxpY2F0aW9uL3ZuZC5pbi10b3RvK2pzb24iLCJwYXlsb2FkIjoiZXlKZmRIbHdaU0k2SW1oMGRIQnpPaTh2YVc0dGRHOTBieTVwYnk5VGRHRjBaVzFsYm5RdmRqRWlMQ0p6ZFdKcVpXTjBJanBiZXlKdVlXMWxJam9pY25WdUxYSmxZMjl5WkNJc0ltUnBaMlZ6ZENJNmV5SnphR0V5TlRZaU9pSTBZelk1WWpWaE16aG1Namt3WWpJMFlqZ3lZelJoTW1OaU0yTXdNVEJsTnpGaE9EaG1NbVV3WXpRM05HVTFOV1E0TTJOa1pEZGxZVFUwWm1ZNFlqWmtJbjE5WFN3aWNISmxaR2xqWVhSbFZIbHdaU0k2SW1oMGRIQnpPaTh2Y0d4cGJYTnZiR3h0WVhKckxtZHBkR2gxWWk1cGJ5OXdiR2x0YzI5c2JDOXlkVzR0Y21WamIzSmtMM1l4SWl3aWNISmxaR2xqWVhSbElqcDdJblpsY25OcGIyNGlPalFzSW5KbGNYVmxjM1JmYzJoaE1qVTJJam9pT0dOa04yVTVZell3TURFMFlXSXlNR1ppTXprM1kyUTVOekV4WkRZMllqRTBZMk16WlRka01HWXdZek5rWmpCak9EQmxNREJsWWpjek1qa3pPRFEzTkNJc0luSmxjM1ZzZEY5emFHRXlOVFlpT2lKbU1qVmpOVE5qWVRSaFpUQmxZek01TlRJMU5UQXdOVEkxT0RNNE56QmhOREUwWkRaalpHVmhNamsyTkRoaE9EQTVObUUzTnpGak16STFaVE0zT1dWa0lpd2ljSEp2ZG1sa1pYSWlPaUprYjJOclpYSWlMQ0pwYzI5c1lYUnBiMjRpT2lKclpYSnVaV3dpTENKbGJuWnBjbTl1YldWdWRDSTZJbVJ2WTJ0bGNpMXBiV0ZuWlRwemFHRXlOVFk2TXpKa1lUYzNZakZpWlRJMFpHVTBZekUxTWpZMk4yTXlPR0ZpTmpNMU16RTBNalZqWkRZNU1EQXdZV05tTXpCaE16STRPVGcxWTJJNE5UY3pOemRtTnlJc0luTnZablIzWVhKbFgybGtaVzUwYVhSNUlqb2liMk5wTFcxaGJtbG1aWE4wT214cGJuVjRMMkZ0WkRZMFFITm9ZVEkxTmpwaE5tVm1NbVZoTVdNNFpqRmtaVFZqT0RnMVpURmhNVGhpWVRkbFpUUmtPVFl5WlROaE9EVTVPRGMzWmpabU5EWmpNbVppTjJWaVlXTXhaalpqWXpWaklpd2ljRzlzYVdONUlqb2lJaXdpYzNSaGNuUmxaRjkxYm1sNFgyMXpJam94TnpreU56ZzBNelUxT1Rnd0xDSmxibVJsWkY5MWJtbDRYMjF6SWpveE56a3lOemcwTXpVM01qUTBMQ0p6WlhOemFXOXVJam9pSWl3aWMyVnhkV1Z1WTJVaU9qQXNJbkJ5WlhacGIzVnpYM05vWVRJMU5pSTZJaUlzSW5KbFkyOXlaRjl6YUdFeU5UWWlPaUkwWXpZNVlqVmhNemhtTWprd1lqSTBZamd5WXpSaE1tTmlNMk13TVRCbE56RmhPRGhtTW1Vd1l6UTNOR1UxTldRNE0yTmtaRGRsWVRVMFptWTRZalprSW4xOSIsInNpZ25hdHVyZXMiOlt7ImtleWlkIjoiMjM2OGU2YWY4NmZiNzk4NGM1MmVhMzZiMDQyOThhYWZjNDk4YTc0NjFmMTE2ZTBlOTk4ZWZlZDcwMjk3NDU2NyIsInNpZyI6Ii9YRkZjOVZ5OCtWV0RsZnJQU1lhckZLTjBPaStXVXRyRE5COGxITlpIWUt0ODl2dVhUNVFQTGpkYmFaWWl1cUhIT3BwY3BsWVp0dllnQndPRFpTM0NBPT0ifV19",
                "contentType": "application/json",
                "encoding": "base64"
              }
            },
            "name": "envelope.json"
          },
          {
            "contents": {
              "attachment": {
                "content": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUNvd0JRWURLMlZ3QXlFQUcvRDIySjJBVm1RSzQ0RFUvOUpjYytSM01BaG5Oa09TUnJNMWVxTVBwN1k9Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo=",
                "contentType": "application/x-pem-file",
                "encoding": "base64"
              }
            },
            "name": "harness.pub"
          },
          {
            "contents": {
              "attachment": {
                "content": "eyJyZXF1ZXN0IjoiQ0FRU0NXTnZiblJoYVc1bGNob09ZV1JoY0hSbGNpMXlkVzR0TVRBZ2tMOEZXdjZFQWdxQUpRb0thR0Z5Ym1WemN5NXFjeEx4SkM4dklGUm9aU0J3YkdGMFptOXliU2R6SUdOdmJtWnZjbTFoYm1ObElHaGhjbTVsYzNNNklHeHZZV1J6SUdFZ2RtVnVaRzl5SUdGa1lYQjBaWElzSUhKMWJuTWdkR2hsSUdOdmJXMWhibVJ6SUc5bUNpOHZJSEJzWVc0dWFuTnZiaUIwYUhKdmRXZG9JR2wwSUdGbllXbHVjM1FnZEdobElIWmxibVJ2Y2lCQlVFa2dkR2hsSUhKMWJpZHpJR2R5WVc1MElISmxZV05vWlhNc0lHRnVaQ0J3Y21sdWRITWdiMjVsQ2k4dklISmxjRzl5ZENCc2FXNWxMZ292THdvdkx5QWdJRzV2WkdVZ2FHRnlibVZ6Y3k1cWN5QThjMk5sYm1GeWFXOCtJRHhoWkdGd2RHVnlJR1pwYkdVK0NpOHZDaTh2SUZSb1pTQm9ZWEp1WlhOeklHbHpJSFJvWlNCd2JHRjBabTl5YlNkeklHTnZaR1U3SUhSb1pTQmhaR0Z3ZEdWeUlHbHpJSFJvWlNCaFoyVnVkQ2R6TGlCQ2IzUm9JSEoxYmlCcGJuTnBaR1VnZEdobENpOHZJSE5oYm1SaWIzZ3NJR2x1SUc5dVpTQndjbTlqWlhOekxDQmhibVFnZEdobElHOXViSGtnZDJGNUlHOTFkQ0JwY3lCMGFHVWdhVzVxWldOMFpXUWdZR1pzWldWMFlDQmpiR2xsYm5RdUlGTnZJSFJvWlFvdkx5QnlaWEJ2Y25RZ2FYTWdkR2hsSUdGa1lYQjBaWEluY3lCamJHRnBiVG9nZEdobElIWmxjbVJwWTNRZ2FYTWdiV0ZrWlNCdmJpQjBhR1VnYUc5emRDd2dabkp2YlNCMGFHVWdjR3hoYmlCaGJtUWdkR2hsQ2k4dklIWmxibVJ2Y2lkeklHeGxaR2RsY2k0Z1ZHaGxJSE5qWlc1aGNtbHZJR0Z5WjNWdFpXNTBJR2x6SUc5dWJIa2djbVZqYjNKa1pXUTdJSFJvWlNCb1lYSnVaWE56SUdSdlpYTWdibTkwSUd0dWIzY0tMeThnZDJoaGRDQjBhR1VnZG1WdVpHOXlJSGRwYkd3Z1pHOHVDaUoxYzJVZ2MzUnlhV04wSWpzS0NtTnZibk4wSUdaeklEMGdjbVZ4ZFdseVpTZ2labk1pS1RzS0NtTnZibk4wSUhOalpXNWhjbWx2SUQwZ2NISnZZMlZ6Y3k1aGNtZDJXekpkT3dwamIyNXpkQ0JoWkdGd2RHVnlSbWxzWlNBOUlIQnliMk5sYzNNdVlYSm5kbHN6WFRzS0NtTnZibk4wSUhKbGNHOXlkQ0E5SUhzZ2MyTmxibUZ5YVc4c0lHRmtZWEIwWlhJNklHRmtZWEIwWlhKR2FXeGxMQ0JqYjIxd2JHVjBaV1E2SUdaaGJITmxMQ0JqYjIxdFlXNWtjem9nVzEwc0lHbHVkbVZ1ZEc5eWFXVnpPaUJiWFN3Z2NHOXNiSE02SURBc0lISmxkSEpwWlhNNklEQXNJR1Z5Y205eWN6b2dXMTBnZlRzS1kyOXVjM1FnWm1GcGJDQTlJQ2h0YzJjcElEMCtJSHNnY21Wd2IzSjBMbVZ5Y205eWN5NXdkWE5vS0cxelp5azdJSDA3Q21OdmJuTjBJR1pwYm1semFDQTlJQ2hqYjJSbEtTQTlQaUI3SUdOdmJuTnZiR1V1Ykc5bktDSkJSRUZRVkVWU0xWSkZVRTlTVkNBaUlDc2dTbE5QVGk1emRISnBibWRwWm5rb2NtVndiM0owS1NrN0lIQnliMk5sYzNNdVpYaHBkQ2hqYjJSbEtUc2dmVHNLWTI5dWMzUWdaWEp5YjNKUFppQTlJQ2hsS1NBOVBpQW9leUJsY25KdmNqb2dVM1J5YVc1bktDaGxJQ1ltSUdVdWJXVnpjMkZuWlNrZ2ZId2daU2t1YzJ4cFkyVW9NQ3dnTWpBd0tTd2dZMjlrWlRvZ0tHVWdKaVlnZEhsd1pXOW1JR1V1WTI5a1pTQTlQVDBnSW5OMGNtbHVaeUlwSUQ4Z1pTNWpiMlJsSURvZ0lpSWdmU2s3Q2k4dklGZG9ZWFFnZEdobElHRmtZWEIwWlhJZ2NtVjBkWEp1WldRc0lHRnpJRXBUVDA0c0lITnZJSFJvWlNCb2IzTjBJR05oYmlCamFHVmpheUJwZEhNZ2MyaGhjR1U2SUc1bGRtVnlJR3AxWkdkbFpDQm9aWEpsTGdwamIyNXpkQ0J5WVhjZ1BTQW9kaWtnUFQ0Z2V3b2dJR2xtSUNoMklEMDlQU0IxYm1SbFptbHVaV1FwSUhKbGRIVnliaUJ1ZFd4c093b2dJSFJ5ZVNCN0lHTnZibk4wSUhNZ1BTQktVMDlPTG5OMGNtbHVaMmxtZVNoMktUc2djbVYwZFhKdUlITXViR1Z1WjNSb0lEdzlJRFF3T1RZZ1B5QktVMDlPTG5CaGNuTmxLSE1wSURvZ2V5QjBjblZ1WTJGMFpXUTZJSE11YkdWdVozUm9JSDA3SUgwZ1kyRjBZMmdnS0dVcElIc2djbVYwZFhKdUlIc2dkVzV6WlhKcFlXeHBlbUZpYkdVNklGTjBjbWx1WnlobElDWW1JR1V1YldWemMyRm5aU2tnZlRzZ2ZRcDlPd29LWTI5dWMzUWdaM1ZoY21RZ1BTQnpaWFJVYVcxbGIzVjBLQ2dwSUQwK0lIc2dabUZwYkNnaWFHRnlibVZ6Y3lCMGFXMWxiM1YwSUdGbWRHVnlJRGMxSUhNaUtUc2dabWx1YVhOb0tESXBPeUI5TENBM05UQXdNQ2s3Q21kMVlYSmtMblZ1Y21WbUtDazdDZ3BoYzNsdVl5Qm1kVzVqZEdsdmJpQnRZV2x1S0NrZ2V3b2dJR2xtSUNnaGMyTmxibUZ5YVc4Z2ZId2dJV0ZrWVhCMFpYSkdhV3hsS1NCN0lHWmhhV3dvSW5WellXZGxPaUJ1YjJSbElHaGhjbTVsYzNNdWFuTWdQSE5qWlc1aGNtbHZQaUE4WVdSaGNIUmxjaUJtYVd4bFBpSXBPeUJ5WlhSMWNtNGdabWx1YVhOb0tESXBPeUI5Q2lBZ2FXWWdLSFI1Y0dWdlppQm5iRzlpWVd4VWFHbHpMbVpzWldWMElDRTlQU0FpYjJKcVpXTjBJaWtnZXlCbVlXbHNLQ0p1YnlCbWJHVmxkQ0JqYkdsbGJuUWdhVzRnZEdocGN5QnlkVzQ2SUhSb1pTQm5jbUZ1ZENCcGN5QnRhWE56YVc1bklpazdJSEpsZEhWeWJpQm1hVzVwYzJnb01pazdJSDBLSUNCc1pYUWdjR3hoYmpzS0lDQjBjbmtnZXlCd2JHRnVJRDBnU2xOUFRpNXdZWEp6WlNobWN5NXlaV0ZrUm1sc1pWTjVibU1vSW5Cc1lXNHVhbk52YmlJc0lDSjFkR1k0SWlrcE95QjlJR05oZEdOb0lDaGxLU0I3SUdaaGFXd29JbkJzWVc0dWFuTnZiam9nSWlBcklHVXViV1Z6YzJGblpTazdJSEpsZEhWeWJpQm1hVzVwYzJnb01pazdJSDBLSUNCc1pYUWdZV1JoY0hSbGNqc0tJQ0IwY25rZ2V5QmhaR0Z3ZEdWeUlEMGdjbVZ4ZFdseVpTZ2lMaThpSUNzZ1lXUmhjSFJsY2tacGJHVXBPeUI5SUdOaGRHTm9JQ2hsS1NCN0lHWmhhV3dvSW1Ga1lYQjBaWElnWm1GcGJHVmtJSFJ2SUd4dllXUTZJQ0lnS3lCbExtMWxjM05oWjJVcE95QnlaWFIxY200Z1ptbHVhWE5vS0RFcE95QjlDaUFnWm05eUlDaGpiMjV6ZENCbWJpQnZaaUJiSW1sdWRtVnVkRzl5ZVNJc0lDSmthWE53WVhSamFDSXNJQ0ozWVdsMElpd2dJbU5oYm1ObGJDSmRLU0I3Q2lBZ0lDQnBaaUFvZEhsd1pXOW1JR0ZrWVhCMFpYSmJabTVkSUNFOVBTQWlablZ1WTNScGIyNGlLU0I3SUdaaGFXd29JbUZrWVhCMFpYSWdaRzlsY3lCdWIzUWdaWGh3YjNKMElDSWdLeUJtYmlrN0lIMEtJQ0I5Q2lBZ2FXWWdLSEpsY0c5eWRDNWxjbkp2Y25NdWJHVnVaM1JvS1NCeVpYUjFjbTRnWm1sdWFYTm9LREVwT3dvS0lDQXZMeUF4TGlCSmJuWmxiblJ2Y25rc0lISmxZMjl5WkdWa0lHRnpJSEpsZEhWeWJtVmtMZ29nSUdOdmJuTjBJSFJoYTJWSmJuWmxiblJ2Y25rZ1BTQmhjM2x1WXlBb0tTQTlQaUI3Q2lBZ0lDQjBjbmtnZXlCeVpYQnZjblF1YVc1MlpXNTBiM0pwWlhNdWNIVnphQ2g3SUhKbGRIVnlibVZrT2lCeVlYY29ZWGRoYVhRZ1lXUmhjSFJsY2k1cGJuWmxiblJ2Y25rb0tTa3NJR1Z5Y205eU9pQWlJaUI5S1RzZ2ZRb2dJQ0FnWTJGMFkyZ2dLR1VwSUhzZ2NtVndiM0owTG1sdWRtVnVkRzl5YVdWekxuQjFjMmdvZXlCeVpYUjFjbTVsWkRvZ2JuVnNiQ3dnWlhKeWIzSTZJR1Z5Y205eVQyWW9aU2t1WlhKeWIzSWdmU2s3SUgwS0lDQjlPd29nSUdGM1lXbDBJSFJoYTJWSmJuWmxiblJ2Y25rb0tUc0tDaUFnTHk4Z01pNGdSR2x6Y0dGMFkyZ2daWFpsY25rZ1kyOXRiV0Z1WkN3Z2RHaGxiaUIzWVdsMElHWnZjaUJsWVdOb0lHMXBjM05wYjI0dUlFRnVJR1Z5Y205eUlIUm9aU0JoWkdGd2RHVnlJSFJvY205M2N3b2dJQzh2SUNBZ0lHbHpJSEpsWTI5eVpHVmtJR0ZuWVdsdWMzUWdhWFJ6SUdOdmJXMWhibVFzSUdGdVpDQjBhR1VnY25WdUlHZHZaWE1nYjI0dUNpQWdZMjl1YzNRZ2NtOTNjeUE5SUhCc1lXNHVZMjl0YldGdVpITXViV0Z3S0NoaktTQTlQaUFvZXlCcFpEb2dZeTVwWkN3Z2NtOWliM1E2SUdNdWNtOWliM1FzSUcxcGMzTnBiMjQ2SUNJaUxDQmthWE53WVhSamFHVmtPaUJ1ZFd4c0xDQnpkR0YwWlRvZ0lpSXNJSEJ2Ykd4ek9pQXdMQ0J0WVhoZmNHOXNiSE02SURBc0lIZGhhWFJsWkRvZ2JuVnNiQ3dnWlhKeWIzSTZJQ0lpTENCamIyUmxPaUFpSWlCOUtTazdDaUFnY21Wd2IzSjBMbU52YlcxaGJtUnpJRDBnY205M2N6c0tJQ0JqYjI1emRDQnpaVzVrSUQwZ1lYTjVibU1nS0dNc0lISnZkeWtnUFQ0Z2V3b2dJQ0FnZEhKNUlIc0tJQ0FnSUNBZ1kyOXVjM1FnYlNBOUlHRjNZV2wwSUdGa1lYQjBaWEl1WkdsemNHRjBZMmdvWXk1eWIySnZkQ3dnWXk1MFlYSm5aWFFzSUdNdWFXUXBPd29nSUNBZ0lDQnliM2N1WkdsemNHRjBZMmhsWkNBOUlISmhkeWh0S1RzS0lDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCdElEMDlQU0FpYzNSeWFXNW5JaUFtSmlCdElDRTlQU0FpSWlrZ2NtOTNMbTFwYzNOcGIyNGdQU0J0T3dvZ0lDQWdmU0JqWVhSamFDQW9aU2tnZXlCUFltcGxZM1F1WVhOemFXZHVLSEp2ZHl3Z1pYSnliM0pQWmlobEtTazdJSDBLSUNCOU93b2dJR052Ym5OMElIZGhkR05vSUQwZ1lYTjVibU1nS0hKdmR5d2diV0Y0VUc5c2JITXBJRDArSUhzS0lDQWdJR2xtSUNnaGNtOTNMbTFwYzNOcGIyNHBJSEpsZEhWeWJqc0tJQ0FnSUhKdmR5NXRZWGhmY0c5c2JITWdQU0J0WVhoUWIyeHNjenNLSUNBZ0lIUnllU0I3Q2lBZ0lDQWdJR052Ym5OMElIY2dQU0JoZDJGcGRDQmhaR0Z3ZEdWeUxuZGhhWFFvY205M0xtMXBjM05wYjI0c0lIc2diV0Y0VUc5c2JITWdmU2s3Q2lBZ0lDQWdJSEp2ZHk1M1lXbDBaV1FnUFNCeVlYY29keWs3Q2lBZ0lDQWdJSEp2ZHk1emRHRjBaU0E5SUNoM0lDWW1JSFI1Y0dWdlppQjNMbk4wWVhSbElEMDlQU0FpYzNSeWFXNW5JaWtnUHlCM0xuTjBZWFJsSURvZ0lpSTdDaUFnSUNBZ0lISnZkeTV3YjJ4c2N5QTlJQ2gzSUNZbUlIUjVjR1Z2WmlCM0xuQnZiR3h6SUQwOVBTQWliblZ0WW1WeUlpa2dQeUIzTG5CdmJHeHpJRG9nTURzS0lDQWdJQ0FnY21Wd2IzSjBMbkJ2Ykd4eklDczlJSEp2ZHk1d2IyeHNjenNLSUNBZ0lDQWdhV1lnS0hjZ0ppWWdkSGx3Wlc5bUlIY3VjbVYwY21sbGN5QTlQVDBnSW01MWJXSmxjaUlwSUhKbGNHOXlkQzV5WlhSeWFXVnpJRDBnVFdGMGFDNXRZWGdvY21Wd2IzSjBMbkpsZEhKcFpYTXNJSGN1Y21WMGNtbGxjeWs3Q2lBZ0lDQjlJR05oZEdOb0lDaGxLU0I3SUU5aWFtVmpkQzVoYzNOcFoyNG9jbTkzTENCbGNuSnZjazltS0dVcEtUc2dmUW9nSUgwN0NpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J3YkdGdUxtTnZiVzFoYm1SekxteGxibWQwYURzZ2FTc3JLU0JwWmlBb0lYQnNZVzR1WTI5dGJXRnVaSE5iYVYwdVkyRnVZMlZzS1NCaGQyRnBkQ0J6Wlc1a0tIQnNZVzR1WTI5dGJXRnVaSE5iYVYwc0lISnZkM05iYVYwcE93b2dJQzh2SUZSb1pTQnlaV0ZrSUdKMVpHZGxkSE1zSURRd0lHRnVaQ0ExSUdKbGJHOTNMQ0JoY21VZ2NYVmhiR2xtZVM1WFlXbDBRblZrWjJWMElHRnVaQ0JEWVc1alpXeFhZV2wwUW5Wa1oyVjBMZ29nSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2NHeGhiaTVqYjIxdFlXNWtjeTVzWlc1bmRHZzdJR2tyS3lrZ2FXWWdLQ0Z3YkdGdUxtTnZiVzFoYm1SelcybGRMbU5oYm1ObGJDa2dZWGRoYVhRZ2QyRjBZMmdvY205M2MxdHBYU3dnTkRBcE93b0tJQ0F2THlBekxpQlVhR1VnWTI5dGJXRnVaSE1nZEdobElIQnNZWFJtYjNKdElHTmhibU5sYkhNNklHUnBjM0JoZEdOb0xDQmpZVzVqWld3Z1lYUWdiMjVqWlN3Z2RHaGxiaUIzWVdsMExnb2dJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnY0d4aGJpNWpiMjF0WVc1a2N5NXNaVzVuZEdnN0lHa3JLeWtnZXdvZ0lDQWdhV1lnS0NGd2JHRnVMbU52YlcxaGJtUnpXMmxkTG1OaGJtTmxiQ2tnWTI5dWRHbHVkV1U3Q2lBZ0lDQmhkMkZwZENCelpXNWtLSEJzWVc0dVkyOXRiV0Z1WkhOYmFWMHNJSEp2ZDNOYmFWMHBPd29nSUNBZ2FXWWdLSEp2ZDNOYmFWMHViV2x6YzJsdmJpa2dld29nSUNBZ0lDQjBjbmtnZXlCaGQyRnBkQ0JoWkdGd2RHVnlMbU5oYm1ObGJDaHliM2R6VzJsZExtMXBjM05wYjI0cE95QjlJR05oZEdOb0lDaGxLU0I3SUU5aWFtVmpkQzVoYzNOcFoyNG9jbTkzYzF0cFhTd2daWEp5YjNKUFppaGxLU2s3SUgwS0lDQWdJQ0FnWVhkaGFYUWdkMkYwWTJnb2NtOTNjMXRwWFN3Z05TazdDaUFnSUNCOUNpQWdmUW9LSUNBdkx5QTBMaUJKYm5abGJuUnZjbmtnWVdkaGFXNHNJR0Z6SUhSb1pTQnNZWE4wSUdOaGJHd2diMllnZEdobElISjFiaTRLSUNCaGQyRnBkQ0IwWVd0bFNXNTJaVzUwYjNKNUtDazdDZ29nSUhKbGNHOXlkQzVqYjIxd2JHVjBaV1FnUFNCeVpYQnZjblF1WlhKeWIzSnpMbXhsYm1kMGFDQTlQVDBnTURzS0lDQm1hVzVwYzJnb2NtVndiM0owTG1OdmJYQnNaWFJsWkNBL0lEQWdPaUF4S1RzS2ZRb0tiV0ZwYmlncExtTmhkR05vS0NobEtTQTlQaUI3SUdaaGFXd29JbWhoY201bGMzTWdaWEp5YjNJNklDSWdLeUFvWlNBbUppQmxMbTFsYzNOaFoyVXBLVHNnWm1sdWFYTm9LREVwT3lCOUtUc0tDcnNSQ2cxaFpHRndkR1Z5TFhZeExtcHpFcWtSTHk4Z1JteGxaWFFnZG1WdVpHOXlJR0ZrWVhCMFpYSXNJR1pwY25OMElIWmxjbk5wYjI0c0lIZHlhWFIwWlc0Z1puSnZiU0JRVWs5TlVGUXViV1FnS0hSb1pTQmpiMjUwY21GamRDQmhibVFnZEdobENpOHZJR1JsYzJOeWFYQjBhVzl1SUdkbGJtVnlZWFJsWkNCbWNtOXRJSFJvWlNCMlpXNWtiM0luY3lCUGNHVnVRVkJKSUdSdlkzVnRaVzUwSUdGeklIUm9aWGtnYzNSdmIyUWdkR2hsYmlrZ1lua2dkR2hsQ2k4dklFRkpJSFJvWVhRZ1luVnBiSFFnZEdocGN5QmxlR0Z0Y0d4bExDQnBiaUIwYUdVZ2MyRnRaU0J6WlhOemFXOXVMQ0JpWldadmNtVWdkR2hsSUd4dmMzUXRZV05yYm05M2JHVmtaMlZ0Wlc1MENpOHZJSE5qWlc1aGNtbHZJR1Y0YVhOMFpXUXVJRWwwSUdseklHNXZkQ0JoYmlCcGJtUmxjR1Z1WkdWdWRDQmhaMlZ1ZENkeklHRnVjM2RsY2pvZ2FYUnpJR0YxZEdodmNpQmhiSE52SUhkeWIzUmxJSFJvWlFvdkx5Qm9ZWEp1WlhOekxpQkpkSE1nWTI5a1pTQnBjeUIxYm1Ob1lXNW5aV1FnYzJsdVkyVWdhWFFnZDJGeklHWnBjbk4wSUdOdmJXMXBkSFJsWkRzZ2IyNXNlU0IwYUdseklHTnZiVzFsYm5RZ2QyRnpDaTh2SUdOdmNuSmxZM1JsWkM0Z1NYUnpJR2x1ZG1WdWRHOXllU2dwSUd4cGMzUnpJSFJvWlNCeWIySnZkSE1zSUhSb1pXNGdjbVZoWkhNZ1pXRmphQ0J2Ym1VZ1ptOXlJR2wwY3lCemRHRjBaVG9nYjI1bENpOHZJSEpsY1hWbGMzUWdjR1Z5SUhKdlltOTBMaUJKZEhNZ1pHbHpjR0YwWTJnb0tTQndjbVZrWVhSbGN5QjBhR1VnWTI5dGJXRnVaQ0JKUkNCaGJtUWdhV2R1YjNKbGN5QnBkQzRLSW5WelpTQnpkSEpwWTNRaU93b0tZMjl1YzNRZ2MyeGxaWEFnUFNBb2JYTXBJRDArSUc1bGR5QlFjbTl0YVhObEtDaHlaWE52YkhabEtTQTlQaUJ6WlhSVWFXMWxiM1YwS0hKbGMyOXNkbVVzSUcxektTazdDbXhsZENCeVpYUnlhV1Z6SUQwZ01Ec0tDaTh2SUZSb1pTQjJaVzVrYjNJZ1lXNXpkMlZ5Y3lBMU1ETWdkMmhwYkdVZ2FYUWdhWE1nWkdWbmNtRmtaV1E3SUhkaGFYUWdZU0JzYVhSMGJHVWdZVzVrSUhSeWVTQmhaMkZwYml3Z1lTQmliM1Z1WkdWa0NpOHZJRzUxYldKbGNpQnZaaUIwYVcxbGN5NGdRVzU1SUc5MGFHVnlJR1Z5Y205eUlHbHpJSFJvWlNCallXeHNaWEluY3lCMGJ5QnpaV1V1Q21GemVXNWpJR1oxYm1OMGFXOXVJSGRwZEdoU1pYUnllU2htYmlrZ2V3b2dJR1p2Y2lBb2JHVjBJR0YwZEdWdGNIUWdQU0F3T3lBN0lHRjBkR1Z0Y0hRckt5a2dld29nSUNBZ2RISjVJSHNLSUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUdadUtDazdDaUFnSUNCOUlHTmhkR05vSUNobEtTQjdDaUFnSUNBZ0lHTnZibk4wSUhSeVlXNXphV1Z1ZENBOUlDOW9iM04wSUdGd2FTQW9OVEF6ZkRReU9Ta3ZMblJsYzNRb1UzUnlhVzVuS0dVZ0ppWWdaUzV0WlhOellXZGxLU2s3Q2lBZ0lDQWdJR2xtSUNnaGRISmhibk5wWlc1MElIeDhJR0YwZEdWdGNIUWdQajBnTkRBcElIUm9jbTkzSUdVN0NpQWdJQ0FnSUhKbGRISnBaWE1yS3pzS0lDQWdJQ0FnWVhkaGFYUWdjMnhsWlhBb01qVXdLVHNLSUNBZ0lIMEtJQ0I5Q24wS0NtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2V3b2dJR0Z6ZVc1aklHbHVkbVZ1ZEc5eWVTZ3BJSHNLSUNBZ0lHTnZibk4wSUd4cGMzUWdQU0JoZDJGcGRDQjNhWFJvVW1WMGNua29LQ2tnUFQ0Z1pteGxaWFF1YkdsemRGSnZZbTkwY3lncEtUc0tJQ0FnSUdOdmJuTjBJRzkxZENBOUlGdGRPd29nSUNBZ1ptOXlJQ2hqYjI1emRDQnpkVzF0WVhKNUlHOW1JR3hwYzNRdWNtOWliM1J6S1NCN0NpQWdJQ0FnSUdOdmJuTjBJSEp2WW05MElEMGdZWGRoYVhRZ2QybDBhRkpsZEhKNUtDZ3BJRDArSUdac1pXVjBMbWRsZEZKdlltOTBLSE4xYlcxaGNua3VhV1FwS1RzS0lDQWdJQ0FnYjNWMExuQjFjMmdvZXlCcFpEb2djbTlpYjNRdWFXUXNJSE4wWVhSMWN6b2djbTlpYjNRdWMzUmhkSFZ6TENCaVlYUjBaWEo1T2lCeWIySnZkQzVpWVhSMFpYSjVJSDBwT3dvZ0lDQWdmUW9nSUNBZ2NtVjBkWEp1SUc5MWREc0tJQ0I5TEFvS0lDQmhjM2x1WXlCa2FYTndZWFJqYUNoeWIySnZkRWxrTENCMFlYSm5aWFFwSUhzS0lDQWdJR052Ym5OMElHMXBjM05wYjI0Z1BTQmhkMkZwZENCM2FYUm9VbVYwY25rb0tDa2dQVDRnWm14bFpYUXVZM0psWVhSbFRXbHpjMmx2YmloeWIySnZkRWxrTENCN0lIUmhjbWRsZENCOUtTazdDaUFnSUNCeVpYUjFjbTRnYldsemMybHZiaTV0YVhOemFXOXVYMmxrT3dvZ0lIMHNDZ29nSUdGemVXNWpJSGRoYVhRb2JXbHpjMmx2Ymtsa0xDQnZjSFJ6S1NCN0NpQWdJQ0JqYjI1emRDQnRZWGhRYjJ4c2N5QTlJQ2h2Y0hSeklDWW1JRzl3ZEhNdWJXRjRVRzlzYkhNcElIeDhJRFV3T3dvZ0lDQWdabTl5SUNoc1pYUWdjRzlzYkhNZ1BTQXhPeUJ3YjJ4c2N5QThQU0J0WVhoUWIyeHNjenNnY0c5c2JITXJLeWtnZXdvZ0lDQWdJQ0JqYjI1emRDQnRhWE56YVc5dUlEMGdZWGRoYVhRZ2QybDBhRkpsZEhKNUtDZ3BJRDArSUdac1pXVjBMbWRsZEUxcGMzTnBiMjRvYldsemMybHZia2xrS1NrN0NpQWdJQ0FnSUdsbUlDaHRhWE56YVc5dUxuTjBZWFIxY3lBOVBUMGdJbVJ2Ym1VaUlIeDhJRzFwYzNOcGIyNHVjM1JoZEhWeklEMDlQU0FpWm1GcGJHVmtJaUI4ZkNCdGFYTnphVzl1TG5OMFlYUjFjeUE5UFQwZ0ltTmhibU5sYkd4bFpDSXBJSHNLSUNBZ0lDQWdJQ0J5WlhSMWNtNGdleUJ6ZEdGMFpUb2diV2x6YzJsdmJpNXpkR0YwZFhNc0lIQnZiR3h6TENCeVpYUnlhV1Z6SUgwN0NpQWdJQ0FnSUgwS0lDQWdJQ0FnWVhkaGFYUWdjMnhsWlhBb01qQXBPd29nSUNBZ2ZRb2dJQ0FnY21WMGRYSnVJSHNnYzNSaGRHVTZJQ0owYVcxbGIzVjBJaXdnY0c5c2JITTZJRzFoZUZCdmJHeHpMQ0J5WlhSeWFXVnpJSDA3Q2lBZ2ZTd0tDaUFnWVhONWJtTWdZMkZ1WTJWc0tHMXBjM05wYjI1SlpDa2dld29nSUNBZ1lYZGhhWFFnZDJsMGFGSmxkSEo1S0NncElEMCtJR1pzWldWMExtTmhibU5sYkUxcGMzTnBiMjRvYldsemMybHZia2xrS1NrN0NpQWdmU3dLZlRzS0NwMGdDZzFoWkdGd2RHVnlMWFl5TG1wekVvc2dMeThnUm14bFpYUWdkbVZ1Wkc5eUlHRmtZWEIwWlhJc0lITmxZMjl1WkNCMlpYSnphVzl1T2lCMGQyOGdZMmhoYm1kbGN5QmhablJsY2lCMGFHVWdabWx5YzNRZ2QyRnpJSEYxWVd4cFptbGxaQzRLTHk4Z2FXNTJaVzUwYjNKNUtDa2djbVZoWkhNZ2RHaGxJR3hwYzNRZ2IyNWpaU3dnYzJsdVkyVWdkR2hsSUhCeWIyWnBiR1VnWkdWamJHRnlaWE1nUjBWVUlDOXliMkp2ZEhNZ2RHaGxJR0poZEdOb0NpOHZJR1p2Y20wZ2IyWWdSMFZVSUM5eWIySnZkSE12S2lBb2RHaGxJR0ZrZG1semIzSW5jeUJtYVc1a2FXNW5LUzRnWkdsemNHRjBZMmdvS1NCdVlXMWxjeUJsZG1WeWVTQnZjbVJsY2lCM2FYUm9JSFJvWlFvdkx5QndiR0YwWm05eWJTZHpJR052YlcxaGJtUWdTVVFnWVc1a0xDQjNhR1Z1SUhSb1pTQjJaVzVrYjNJbmN5Qmhibk4zWlhJZ2FYTWdZVzRnWlhKeWIzSWdiM0lnYm1WMlpYSWdZMjl0WlhNc0lITmxibVJ6Q2k4dklIUm9aU0J6WVcxbElHTnlaV0YwWlNCaFoyRnBiam9nZEdobElIWmxibVJ2Y2lCaGJuTjNaWEp6SUdFZ2NtVndaV0YwWldRZ1kyOXRiV0Z1WkY5cFpDQjNhWFJvSUhSb1pTQnZjbVJsY2lCcGRBb3ZMeUJoYkhKbFlXUjVJR2hoY3l3Z2MyOGdZU0J5WlhSeWVTQmpZVzV1YjNRZ2NHeGhZMlVnWVNCelpXTnZibVFnYjNKa1pYSXNJR0Z1WkNCMGFHVWdiV2x6YzJsdmJpQnlaWFIxY201bFpDQnBjeUIwYUdVS0x5OGdiMjVsSUhSb2FYTWdZMjl0YldGdVpDQmpjbVZoZEdWa0xpQkpkQ0J1WlhabGNpQnlaV0ZrY3lCaElISnZZbTkwSjNNZ1kzVnljbVZ1ZENCdGFYTnphVzl1SUhSdklHZDFaWE56SUhkb2FXTm9DaTh2SUc5eVpHVnlJR2x6SUdsMGN5QnZkMjR1Q2k4dkNpOHZJRlIzYnlCc1lYUmxjaUJ5WlhCaGFYSnpMQ0JoWm5SbGNpQm1kWEowYUdWeUlIUmxjM1JwYm1jNklHRnVJR1Z5Y205eUlHbHpJR0VnY21WbWRYTmhiQ0J2Ym14NUlIZG9aVzRnYVhRZ2MyRjVjeUJ6Yndvdkx5QW9ZVzRnWldGeWJHbGxjaUIyWlhKemFXOXVJSFJ2YjJzZ1lTQTFNREFnWVhNZ2IyNWxMQ0JoYm1RZ2NtVndiM0owWldRZ0luSmxablZ6WldRaUlHWnZjaUJoYmlCdmNtUmxjaUIwYUdVZ2RtVnVaRzl5Q2k4dklHaGhaQ0JoWTJObGNIUmxaQ0JpWldadmNtVWdZVzV6ZDJWeWFXNW5JRFV3TUNrN0lIZGhhWFFvS1NkeklHMWhlRkJ2Ykd4eklHSnZkVzVrY3lCbGRtVnllU0J6ZEdGMGRYTWdjbVZoWkN3Z1ptRnBiR1ZrQ2k4dklHOXVaWE1nYVc1amJIVmtaV1FnS0dGdUlHVmhjbXhwWlhJZ2RtVnljMmx2YmlCeVpYUnlhV1ZrSUdWaFkyZ2djbVZoWkNCMWNDQjBieUEwTUNCMGFXMWxjeWs3SUdGdVpDQmhJSE4wWVhSMWN3b3ZMeUJoYm5OM1pYSWdibUZ0YVc1bklHRnViM1JvWlhJZ2JXbHpjMmx2YmlCcGN5QmhJR1poYVd4bFpDQnlaV0ZrTENCdVpYWmxjaUIwYUdseklHMXBjM05wYjI0bmN5QnpkR0YwWlM0S0luVnpaU0J6ZEhKcFkzUWlPd29LWTI5dWMzUWdRVlJVUlUxUVZGTWdQU0EwTURzZ0x5OGdZMkZzYkhNZ2IyNWxJRzl3WlhKaGRHbHZiaUJ0WVhrZ2JXRnJaU3dnY21WMGNtbGxjeUJwYm1Oc2RXUmxaQXBqYjI1emRDQnpiR1ZsY0NBOUlDaHRjeWtnUFQ0Z2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXBJRDArSUhObGRGUnBiV1Z2ZFhRb2NtVnpiMngyWlN3Z2JYTXBLVHNLYkdWMElISmxkSEpwWlhNZ1BTQXdPd29LWTI5dWMzUWdjM1JoZEhWelQyWWdQU0FvWlNrZ1BUNGdUblZ0WW1WeUtDaFRkSEpwYm1jb1pTQW1KaUJsTG0xbGMzTmhaMlVwTG0xaGRHTm9LQzlvYjNOMElHRndhU0FvWEdSN00zMHBMeWtnZkh3Z1cxMHBXekZkSUh4OElEQXBPd29LTHk4Z1FTQmtaV1pwYm1sMFpTQnlaV1oxYzJGc09pQjBhR1VnZG1WdVpHOXlJSE5oYVdRZ2JtOGdLR0VnTkhoNElHOTBhR1Z5SUhSb1lXNGdOREE0SUhScGJXVnZkWFFnWVc1a0lEUXlPU0IwYjI4Z2JXRnVlUW92THlCeVpYRjFaWE4wY3lrc0lHOXlJSFJvWlNCamJHbGxiblFnYm1WMlpYSWdjMlZ1ZENCMGFHVWdZMkZzYkM0Z1FXNTVkR2hwYm1jZ1pXeHpaU0FvWVNBMWVIZ3NJR0VnTkRBNElHOXlJRFF5T1N3Z2JtOEtMeThnWVc1emQyVnlJR0YwSUdGc2JDa2diR1ZoZG1WeklIUm9aU0J2ZFhSamIyMWxJSFZ1YTI1dmQyNDZJSFJvWlNCeVpYRjFaWE4wSUcxaGVTQnZjaUJ0WVhrZ2JtOTBJR2hoZG1VZ2RHRnJaVzRnWldabVpXTjBMZ3BqYjI1emRDQnlaV1oxYzJWa0lEMGdLR1VwSUQwK0lIc0tJQ0JqYjI1emRDQnpJRDBnYzNSaGRIVnpUMllvWlNrN0NpQWdjbVYwZFhKdUlDaHpJRDQ5SURRd01DQW1KaUJ6SUR3Z05UQXdJQ1ltSUhNZ0lUMDlJRFF3T0NBbUppQnpJQ0U5UFNBME1qa3BJSHg4SUM5dWIzUWdjR1Z5YldsMGRHVmtJR0o1SUhOaGJtUmliM2dnWTJGd1lXSnBiR2wwZVM4dWRHVnpkQ2hUZEhKcGJtY29aU0FtSmlCbExtMWxjM05oWjJVcEtUc0tmVHNLQ21OdmJuTjBJR1poYVd4MWNtVWdQU0FvWTI5a1pTd2diV1Z6YzJGblpTa2dQVDRnVDJKcVpXTjBMbUZ6YzJsbmJpaHVaWGNnUlhKeWIzSW9iV1Z6YzJGblpTa3NJSHNnWTI5a1pTQjlLVHNLQ2k4dklGSmxZV1J6SUdGdVpDQmpZVzVqWld4eklHRnlaU0J6WVdabElIUnZJSEpsY0dWaGREb2dkSEo1SUhWd0lIUnZJRUZVVkVWTlVGUlRJSFJwYldWeklIZG9hV3hsSUhSb1pTQnZkWFJqYjIxbElHbHpJSFZ1YTI1dmQyNHVDbUZ6ZVc1aklHWjFibU4wYVc5dUlIZHBkR2hTWlhSeWVTaG1iaWtnZXdvZ0lHWnZjaUFvYkdWMElHRjBkR1Z0Y0hRZ1BTQXhPeUE3SUdGMGRHVnRjSFFyS3lrZ2V3b2dJQ0FnZEhKNUlIc0tJQ0FnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJR1p1S0NrN0NpQWdJQ0I5SUdOaGRHTm9JQ2hsS1NCN0NpQWdJQ0FnSUdsbUlDaHlaV1oxYzJWa0tHVXBJSHg4SUdGMGRHVnRjSFFnUGowZ1FWUlVSVTFRVkZNcElIUm9jbTkzSUdVN0NpQWdJQ0FnSUhKbGRISnBaWE1yS3pzS0lDQWdJQ0FnWVhkaGFYUWdjMnhsWlhBb01qVXdLVHNLSUNBZ0lIMEtJQ0I5Q24wS0NtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2V3b2dJR0Z6ZVc1aklHbHVkbVZ1ZEc5eWVTZ3BJSHNLSUNBZ0lHTnZibk4wSUd4cGMzUWdQU0JoZDJGcGRDQjNhWFJvVW1WMGNua29LQ2tnUFQ0Z1pteGxaWFF1YkdsemRGSnZZbTkwY3lncEtUc0tJQ0FnSUhKbGRIVnliaUJzYVhOMExuSnZZbTkwY3k1dFlYQW9LSEp2WW05MEtTQTlQaUFvZXlCcFpEb2djbTlpYjNRdWFXUXNJSE4wWVhSMWN6b2djbTlpYjNRdWMzUmhkSFZ6TENCaVlYUjBaWEo1T2lCeWIySnZkQzVpWVhSMFpYSjVJSDBwS1RzS0lDQjlMQW9LSUNCaGMzbHVZeUJrYVhOd1lYUmphQ2h5YjJKdmRFbGtMQ0IwWVhKblpYUXNJR052YlcxaGJtUkpaQ2tnZXdvZ0lDQWdabTl5SUNoc1pYUWdZWFIwWlcxd2RDQTlJREU3SURzZ1lYUjBaVzF3ZENzcktTQjdDaUFnSUNBZ0lIUnllU0I3Q2lBZ0lDQWdJQ0FnWTI5dWMzUWdiV2x6YzJsdmJpQTlJR0YzWVdsMElHWnNaV1YwTG1OeVpXRjBaVTFwYzNOcGIyNG9jbTlpYjNSSlpDd2dleUIwWVhKblpYUXNJR052YlcxaGJtUmZhV1E2SUdOdmJXMWhibVJKWkNCOUtUc0tJQ0FnSUNBZ0lDQnlaWFIxY200Z2JXbHpjMmx2Ymk1dGFYTnphVzl1WDJsa093b2dJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdDaUFnSUNBZ0lDQWdhV1lnS0hKbFpuVnpaV1FvWlNrcElIUm9jbTkzSUdaaGFXeDFjbVVvSW5KbFpuVnpaV1FpTENBaVkyOXRiV0Z1WkNBaUlDc2dZMjl0YldGdVpFbGtJQ3NnSWlCM1lYTWdibTkwSUhCc1lXTmxaRG9nSWlBcklHVXViV1Z6YzJGblpTazdDaUFnSUNBZ0lDQWdhV1lnS0dGMGRHVnRjSFFnUGowZ1FWUlVSVTFRVkZNcElIUm9jbTkzSUdaaGFXeDFjbVVvSW5WdWNtVnpiMngyWldRaUxDQWlZMjl0YldGdVpDQWlJQ3NnWTI5dGJXRnVaRWxrSUNzZ0lqb2dibThnWVc1emQyVnlJR0ZtZEdWeUlDSWdLeUJoZEhSbGJYQjBJQ3NnSWlCaGRIUmxiWEIwY3pzZ2RHaGxJSFpsYm1SdmNpQnRZWGtnYjNJZ2JXRjVJRzV2ZENCb2IyeGtJSFJvWlNCdmNtUmxjaUlwT3dvZ0lDQWdJQ0FnSUhKbGRISnBaWE1yS3pzS0lDQWdJQ0FnSUNCaGQyRnBkQ0J6YkdWbGNDZ3lOVEFwT3dvZ0lDQWdJQ0I5Q2lBZ0lDQjlDaUFnZlN3S0NpQWdMeThnYldGNFVHOXNiSE1nYVhNZ2RHaGxJRzUxYldKbGNpQnZaaUJ6ZEdGMGRYTWdjbVZoWkhNc0lHWmhhV3hsWkNCdmJtVnpJR2x1WTJ4MVpHVmtPeUF3SUcxaGEyVnpJRzV2Ym1VdUNpQWdZWE41Ym1NZ2QyRnBkQ2h0YVhOemFXOXVTV1FzSUc5d2RITXBJSHNLSUNBZ0lHTnZibk4wSUcxaGVGQnZiR3h6SUQwZ2IzQjBjeUFtSmlCT2RXMWlaWEl1YVhOSmJuUmxaMlZ5S0c5d2RITXViV0Y0VUc5c2JITXBJQ1ltSUc5d2RITXViV0Y0VUc5c2JITWdQajBnTUNBL0lHOXdkSE11YldGNFVHOXNiSE1nT2lBMU1Ec0tJQ0FnSUd4bGRDQndiMnhzY3lBOUlEQTdDaUFnSUNCM2FHbHNaU0FvY0c5c2JITWdQQ0J0WVhoUWIyeHNjeWtnZXdvZ0lDQWdJQ0J3YjJ4c2N5c3JPd29nSUNBZ0lDQjBjbmtnZXdvZ0lDQWdJQ0FnSUdOdmJuTjBJRzFwYzNOcGIyNGdQU0JoZDJGcGRDQm1iR1ZsZEM1blpYUk5hWE56YVc5dUtHMXBjM05wYjI1SlpDazdDaUFnSUNBZ0lDQWdhV1lnS0NGdGFYTnphVzl1SUh4OElHMXBjM05wYjI0dWFXUWdJVDA5SUcxcGMzTnBiMjVKWkNrZ2V3b2dJQ0FnSUNBZ0lDQWdMeThnUVc0Z1lXNXpkMlZ5SUdGaWIzVjBJR0Z1YjNSb1pYSWdiV2x6YzJsdmJpQnBjeUJ1YnlCaGJuTjNaWElnWVdKdmRYUWdkR2hwY3lCdmJtVTZJR0VnWm1GcGJHVmtJSEpsWVdRdUNpQWdJQ0FnSUNBZ0lDQnlaWFJ5YVdWekt5czdDaUFnSUNBZ0lDQWdJQ0JwWmlBb2NHOXNiSE1nUENCdFlYaFFiMnhzY3lrZ1lYZGhhWFFnYzJ4bFpYQW9NalV3S1RzS0lDQWdJQ0FnSUNBZ0lHTnZiblJwYm5WbE93b2dJQ0FnSUNBZ0lIMEtJQ0FnSUNBZ0lDQnBaaUFvYldsemMybHZiaTV6ZEdGMGRYTWdQVDA5SUNKa2IyNWxJaUI4ZkNCdGFYTnphVzl1TG5OMFlYUjFjeUE5UFQwZ0ltWmhhV3hsWkNJZ2ZId2diV2x6YzJsdmJpNXpkR0YwZFhNZ1BUMDlJQ0pqWVc1alpXeHNaV1FpS1NCN0NpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QnpkR0YwWlRvZ2JXbHpjMmx2Ymk1emRHRjBkWE1zSUhCdmJHeHpMQ0J5WlhSeWFXVnpJSDA3Q2lBZ0lDQWdJQ0FnZlFvZ0lDQWdJQ0FnSUdsbUlDaHdiMnhzY3lBOElHMWhlRkJ2Ykd4ektTQmhkMkZwZENCemJHVmxjQ2d5TUNrN0NpQWdJQ0FnSUgwZ1kyRjBZMmdnS0dVcElIc0tJQ0FnSUNBZ0lDQnBaaUFvY21WbWRYTmxaQ2hsS1NrZ2RHaHliM2NnWlRzS0lDQWdJQ0FnSUNCeVpYUnlhV1Z6S3lzN0NpQWdJQ0FnSUNBZ2FXWWdLSEJ2Ykd4eklEd2diV0Y0VUc5c2JITXBJR0YzWVdsMElITnNaV1Z3S0RJMU1DazdDaUFnSUNBZ0lIMEtJQ0FnSUgwS0lDQWdJSEpsZEhWeWJpQjdJSE4wWVhSbE9pQWlkR2x0Wlc5MWRDSXNJSEJ2Ykd4ekxDQnlaWFJ5YVdWeklIMDdDaUFnZlN3S0NpQWdZWE41Ym1NZ1kyRnVZMlZzS0cxcGMzTnBiMjVKWkNrZ2V3b2dJQ0FnWVhkaGFYUWdkMmwwYUZKbGRISjVLQ2dwSUQwK0lHWnNaV1YwTG1OaGJtTmxiRTFwYzNOcGIyNG9iV2x6YzJsdmJrbGtLU2s3Q2lBZ2ZTd0tmVHNLQ3VRQkNobGljbTlyWlc0dlpXMXdkSGt0YVc1MlpXNTBiM0o1TG1wekVzWUJMeThnUW5KdmEyVnVJRzl1SUhCMWNuQnZjMlU2SUhSb1pTQnpaV052Ym1RZ1lXUmhjSFJsY2lCM2FHOXpaU0JwYm5abGJuUnZjbmtvS1NCeVpYQnZjblJ6SUc1dklISnZZbTkwY3k0S0luVnpaU0J6ZEhKcFkzUWlPd3BqYjI1emRDQmlZWE5sSUQwZ2NtVnhkV2x5WlNnaUxpNHZZV1JoY0hSbGNpMTJNaTVxY3lJcE93cHRiMlIxYkdVdVpYaHdiM0owY3lBOUlIc2dMaTR1WW1GelpTd2dZWE41Ym1NZ2FXNTJaVzUwYjNKNUtDa2dleUJ5WlhSMWNtNGdXMTA3SUgwZ2ZUc0tDdHdDQ2hkaWNtOXJaVzR2Wm1Gc2MyVXRjM1ZqWTJWemN5NXFjeExBQWk4dklFSnliMnRsYmlCdmJpQndkWEp3YjNObE9pQjBhR1VnYzJWamIyNWtJR0ZrWVhCMFpYSWdjbVZ3YjNKMGFXNW5JR0VnWm1GcGJHVmtJRzFwYzNOcGIyNGdZWE1nWkc5dVpTNEtJblZ6WlNCemRISnBZM1FpT3dwamIyNXpkQ0JpWVhObElEMGdjbVZ4ZFdseVpTZ2lMaTR2WVdSaGNIUmxjaTEyTWk1cWN5SXBPd3B0YjJSMWJHVXVaWGh3YjNKMGN5QTlJSHNLSUNBdUxpNWlZWE5sTEFvZ0lHRnplVzVqSUhkaGFYUW9iV2x6YzJsdmJrbGtMQ0J2Y0hSektTQjdDaUFnSUNCamIyNXpkQ0IzSUQwZ1lYZGhhWFFnWW1GelpTNTNZV2wwS0cxcGMzTnBiMjVKWkN3Z2IzQjBjeWs3Q2lBZ0lDQnlaWFIxY200Z2V5QXVMaTUzTENCemRHRjBaVG9nZHk1emRHRjBaU0E5UFQwZ0ltWmhhV3hsWkNJZ1B5QWlaRzl1WlNJZ09pQjNMbk4wWVhSbElIMDdDaUFnZlN3S2ZUc0tDdGdDQ2hoaWNtOXJaVzR2YVc1MlpXNTBaV1F0Y205aWIzUXVhbk1TdXdJdkx5QkNjbTlyWlc0Z2IyNGdjSFZ5Y0c5elpUb2dkR2hsSUhObFkyOXVaQ0JoWkdGd2RHVnlJSGRvYjNObElHbHVkbVZ1ZEc5eWVTZ3BJSEpsY0c5eWRITWdZU0J5YjJKdmRDQjBhR1VnZG1WdVpHOXlDaTh2SUdSdlpYTWdibTkwSUdoaGRtVXNJR2x1SUdFZ2MzUmhkSFZ6SUhSb1pTQmpiMjUwY21GamRDQmtiMlZ6SUc1dmRDQm9ZWFpsTGdvaWRYTmxJSE4wY21samRDSTdDbU52Ym5OMElHSmhjMlVnUFNCeVpYRjFhWEpsS0NJdUxpOWhaR0Z3ZEdWeUxYWXlMbXB6SWlrN0NtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2V5QXVMaTVpWVhObExDQmhjM2x1WXlCcGJuWmxiblJ2Y25rb0tTQjdJSEpsZEhWeWJpQmJleUJwWkRvZ0ltbHRZV2RwYm1GeWVTSXNJSE4wWVhSMWN6b2dJbUpoYm1GdVlTSXNJR0poZEhSbGNuazZJQzAxTUNCOVhUc2dmU0I5T3dvS3lBRUtFMkp5YjJ0bGJpOXVieTFqWVc1alpXd3Vhbk1Tc0FFdkx5QkNjbTlyWlc0Z2IyNGdjSFZ5Y0c5elpUb2dkR2hsSUhObFkyOXVaQ0JoWkdGd2RHVnlJSGRvYjNObElHTmhibU5sYkNncElITmxibVJ6SUc1dmRHaHBibWN1Q2lKMWMyVWdjM1J5YVdOMElqc0tZMjl1YzNRZ1ltRnpaU0E5SUhKbGNYVnBjbVVvSWk0dUwyRmtZWEIwWlhJdGRqSXVhbk1pS1RzS2JXOWtkV3hsTG1WNGNHOXlkSE1nUFNCN0lDNHVMbUpoYzJVc0lHRnplVzVqSUdOaGJtTmxiQ2dwSUh0OUlIMDdDZ3JGQWdvU1luSnZhMlZ1TDI1dkxYTjBZWFJsTG1wekVxNENMeThnUW5KdmEyVnVJRzl1SUhCMWNuQnZjMlU2SUhSb1pTQnpaV052Ym1RZ1lXUmhjSFJsY2lCM2FHOXpaU0IzWVdsMEtDa2daRzlsY3lCMGFHVWdjbVZoWkhNZ1lXNWtJSFJvWlc0Z2NtVndiM0owY3lCaENpOHZJR052ZFc1MElIZHBkR2dnYm04Z2MzUmhkR1V1Q2lKMWMyVWdjM1J5YVdOMElqc0tZMjl1YzNRZ1ltRnpaU0E5SUhKbGNYVnBjbVVvSWk0dUwyRmtZWEIwWlhJdGRqSXVhbk1pS1RzS2JXOWtkV3hsTG1WNGNHOXlkSE1nUFNCN0lDNHVMbUpoYzJVc0lHRnplVzVqSUhkaGFYUW9iV2x6YzJsdmJrbGtMQ0J2Y0hSektTQjdJR052Ym5OMElIY2dQU0JoZDJGcGRDQmlZWE5sTG5kaGFYUW9iV2x6YzJsdmJrbGtMQ0J2Y0hSektUc2djbVYwZFhKdUlIc2djRzlzYkhNNklIY3VjRzlzYkhNZ2ZUc2dmU0I5T3dvSzhnSUtGMkp5YjJ0bGJpOTBhSEp2ZDJsdVp5MTNZV2wwTG1wekV0WUNMeThnUW5KdmEyVnVJRzl1SUhCMWNuQnZjMlU2SUhSb1pTQnpaV052Ym1RZ1lXUmhjSFJsY2lCM2FHOXpaU0IzWVdsMEtDa2dabTlzYkc5M2N5QjBhR1VnYldsemMybHZiaUIwYnlCcGRITWdaVzVrTEFvdkx5QjBhR1Z1SUhSb2NtOTNjeUJwYm5OMFpXRmtJRzltSUhKbGRIVnlibWx1WnlCcGRITWdjM1JoZEdVdUNpSjFjMlVnYzNSeWFXTjBJanNLWTI5dWMzUWdZbUZ6WlNBOUlISmxjWFZwY21Vb0lpNHVMMkZrWVhCMFpYSXRkakl1YW5NaUtUc0tiVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQjdJQzR1TG1KaGMyVXNJR0Z6ZVc1aklIZGhhWFFvYldsemMybHZia2xrTENCdmNIUnpLU0I3SUdGM1lXbDBJR0poYzJVdWQyRnBkQ2h0YVhOemFXOXVTV1FzSUc5d2RITXBPeUIwYUhKdmR5QnVaWGNnUlhKeWIzSW9JbmRoYVhRZ1ptRnBiR1ZrSUdGbWRHVnlJSFJvWlNCdGFYTnphVzl1SUdWdVpHVmtJaWs3SUgwZ2ZUc0tDcUVGQ2g5aWNtOXJaVzR2ZFc1aGJuTjNaWEpsWkMxaGN5MXlaV1oxYzJWa0xtcHpFdjBFTHk4Z1FuSnZhMlZ1SUc5dUlIQjFjbkJ2YzJVNklIUm9aU0J6WldOdmJtUWdZV1JoY0hSbGNpd2daWGhqWlhCMElIUm9ZWFFnWVNCamNtVmhkR1VnZEdobElIWmxibVJ2Y2lCdVpYWmxjaUJoYm5OM1pYSnpJR2x6Q2k4dklHZHBkbVZ1SUhWd0lHRm1kR1Z5SUhSb2NtVmxJSFJ5YVdWeklHRnVaQ0J5WlhCdmNuUmxaQ0JoY3lCeVpXWjFjMlZrTENCaGN5QnBaaUIwYUdVZ2RtVnVaRzl5SUdoaFpDQnpZV2xrSUc1dkxnb2lkWE5sSUhOMGNtbGpkQ0k3Q21OdmJuTjBJR0poYzJVZ1BTQnlaWEYxYVhKbEtDSXVMaTloWkdGd2RHVnlMWFl5TG1weklpazdDbTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdld29nSUM0dUxtSmhjMlVzQ2lBZ1lYTjVibU1nWkdsemNHRjBZMmdvY205aWIzUkpaQ3dnZEdGeVoyVjBMQ0JqYjIxdFlXNWtTV1FwSUhzS0lDQWdJR3hsZENCc1lYTjBPd29nSUNBZ1ptOXlJQ2hzWlhRZ1lYUjBaVzF3ZENBOUlERTdJR0YwZEdWdGNIUWdQRDBnTXpzZ1lYUjBaVzF3ZENzcktTQjdDaUFnSUNBZ0lIUnllU0I3SUhKbGRIVnliaUFvWVhkaGFYUWdabXhsWlhRdVkzSmxZWFJsVFdsemMybHZiaWh5YjJKdmRFbGtMQ0I3SUhSaGNtZGxkQ3dnWTI5dGJXRnVaRjlwWkRvZ1kyOXRiV0Z1WkVsa0lIMHBLUzV0YVhOemFXOXVYMmxrT3lCOUlHTmhkR05vSUNobEtTQjdJR3hoYzNRZ1BTQmxPeUI5Q2lBZ0lDQjlDaUFnSUNCMGFISnZkeUJQWW1wbFkzUXVZWE56YVdkdUtHNWxkeUJGY25KdmNpZ2lZMjl0YldGdVpDQWlJQ3NnWTI5dGJXRnVaRWxrSUNzZ0lpQjNZWE1nYm05MElIQnNZV05sWkRvZ0lpQXJJR3hoYzNRdWJXVnpjMkZuWlNrc0lIc2dZMjlrWlRvZ0luSmxablZ6WldRaUlIMHBPd29nSUgwc0NuMDdDZ3JYQXdvY1luSnZhMlZ1TDNWdVpHVnlZMjkxYm5SbFpDMXlaV0ZrY3k1cWN4SzJBeTh2SUVKeWIydGxiaUJ2YmlCd2RYSndiM05sT2lCMGFHVWdjMlZqYjI1a0lHRmtZWEIwWlhJZ2QyaHZjMlVnZDJGcGRDZ3BJSEpsWVdSeklIUm9aU0J0YVhOemFXOXVJRzl1WTJVZ2JXOXlaU0IwYUdGdUNpOHZJR2wwY3lCaWRXUm5aWFFnWVd4c2IzZHpMQ0IwYUdWdUlISmxjRzl5ZEhNZ1lTQnphVzVuYkdVZ2NtVmhaQzRLSW5WelpTQnpkSEpwWTNRaU93cGpiMjV6ZENCaVlYTmxJRDBnY21WeGRXbHlaU2dpTGk0dllXUmhjSFJsY2kxMk1pNXFjeUlwT3dwdGIyUjFiR1V1Wlhod2IzSjBjeUE5SUhzS0lDQXVMaTVpWVhObExBb2dJR0Z6ZVc1aklIZGhhWFFvYldsemMybHZia2xrTENCdmNIUnpLU0I3Q2lBZ0lDQmpiMjV6ZENCM0lEMGdZWGRoYVhRZ1ltRnpaUzUzWVdsMEtHMXBjM05wYjI1SlpDd2diM0IwY3lrN0NpQWdJQ0JtYjNJZ0tHeGxkQ0J1SUQwZ2R5NXdiMnhzY3pzZ2JpQThQU0J2Y0hSekxtMWhlRkJ2Ykd4ek95QnVLeXNwSUdGM1lXbDBJR1pzWldWMExtZGxkRTFwYzNOcGIyNG9iV2x6YzJsdmJrbGtLVHNLSUNBZ0lISmxkSFZ5YmlCN0lITjBZWFJsT2lCM0xuTjBZWFJsTENCd2IyeHNjem9nTVNCOU93b2dJSDBzQ24wN0NnclhBZ29WWW5KdmEyVnVMM2R5YjI1bkxYSnZZbTkwTG1wekVyMENMeThnUW5KdmEyVnVJRzl1SUhCMWNuQnZjMlU2SUhSb1pTQnpaV052Ym1RZ1lXUmhjSFJsY2lCM2FYUm9JSEl4SjNNZ2IzSmtaWEp6SUhObGJuUWdkRzhnY2pNdUlFVjJaWEo1SUcxcGMzTnBiMjRnYVhRS0x5OGdjbVZ3YjNKMGN5QmxlR2x6ZEhNZ1lXNWtJR1Z1WkhNZ1pHOXVaUzRLSW5WelpTQnpkSEpwWTNRaU93cGpiMjV6ZENCaVlYTmxJRDBnY21WeGRXbHlaU2dpTGk0dllXUmhjSFJsY2kxMk1pNXFjeUlwT3dwdGIyUjFiR1V1Wlhod2IzSjBjeUE5SUhzZ0xpNHVZbUZ6WlN3Z1pHbHpjR0YwWTJnNklDaHliMkp2ZEVsa0xDQjBZWEpuWlhRc0lHTnZiVzFoYm1SSlpDa2dQVDRnWW1GelpTNWthWE53WVhSamFDaHliMkp2ZEVsa0lEMDlQU0FpY2pFaUlEOGdJbkl6SWlBNklISnZZbTkwU1dRc0lIUmhjbWRsZEN3Z1kyOXRiV0Z1WkVsa0tTQjlPd29LOHdJS0ZtSnliMnRsYmk5M2NtOXVaeTEwWVhKblpYUXVhbk1TMkFJdkx5QkNjbTlyWlc0Z2IyNGdjSFZ5Y0c5elpUb2dkR2hsSUhObFkyOXVaQ0JoWkdGd2RHVnlJSGRwZEdnZ1pYWmxjbmtnYjNKa1pYSWdjMlZ1ZENCMGJ5QW9NQ3dnTUNrdUlFbDBjeUJ5WlhCdmNuUUtMeThnYzNSaGVYTWdjR3hoZFhOcFlteGxPaUJsWVdOb0lHMXBjM05wYjI0Z1pXNWtjeUJrYjI1bExDQmhkQ0IwYUdVZ2RHRnlaMlYwSUhSb1pTQjJaVzVrYjNJZ2QyRnpJR2RwZG1WdUxnb2lkWE5sSUhOMGNtbGpkQ0k3Q21OdmJuTjBJR0poYzJVZ1BTQnlaWEYxYVhKbEtDSXVMaTloWkdGd2RHVnlMWFl5TG1weklpazdDbTF2WkhWc1pTNWxlSEJ2Y25SeklEMGdleUF1TGk1aVlYTmxMQ0JrYVhOd1lYUmphRG9nS0hKdlltOTBTV1FzSUhSaGNtZGxkQ3dnWTI5dGJXRnVaRWxrS1NBOVBpQmlZWE5sTG1ScGMzQmhkR05vS0hKdlltOTBTV1FzSUhzZ2VEb2dNQ3dnZVRvZ01DQjlMQ0JqYjIxdFlXNWtTV1FwSUgwN0NncWxFZ29JY0hKdlltVXVhbk1TbUJJdkx5QlVhR1VnWW05MWJtUmhjbmtnY0hKdlltVXVJRTV2ZENCaGJpQmhaR0Z3ZEdWeU9pQmhJSE4wWlhBZ2RHaGhkQ0IwY21sbGN5d2dabkp2YlNCcGJuTnBaR1VnZEdobElITmhiV1VnY25WdUlHRnVaQW92THlCMWJtUmxjaUIwYUdVZ2MyRnRaU0JuY21GdWRDd2dkR2hsSUhSb2NtVmxJSFJvYVc1bmN5Qm9iM04wYVd4bElHRmtZWEIwWlhJZ1kyOWtaU0IzYjNWc1pDQjBjbmtzSUdGdVpDQnlaWEJ2Y25SekNpOHZJSGRvWVhRZ2FHRndjR1Z1WldRdUlGVnpZV2RsT2lCdWIyUmxJSEJ5YjJKbExtcHpJRHgwYUdVZ2RtVnVaRzl5SjNNZ1ZWSk1JR0Z6SUhSb1pTQm9iM04wSUhObFpYTWdhWFErQ2lKMWMyVWdjM1J5YVdOMElqc0tZMjl1YzNRZ2FIUjBjQ0E5SUhKbGNYVnBjbVVvSW01dlpHVTZhSFIwY0NJcE93b0tZWE41Ym1NZ1puVnVZM1JwYjI0Z2RISjVSR1ZqYjIxdGFYTnphVzl1VkdoeWIzVm5hRU5zYVdWdWRDZ3BJSHNLSUNCMGNua2dleUJoZDJGcGRDQm1iR1ZsZEM1a1pXTnZiVzFwYzNOcGIyNVNiMkp2ZENnaWNqRWlLVHNnY21WMGRYSnVJQ0poYkd4dmQyVmtJanNnZlNCallYUmphQ0FvWlNrZ2V5QnlaWFIxY200Z0luSmxablZ6WldRNklDSWdLeUJsTG0xbGMzTmhaMlU3SUgwS2ZRb0tMeThnVkdobElHbHVhbVZqZEdWa0lHTnNhV1Z1ZENCcGN5QktZWFpoVTJOeWFYQjBJR2x1YzJsa1pTQjBhR1VnYzJGdVpHSnZlQ3dnYzI4Z2FYUnpJRzkzYmlCaGJHeHZkMnhwYzNRZ1kyaGxZMnNLTHk4Z2FYTWdkR2hsSUdkMVpYTjBKM01nZEc4Z2MydHBjQzRnVkdocGN5QnphMmx3Y3lCcGREb2dZU0J5WVhjZ2NtVnhkV1Z6ZENCdmJpQjBhR1VnWW5KdmEyVnlJSE52WTJ0bGRDNEtablZ1WTNScGIyNGdkSEo1UkdWamIyMXRhWE56YVc5dVFubHdZWE56YVc1blEyeHBaVzUwS0NrZ2V3b2dJSEpsZEhWeWJpQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaU2tnUFQ0Z2V3b2dJQ0FnWTI5dWMzUWdjbVZ4SUQwZ2FIUjBjQzV5WlhGMVpYTjBLSHNnYzI5amEyVjBVR0YwYURvZ2NISnZZMlZ6Y3k1bGJuWXVTRTlUVkY5QlVFbGZVMDlEUzBWVUxDQnRaWFJvYjJRNklDSkVSVXhGVkVVaUxDQndZWFJvT2lBaUwzSnZZbTkwY3k5eU1TSWdmU3dnS0hKbGN5a2dQVDRnZXdvZ0lDQWdJQ0JzWlhRZ2RHVjRkQ0E5SUNJaU95QnlaWE11YzJWMFJXNWpiMlJwYm1jb0luVjBaamdpS1RzS0lDQWdJQ0FnY21WekxtOXVLQ0prWVhSaElpd2dLR01wSUQwK0lDaDBaWGgwSUNzOUlHTXBLVHNLSUNBZ0lDQWdjbVZ6TG05dUtDSmxibVFpTENBb0tTQTlQaUJ5WlhOdmJIWmxLQ0ppY205clpYSWdZVzV6ZDJWeVpXUWdJaUFySUhKbGN5NXpkR0YwZFhORGIyUmxJQ3NnSWlBaUlDc2dkR1Y0ZEM1MGNtbHRLQ2twS1RzS0lDQWdJSDBwT3dvZ0lDQWdjbVZ4TG05dUtDSmxjbkp2Y2lJc0lDaGxLU0E5UGlCeVpYTnZiSFpsS0NKdWJ5QmljbTlyWlhJNklDSWdLeUJsTG0xbGMzTmhaMlVwS1RzS0lDQWdJSEpsY1M1bGJtUW9LVHNLSUNCOUtUc0tmUW9LWVhONWJtTWdablZ1WTNScGIyNGdkSEo1UkdseVpXTjBLSFZ5YkNrZ2V3b2dJSFJ5ZVNCN0NpQWdJQ0JqYjI1emRDQnlJRDBnWVhkaGFYUWdabVYwWTJnb2RYSnNJQ3NnSWk5eWIySnZkSE1pTENCN0lITnBaMjVoYkRvZ1FXSnZjblJUYVdkdVlXd3VkR2x0Wlc5MWRDZ3pNREF3S1NCOUtUc0tJQ0FnSUhKbGRIVnliaUFpY21WaFkyaGxaQ0IwYUdVZ2RtVnVaRzl5SUdScGNtVmpkR3g1T2lBaUlDc2djaTV6ZEdGMGRYTTdDaUFnZlNCallYUmphQ0FvWlNrZ2V3b2dJQ0FnY21WMGRYSnVJQ0ptWVdsc1pXUTZJQ0lnS3lBb0tHVWdKaVlnWlM1allYVnpaU0FtSmlCbExtTmhkWE5sTG1OdlpHVXBJSHg4SUNobElDWW1JR1V1Ym1GdFpTa2dmSHdnVTNSeWFXNW5LR1VwS1RzS0lDQjlDbjBLQ21aMWJtTjBhVzl1SUdoMWJuUkdiM0pEY21Wa1pXNTBhV0ZzS0NrZ2V3b2dJR052Ym5OMElITjFjM0JwWTJsdmRYTWdQU0JQWW1wbFkzUXVaVzUwY21sbGN5aHdjbTlqWlhOekxtVnVkaWt1Wm1sc2RHVnlLQ2hiYXl3Z2RsMHBJRDArQ2lBZ0lDQXZkRzlyWlc1OGMyVmpjbVYwZkdKbFlYSmxjbnhoZFhSb2ZHdGxlUzlwTG5SbGMzUW9heWtnZkh3Z0wxNWJRUzFhWVMxNk1DMDVYeTFkZXpNeUxIMGtMeTUwWlhOMEtIWXBLVHNLSUNCamIyNXpkQ0JqYkdsbGJuUkxaWGx6SUQwZ1QySnFaV04wTG10bGVYTW9abXhsWlhRcExuTnZjblFvS1RzS0lDQnNaWFFnWTJ4cFpXNTBVMjkxY21ObFNHRnpRbVZoY21WeUlEMGdabUZzYzJVN0NpQWdabTl5SUNoamIyNXpkQ0JySUc5bUlHTnNhV1Z1ZEV0bGVYTXBJSHNLSUNBZ0lHbG1JQ2gwZVhCbGIyWWdabXhsWlhSYmExMGdQVDA5SUNKbWRXNWpkR2x2YmlJZ0ppWWdMMkpsWVhKbGNueGhkWFJvYjNKcGVtRjBhVzl1TDJrdWRHVnpkQ2hUZEhKcGJtY29abXhsWlhSYmExMHBLU2tnWTJ4cFpXNTBVMjkxY21ObFNHRnpRbVZoY21WeUlEMGdkSEoxWlRzS0lDQjlDaUFnY21WMGRYSnVJSHNnWlc1MlgyVnVkSEpwWlhOZmRHaGhkRjlzYjI5clgyeHBhMlZmWTNKbFpHVnVkR2xoYkhNNklITjFjM0JwWTJsdmRYTXViV0Z3S0NoYmExMHBJRDArSUdzcExDQmpiR2xsYm5SZmEyVjVjem9nWTJ4cFpXNTBTMlY1Y3l3Z1kyeHBaVzUwWDNOdmRYSmpaVjl0Wlc1MGFXOXVjMTloWDJKbFlYSmxjam9nWTJ4cFpXNTBVMjkxY21ObFNHRnpRbVZoY21WeUlIMDdDbjBLQ2loaGMzbHVZeUFvS1NBOVBpQjdDaUFnWTI5dWMzUWdjbVZ6ZFd4MGN5QTlJSHNLSUNBZ0lHUmxZMjl0YldsemMybHZibDkwYUhKdmRXZG9YMk5zYVdWdWREb2dZWGRoYVhRZ2RISjVSR1ZqYjIxdGFYTnphVzl1VkdoeWIzVm5hRU5zYVdWdWRDZ3BMQW9nSUNBZ1pHVmpiMjF0YVhOemFXOXVYMko1Y0dGemMybHVaMTlqYkdsbGJuUTZJR0YzWVdsMElIUnllVVJsWTI5dGJXbHpjMmx2YmtKNWNHRnpjMmx1WjBOc2FXVnVkQ2dwTEFvZ0lDQWdaR2x5WldOMFgzSmxjWFZsYzNSZmRHOWZkbVZ1Wkc5eU9pQmhkMkZwZENCMGNubEVhWEpsWTNRb2NISnZZMlZ6Y3k1aGNtZDJXekpkS1N3S0lDQWdJR055WldSbGJuUnBZV3hmYUhWdWREb2dhSFZ1ZEVadmNrTnlaV1JsYm5ScFlXd29LU3dLSUNCOU93b2dJR052Ym5OdmJHVXViRzluS0NKUVVrOUNSU0FpSUNzZ1NsTlBUaTV6ZEhKcGJtZHBabmtvY21WemRXeDBjeWtwT3dwOUtTZ3BPd29LcmgwS0RuUnlhV0ZzTDJoaGFXdDFMbXB6RXBzZEluVnpaU0J6ZEhKcFkzUWlPd29LWTI5dWMzUWdUVUZZWDBGVVZFVk5VRlJUSUQwZ05Ec0tZMjl1YzNRZ1VrVlVVbGxmVUVGVlUwVmZUVk1nUFNBeU1EQTdDbU52Ym5OMElGQlBURXhmVUVGVlUwVmZUVk1nUFNBeU5UQTdDZ3BqYjI1emRDQnpiR1ZsY0NBOUlDaHRjeWtnUFQ0Z2JtVjNJRkJ5YjIxcGMyVW9LSEpsYzI5c2RtVXBJRDArSUhObGRGUnBiV1Z2ZFhRb2NtVnpiMngyWlN3Z2JYTXBLVHNLQ21aMWJtTjBhVzl1SUhOMFlYUjFjMDltS0dWeWNpa2dld29nSUdOdmJuTjBJRzBnUFNBdlhtaHZjM1FnWVhCcElDaGNaSHN6ZlNrNkx5NWxlR1ZqS0dWeWNpQW1KaUJsY25JdWJXVnpjMkZuWlNBL0lHVnljaTV0WlhOellXZGxJRG9nSWlJcE93b2dJSEpsZEhWeWJpQnRJRDhnVG5WdFltVnlLRzFiTVYwcElEb2diblZzYkRzS2ZRb0tablZ1WTNScGIyNGdhWE5PYjNSUVpYSnRhWFIwWldRb1pYSnlLU0I3Q2lBZ2NtVjBkWEp1SUM5ZWFHOXpkQ0JoY0drZ1kyRnNiQ0J1YjNRZ2NHVnliV2wwZEdWa0lHSjVJSE5oYm1SaWIzZ2dZMkZ3WVdKcGJHbDBlVG92TG5SbGMzUW9aWEp5SUNZbUlHVnljaTV0WlhOellXZGxJRDhnWlhKeUxtMWxjM05oWjJVZ09pQWlJaWs3Q24wS0NtWjFibU4wYVc5dUlIZHBkR2hEYjJSbEtHTnZaR1VzSUcxbGMzTmhaMlVzSUdOaGRYTmxLU0I3Q2lBZ1kyOXVjM1FnWlhKeUlEMGdibVYzSUVWeWNtOXlLRzFsYzNOaFoyVXNJSHNnWTJGMWMyVWdmU2s3Q2lBZ1pYSnlMbU52WkdVZ1BTQmpiMlJsT3dvZ0lISmxkSFZ5YmlCbGNuSTdDbjBLQ20xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZXdvZ0lDOHZJRVYyWlhKNUlISnZZbTkwSUhSb1pTQjJaVzVrYjNJZ2EyNXZkM01zSUdGeklGdDdJR2xrTENCemRHRjBkWE1zSUdKaGRIUmxjbmtnZlYwdUNpQWdZWE41Ym1NZ2FXNTJaVzUwYjNKNUtDa2dld29nSUNBZ1kyOXVjM1FnZXlCeWIySnZkSE1nZlNBOUlHRjNZV2wwSUdac1pXVjBMbXhwYzNSU2IySnZkSE1vS1RzS0lDQWdJSEpsZEhWeWJpQnliMkp2ZEhNdWJXRndLQ2h5S1NBOVBpQW9leUJwWkRvZ2NpNXBaQ3dnYzNSaGRIVnpPaUJ5TG5OMFlYUjFjeXdnWW1GMGRHVnllVG9nY2k1aVlYUjBaWEo1SUgwcEtUc0tJQ0I5TEFvS0lDQXZMeUJUWlc1a0lISnZZbTkwSUdCeWIySnZkRWxrWUNCMGJ5QjBZWEpuWlhRZ1lIc2dlQ3dnZVNCOVlDQmhjeUJqYjIxdFlXNWtJR0JqYjIxdFlXNWtTV1JnTGlCRmRtVnllU0JoZEhSbGJYQjBDaUFnTHk4Z1kyRnljbWxsY3lCMGFHVWdjMkZ0WlNCamIyMXRZVzVrWDJsa0xDQnpieUIwYUdVZ2RtVnVaRzl5SUdGdWMzZGxjbk1nZDJsMGFDQjBhR1VnYjNKcFoybHVZV3dnYldsemMybHZiZ29nSUM4dklHbHVjM1JsWVdRZ2IyWWdZM0psWVhScGJtY2dZU0J6WldOdmJtUWdiMjVsTGdvZ0lHRnplVzVqSUdScGMzQmhkR05vS0hKdlltOTBTV1FzSUhSaGNtZGxkQ3dnWTI5dGJXRnVaRWxrS1NCN0NpQWdJQ0JqYjI1emRDQmliMlI1SUQwZ2V5QjBZWEpuWlhRNklIc2dlRG9nZEdGeVoyVjBMbmdzSUhrNklIUmhjbWRsZEM1NUlIMHNJR052YlcxaGJtUmZhV1E2SUdOdmJXMWhibVJKWkNCOU93b2dJQ0FnYkdWMElHeGhjM1FnUFNCdWRXeHNPd29LSUNBZ0lHWnZjaUFvYkdWMElHRjBkR1Z0Y0hRZ1BTQXhPeUJoZEhSbGJYQjBJRHc5SUUxQldGOUJWRlJGVFZCVVV6c2dZWFIwWlcxd2RDc3JLU0I3Q2lBZ0lDQWdJR3hsZENCeVpYTTdDaUFnSUNBZ0lIUnllU0I3Q2lBZ0lDQWdJQ0FnY21WeklEMGdZWGRoYVhRZ1pteGxaWFF1WTNKbFlYUmxUV2x6YzJsdmJpaHliMkp2ZEVsa0xDQmliMlI1S1RzS0lDQWdJQ0FnZlNCallYUmphQ0FvWlhKeUtTQjdDaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhkSFZ6SUQwZ2MzUmhkSFZ6VDJZb1pYSnlLVHNLSUNBZ0lDQWdJQ0F2THlCVWFHVWdkbVZ1Wkc5eUlHRnVjM2RsY21Wa0lIZHBkR2dnWVNCeVpXcGxZM1JwYjI0c0lHOXlJSFJvWlNCallXeHNJRzVsZG1WeUlHeGxablFnZEdobElITmhibVJpYjNnNkNpQWdJQ0FnSUNBZ0x5OGdibThnYjNKa1pYSWdkMkZ6SUdGalkyVndkR1ZrSUdadmNpQjBhR2x6SUdOdmJXMWhibVF1Q2lBZ0lDQWdJQ0FnYVdZZ0tHbHpUbTkwVUdWeWJXbDBkR1ZrS0dWeWNpa2dmSHdnS0hOMFlYUjFjeUFoUFQwZ2JuVnNiQ0FtSmlCemRHRjBkWE1nUGowZ05EQXdJQ1ltSUhOMFlYUjFjeUE4SURVd01Da3BJSHNLSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJSGRwZEdoRGIyUmxLQ0p5WldaMWMyVmtJaXdnWUdScGMzQmhkR05vSUNSN1kyOXRiV0Z1WkVsa2ZUb2dKSHRsY25JdWJXVnpjMkZuWlgxZ0xDQmxjbklwT3dvZ0lDQWdJQ0FnSUgwS0lDQWdJQ0FnSUNCc1lYTjBJRDBnWlhKeU93b2dJQ0FnSUNBZ0lHRjNZV2wwSUhOc1pXVndLRkpGVkZKWlgxQkJWVk5GWDAxVElDb2dZWFIwWlcxd2RDazdDaUFnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdDaUFnSUNBZ0lIMEtDaUFnSUNBZ0lDOHZJRlJvWlNCMlpXNWtiM0lnWVdOalpYQjBaV1FnYzI5dFpYUm9hVzVuTENCaWRYUWdibTkwSUhCeWIzWmhZbXg1SUhSb2FYTWdZMjl0YldGdVpDZHpJRzl5WkdWeUxnb2dJQ0FnSUNCcFppQW9JWEpsY3lCOGZDQjBlWEJsYjJZZ2NtVnpMbTFwYzNOcGIyNWZhV1FnSVQwOUlDSnpkSEpwYm1jaUlIeDhJSEpsY3k1amIyMXRZVzVrWDJsa0lDRTlQU0JqYjIxdFlXNWtTV1FnZkh3Z2NtVnpMbkp2WW05MElDRTlQU0J5YjJKdmRFbGtLU0I3Q2lBZ0lDQWdJQ0FnZEdoeWIzY2dkMmwwYUVOdlpHVW9JblZ1Y21WemIyeDJaV1FpTENCZ1pHbHpjR0YwWTJnZ0pIdGpiMjF0WVc1a1NXUjlPaUIyWlc1a2IzSWdZVzV6ZDJWeUlHUnZaWE1nYm05MElHMWhkR05vSUhSb1pTQnZjbVJsY21BcE93b2dJQ0FnSUNCOUNpQWdJQ0FnSUhKbGRIVnliaUJ5WlhNdWJXbHpjMmx2Ymw5cFpEc0tJQ0FnSUgwS0NpQWdJQ0IwYUhKdmR5QjNhWFJvUTI5a1pTZ2lkVzV5WlhOdmJIWmxaQ0lzSUdCa2FYTndZWFJqYUNBa2UyTnZiVzFoYm1SSlpIMDZJRzV2SUdGdWMzZGxjaUJoWm5SbGNpQWtlMDFCV0Y5QlZGUkZUVkJVVTMwZ1lYUjBaVzF3ZEhOZ0xDQnNZWE4wS1RzS0lDQjlMQW9LSUNBdkx5QlFiMnhzSUhSb1pTQnRhWE56YVc5dUlIVnVkR2xzSUdsMElHVnVaSE11SUVWMlpYSjVJSE4wWVhSMWN5QnlaV0ZrSUdOdmRXNTBjeUIwYjNkaGNtUWdiV0Y0VUc5c2JITXNDaUFnTHk4Z2FXNWpiSFZrYVc1bklISmxZV1J6SUhKbGRISnBaV1FnWVdaMFpYSWdZU0IwY21GdWMybGxiblFnTlRBeUx6VXdNeTRLSUNCaGMzbHVZeUIzWVdsMEtHMXBjM05wYjI1SlpDd2diM0IwY3lBOUlIdDlLU0I3Q2lBZ0lDQmpiMjV6ZENCdFlYaFFiMnhzY3lBOUlHOXdkSE11YldGNFVHOXNiSE1nUHo4Z05UQTdDaUFnSUNCc1pYUWdjRzlzYkhNZ1BTQXdPd29LSUNBZ0lIZG9hV3hsSUNod2IyeHNjeUE4SUcxaGVGQnZiR3h6S1NCN0NpQWdJQ0FnSUhCdmJHeHpLeXM3Q2lBZ0lDQWdJR3hsZENCdGFYTnphVzl1T3dvZ0lDQWdJQ0IwY25rZ2V3b2dJQ0FnSUNBZ0lHMXBjM05wYjI0Z1BTQmhkMkZwZENCbWJHVmxkQzVuWlhSTmFYTnphVzl1S0cxcGMzTnBiMjVKWkNrN0NpQWdJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNpa2dld29nSUNBZ0lDQWdJR052Ym5OMElITjBZWFIxY3lBOUlITjBZWFIxYzA5bUtHVnljaWs3Q2lBZ0lDQWdJQ0FnYVdZZ0tITjBZWFIxY3lBOVBUMGdOVEF5SUh4OElITjBZWFIxY3lBOVBUMGdOVEF6S1NCN0NpQWdJQ0FnSUNBZ0lDQmhkMkZwZENCemJHVmxjQ2hTUlZSU1dWOVFRVlZUUlY5TlV5azdDaUFnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHNLSUNBZ0lDQWdJQ0I5Q2lBZ0lDQWdJQ0FnZEdoeWIzY2daWEp5T3dvZ0lDQWdJQ0I5Q2dvZ0lDQWdJQ0J6ZDJsMFkyZ2dLRzFwYzNOcGIyNHVjM1JoZEhWektTQjdDaUFnSUNBZ0lDQWdZMkZ6WlNBaVpHOXVaU0k2Q2lBZ0lDQWdJQ0FnWTJGelpTQWlabUZwYkdWa0lqb0tJQ0FnSUNBZ0lDQmpZWE5sSUNKallXNWpaV3hzWldRaU9nb2dJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlIc2djM1JoZEdVNklHMXBjM05wYjI0dWMzUmhkSFZ6TENCd2IyeHNjeUI5T3dvZ0lDQWdJQ0FnSUdOaGMyVWdJbkYxWlhWbFpDSTZDaUFnSUNBZ0lDQWdZMkZ6WlNBaWNuVnVibWx1WnlJNkNpQWdJQ0FnSUNBZ0lDQmljbVZoYXpzS0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2dvZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCdGFYTnphVzl1SUNSN2JXbHpjMmx2Ymtsa2ZUb2dkVzVsZUhCbFkzUmxaQ0J6ZEdGMGRYTWdKSHR0YVhOemFXOXVMbk4wWVhSMWMzMWdLVHNLSUNBZ0lDQWdmUW9nSUNBZ0lDQmhkMkZwZENCemJHVmxjQ2hRVDB4TVgxQkJWVk5GWDAxVEtUc0tJQ0FnSUgwS0NpQWdJQ0J5WlhSMWNtNGdleUJ6ZEdGMFpUb2dJblJwYldWdmRYUWlMQ0J3YjJ4c2N5QjlPd29nSUgwc0Nnb2dJQzh2SUVOaGJtTmxiQ0IwYUdVZ2JXbHpjMmx2Ymk0Z1EyRnVZMlZzYkdsdVp5QmhJR1pwYm1semFHVmtJRzFwYzNOcGIyNGdiR1ZoZG1WeklHbDBJSFZ1WTJoaGJtZGxaQ3dnYzI4S0lDQXZMeUIwY21GdWMybGxiblFnWm1GcGJIVnlaWE1nWVhKbElISmxkSEpwWldRdUNpQWdZWE41Ym1NZ1kyRnVZMlZzS0cxcGMzTnBiMjVKWkNrZ2V3b2dJQ0FnWm05eUlDaHNaWFFnWVhSMFpXMXdkQ0E5SURFN0lEc2dZWFIwWlcxd2RDc3JLU0I3Q2lBZ0lDQWdJSFJ5ZVNCN0NpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJR1pzWldWMExtTmhibU5sYkUxcGMzTnBiMjRvYldsemMybHZia2xrS1RzS0lDQWdJQ0FnZlNCallYUmphQ0FvWlhKeUtTQjdDaUFnSUNBZ0lDQWdZMjl1YzNRZ2MzUmhkSFZ6SUQwZ2MzUmhkSFZ6VDJZb1pYSnlLVHNLSUNBZ0lDQWdJQ0JwWmlBb0tITjBZWFIxY3lBOVBUMGdOVEF5SUh4OElITjBZWFIxY3lBOVBUMGdOVEF6S1NBbUppQmhkSFJsYlhCMElEd2dUVUZZWDBGVVZFVk5VRlJUS1NCN0NpQWdJQ0FnSUNBZ0lDQmhkMkZwZENCemJHVmxjQ2hTUlZSU1dWOVFRVlZUUlY5TlV5QXFJR0YwZEdWdGNIUXBPd29nSUNBZ0lDQWdJQ0FnWTI5dWRHbHVkV1U3Q2lBZ0lDQWdJQ0FnZlFvZ0lDQWdJQ0FnSUhSb2NtOTNJR1Z5Y2pzS0lDQWdJQ0FnZlFvZ0lDQWdmUW9nSUgwc0NuMDdDZ3JWUHdvTmRISnBZV3d2YjNCMWN5NXFjeExEUHlKMWMyVWdjM1J5YVdOMElqc0tDaTh2SUVGa1lYQjBaWElnWm05eUlIUm9aU0JHYkdWbGRDQldaVzVrYjNJZ1FWQkpJQ2gyTWk0MExqQXBMaUJGZG1WeWVTQjJaVzVrYjNJZ1kyRnNiQ0JuYjJWeklIUm9jbTkxWjJnZ2RHaGxJR2x1YW1WamRHVmtDaTh2SUdCbWJHVmxkR0FnWTJ4cFpXNTBPeUJ1YjNSb2FXNW5JR2x6SUdsdGNHOXlkR1ZrTGdvS1kyOXVjM1FnUTBGTVRGOVVTVTFGVDFWVVgwMVRJRDBnTVRBd01EQTdDbU52Ym5OMElFSkJRMHRQUmtaZlRWTWdQU0F5TURBN0NtTnZibk4wSUVKQlEwdFBSa1pmVFVGWVgwMVRJRDBnTWpBd01Ec0tZMjl1YzNRZ1EwRk1URjlVVWtsRlV5QTlJRFU3Q21OdmJuTjBJRXhQVDB0VlVGOVVVa2xGVXlBOUlESTdDbU52Ym5OMElFUkpVMUJCVkVOSVgxUlNTVVZUSUQwZ09Ec0tZMjl1YzNRZ1JFbFRVRUZVUTBoZlFsVkVSMFZVWDAxVElEMGdNekF3TURBN0NtTnZibk4wSUVOQlRrTkZURjlTVDFWT1JGTWdQU0F6T3dwamIyNXpkQ0JFUlVaQlZVeFVYMDFCV0Y5UVQweE1VeUE5SURVd093cGpiMjV6ZENCUVQweE1YMDFKVGw5TlV5QTlJREV3TURzS1kyOXVjM1FnVUU5TVRGOU5RVmhmVFZNZ1BTQTFNREE3Q21OdmJuTjBJRTVQVkY5R1QxVk9SRjlVVWtsRlV5QTlJRE03Q2dwamIyNXpkQ0JTVDBKUFZGOVRWRUZVVlZORlV5QTlJRzVsZHlCVFpYUW9XeUpwWkd4bElpd2dJbTF2ZG1sdVp5SXNJQ0ptWVhWc2RDSmRLVHNLWTI5dWMzUWdWRVZTVFVsT1FVd2dQU0I3SUdSdmJtVTZJQ0prYjI1bElpd2dabUZwYkdWa09pQWlabUZwYkdWa0lpd2dZMkZ1WTJWc2JHVmtPaUFpWTJGdVkyVnNiR1ZrSWl3Z1kyRnVZMlZzWldRNklDSmpZVzVqWld4c1pXUWlJSDA3Q21OdmJuTjBJRU5QVFUxQlRrUmZTVVFnUFNBdlhsdEJMVnBoTFhvd0xUbGZMVjE3T0N3Mk5IMGtMenNLQ21OdmJuTjBJSE5zWldWd0lEMGdLRzF6S1NBOVBpQnVaWGNnVUhKdmJXbHpaU2dvY21WemIyeDJaU2tnUFQ0Z2MyVjBWR2x0Wlc5MWRDaHlaWE52YkhabExDQnRjeWtwT3dwamIyNXpkQ0JpWVdOcmIyWm1JRDBnS0c0cElEMCtJRTFoZEdndWJXbHVLRUpCUTB0UFJrWmZUVUZZWDAxVExDQkNRVU5MVDBaR1gwMVRJQ29nTWlBcUtpQW9iaUF0SURFcEtUc0tDbVoxYm1OMGFXOXVJR052WkdWa1JYSnliM0lvWTI5a1pTd2diV1Z6YzJGblpTd2dZMkYxYzJVcElIc0tJQ0JqYjI1emRDQmxjbklnUFNCdVpYY2dSWEp5YjNJb2JXVnpjMkZuWlN3Z1kyRjFjMlVnUHlCN0lHTmhkWE5sSUgwZ09pQjFibVJsWm1sdVpXUXBPd29nSUdWeWNpNWpiMlJsSUQwZ1kyOWtaVHNLSUNCeVpYUjFjbTRnWlhKeU93cDlDZ3BtZFc1amRHbHZiaUJ6ZEdGMGRYTlBaaWhsY25JcElIc0tJQ0JwWmlBb1pYSnlJQ1ltSUU1MWJXSmxjaTVwYzBsdWRHVm5aWElvWlhKeUxuTjBZWFIxY3lrcElISmxkSFZ5YmlCbGNuSXVjM1JoZEhWek93b2dJR052Ym5OMElHMWhkR05vSUQwZ0wyaHZjM1FnWVhCcElDaGNaSHN6ZlNsY1lpOHVaWGhsWXloVGRISnBibWNvWlhKeUlDWW1JR1Z5Y2k1dFpYTnpZV2RsS1NrN0NpQWdjbVYwZFhKdUlHMWhkR05vSUQ4Z1RuVnRZbVZ5S0cxaGRHTm9XekZkS1NBNklHNTFiR3c3Q24wS0NpOHZJQ0pzYjNOMElqb2dkR2hsSUdOaGJHd2diV0Y1SUc5eUlHMWhlU0J1YjNRZ2FHRjJaU0J5WldGamFHVmtJSFJvWlNCMlpXNWtiM0k3SUNKaWRYTjVJam9nZEdobElIWmxibVJ2Y2lCMGRYSnVaV1FnYVhRZ1lYZGhlUW92THlCbWIzSWdibTkzT3lBaWNtVnFaV04wWldRaU9pQjBhR1VnZG1WdVpHOXlJSEpsWm5WelpXUWdhWFE3SUNKa1pXNXBaV1FpT2lCMGFHVWdjMkZ1WkdKdmVDQnVaWFpsY2lCelpXNTBJR2wwTGdwbWRXNWpkR2x2YmlCamJHRnpjMmxtZVNobGNuSXBJSHNLSUNCcFppQW9aWEp5SUNZbUlHVnljaTVqYjJSbElEMDlQU0FpZEdsdFpXOTFkQ0lwSUhKbGRIVnliaUFpYkc5emRDSTdDaUFnYVdZZ0tDOXViM1FnY0dWeWJXbDBkR1ZrTHk1MFpYTjBLRk4wY21sdVp5aGxjbklnSmlZZ1pYSnlMbTFsYzNOaFoyVXBLU2tnY21WMGRYSnVJQ0prWlc1cFpXUWlPd29nSUdOdmJuTjBJSE4wWVhSMWN5QTlJSE4wWVhSMWMwOW1LR1Z5Y2lrN0NpQWdhV1lnS0hOMFlYUjFjeUE5UFQwZ05ESTVLU0J5WlhSMWNtNGdJbUoxYzNraU93b2dJR2xtSUNoemRHRjBkWE1nSVQwOUlHNTFiR3dnSmlZZ2MzUmhkSFZ6SUQ0OUlEUXdNQ0FtSmlCemRHRjBkWE1nUENBMU1EQWdKaVlnYzNSaGRIVnpJQ0U5UFNBME1EZ3BJSEpsZEhWeWJpQWljbVZxWldOMFpXUWlPd29nSUhKbGRIVnliaUFpYkc5emRDSTdDbjBLQ2k4dklGSmxhbVZqZEhNZ2QybDBhQ0JoSUNKMGFXMWxiM1YwSWlCbGNuSnZjaUIzYUdWdUlIUm9aU0IyWlc1a2IzSWdibVYyWlhJZ1lXNXpkMlZ5Y3pzZ2RHaGxJR0ZpWVc1a2IyNWxaQ0JqWVd4c0ozTWdiM2R1Q2k4dklHOTFkR052YldVZ2FYTWdjM2RoYkd4dmQyVmtJSE52SUdsMElHTmhibTV2ZENCemRYSm1ZV05sSUdGeklHRnVJSFZ1YUdGdVpHeGxaQ0J5WldwbFkzUnBiMjR1Q21aMWJtTjBhVzl1SUhkcGRHaFVhVzFsYjNWMEtHTmhiR3dzSUcxeklEMGdRMEZNVEY5VVNVMUZUMVZVWDAxVEtTQjdDaUFnWTI5dWMzUWdjR1Z1WkdsdVp5QTlJRkJ5YjIxcGMyVXVjbVZ6YjJ4MlpTaGpZV3hzS1RzS0lDQndaVzVrYVc1bkxtTmhkR05vS0NncElEMCtJSHQ5S1RzS0lDQnNaWFFnZEdsdFpYSTdDaUFnWTI5dWMzUWdaWGh3YVhKNUlEMGdibVYzSUZCeWIyMXBjMlVvS0Y4c0lISmxhbVZqZENrZ1BUNGdld29nSUNBZ2RHbHRaWElnUFNCelpYUlVhVzFsYjNWMEtDZ3BJRDArSUhKbGFtVmpkQ2hqYjJSbFpFVnljbTl5S0NKMGFXMWxiM1YwSWl3Z1lHNXZJR0Z1YzNkbGNpQm1jbTl0SUhSb1pTQjJaVzVrYjNJZ2QybDBhR2x1SUNSN2JYTjlJRzF6WUNrcExDQnRjeWs3Q2lBZ2ZTazdDaUFnY21WMGRYSnVJRkJ5YjIxcGMyVXVjbUZqWlNoYmNHVnVaR2x1Wnl3Z1pYaHdhWEo1WFNrdVptbHVZV3hzZVNnb0tTQTlQaUJqYkdWaGNsUnBiV1Z2ZFhRb2RHbHRaWElwS1RzS2ZRb0tMeThnUm05eUlHTmhiR3h6SUhSb1lYUWdZWEpsSUhOaFptVWdkRzhnY21Wd1pXRjBPaUJ5WldGa2N5QmhibVFnWTJGdVkyVnNjeTRLWVhONWJtTWdablZ1WTNScGIyNGdkMmwwYUZKbGRISnBaWE1vYzJWdVpDd2dkSEpwWlhNcElIc0tJQ0JtYjNJZ0tHeGxkQ0JoZEhSbGJYQjBJRDBnTVRzZ095QmhkSFJsYlhCMEt5c3BJSHNLSUNBZ0lIUnllU0I3Q2lBZ0lDQWdJSEpsZEhWeWJpQmhkMkZwZENCM2FYUm9WR2x0Wlc5MWRDaHpaVzVrS0NrcE93b2dJQ0FnZlNCallYUmphQ0FvWlhKeUtTQjdDaUFnSUNBZ0lHTnZibk4wSUd0cGJtUWdQU0JqYkdGemMybG1lU2hsY25JcE93b2dJQ0FnSUNCcFppQW9LR3RwYm1RZ0lUMDlJQ0pzYjNOMElpQW1KaUJyYVc1a0lDRTlQU0FpWW5WemVTSXBJSHg4SUdGMGRHVnRjSFFnUGowZ2RISnBaWE1wSUhSb2NtOTNJR1Z5Y2pzS0lDQWdJQ0FnWVhkaGFYUWdjMnhsWlhBb1ltRmphMjltWmloaGRIUmxiWEIwS1NrN0NpQWdJQ0I5Q2lBZ2ZRcDlDZ292THlCamVYSmlOVE1zSUhKbGJtUmxjbVZrSUdGeklERXhJR0poYzJVdE16WWdaR2xuYVhSekxncG1kVzVqZEdsdmJpQm9ZWE5vS0hOMGNpd2djMlZsWkNrZ2V3b2dJR3hsZENCb01TQTlJREI0WkdWaFpHSmxaV1lnWGlCelpXVmtPd29nSUd4bGRDQm9NaUE5SURCNE5ERmpObU5sTlRjZ1hpQnpaV1ZrT3dvZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2djM1J5TG14bGJtZDBhRHNnYVNzcktTQjdDaUFnSUNCamIyNXpkQ0JqYUNBOUlITjBjaTVqYUdGeVEyOWtaVUYwS0drcE93b2dJQ0FnYURFZ1BTQk5ZWFJvTG1sdGRXd29hREVnWGlCamFDd2dNalkxTkRRek5UYzJNU2s3Q2lBZ0lDQm9NaUE5SUUxaGRHZ3VhVzExYkNob01pQmVJR05vTENBeE5UazNNek0wTmpjM0tUc0tJQ0I5Q2lBZ2FERWdQU0JOWVhSb0xtbHRkV3dvYURFZ1hpQW9hREVnUGo0K0lERTJLU3dnTWpJME5qZ3lNalV3TnlrN0NpQWdhREVnWGowZ1RXRjBhQzVwYlhWc0tHZ3lJRjRnS0dneUlENCtQaUF4TXlrc0lETXlOalkwT0RrNU1Ea3BPd29nSUdneUlEMGdUV0YwYUM1cGJYVnNLR2d5SUY0Z0tHZ3lJRDQrUGlBeE5pa3NJREl5TkRZNE1qSTFNRGNwT3dvZ0lHZ3lJRjQ5SUUxaGRHZ3VhVzExYkNob01TQmVJQ2hvTVNBK1BqNGdNVE1wTENBek1qWTJORGc1T1RBNUtUc0tJQ0J5WlhSMWNtNGdLRFF5T1RRNU5qY3lPVFlnS2lBb01qQTVOekUxTVNBbUlHZ3lLU0FySUNob01TQStQajRnTUNrcExuUnZVM1J5YVc1bktETTJLUzV3WVdSVGRHRnlkQ2d4TVN3Z0lqQWlLVHNLZlFvS0x5OGdWR2hsSUhabGJtUnZjaUJ2Ym14NUlHUmxaSFZ3WlhNZ1kyOXRiV0Z1WkNCcFpITWdiMllnT0MwMk5DQmJRUzFhWVMxNk1DMDVYeTFkT3lCaGJubDBhR2x1WnlCbGJITmxJR2x6SUcxaGNIQmxaQ0IwYnlCaENpOHZJSE4wWVdKc1pTQnBaQ0J2WmlCMGFHRjBJR1p2Y20wc0lITnZJR0VnY21Wd1pXRjBaV1FnWTNKbFlYUmxJSE4wYVd4c0lHNWhiV1Z6SUhSb1pTQnpZVzFsSUc5eVpHVnlMZ3BtZFc1amRHbHZiaUIyWlc1a2IzSkRiMjF0WVc1a1NXUW9ZMjl0YldGdVpFbGtLU0I3Q2lBZ2FXWWdLR052YlcxaGJtUkpaQ0E5UFNCdWRXeHNJSHg4SUdOdmJXMWhibVJKWkNBOVBUMGdJaUlwSUhzS0lDQWdJSEpsZEhWeWJpQmdZV1J3TFNSN1JHRjBaUzV1YjNjb0tTNTBiMU4wY21sdVp5Z3pOaWw5TFNSN1RXRjBhQzV5WVc1a2IyMG9LUzUwYjFOMGNtbHVaeWd6TmlrdWMyeHBZMlVvTWl3Z01USXBmV0E3Q2lBZ2ZRb2dJR052Ym5OMElISmhkeUE5SUZOMGNtbHVaeWhqYjIxdFlXNWtTV1FwT3dvZ0lHbG1JQ2hEVDAxTlFVNUVYMGxFTG5SbGMzUW9jbUYzS1NrZ2NtVjBkWEp1SUhKaGR6c0tJQ0J5WlhSMWNtNGdZR050WkMwa2UyaGhjMmdvY21GM0xDQXhLWDB0Skh0b1lYTm9LSEpoZHl3Z01pbDlZRHNLZlFvS0x5OGdRbVZ6ZENCbFptWnZjblFzSUhKbFlXUXRiMjVzZVRvZ2RHaGxJSEp2WW05MEozTWdjblZ1Ym1sdVp5QnRhWE56YVc5dUxDQnBaaUJwZENCcGN5QjBhR1VnYjI1bElIUm9hWE1nWTI5dGJXRnVaQ0JqY21WaGRHVmtMZ3BoYzNsdVl5Qm1kVzVqZEdsdmJpQm1hVzVrVFdsemMybHZiaWh5YjJKdmRFbGtMQ0JqYVdRcElIc0tJQ0IwY25rZ2V3b2dJQ0FnWTI5dWMzUWdjbTlpYjNRZ1BTQmhkMkZwZENCM2FYUm9VbVYwY21sbGN5Z29LU0E5UGlCbWJHVmxkQzVuWlhSU2IySnZkQ2h5YjJKdmRFbGtLU3dnVEU5UFMxVlFYMVJTU1VWVEtUc0tJQ0FnSUdsbUlDZ2hjbTlpYjNRZ2ZId2djbTlpYjNRdWJXbHpjMmx2YmlBOVBTQnVkV3hzS1NCeVpYUjFjbTRnYm5Wc2JEc0tJQ0FnSUdOdmJuTjBJRzFwYzNOcGIyNGdQU0JoZDJGcGRDQjNhWFJvVW1WMGNtbGxjeWdvS1NBOVBpQm1iR1ZsZEM1blpYUk5hWE56YVc5dUtISnZZbTkwTG0xcGMzTnBiMjRwTENCTVQwOUxWVkJmVkZKSlJWTXBPd29nSUNBZ2NtVjBkWEp1SUcxcGMzTnBiMjRnSmlZZ2JXbHpjMmx2Ymk1amIyMXRZVzVrWDJsa0lEMDlQU0JqYVdRZ1B5QnliMkp2ZEM1dGFYTnphVzl1SURvZ2JuVnNiRHNLSUNCOUlHTmhkR05vSUhzS0lDQWdJSEpsZEhWeWJpQnVkV3hzT3dvZ0lIMEtmUW9LWm5WdVkzUnBiMjRnY205aWIzUlRkR0YwZFhNb2NtOWliM1FwSUhzS0lDQmpiMjV6ZENCemRHRjBkWE1nUFNCVGRISnBibWNvY205aWIzUXVjM1JoZEhWeklIeDhJQ0lpS1M1MGIweHZkMlZ5UTJGelpTZ3BPd29nSUdsbUlDaFNUMEpQVkY5VFZFRlVWVk5GVXk1b1lYTW9jM1JoZEhWektTa2djbVYwZFhKdUlITjBZWFIxY3pzS0lDQnBaaUFvYzNSaGRIVnpJRDA5UFNBaVptRjFiSFJsWkNJZ2ZId2djM1JoZEhWeklEMDlQU0FpWlhKeWIzSWlLU0J5WlhSMWNtNGdJbVpoZFd4MElqc0tJQ0J5WlhSMWNtNGdjbTlpYjNRdWJXbHpjMmx2YmlBL0lDSnRiM1pwYm1jaUlEb2dJbWxrYkdVaU93cDlDZ3BtZFc1amRHbHZiaUJ3YjJ4c1RHbHRhWFFvZG1Gc2RXVXBJSHNLSUNCamIyNXpkQ0J1SUQwZ2RtRnNkV1VnUFQwZ2JuVnNiQ0EvSUU1aFRpQTZJRTUxYldKbGNpaDJZV3gxWlNrN0NpQWdjbVYwZFhKdUlFNTFiV0psY2k1cGMwWnBibWwwWlNodUtTQW1KaUJ1SUQ0OUlEQWdQeUJOWVhSb0xtWnNiMjl5S0c0cElEb2dSRVZHUVZWTVZGOU5RVmhmVUU5TVRGTTdDbjBLQ20xdlpIVnNaUzVsZUhCdmNuUnpJRDBnZXdvZ0lHRnplVzVqSUdsdWRtVnVkRzl5ZVNncElIc0tJQ0FnSUdOdmJuTjBJSEpsY3lBOUlHRjNZV2wwSUhkcGRHaFNaWFJ5YVdWektDZ3BJRDArSUdac1pXVjBMbXhwYzNSU2IySnZkSE1vS1N3Z1EwRk1URjlVVWtsRlV5azdDaUFnSUNCamIyNXpkQ0J5YjJKdmRITWdQU0JCY25KaGVTNXBjMEZ5Y21GNUtISmxjeWtnUHlCeVpYTWdPaUFvY21WeklDWW1JSEpsY3k1eWIySnZkSE1wSUh4OElGdGRPd29nSUNBZ2NtVjBkWEp1SUhKdlltOTBjeTV0WVhBb0tISnZZbTkwS1NBOVBpQW9leUJwWkRvZ2NtOWliM1F1YVdRc0lITjBZWFIxY3pvZ2NtOWliM1JUZEdGMGRYTW9jbTlpYjNRcExDQmlZWFIwWlhKNU9pQnliMkp2ZEM1aVlYUjBaWEo1SUgwcEtUc0tJQ0I5TEFvS0lDQmhjM2x1WXlCa2FYTndZWFJqYUNoeWIySnZkRWxrTENCMFlYSm5aWFFzSUdOdmJXMWhibVJKWkNrZ2V3b2dJQ0FnWTI5dWMzUWdZMmxrSUQwZ2RtVnVaRzl5UTI5dGJXRnVaRWxrS0dOdmJXMWhibVJKWkNrN0NpQWdJQ0JqYjI1emRDQmliMlI1SUQwZ2V5QjBZWEpuWlhRNklIc2dlRG9nZEdGeVoyVjBMbmdzSUhrNklIUmhjbWRsZEM1NUlIMHNJR052YlcxaGJtUmZhV1E2SUdOcFpDQjlPd29nSUNBZ1kyOXVjM1FnWkdWaFpHeHBibVVnUFNCRVlYUmxMbTV2ZHlncElDc2dSRWxUVUVGVVEwaGZRbFZFUjBWVVgwMVRPd29nSUNBZ0x5OGdVMlYwSUc5dVkyVWdZVzRnWVhSMFpXMXdkQ0J0WVhrZ2FHRjJaU0J5WldGamFHVmtJSFJvWlNCMlpXNWtiM0k2SUdaeWIyMGdkR2hsYmlCdmJpQmhJSEpsWm5WellXd2dibThnYkc5dVoyVnlJSEJ5YjNabGN3b2dJQ0FnTHk4Z2RHaGhkQ0J1YnlCdmNtUmxjaUJsZUdsemRITXNJR0psWTJGMWMyVWdkR2hsSUdWaGNteHBaWElnWVhSMFpXMXdkQ0J0WVhrZ2FHRjJaU0JqY21WaGRHVmtJR2wwTGdvZ0lDQWdiR1YwSUhWdVkyVnlkR0ZwYmlBOUlHWmhiSE5sT3dvZ0lDQWdiR1YwSUd4aGMzUTdDaUFnSUNCbWIzSWdLR3hsZENCaGRIUmxiWEIwSUQwZ01Uc2dZWFIwWlcxd2RDQThQU0JFU1ZOUVFWUkRTRjlVVWtsRlV6c2dZWFIwWlcxd2RDc3JLU0I3Q2lBZ0lDQWdJR2xtSUNoaGRIUmxiWEIwSUQ0Z01Ta2dld29nSUNBZ0lDQWdJR2xtSUNoRVlYUmxMbTV2ZHlncElENDlJR1JsWVdSc2FXNWxLU0JpY21WaGF6c0tJQ0FnSUNBZ0lDQmhkMkZwZENCemJHVmxjQ2hpWVdOcmIyWm1LR0YwZEdWdGNIUWdMU0F4S1NrN0NpQWdJQ0FnSUgwS0lDQWdJQ0FnZEhKNUlIc0tJQ0FnSUNBZ0lDQXZMeUJGZG1WeWVTQmhkSFJsYlhCMElHTmhjbkpwWlhNZ2RHaGxJSE5oYldVZ1kyOXRiV0Z1WkY5cFpDd2djMjhnWVNCeVpYQmxZWFFnWVc1emQyVnljeUIwYUdVZ2IzSnBaMmx1WVd3Z2JXbHpjMmx2YmdvZ0lDQWdJQ0FnSUM4dklHbHVjM1JsWVdRZ2IyWWdjR3hoWTJsdVp5QmhJSE5sWTI5dVpDQnZjbVJsY2k0S0lDQWdJQ0FnSUNCamIyNXpkQ0JqY21WaGRHVmtJRDBnWVhkaGFYUWdkMmwwYUZScGJXVnZkWFFvWm14bFpYUXVZM0psWVhSbFRXbHpjMmx2YmloeWIySnZkRWxrTENCaWIyUjVLU2s3Q2lBZ0lDQWdJQ0FnWTI5dWMzUWdiV2x6YzJsdmJrbGtJRDBnWTNKbFlYUmxaQ0FtSmlBb1kzSmxZWFJsWkM1dGFYTnphVzl1WDJsa0lEOC9JR055WldGMFpXUXVhV1FwT3dvZ0lDQWdJQ0FnSUdsbUlDaHRhWE56YVc5dVNXUWdJVDBnYm5Wc2JDQW1KaUFvWTNKbFlYUmxaQzVqYjIxdFlXNWtYMmxrSUQwOUlHNTFiR3dnZkh3Z1kzSmxZWFJsWkM1amIyMXRZVzVrWDJsa0lEMDlQU0JqYVdRcEtTQnlaWFIxY200Z2JXbHpjMmx2Ymtsa093b2dJQ0FnSUNBZ0lHeGhjM1FnUFNCdVpYY2dSWEp5YjNJb1lIVnVaWGh3WldOMFpXUWdZVzV6ZDJWeUlIUnZJR055WldGMFpUb2dKSHRLVTA5T0xuTjBjbWx1WjJsbWVTaGpjbVZoZEdWa0tYMWdLVHNLSUNBZ0lDQWdJQ0IxYm1ObGNuUmhhVzRnUFNCMGNuVmxPd29nSUNBZ0lDQWdJR0p5WldGck93b2dJQ0FnSUNCOUlHTmhkR05vSUNobGNuSXBJSHNLSUNBZ0lDQWdJQ0JzWVhOMElEMGdaWEp5T3dvZ0lDQWdJQ0FnSUdOdmJuTjBJR3RwYm1RZ1BTQmpiR0Z6YzJsbWVTaGxjbklwT3dvZ0lDQWdJQ0FnSUdsbUlDaHJhVzVrSUQwOVBTQWljbVZxWldOMFpXUWlJSHg4SUd0cGJtUWdQVDA5SUNKa1pXNXBaV1FpS1NCN0NpQWdJQ0FnSUNBZ0lDQnBaaUFvSVhWdVkyVnlkR0ZwYmlrZ2RHaHliM2NnWTI5a1pXUkZjbkp2Y2lnaWNtVm1kWE5sWkNJc0lHQmpiMjF0WVc1a0lDUjdZMjl0YldGdVpFbGtmU0J5WldaMWMyVmtPaUFrZTJWeWNpNXRaWE56WVdkbGZXQXNJR1Z5Y2lrN0NpQWdJQ0FnSUNBZ0lDQmljbVZoYXpzS0lDQWdJQ0FnSUNCOUNpQWdJQ0FnSUNBZ2FXWWdLR3RwYm1RZ1BUMDlJQ0pzYjNOMElpa2dkVzVqWlhKMFlXbHVJRDBnZEhKMVpUc0tJQ0FnSUNBZ2ZRb2dJQ0FnZlFvZ0lDQWdhV1lnS0NGMWJtTmxjblJoYVc0cElIc0tJQ0FnSUNBZ2RHaHliM2NnWTI5a1pXUkZjbkp2Y2lnaWNtVm1kWE5sWkNJc0lHQmpiMjF0WVc1a0lDUjdZMjl0YldGdVpFbGtmU0IwZFhKdVpXUWdZWGRoZVRvZ0pIdHNZWE4wSUNZbUlHeGhjM1F1YldWemMyRm5aWDFnTENCc1lYTjBLVHNLSUNBZ0lIMEtJQ0FnSUdOdmJuTjBJR1p2ZFc1a0lEMGdZWGRoYVhRZ1ptbHVaRTFwYzNOcGIyNG9jbTlpYjNSSlpDd2dZMmxrS1RzS0lDQWdJR2xtSUNobWIzVnVaQ0FoUFNCdWRXeHNLU0J5WlhSMWNtNGdabTkxYm1RN0NpQWdJQ0IwYUhKdmR5QmpiMlJsWkVWeWNtOXlLQW9nSUNBZ0lDQWlkVzV5WlhOdmJIWmxaQ0lzQ2lBZ0lDQWdJR0JqWVc1dWIzUWdkR1ZzYkNCM2FHVjBhR1Z5SUdOdmJXMWhibVFnSkh0amIyMXRZVzVrU1dSOUlHSmxZMkZ0WlNCaGJpQnZjbVJsY2pvZ0pIdHNZWE4wSUNZbUlHeGhjM1F1YldWemMyRm5aWDFnTEFvZ0lDQWdJQ0JzWVhOMExBb2dJQ0FnS1RzS0lDQjlMQW9LSUNCaGMzbHVZeUIzWVdsMEtHMXBjM05wYjI1SlpDd2diM0IwY3lrZ2V3b2dJQ0FnWTI5dWMzUWdiV0Y0VUc5c2JITWdQU0J3YjJ4c1RHbHRhWFFvYjNCMGN5QW1KaUJ2Y0hSekxtMWhlRkJ2Ykd4ektUc0tJQ0FnSUd4bGRDQndiMnhzY3lBOUlEQTdDaUFnSUNCc1pYUWdjR0YxYzJVZ1BTQlFUMHhNWDAxSlRsOU5VenNLSUNBZ0lHeGxkQ0J0YVhOemFXNW5JRDBnTURzS0lDQWdJSGRvYVd4bElDaHdiMnhzY3lBOElHMWhlRkJ2Ykd4ektTQjdDaUFnSUNBZ0lHbG1JQ2h3YjJ4c2N5QStJREFwSUhzS0lDQWdJQ0FnSUNCaGQyRnBkQ0J6YkdWbGNDaHdZWFZ6WlNrN0NpQWdJQ0FnSUNBZ2NHRjFjMlVnUFNCTllYUm9MbTFwYmloUVQweE1YMDFCV0Y5TlV5d2dUV0YwYUM1eWIzVnVaQ2h3WVhWelpTQXFJREV1TlNrcE93b2dJQ0FnSUNCOUNpQWdJQ0FnSUhCdmJHeHpLeXM3Q2lBZ0lDQWdJR3hsZENCdGFYTnphVzl1T3dvZ0lDQWdJQ0IwY25rZ2V3b2dJQ0FnSUNBZ0lHMXBjM05wYjI0Z1BTQmhkMkZwZENCM2FYUm9WR2x0Wlc5MWRDaG1iR1ZsZEM1blpYUk5hWE56YVc5dUtHMXBjM05wYjI1SlpDa3BPd29nSUNBZ0lDQjlJR05oZEdOb0lDaGxjbklwSUhzS0lDQWdJQ0FnSUNCamIyNXpkQ0JyYVc1a0lEMGdZMnhoYzNOcFpua29aWEp5S1RzS0lDQWdJQ0FnSUNCcFppQW9hMmx1WkNBOVBUMGdJbXh2YzNRaUlIeDhJR3RwYm1RZ1BUMDlJQ0ppZFhONUlpa2dZMjl1ZEdsdWRXVTdDaUFnSUNBZ0lDQWdMeThnUVNCdGFYTnphVzl1SUc5dWJIa2dhblZ6ZENCamNtVmhkR1ZrSUcxaGVTQnViM1FnWW1VZ2NtVmhaR0ZpYkdVZ2VXVjBMZ29nSUNBZ0lDQWdJR2xtSUNoemRHRjBkWE5QWmlobGNuSXBJRDA5UFNBME1EUWdKaVlnS3l0dGFYTnphVzVuSUR3OUlFNVBWRjlHVDFWT1JGOVVVa2xGVXlrZ1kyOXVkR2x1ZFdVN0NpQWdJQ0FnSUNBZ2RHaHliM2NnWlhKeU93b2dJQ0FnSUNCOUNpQWdJQ0FnSUdOdmJuTjBJSE4wWVhSbElEMGdWRVZTVFVsT1FVeGJVM1J5YVc1bktHMXBjM05wYjI0Z0ppWWdiV2x6YzJsdmJpNXpkR0YwZFhNcExuUnZURzkzWlhKRFlYTmxLQ2xkT3dvZ0lDQWdJQ0JwWmlBb2MzUmhkR1VwSUhKbGRIVnliaUI3SUhOMFlYUmxMQ0J3YjJ4c2N5QjlPd29nSUNBZ2ZRb2dJQ0FnY21WMGRYSnVJSHNnYzNSaGRHVTZJQ0owYVcxbGIzVjBJaXdnY0c5c2JITWdmVHNLSUNCOUxBb0tJQ0JoYzNsdVl5QmpZVzVqWld3b2JXbHpjMmx2Ymtsa0tTQjdDaUFnSUNCbWIzSWdLR3hsZENCeWIzVnVaQ0E5SURFN0lEc2djbTkxYm1Rckt5a2dld29nSUNBZ0lDQXZMeUJEWVc1alpXeHNhVzVuSUdseklHbGtaVzF3YjNSbGJuUWdiMjRnZEdobElIWmxibVJ2Y2pvZ1lTQm1hVzVwYzJobFpDQnZjaUJqWVc1alpXeHNaV1FnYldsemMybHZiaUJwY3lCc1pXWjBJSFZ1WTJoaGJtZGxaQzRLSUNBZ0lDQWdZMjl1YzNRZ2JXbHpjMmx2YmlBOUlHRjNZV2wwSUhkcGRHaFNaWFJ5YVdWektDZ3BJRDArSUdac1pXVjBMbU5oYm1ObGJFMXBjM05wYjI0b2JXbHpjMmx2Ymtsa0tTd2dRMEZNVEY5VVVrbEZVeWs3Q2lBZ0lDQWdJR052Ym5OMElITjBZWFIxY3lBOUlHMXBjM05wYjI0Z0ppWWdiV2x6YzJsdmJpNXpkR0YwZFhNN0NpQWdJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMGdiblZzYkNCOGZDQlVSVkpOU1U1QlRGdFRkSEpwYm1jb2MzUmhkSFZ6S1M1MGIweHZkMlZ5UTJGelpTZ3BYU2tnY21WMGRYSnVPd29nSUNBZ0lDQnBaaUFvY205MWJtUWdQajBnUTBGT1EwVk1YMUpQVlU1RVV5a2dld29nSUNBZ0lDQWdJSFJvY205M0lHTnZaR1ZrUlhKeWIzSW9JblZ1Y21WemIyeDJaV1FpTENCZ2JXbHpjMmx2YmlBa2UyMXBjM05wYjI1SlpIMGdjM1JwYkd3Z0pIdHpkR0YwZFhOOUlHRm1kR1Z5SUdOaGJtTmxiR0FwT3dvZ0lDQWdJQ0I5Q2lBZ0lDQWdJR0YzWVdsMElITnNaV1Z3S0dKaFkydHZabVlvY205MWJtUXBLVHNLSUNBZ0lIMEtJQ0I5TEFwOU93b0t1eDhLRDNSeWFXRnNMM052Ym01bGRDNXFjeEtuSHlkMWMyVWdjM1J5YVdOMEp6c0tDbU52Ym5OMElITnNaV1Z3SUQwZ0tHMXpLU0E5UGlCdVpYY2dVSEp2YldselpTZ29jaWtnUFQ0Z2MyVjBWR2x0Wlc5MWRDaHlMQ0J0Y3lrcE93b0tablZ1WTNScGIyNGdjM1JoZEhWelQyWW9aWEp5S1NCN0NpQWdZMjl1YzNRZ2JTQTlJQzllYUc5emRDQmhjR2tnS0Z4a2V6TjlLVG92TG1WNFpXTW9LR1Z5Y2lBbUppQmxjbkl1YldWemMyRm5aU2tnZkh3Z0p5Y3BPd29nSUhKbGRIVnliaUJ0SUQ4Z1RuVnRZbVZ5S0cxYk1WMHBJRG9nYm5Wc2JEc0tmUW9LWm5WdVkzUnBiMjRnYm05MFVHVnliV2wwZEdWa0tHVnljaWtnZXdvZ0lISmxkSFZ5YmlBdmJtOTBJSEJsY20xcGRIUmxaQ0JpZVNCellXNWtZbTk0SUdOaGNHRmlhV3hwZEhrdkxuUmxjM1FvS0dWeWNpQW1KaUJsY25JdWJXVnpjMkZuWlNrZ2ZId2dKeWNwT3dwOUNnb3ZMeUJCSUdaaGFXeDFjbVVnZEdoaGRDQnpZWGx6SUc1dmRHaHBibWNnWkdWbWFXNXBkR1VnWVdKdmRYUWdkR2hsSUhabGJtUnZjaWR6SUhOMFlYUmxPaUJ1YnlCaGJuTjNaWElzSUdFZ2JHOXpkQW92THlCaGJuTjNaWElzSUc5MWNpQnZkMjRnZEdsdFpXOTFkQ3dnYjNJZ1lTQTFlSGd1Q21aMWJtTjBhVzl1SUdselZISmhibk5wWlc1MEtHVnljaWtnZXdvZ0lHbG1JQ2doWlhKeUlIeDhJRzV2ZEZCbGNtMXBkSFJsWkNobGNuSXBLU0J5WlhSMWNtNGdabUZzYzJVN0NpQWdhV1lnS0dWeWNpNTBhVzFsWkU5MWRDa2djbVYwZFhKdUlIUnlkV1U3Q2lBZ1kyOXVjM1FnY3lBOUlITjBZWFIxYzA5bUtHVnljaWs3Q2lBZ2NtVjBkWEp1SUhNZ1BUMDlJRzUxYkd3Z1B5Qm1ZV3h6WlNBNklITWdQajBnTlRBd093cDlDZ3BtZFc1amRHbHZiaUIzYVhSb1ZHbHRaVzkxZENod0xDQnRjeWtnZXdvZ0lHeGxkQ0IwT3dvZ0lHTnZibk4wSUhScGJXVnlJRDBnYm1WM0lGQnliMjFwYzJVb0tGOHNJSEpsYWlrZ1BUNGdld29nSUNBZ2RDQTlJSE5sZEZScGJXVnZkWFFvS0NrZ1BUNGdjbVZxS0U5aWFtVmpkQzVoYzNOcFoyNG9ibVYzSUVWeWNtOXlLQ2RvYjNOMElHRndhU0ExTURJNklIUnBiV1Z2ZFhRbktTd2dleUIwYVcxbFpFOTFkRG9nZEhKMVpTQjlLU2tzSUcxektUc0tJQ0I5S1RzS0lDQnlaWFIxY200Z1VISnZiV2x6WlM1eVlXTmxLRnR3TENCMGFXMWxjbDBwTG1acGJtRnNiSGtvS0NrZ1BUNGdZMnhsWVhKVWFXMWxiM1YwS0hRcEtUc0tmUW9LTHk4Z1RXRndJSFJvWlNCd2JHRjBabTl5YlNkeklHTnZiVzFoYm1RZ2FXUWdiMjUwYnlCMGFHVWdkbVZ1Wkc5eUozTWdZV3hzYjNkbFpDQmhiSEJvWVdKbGRDQW9PQzAyTkNCdlppQkJMVnBoTFhvd0xUa3RYeWtzQ2k4dklHbHVhbVZqZEdsMlpXeDVMQ0J6YnlCa2FYTjBhVzVqZENCamIyMXRZVzVrY3lCdVpYWmxjaUJ6YUdGeVpTQmhJSFpsYm1SdmNpQnVZVzFsTGdwbWRXNWpkR2x2YmlCMlpXNWtiM0pEYjIxdFlXNWtTV1FvYVdRcElIc0tJQ0JqYjI1emRDQnpJRDBnVTNSeWFXNW5LR2xrS1RzS0lDQnBaaUFvTDE1YlFTMWFZUzE2TUMwNVh5MWRlemdzTmpSOUpDOHVkR1Z6ZENoektTa2djbVYwZFhKdUlITTdDaUFnYkdWMElHOTFkQ0E5SUNkalh5YzdDaUFnWm05eUlDaGpiMjV6ZENCamFDQnZaaUJ6S1NCN0NpQWdJQ0JwWmlBb0wxdEJMVnBoTFhvd0xUbGZYUzh1ZEdWemRDaGphQ2twSUc5MWRDQXJQU0JqYURzS0lDQWdJR1ZzYzJVZ2IzVjBJQ3M5SUNjdEp5QXJJR05vTG1OdlpHVlFiMmx1ZEVGMEtEQXBMblJ2VTNSeWFXNW5LREUyS1NBcklDY3RKenNLSUNCOUNpQWdkMmhwYkdVZ0tHOTFkQzVzWlc1bmRHZ2dQQ0E0S1NCdmRYUWdLejBnSjE4bk93b2dJSEpsZEhWeWJpQnZkWFF1YzJ4cFkyVW9NQ3dnTmpRcE93cDlDZ3BtZFc1amRHbHZiaUJtWVdsc0tHTnZaR1VzSUcxbGMzTmhaMlVwSUhzS0lDQnlaWFIxY200Z1QySnFaV04wTG1GemMybG5iaWh1WlhjZ1JYSnliM0lvYldWemMyRm5aU2tzSUhzZ1kyOWtaU0I5S1RzS2ZRb0tiVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQjdDaUFnWVhONWJtTWdhVzUyWlc1MGIzSjVLQ2tnZXdvZ0lDQWdiR1YwSUd4aGMzUkZjbkk3Q2lBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRFU3SUdrckt5a2dld29nSUNBZ0lDQjBjbmtnZXdvZ0lDQWdJQ0FnSUdOdmJuTjBJSEpsY3lBOUlHRjNZV2wwSUhkcGRHaFVhVzFsYjNWMEtHWnNaV1YwTG14cGMzUlNiMkp2ZEhNb0tTd2dPREF3TUNrN0NpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoeVpYTXVjbTlpYjNSeklIeDhJRnRkS1M1dFlYQW9LSElwSUQwK0lDaDdJR2xrT2lCeUxtbGtMQ0J6ZEdGMGRYTTZJSEl1YzNSaGRIVnpMQ0JpWVhSMFpYSjVPaUJ5TG1KaGRIUmxjbmtnZlNrcE93b2dJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdDaUFnSUNBZ0lDQWdiR0Z6ZEVWeWNpQTlJR1U3Q2lBZ0lDQWdJQ0FnYVdZZ0tDRnBjMVJ5WVc1emFXVnVkQ2hsS1NrZ2RHaHliM2NnWlRzS0lDQWdJQ0FnSUNCaGQyRnBkQ0J6YkdWbGNDZ3hNREFwT3dvZ0lDQWdJQ0I5Q2lBZ0lDQjlDaUFnSUNCMGFISnZkeUJzWVhOMFJYSnlPd29nSUgwc0Nnb2dJR0Z6ZVc1aklHUnBjM0JoZEdOb0tISnZZbTkwU1dRc0lIUmhjbWRsZEN3Z1kyOXRiV0Z1WkVsa0tTQjdDaUFnSUNCamIyNXpkQ0JqYVdRZ1BTQjJaVzVrYjNKRGIyMXRZVzVrU1dRb1kyOXRiV0Z1WkVsa0tUc0tJQ0FnSUdOdmJuTjBJR0p2WkhrZ1BTQjdJSFJoY21kbGREb2dleUI0T2lCMFlYSm5aWFF1ZUN3Z2VUb2dkR0Z5WjJWMExua2dmU3dnWTI5dGJXRnVaRjlwWkRvZ1kybGtJSDA3Q2lBZ0lDQXZMeUJTWlhSeWVXbHVaeUIzYVhSb0lIUm9aU0J6WVcxbElHTnZiVzFoYm1SZmFXUWdhWE1nYVdSbGJYQnZkR1Z1ZENCdmJpQjBhR1VnZG1WdVpHOXlPaUJwZENCaGJuTjNaWEp6SUhkcGRHZ2dkR2hsQ2lBZ0lDQXZMeUJ2Y21sbmFXNWhiQ0J0YVhOemFXOXVMQ0J6YnlCcGRDQmpZVzRnYm1WMlpYSWdZbVZqYjIxbElHRWdjMlZqYjI1a0lHOXlaR1Z5TGdvZ0lDQWdabTl5SUNoc1pYUWdZWFIwWlcxd2RDQTlJREE3SUdGMGRHVnRjSFFnUENBMU95QmhkSFJsYlhCMEt5c3BJSHNLSUNBZ0lDQWdiR1YwSUhKbGN6c0tJQ0FnSUNBZ2RISjVJSHNLSUNBZ0lDQWdJQ0J5WlhNZ1BTQmhkMkZwZENCM2FYUm9WR2x0Wlc5MWRDaG1iR1ZsZEM1amNtVmhkR1ZOYVhOemFXOXVLSEp2WW05MFNXUXNJR0p2WkhrcExDQTRNREF3S1RzS0lDQWdJQ0FnZlNCallYUmphQ0FvWlNrZ2V3b2dJQ0FnSUNBZ0lHbG1JQ2hwYzFSeVlXNXphV1Z1ZENobEtTa2dld29nSUNBZ0lDQWdJQ0FnWVhkaGFYUWdjMnhsWlhBb01UQXdJQ29nS0dGMGRHVnRjSFFnS3lBeEtTazdDaUFnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHNLSUNBZ0lDQWdJQ0I5Q2lBZ0lDQWdJQ0FnZEdoeWIzY2dabUZwYkNnbmNtVm1kWE5sWkNjc0lHQjJaVzVrYjNJZ2NtVm1kWE5sWkNCdmNtUmxjam9nSkh0bExtMWxjM05oWjJWOVlDazdDaUFnSUNBZ0lIMEtJQ0FnSUNBZ2FXWWdLQ0Z5WlhNZ2ZId2dJWEpsY3k1dGFYTnphVzl1WDJsa0tTQjBhSEp2ZHlCbVlXbHNLQ2QxYm5KbGMyOXNkbVZrSnl3Z0ozWmxibVJ2Y2lCaGJuTjNaWElnYUdGa0lHNXZJRzFwYzNOcGIyNGdhV1FuS1RzS0lDQWdJQ0FnYVdZZ0tISmxjeTVqYjIxdFlXNWtYMmxrSUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnY21WekxtTnZiVzFoYm1SZmFXUWdJVDA5SUdOcFpDa2dld29nSUNBZ0lDQWdJSFJvY205M0lHWmhhV3dvSjNWdWNtVnpiMngyWldRbkxDQW5kbVZ1Wkc5eUlHRnVjM2RsY21Wa0lIZHBkR2dnWVNCa2FXWm1aWEpsYm5RZ1kyOXRiV0Z1WkNjcE93b2dJQ0FnSUNCOUNpQWdJQ0FnSUdsbUlDaHlaWE11Y205aWIzUWdJVDA5SUhWdVpHVm1hVzVsWkNBbUppQnlaWE11Y205aWIzUWdJVDA5SUhKdlltOTBTV1FwSUhzS0lDQWdJQ0FnSUNCMGFISnZkeUJtWVdsc0tDZDFibkpsYzI5c2RtVmtKeXdnSjNabGJtUnZjaUJoYm5OM1pYSmxaQ0IzYVhSb0lHRWdaR2xtWm1WeVpXNTBJSEp2WW05MEp5azdDaUFnSUNBZ0lIMEtJQ0FnSUNBZ2NtVjBkWEp1SUhKbGN5NXRhWE56YVc5dVgybGtPd29nSUNBZ2ZRb2dJQ0FnZEdoeWIzY2dabUZwYkNnbmRXNXlaWE52YkhabFpDY3NJQ2R1YnlCMWMyRmliR1VnWVc1emQyVnlJR1p5YjIwZ2RtVnVaRzl5T3lCdmNtUmxjaUJ6ZEdGMFpTQjFibXR1YjNkdUp5azdDaUFnZlN3S0NpQWdZWE41Ym1NZ2QyRnBkQ2h0YVhOemFXOXVTV1FzSUc5d2RITXBJSHNLSUNBZ0lHTnZibk4wSUcxaGVGQnZiR3h6SUQwZ0tHOXdkSE1nSmlZZ2IzQjBjeTV0WVhoUWIyeHNjeWtnZkh3Z05UQTdDaUFnSUNCc1pYUWdjRzlzYkhNZ1BTQXdPd29nSUNBZ2JHVjBJR1Z5Y205eWN5QTlJREE3Q2lBZ0lDQjNhR2xzWlNBb2NHOXNiSE1nUENCdFlYaFFiMnhzY3lrZ2V3b2dJQ0FnSUNCc1pYUWdiVHNLSUNBZ0lDQWdkSEo1SUhzS0lDQWdJQ0FnSUNCdElEMGdZWGRoYVhRZ2QybDBhRlJwYldWdmRYUW9abXhsWlhRdVoyVjBUV2x6YzJsdmJpaHRhWE56YVc5dVNXUXBMQ0E0TURBd0tUc0tJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pTa2dld29nSUNBZ0lDQWdJR2xtSUNocGMxUnlZVzV6YVdWdWRDaGxLU0FtSmlBcksyVnljbTl5Y3lBOFBTQXpNQ2tnZXdvZ0lDQWdJQ0FnSUNBZ1lYZGhhWFFnYzJ4bFpYQW9OVEFwT3dvZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN0NpQWdJQ0FnSUNBZ2ZRb2dJQ0FnSUNBZ0lIUm9jbTkzSUdVN0NpQWdJQ0FnSUgwS0lDQWdJQ0FnY0c5c2JITXJLenNLSUNBZ0lDQWdhV1lnS0cwdWMzUmhkSFZ6SUQwOVBTQW5aRzl1WlNjZ2ZId2diUzV6ZEdGMGRYTWdQVDA5SUNkbVlXbHNaV1FuSUh4OElHMHVjM1JoZEhWeklEMDlQU0FuWTJGdVkyVnNiR1ZrSnlrZ2V3b2dJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lITjBZWFJsT2lCdExuTjBZWFIxY3l3Z2NHOXNiSE1nZlRzS0lDQWdJQ0FnZlFvZ0lDQWdJQ0JwWmlBb2NHOXNiSE1nUENCdFlYaFFiMnhzY3lrZ1lYZGhhWFFnYzJ4bFpYQW9OVEFwT3dvZ0lDQWdmUW9nSUNBZ2NtVjBkWEp1SUhzZ2MzUmhkR1U2SUNkMGFXMWxiM1YwSnl3Z2NHOXNiSE1nZlRzS0lDQjlMQW9LSUNCaGMzbHVZeUJqWVc1alpXd29iV2x6YzJsdmJrbGtLU0I3Q2lBZ0lDQnNaWFFnYkdGemRFVnljanNLSUNBZ0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dOVHNnYVNzcktTQjdDaUFnSUNBZ0lIUnllU0I3Q2lBZ0lDQWdJQ0FnY21WMGRYSnVJR0YzWVdsMElIZHBkR2hVYVcxbGIzVjBLR1pzWldWMExtTmhibU5sYkUxcGMzTnBiMjRvYldsemMybHZia2xrS1N3Z09EQXdNQ2s3Q2lBZ0lDQWdJSDBnWTJGMFkyZ2dLR1VwSUhzS0lDQWdJQ0FnSUNCc1lYTjBSWEp5SUQwZ1pUc0tJQ0FnSUNBZ0lDQnBaaUFvSVdselZISmhibk5wWlc1MEtHVXBLU0IwYUhKdmR5QmxPd29nSUNBZ0lDQWdJR0YzWVdsMElITnNaV1Z3S0RFd01DazdDaUFnSUNBZ0lIMEtJQ0FnSUgwS0lDQWdJSFJvY205M0lHeGhjM1JGY25JN0NpQWdmU3dLZlRzS0NvWUNDZ2x3YkdGdUxtcHpiMjRTK0FGN0ltTnZiVzFoYm1SeklqcGJleUpwWkNJNkluSjFiakV3TFdNeElpd2ljbTlpYjNRaU9pSnlNU0lzSW5SaGNtZGxkQ0k2ZXlKNElqb3pMQ0o1SWpvd2ZYMHNleUpwWkNJNkluSjFiakV3TFdNeUlpd2ljbTlpYjNRaU9pSnlNaUlzSW5SaGNtZGxkQ0k2ZXlKNElqb3hNQ3dpZVNJNk5IMTlMSHNpYVdRaU9pSnlkVzR4TUMxak15SXNJbkp2WW05MElqb2ljak1pTENKMFlYSm5aWFFpT25zaWVDSTZNQ3dpZVNJNk1UVjlmU3g3SW1sa0lqb2ljblZ1TVRBdFl6UWlMQ0p5YjJKdmRDSTZJbkl4SWl3aWRHRnlaMlYwSWpwN0luZ2lPalV3TENKNUlqbzFNSDBzSW1OaGJtTmxiQ0k2ZEhKMVpYMWRmUklsYm05a1pTQm9ZWEp1WlhOekxtcHpJRzV2YldsdVlXd2dZV1JoY0hSbGNpMTJNaTVxY3lvRlpteGxaWFE9IiwicmVzcG9uc2UiOiJDZ1prYjJOclpYSVNCbXRsY201bGJCanZDU0tlQXdnRUVrQTRZMlEzWlRsak5qQXdNVFJoWWpJd1ptSXpPVGRqWkRrM01URmtOalppTVRSall6TmxOMlF3WmpCak0yUm1NR000TUdVd01HVmlOek15T1RNNE5EYzBHa0JtTWpWak5UTmpZVFJoWlRCbFl6TTVOVEkxTlRBd05USTFPRE00TnpCaE5ERTBaRFpqWkdWaE1qazJORGhoT0RBNU5tRTNOekZqTXpJMVpUTTNPV1ZrSWdaa2IyTnJaWElxQm10bGNtNWxiREpVWkc5amEyVnlMV2x0WVdkbE9uTm9ZVEkxTmpvek1tUmhOemRpTVdKbE1qUmtaVFJqTVRVeU5qWTNZekk0WVdJMk16VXpNVFF5TldOa05qa3dNREJoWTJZek1HRXpNamc1T0RWallqZzFOek0zTjJZM1FJeWxtZEtXTkVqOHJwblNsalJxUURSak5qbGlOV0V6T0dZeU9UQmlNalJpT0RKak5HRXlZMkl6WXpBeE1HVTNNV0U0T0dZeVpUQmpORGMwWlRVMVpEZ3pZMlJrTjJWaE5UUm1aamhpTm1SeVlHOWphUzF0WVc1cFptVnpkRHBzYVc1MWVDOWhiV1EyTkVCemFHRXlOVFk2WVRabFpqSmxZVEZqT0dZeFpHVTFZemc0TldVeFlURTRZbUUzWldVMFpEazJNbVV6WVRnMU9UZzNOMlkyWmpRMll6Sm1ZamRsWW1Gak1XWTJZMk0xWXlwZ2IyTnBMVzFoYm1sbVpYTjBPbXhwYm5WNEwyRnRaRFkwUUhOb1lUSTFOanBoTm1WbU1tVmhNV000WmpGa1pUVmpPRGcxWlRGaE1UaGlZVGRsWlRSa09UWXlaVE5oT0RVNU9EYzNaalptTkRaak1tWmlOMlZpWVdNeFpqWmpZelZqTWxSa2IyTnJaWEl0YVcxaFoyVTZjMmhoTWpVMk9qTXlaR0UzTjJJeFltVXlOR1JsTkdNeE5USTJOamRqTWpoaFlqWXpOVE14TkRJMVkyUTJPVEF3TUdGalpqTXdZVE15T0RrNE5XTmlPRFUzTXpjM1pqZGFxZ2tLcFFrS0pXNXZaR1VnYUdGeWJtVnpjeTVxY3lCdWIyMXBibUZzSUdGa1lYQjBaWEl0ZGpJdWFuTVMrQWhCUkVGUVZFVlNMVkpGVUU5U1ZDQjdJbk5qWlc1aGNtbHZJam9pYm05dGFXNWhiQ0lzSW1Ga1lYQjBaWElpT2lKaFpHRndkR1Z5TFhZeUxtcHpJaXdpWTI5dGNHeGxkR1ZrSWpwMGNuVmxMQ0pqYjIxdFlXNWtjeUk2VzNzaWFXUWlPaUp5ZFc0eE1DMWpNU0lzSW5KdlltOTBJam9pY2pFaUxDSnRhWE56YVc5dUlqb2liVEVpTENKa2FYTndZWFJqYUdWa0lqb2liVEVpTENKemRHRjBaU0k2SW1SdmJtVWlMQ0p3YjJ4c2N5STZNeXdpYldGNFgzQnZiR3h6SWpvME1Dd2lkMkZwZEdWa0lqcDdJbk4wWVhSbElqb2laRzl1WlNJc0luQnZiR3h6SWpvekxDSnlaWFJ5YVdWeklqb3dmU3dpWlhKeWIzSWlPaUlpTENKamIyUmxJam9pSW4wc2V5SnBaQ0k2SW5KMWJqRXdMV015SWl3aWNtOWliM1FpT2lKeU1pSXNJbTFwYzNOcGIyNGlPaUp0TWlJc0ltUnBjM0JoZEdOb1pXUWlPaUp0TWlJc0luTjBZWFJsSWpvaVpHOXVaU0lzSW5CdmJHeHpJam8wTENKdFlYaGZjRzlzYkhNaU9qUXdMQ0ozWVdsMFpXUWlPbnNpYzNSaGRHVWlPaUprYjI1bElpd2ljRzlzYkhNaU9qUXNJbkpsZEhKcFpYTWlPakI5TENKbGNuSnZjaUk2SWlJc0ltTnZaR1VpT2lJaWZTeDdJbWxrSWpvaWNuVnVNVEF0WXpNaUxDSnliMkp2ZENJNkluSXpJaXdpYldsemMybHZiaUk2SW0weklpd2laR2x6Y0dGMFkyaGxaQ0k2SW0weklpd2ljM1JoZEdVaU9pSmtiMjVsSWl3aWNHOXNiSE1pT2pVc0ltMWhlRjl3YjJ4c2N5STZOREFzSW5kaGFYUmxaQ0k2ZXlKemRHRjBaU0k2SW1SdmJtVWlMQ0p3YjJ4c2N5STZOU3dpY21WMGNtbGxjeUk2TUgwc0ltVnljbTl5SWpvaUlpd2lZMjlrWlNJNklpSjlMSHNpYVdRaU9pSnlkVzR4TUMxak5DSXNJbkp2WW05MElqb2ljakVpTENKdGFYTnphVzl1SWpvaWJUUWlMQ0prYVhOd1lYUmphR1ZrSWpvaWJUUWlMQ0p6ZEdGMFpTSTZJbU5oYm1ObGJHeGxaQ0lzSW5CdmJHeHpJam94TENKdFlYaGZjRzlzYkhNaU9qVXNJbmRoYVhSbFpDSTZleUp6ZEdGMFpTSTZJbU5oYm1ObGJHeGxaQ0lzSW5CdmJHeHpJam94TENKeVpYUnlhV1Z6SWpvd2ZTd2laWEp5YjNJaU9pSWlMQ0pqYjJSbElqb2lJbjFkTENKcGJuWmxiblJ2Y21sbGN5STZXM3NpY21WMGRYSnVaV1FpT2x0N0ltbGtJam9pY2pFaUxDSnpkR0YwZFhNaU9pSnBaR3hsSWl3aVltRjBkR1Z5ZVNJNk9UWjlMSHNpYVdRaU9pSnlNaUlzSW5OMFlYUjFjeUk2SW1sa2JHVWlMQ0ppWVhSMFpYSjVJam8zTVgwc2V5SnBaQ0k2SW5Jeklpd2ljM1JoZEhWeklqb2lhV1JzWlNJc0ltSmhkSFJsY25raU9qVTRmVjBzSW1WeWNtOXlJam9pSW4wc2V5SnlaWFIxY201bFpDSTZXM3NpYVdRaU9pSnlNU0lzSW5OMFlYUjFjeUk2SW1sa2JHVWlMQ0ppWVhSMFpYSjVJam81Tkgwc2V5SnBaQ0k2SW5JeUlpd2ljM1JoZEhWeklqb2lhV1JzWlNJc0ltSmhkSFJsY25raU9qWTRmU3g3SW1sa0lqb2ljak1pTENKemRHRjBkWE1pT2lKcFpHeGxJaXdpWW1GMGRHVnllU0k2TlRSOVhTd2laWEp5YjNJaU9pSWlmVjBzSW5CdmJHeHpJam94TXl3aWNtVjBjbWxsY3lJNk1Dd2laWEp5YjNKeklqcGJYWDBLTU44REdBRT0iLCJlbnZlbG9wZSI6eyJwYXlsb2FkVHlwZSI6ImFwcGxpY2F0aW9uL3ZuZC5pbi10b3RvK2pzb24iLCJwYXlsb2FkIjoiZXlKZmRIbHdaU0k2SW1oMGRIQnpPaTh2YVc0dGRHOTBieTVwYnk5VGRHRjBaVzFsYm5RdmRqRWlMQ0p6ZFdKcVpXTjBJanBiZXlKdVlXMWxJam9pY25WdUxYSmxZMjl5WkNJc0ltUnBaMlZ6ZENJNmV5SnphR0V5TlRZaU9pSTBZelk1WWpWaE16aG1Namt3WWpJMFlqZ3lZelJoTW1OaU0yTXdNVEJsTnpGaE9EaG1NbVV3WXpRM05HVTFOV1E0TTJOa1pEZGxZVFUwWm1ZNFlqWmtJbjE5WFN3aWNISmxaR2xqWVhSbFZIbHdaU0k2SW1oMGRIQnpPaTh2Y0d4cGJYTnZiR3h0WVhKckxtZHBkR2gxWWk1cGJ5OXdiR2x0YzI5c2JDOXlkVzR0Y21WamIzSmtMM1l4SWl3aWNISmxaR2xqWVhSbElqcDdJblpsY25OcGIyNGlPalFzSW5KbGNYVmxjM1JmYzJoaE1qVTJJam9pT0dOa04yVTVZell3TURFMFlXSXlNR1ppTXprM1kyUTVOekV4WkRZMllqRTBZMk16WlRka01HWXdZek5rWmpCak9EQmxNREJsWWpjek1qa3pPRFEzTkNJc0luSmxjM1ZzZEY5emFHRXlOVFlpT2lKbU1qVmpOVE5qWVRSaFpUQmxZek01TlRJMU5UQXdOVEkxT0RNNE56QmhOREUwWkRaalpHVmhNamsyTkRoaE9EQTVObUUzTnpGak16STFaVE0zT1dWa0lpd2ljSEp2ZG1sa1pYSWlPaUprYjJOclpYSWlMQ0pwYzI5c1lYUnBiMjRpT2lKclpYSnVaV3dpTENKbGJuWnBjbTl1YldWdWRDSTZJbVJ2WTJ0bGNpMXBiV0ZuWlRwemFHRXlOVFk2TXpKa1lUYzNZakZpWlRJMFpHVTBZekUxTWpZMk4yTXlPR0ZpTmpNMU16RTBNalZqWkRZNU1EQXdZV05tTXpCaE16STRPVGcxWTJJNE5UY3pOemRtTnlJc0luTnZablIzWVhKbFgybGtaVzUwYVhSNUlqb2liMk5wTFcxaGJtbG1aWE4wT214cGJuVjRMMkZ0WkRZMFFITm9ZVEkxTmpwaE5tVm1NbVZoTVdNNFpqRmtaVFZqT0RnMVpURmhNVGhpWVRkbFpUUmtPVFl5WlROaE9EVTVPRGMzWmpabU5EWmpNbVppTjJWaVlXTXhaalpqWXpWaklpd2ljRzlzYVdONUlqb2lJaXdpYzNSaGNuUmxaRjkxYm1sNFgyMXpJam94TnpreU56ZzBNelUxT1Rnd0xDSmxibVJsWkY5MWJtbDRYMjF6SWpveE56a3lOemcwTXpVM01qUTBMQ0p6WlhOemFXOXVJam9pSWl3aWMyVnhkV1Z1WTJVaU9qQXNJbkJ5WlhacGIzVnpYM05vWVRJMU5pSTZJaUlzSW5KbFkyOXlaRjl6YUdFeU5UWWlPaUkwWXpZNVlqVmhNemhtTWprd1lqSTBZamd5WXpSaE1tTmlNMk13TVRCbE56RmhPRGhtTW1Vd1l6UTNOR1UxTldRNE0yTmtaRGRsWVRVMFptWTRZalprSW4xOSIsInNpZ25hdHVyZXMiOlt7ImtleWlkIjoiMjM2OGU2YWY4NmZiNzk4NGM1MmVhMzZiMDQyOThhYWZjNDk4YTc0NjFmMTE2ZTBlOTk4ZWZlZDcwMjk3NDU2NyIsInNpZyI6Ii9YRkZjOVZ5OCtWV0RsZnJQU1lhckZLTjBPaStXVXRyRE5COGxITlpIWUt0ODl2dVhUNVFQTGpkYmFaWWl1cUhIT3BwY3BsWVp0dllnQndPRFpTM0NBPT0ifV19LCJsaW5rIjp7InBheWxvYWRUeXBlIjoiYXBwbGljYXRpb24vdm5kLmluLXRvdG8ranNvbiIsInBheWxvYWQiOiJleUpmZEhsd1pTSTZJbWgwZEhCek9pOHZhVzR0ZEc5MGJ5NXBieTlUZEdGMFpXMWxiblF2ZGpFaUxDSnpkV0pxWldOMElqcGJleUp1WVcxbElqb2lZblZ1Wkd4bExXeHBibVVpTENKa2FXZGxjM1FpT25zaWMyaGhNalUySWpvaU1qWmlNekV3TlRkak1ETTNNREE0TURJd05UVm1OakkwT0dOaU5XSTNZbUk1TVdZM1l6TXpObUkyWkdWbE9UUTRNVGc0WldOaU5UUTVZMk5qTnpCaE1TSjlmVjBzSW5CeVpXUnBZMkYwWlZSNWNHVWlPaUpvZEhSd2N6b3ZMM0JzYVcxemIyeHNiV0Z5YXk1bmFYUm9kV0l1YVc4dmNHeHBiWE52Ykd3dlluVnVaR3hsTFd4cGJtc3ZkakVpTENKd2NtVmthV05oZEdVaU9uc2lhVzVrWlhnaU9qRXdMQ0p3Y21WMmFXOTFjMTl6YUdFeU5UWWlPaUpoWWpZMFpUYzVNMlUxTjJRd1pHUXlaV1k1WWpCak5EWm1abUUzTXpKbFpUVTVORGxqTlRFeE16WTVOakJsTnpSa1lqazRNMkprTWpabU56RmtZVEV6SWl3aVpXNTBjbmxmYzJoaE1qVTJJam9pTWpaaU16RXdOVGRqTURNM01EQTRNREl3TlRWbU5qSTBPR05pTldJM1ltSTVNV1kzWXpNek5tSTJaR1ZsT1RRNE1UZzRaV05pTlRRNVkyTmpOekJoTVNKOWZRPT0iLCJzaWduYXR1cmVzIjpbeyJrZXlpZCI6IjIzNjhlNmFmODZmYjc5ODRjNTJlYTM2YjA0Mjk4YWFmYzQ5OGE3NDYxZjExNmUwZTk5OGVmZWQ3MDI5NzQ1NjciLCJzaWciOiIzS3RHb2Rja2Z0akRhbTlHb2Q3WFBxT3NkMkk5cEt4dG1idkFVQUxkQUNBMkJZT0Y5SlEwY2lQam10bElTSVFCbDNZWkE2MWVmakF3OUxwQlU1MG1CQT09In1dfX0=",
                "contentType": "application/json",
                "encoding": "base64"
              }
            },
            "name": "entry.json"
          },
          {
            "contents": {
              "attachment": {
                "content": "eyJyZXF1ZXN0Ijp7Im1pbmltdW1faXNvbGF0aW9uIjoiY29udGFpbmVyIiwicHJvamVjdCI6eyJhcnRpZmFjdHMiOltdLCJmaWxlcyI6W3siY29udGVudCI6Ii8vIFRoZSBwbGF0Zm9ybSdzIGNvbmZvcm1hbmNlIGhhcm5lc3M6IGxvYWRzIGEgdmVuZG9yIGFkYXB0ZXIsIHJ1bnMgdGhlIGNvbW1hbmRzIG9mXG4vLyBwbGFuLmpzb24gdGhyb3VnaCBpdCBhZ2FpbnN0IHRoZSB2ZW5kb3IgQVBJIHRoZSBydW4ncyBncmFudCByZWFjaGVzLCBhbmQgcHJpbnRzIG9uZVxuLy8gcmVwb3J0IGxpbmUuXG4vL1xuLy8gICBub2RlIGhhcm5lc3MuanMgXHUwMDNjc2NlbmFyaW9cdTAwM2UgXHUwMDNjYWRhcHRlciBmaWxlXHUwMDNlXG4vL1xuLy8gVGhlIGhhcm5lc3MgaXMgdGhlIHBsYXRmb3JtJ3MgY29kZTsgdGhlIGFkYXB0ZXIgaXMgdGhlIGFnZW50J3MuIEJvdGggcnVuIGluc2lkZSB0aGVcbi8vIHNhbmRib3gsIGluIG9uZSBwcm9jZXNzLCBhbmQgdGhlIG9ubHkgd2F5IG91dCBpcyB0aGUgaW5qZWN0ZWQgYGZsZWV0YCBjbGllbnQuIFNvIHRoZVxuLy8gcmVwb3J0IGlzIHRoZSBhZGFwdGVyJ3MgY2xhaW06IHRoZSB2ZXJkaWN0IGlzIG1hZGUgb24gdGhlIGhvc3QsIGZyb20gdGhlIHBsYW4gYW5kIHRoZVxuLy8gdmVuZG9yJ3MgbGVkZ2VyLiBUaGUgc2NlbmFyaW8gYXJndW1lbnQgaXMgb25seSByZWNvcmRlZDsgdGhlIGhhcm5lc3MgZG9lcyBub3Qga25vd1xuLy8gd2hhdCB0aGUgdmVuZG9yIHdpbGwgZG8uXG5cInVzZSBzdHJpY3RcIjtcblxuY29uc3QgZnMgPSByZXF1aXJlKFwiZnNcIik7XG5cbmNvbnN0IHNjZW5hcmlvID0gcHJvY2Vzcy5hcmd2WzJdO1xuY29uc3QgYWRhcHRlckZpbGUgPSBwcm9jZXNzLmFyZ3ZbM107XG5cbmNvbnN0IHJlcG9ydCA9IHsgc2NlbmFyaW8sIGFkYXB0ZXI6IGFkYXB0ZXJGaWxlLCBjb21wbGV0ZWQ6IGZhbHNlLCBjb21tYW5kczogW10sIGludmVudG9yaWVzOiBbXSwgcG9sbHM6IDAsIHJldHJpZXM6IDAsIGVycm9yczogW10gfTtcbmNvbnN0IGZhaWwgPSAobXNnKSA9XHUwMDNlIHsgcmVwb3J0LmVycm9ycy5wdXNoKG1zZyk7IH07XG5jb25zdCBmaW5pc2ggPSAoY29kZSkgPVx1MDAzZSB7IGNvbnNvbGUubG9nKFwiQURBUFRFUi1SRVBPUlQgXCIgKyBKU09OLnN0cmluZ2lmeShyZXBvcnQpKTsgcHJvY2Vzcy5leGl0KGNvZGUpOyB9O1xuY29uc3QgZXJyb3JPZiA9IChlKSA9XHUwMDNlICh7IGVycm9yOiBTdHJpbmcoKGUgXHUwMDI2XHUwMDI2IGUubWVzc2FnZSkgfHwgZSkuc2xpY2UoMCwgMjAwKSwgY29kZTogKGUgXHUwMDI2XHUwMDI2IHR5cGVvZiBlLmNvZGUgPT09IFwic3RyaW5nXCIpID8gZS5jb2RlIDogXCJcIiB9KTtcbi8vIFdoYXQgdGhlIGFkYXB0ZXIgcmV0dXJuZWQsIGFzIEpTT04sIHNvIHRoZSBob3N0IGNhbiBjaGVjayBpdHMgc2hhcGU6IG5ldmVyIGp1ZGdlZCBoZXJlLlxuY29uc3QgcmF3ID0gKHYpID1cdTAwM2Uge1xuICBpZiAodiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcbiAgdHJ5IHsgY29uc3QgcyA9IEpTT04uc3RyaW5naWZ5KHYpOyByZXR1cm4gcy5sZW5ndGggXHUwMDNjPSA0MDk2ID8gSlNPTi5wYXJzZShzKSA6IHsgdHJ1bmNhdGVkOiBzLmxlbmd0aCB9OyB9IGNhdGNoIChlKSB7IHJldHVybiB7IHVuc2VyaWFsaXphYmxlOiBTdHJpbmcoZSBcdTAwMjZcdTAwMjYgZS5tZXNzYWdlKSB9OyB9XG59O1xuXG5jb25zdCBndWFyZCA9IHNldFRpbWVvdXQoKCkgPVx1MDAzZSB7IGZhaWwoXCJoYXJuZXNzIHRpbWVvdXQgYWZ0ZXIgNzUgc1wiKTsgZmluaXNoKDIpOyB9LCA3NTAwMCk7XG5ndWFyZC51bnJlZigpO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBpZiAoIXNjZW5hcmlvIHx8ICFhZGFwdGVyRmlsZSkgeyBmYWlsKFwidXNhZ2U6IG5vZGUgaGFybmVzcy5qcyBcdTAwM2NzY2VuYXJpb1x1MDAzZSBcdTAwM2NhZGFwdGVyIGZpbGVcdTAwM2VcIik7IHJldHVybiBmaW5pc2goMik7IH1cbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzLmZsZWV0ICE9PSBcIm9iamVjdFwiKSB7IGZhaWwoXCJubyBmbGVldCBjbGllbnQgaW4gdGhpcyBydW46IHRoZSBncmFudCBpcyBtaXNzaW5nXCIpOyByZXR1cm4gZmluaXNoKDIpOyB9XG4gIGxldCBwbGFuO1xuICB0cnkgeyBwbGFuID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoXCJwbGFuLmpzb25cIiwgXCJ1dGY4XCIpKTsgfSBjYXRjaCAoZSkgeyBmYWlsKFwicGxhbi5qc29uOiBcIiArIGUubWVzc2FnZSk7IHJldHVybiBmaW5pc2goMik7IH1cbiAgbGV0IGFkYXB0ZXI7XG4gIHRyeSB7IGFkYXB0ZXIgPSByZXF1aXJlKFwiLi9cIiArIGFkYXB0ZXJGaWxlKTsgfSBjYXRjaCAoZSkgeyBmYWlsKFwiYWRhcHRlciBmYWlsZWQgdG8gbG9hZDogXCIgKyBlLm1lc3NhZ2UpOyByZXR1cm4gZmluaXNoKDEpOyB9XG4gIGZvciAoY29uc3QgZm4gb2YgW1wiaW52ZW50b3J5XCIsIFwiZGlzcGF0Y2hcIiwgXCJ3YWl0XCIsIFwiY2FuY2VsXCJdKSB7XG4gICAgaWYgKHR5cGVvZiBhZGFwdGVyW2ZuXSAhPT0gXCJmdW5jdGlvblwiKSB7IGZhaWwoXCJhZGFwdGVyIGRvZXMgbm90IGV4cG9ydCBcIiArIGZuKTsgfVxuICB9XG4gIGlmIChyZXBvcnQuZXJyb3JzLmxlbmd0aCkgcmV0dXJuIGZpbmlzaCgxKTtcblxuICAvLyAxLiBJbnZlbnRvcnksIHJlY29yZGVkIGFzIHJldHVybmVkLlxuICBjb25zdCB0YWtlSW52ZW50b3J5ID0gYXN5bmMgKCkgPVx1MDAzZSB7XG4gICAgdHJ5IHsgcmVwb3J0LmludmVudG9yaWVzLnB1c2goeyByZXR1cm5lZDogcmF3KGF3YWl0IGFkYXB0ZXIuaW52ZW50b3J5KCkpLCBlcnJvcjogXCJcIiB9KTsgfVxuICAgIGNhdGNoIChlKSB7IHJlcG9ydC5pbnZlbnRvcmllcy5wdXNoKHsgcmV0dXJuZWQ6IG51bGwsIGVycm9yOiBlcnJvck9mKGUpLmVycm9yIH0pOyB9XG4gIH07XG4gIGF3YWl0IHRha2VJbnZlbnRvcnkoKTtcblxuICAvLyAyLiBEaXNwYXRjaCBldmVyeSBjb21tYW5kLCB0aGVuIHdhaXQgZm9yIGVhY2ggbWlzc2lvbi4gQW4gZXJyb3IgdGhlIGFkYXB0ZXIgdGhyb3dzXG4gIC8vICAgIGlzIHJlY29yZGVkIGFnYWluc3QgaXRzIGNvbW1hbmQsIGFuZCB0aGUgcnVuIGdvZXMgb24uXG4gIGNvbnN0IHJvd3MgPSBwbGFuLmNvbW1hbmRzLm1hcCgoYykgPVx1MDAzZSAoeyBpZDogYy5pZCwgcm9ib3Q6IGMucm9ib3QsIG1pc3Npb246IFwiXCIsIGRpc3BhdGNoZWQ6IG51bGwsIHN0YXRlOiBcIlwiLCBwb2xsczogMCwgbWF4X3BvbGxzOiAwLCB3YWl0ZWQ6IG51bGwsIGVycm9yOiBcIlwiLCBjb2RlOiBcIlwiIH0pKTtcbiAgcmVwb3J0LmNvbW1hbmRzID0gcm93cztcbiAgY29uc3Qgc2VuZCA9IGFzeW5jIChjLCByb3cpID1cdTAwM2Uge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtID0gYXdhaXQgYWRhcHRlci5kaXNwYXRjaChjLnJvYm90LCBjLnRhcmdldCwgYy5pZCk7XG4gICAgICByb3cuZGlzcGF0Y2hlZCA9IHJhdyhtKTtcbiAgICAgIGlmICh0eXBlb2YgbSA9PT0gXCJzdHJpbmdcIiBcdTAwMjZcdTAwMjYgbSAhPT0gXCJcIikgcm93Lm1pc3Npb24gPSBtO1xuICAgIH0gY2F0Y2ggKGUpIHsgT2JqZWN0LmFzc2lnbihyb3csIGVycm9yT2YoZSkpOyB9XG4gIH07XG4gIGNvbnN0IHdhdGNoID0gYXN5bmMgKHJvdywgbWF4UG9sbHMpID1cdTAwM2Uge1xuICAgIGlmICghcm93Lm1pc3Npb24pIHJldHVybjtcbiAgICByb3cubWF4X3BvbGxzID0gbWF4UG9sbHM7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHcgPSBhd2FpdCBhZGFwdGVyLndhaXQocm93Lm1pc3Npb24sIHsgbWF4UG9sbHMgfSk7XG4gICAgICByb3cud2FpdGVkID0gcmF3KHcpO1xuICAgICAgcm93LnN0YXRlID0gKHcgXHUwMDI2XHUwMDI2IHR5cGVvZiB3LnN0YXRlID09PSBcInN0cmluZ1wiKSA/IHcuc3RhdGUgOiBcIlwiO1xuICAgICAgcm93LnBvbGxzID0gKHcgXHUwMDI2XHUwMDI2IHR5cGVvZiB3LnBvbGxzID09PSBcIm51bWJlclwiKSA/IHcucG9sbHMgOiAwO1xuICAgICAgcmVwb3J0LnBvbGxzICs9IHJvdy5wb2xscztcbiAgICAgIGlmICh3IFx1MDAyNlx1MDAyNiB0eXBlb2Ygdy5yZXRyaWVzID09PSBcIm51bWJlclwiKSByZXBvcnQucmV0cmllcyA9IE1hdGgubWF4KHJlcG9ydC5yZXRyaWVzLCB3LnJldHJpZXMpO1xuICAgIH0gY2F0Y2ggKGUpIHsgT2JqZWN0LmFzc2lnbihyb3csIGVycm9yT2YoZSkpOyB9XG4gIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIFx1MDAzYyBwbGFuLmNvbW1hbmRzLmxlbmd0aDsgaSsrKSBpZiAoIXBsYW4uY29tbWFuZHNbaV0uY2FuY2VsKSBhd2FpdCBzZW5kKHBsYW4uY29tbWFuZHNbaV0sIHJvd3NbaV0pO1xuICAvLyBUaGUgcmVhZCBidWRnZXRzLCA0MCBhbmQgNSBiZWxvdywgYXJlIHF1YWxpZnkuV2FpdEJ1ZGdldCBhbmQgQ2FuY2VsV2FpdEJ1ZGdldC5cbiAgZm9yIChsZXQgaSA9IDA7IGkgXHUwMDNjIHBsYW4uY29tbWFuZHMubGVuZ3RoOyBpKyspIGlmICghcGxhbi5jb21tYW5kc1tpXS5jYW5jZWwpIGF3YWl0IHdhdGNoKHJvd3NbaV0sIDQwKTtcblxuICAvLyAzLiBUaGUgY29tbWFuZHMgdGhlIHBsYXRmb3JtIGNhbmNlbHM6IGRpc3BhdGNoLCBjYW5jZWwgYXQgb25jZSwgdGhlbiB3YWl0LlxuICBmb3IgKGxldCBpID0gMDsgaSBcdTAwM2MgcGxhbi5jb21tYW5kcy5sZW5ndGg7IGkrKykge1xuICAgIGlmICghcGxhbi5jb21tYW5kc1tpXS5jYW5jZWwpIGNvbnRpbnVlO1xuICAgIGF3YWl0IHNlbmQocGxhbi5jb21tYW5kc1tpXSwgcm93c1tpXSk7XG4gICAgaWYgKHJvd3NbaV0ubWlzc2lvbikge1xuICAgICAgdHJ5IHsgYXdhaXQgYWRhcHRlci5jYW5jZWwocm93c1tpXS5taXNzaW9uKTsgfSBjYXRjaCAoZSkgeyBPYmplY3QuYXNzaWduKHJvd3NbaV0sIGVycm9yT2YoZSkpOyB9XG4gICAgICBhd2FpdCB3YXRjaChyb3dzW2ldLCA1KTtcbiAgICB9XG4gIH1cblxuICAvLyA0LiBJbnZlbnRvcnkgYWdhaW4sIGFzIHRoZSBsYXN0IGNhbGwgb2YgdGhlIHJ1bi5cbiAgYXdhaXQgdGFrZUludmVudG9yeSgpO1xuXG4gIHJlcG9ydC5jb21wbGV0ZWQgPSByZXBvcnQuZXJyb3JzLmxlbmd0aCA9PT0gMDtcbiAgZmluaXNoKHJlcG9ydC5jb21wbGV0ZWQgPyAwIDogMSk7XG59XG5cbm1haW4oKS5jYXRjaCgoZSkgPVx1MDAzZSB7IGZhaWwoXCJoYXJuZXNzIGVycm9yOiBcIiArIChlIFx1MDAyNlx1MDAyNiBlLm1lc3NhZ2UpKTsgZmluaXNoKDEpOyB9KTtcbiIsInBhdGgiOiJoYXJuZXNzLmpzIn0seyJjb250ZW50IjoiLy8gRmxlZXQgdmVuZG9yIGFkYXB0ZXIsIGZpcnN0IHZlcnNpb24sIHdyaXR0ZW4gZnJvbSBQUk9NUFQubWQgKHRoZSBjb250cmFjdCBhbmQgdGhlXG4vLyBkZXNjcmlwdGlvbiBnZW5lcmF0ZWQgZnJvbSB0aGUgdmVuZG9yJ3MgT3BlbkFQSSBkb2N1bWVudCBhcyB0aGV5IHN0b29kIHRoZW4pIGJ5IHRoZVxuLy8gQUkgdGhhdCBidWlsdCB0aGlzIGV4YW1wbGUsIGluIHRoZSBzYW1lIHNlc3Npb24sIGJlZm9yZSB0aGUgbG9zdC1hY2tub3dsZWRnZW1lbnRcbi8vIHNjZW5hcmlvIGV4aXN0ZWQuIEl0IGlzIG5vdCBhbiBpbmRlcGVuZGVudCBhZ2VudCdzIGFuc3dlcjogaXRzIGF1dGhvciBhbHNvIHdyb3RlIHRoZVxuLy8gaGFybmVzcy4gSXRzIGNvZGUgaXMgdW5jaGFuZ2VkIHNpbmNlIGl0IHdhcyBmaXJzdCBjb21taXR0ZWQ7IG9ubHkgdGhpcyBjb21tZW50IHdhc1xuLy8gY29ycmVjdGVkLiBJdHMgaW52ZW50b3J5KCkgbGlzdHMgdGhlIHJvYm90cywgdGhlbiByZWFkcyBlYWNoIG9uZSBmb3IgaXRzIHN0YXRlOiBvbmVcbi8vIHJlcXVlc3QgcGVyIHJvYm90LiBJdHMgZGlzcGF0Y2goKSBwcmVkYXRlcyB0aGUgY29tbWFuZCBJRCBhbmQgaWdub3JlcyBpdC5cblwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBzbGVlcCA9IChtcykgPVx1MDAzZSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPVx1MDAzZSBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG5sZXQgcmV0cmllcyA9IDA7XG5cbi8vIFRoZSB2ZW5kb3IgYW5zd2VycyA1MDMgd2hpbGUgaXQgaXMgZGVncmFkZWQ7IHdhaXQgYSBsaXR0bGUgYW5kIHRyeSBhZ2FpbiwgYSBib3VuZGVkXG4vLyBudW1iZXIgb2YgdGltZXMuIEFueSBvdGhlciBlcnJvciBpcyB0aGUgY2FsbGVyJ3MgdG8gc2VlLlxuYXN5bmMgZnVuY3Rpb24gd2l0aFJldHJ5KGZuKSB7XG4gIGZvciAobGV0IGF0dGVtcHQgPSAwOyA7IGF0dGVtcHQrKykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgZm4oKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zdCB0cmFuc2llbnQgPSAvaG9zdCBhcGkgKDUwM3w0MjkpLy50ZXN0KFN0cmluZyhlIFx1MDAyNlx1MDAyNiBlLm1lc3NhZ2UpKTtcbiAgICAgIGlmICghdHJhbnNpZW50IHx8IGF0dGVtcHQgXHUwMDNlPSA0MCkgdGhyb3cgZTtcbiAgICAgIHJldHJpZXMrKztcbiAgICAgIGF3YWl0IHNsZWVwKDI1MCk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhc3luYyBpbnZlbnRvcnkoKSB7XG4gICAgY29uc3QgbGlzdCA9IGF3YWl0IHdpdGhSZXRyeSgoKSA9XHUwMDNlIGZsZWV0Lmxpc3RSb2JvdHMoKSk7XG4gICAgY29uc3Qgb3V0ID0gW107XG4gICAgZm9yIChjb25zdCBzdW1tYXJ5IG9mIGxpc3Qucm9ib3RzKSB7XG4gICAgICBjb25zdCByb2JvdCA9IGF3YWl0IHdpdGhSZXRyeSgoKSA9XHUwMDNlIGZsZWV0LmdldFJvYm90KHN1bW1hcnkuaWQpKTtcbiAgICAgIG91dC5wdXNoKHsgaWQ6IHJvYm90LmlkLCBzdGF0dXM6IHJvYm90LnN0YXR1cywgYmF0dGVyeTogcm9ib3QuYmF0dGVyeSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfSxcblxuICBhc3luYyBkaXNwYXRjaChyb2JvdElkLCB0YXJnZXQpIHtcbiAgICBjb25zdCBtaXNzaW9uID0gYXdhaXQgd2l0aFJldHJ5KCgpID1cdTAwM2UgZmxlZXQuY3JlYXRlTWlzc2lvbihyb2JvdElkLCB7IHRhcmdldCB9KSk7XG4gICAgcmV0dXJuIG1pc3Npb24ubWlzc2lvbl9pZDtcbiAgfSxcblxuICBhc3luYyB3YWl0KG1pc3Npb25JZCwgb3B0cykge1xuICAgIGNvbnN0IG1heFBvbGxzID0gKG9wdHMgXHUwMDI2XHUwMDI2IG9wdHMubWF4UG9sbHMpIHx8IDUwO1xuICAgIGZvciAobGV0IHBvbGxzID0gMTsgcG9sbHMgXHUwMDNjPSBtYXhQb2xsczsgcG9sbHMrKykge1xuICAgICAgY29uc3QgbWlzc2lvbiA9IGF3YWl0IHdpdGhSZXRyeSgoKSA9XHUwMDNlIGZsZWV0LmdldE1pc3Npb24obWlzc2lvbklkKSk7XG4gICAgICBpZiAobWlzc2lvbi5zdGF0dXMgPT09IFwiZG9uZVwiIHx8IG1pc3Npb24uc3RhdHVzID09PSBcImZhaWxlZFwiIHx8IG1pc3Npb24uc3RhdHVzID09PSBcImNhbmNlbGxlZFwiKSB7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiBtaXNzaW9uLnN0YXR1cywgcG9sbHMsIHJldHJpZXMgfTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHNsZWVwKDIwKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IFwidGltZW91dFwiLCBwb2xsczogbWF4UG9sbHMsIHJldHJpZXMgfTtcbiAgfSxcblxuICBhc3luYyBjYW5jZWwobWlzc2lvbklkKSB7XG4gICAgYXdhaXQgd2l0aFJldHJ5KCgpID1cdTAwM2UgZmxlZXQuY2FuY2VsTWlzc2lvbihtaXNzaW9uSWQpKTtcbiAgfSxcbn07XG4iLCJwYXRoIjoiYWRhcHRlci12MS5qcyJ9LHsiY29udGVudCI6Ii8vIEZsZWV0IHZlbmRvciBhZGFwdGVyLCBzZWNvbmQgdmVyc2lvbjogdHdvIGNoYW5nZXMgYWZ0ZXIgdGhlIGZpcnN0IHdhcyBxdWFsaWZpZWQuXG4vLyBpbnZlbnRvcnkoKSByZWFkcyB0aGUgbGlzdCBvbmNlLCBzaW5jZSB0aGUgcHJvZmlsZSBkZWNsYXJlcyBHRVQgL3JvYm90cyB0aGUgYmF0Y2hcbi8vIGZvcm0gb2YgR0VUIC9yb2JvdHMvKiAodGhlIGFkdmlzb3IncyBmaW5kaW5nKS4gZGlzcGF0Y2goKSBuYW1lcyBldmVyeSBvcmRlciB3aXRoIHRoZVxuLy8gcGxhdGZvcm0ncyBjb21tYW5kIElEIGFuZCwgd2hlbiB0aGUgdmVuZG9yJ3MgYW5zd2VyIGlzIGFuIGVycm9yIG9yIG5ldmVyIGNvbWVzLCBzZW5kc1xuLy8gdGhlIHNhbWUgY3JlYXRlIGFnYWluOiB0aGUgdmVuZG9yIGFuc3dlcnMgYSByZXBlYXRlZCBjb21tYW5kX2lkIHdpdGggdGhlIG9yZGVyIGl0XG4vLyBhbHJlYWR5IGhhcywgc28gYSByZXRyeSBjYW5ub3QgcGxhY2UgYSBzZWNvbmQgb3JkZXIsIGFuZCB0aGUgbWlzc2lvbiByZXR1cm5lZCBpcyB0aGVcbi8vIG9uZSB0aGlzIGNvbW1hbmQgY3JlYXRlZC4gSXQgbmV2ZXIgcmVhZHMgYSByb2JvdCdzIGN1cnJlbnQgbWlzc2lvbiB0byBndWVzcyB3aGljaFxuLy8gb3JkZXIgaXMgaXRzIG93bi5cbi8vXG4vLyBUd28gbGF0ZXIgcmVwYWlycywgYWZ0ZXIgZnVydGhlciB0ZXN0aW5nOiBhbiBlcnJvciBpcyBhIHJlZnVzYWwgb25seSB3aGVuIGl0IHNheXMgc29cbi8vIChhbiBlYXJsaWVyIHZlcnNpb24gdG9vayBhIDUwMCBhcyBvbmUsIGFuZCByZXBvcnRlZCBcInJlZnVzZWRcIiBmb3IgYW4gb3JkZXIgdGhlIHZlbmRvclxuLy8gaGFkIGFjY2VwdGVkIGJlZm9yZSBhbnN3ZXJpbmcgNTAwKTsgd2FpdCgpJ3MgbWF4UG9sbHMgYm91bmRzIGV2ZXJ5IHN0YXR1cyByZWFkLCBmYWlsZWRcbi8vIG9uZXMgaW5jbHVkZWQgKGFuIGVhcmxpZXIgdmVyc2lvbiByZXRyaWVkIGVhY2ggcmVhZCB1cCB0byA0MCB0aW1lcyk7IGFuZCBhIHN0YXR1c1xuLy8gYW5zd2VyIG5hbWluZyBhbm90aGVyIG1pc3Npb24gaXMgYSBmYWlsZWQgcmVhZCwgbmV2ZXIgdGhpcyBtaXNzaW9uJ3Mgc3RhdGUuXG5cInVzZSBzdHJpY3RcIjtcblxuY29uc3QgQVRURU1QVFMgPSA0MDsgLy8gY2FsbHMgb25lIG9wZXJhdGlvbiBtYXkgbWFrZSwgcmV0cmllcyBpbmNsdWRlZFxuY29uc3Qgc2xlZXAgPSAobXMpID1cdTAwM2UgbmV3IFByb21pc2UoKHJlc29sdmUpID1cdTAwM2Ugc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xubGV0IHJldHJpZXMgPSAwO1xuXG5jb25zdCBzdGF0dXNPZiA9IChlKSA9XHUwMDNlIE51bWJlcigoU3RyaW5nKGUgXHUwMDI2XHUwMDI2IGUubWVzc2FnZSkubWF0Y2goL2hvc3QgYXBpIChcXGR7M30pLykgfHwgW10pWzFdIHx8IDApO1xuXG4vLyBBIGRlZmluaXRlIHJlZnVzYWw6IHRoZSB2ZW5kb3Igc2FpZCBubyAoYSA0eHggb3RoZXIgdGhhbiA0MDggdGltZW91dCBhbmQgNDI5IHRvbyBtYW55XG4vLyByZXF1ZXN0cyksIG9yIHRoZSBjbGllbnQgbmV2ZXIgc2VudCB0aGUgY2FsbC4gQW55dGhpbmcgZWxzZSAoYSA1eHgsIGEgNDA4IG9yIDQyOSwgbm9cbi8vIGFuc3dlciBhdCBhbGwpIGxlYXZlcyB0aGUgb3V0Y29tZSB1bmtub3duOiB0aGUgcmVxdWVzdCBtYXkgb3IgbWF5IG5vdCBoYXZlIHRha2VuIGVmZmVjdC5cbmNvbnN0IHJlZnVzZWQgPSAoZSkgPVx1MDAzZSB7XG4gIGNvbnN0IHMgPSBzdGF0dXNPZihlKTtcbiAgcmV0dXJuIChzIFx1MDAzZT0gNDAwIFx1MDAyNlx1MDAyNiBzIFx1MDAzYyA1MDAgXHUwMDI2XHUwMDI2IHMgIT09IDQwOCBcdTAwMjZcdTAwMjYgcyAhPT0gNDI5KSB8fCAvbm90IHBlcm1pdHRlZCBieSBzYW5kYm94IGNhcGFiaWxpdHkvLnRlc3QoU3RyaW5nKGUgXHUwMDI2XHUwMDI2IGUubWVzc2FnZSkpO1xufTtcblxuY29uc3QgZmFpbHVyZSA9IChjb2RlLCBtZXNzYWdlKSA9XHUwMDNlIE9iamVjdC5hc3NpZ24obmV3IEVycm9yKG1lc3NhZ2UpLCB7IGNvZGUgfSk7XG5cbi8vIFJlYWRzIGFuZCBjYW5jZWxzIGFyZSBzYWZlIHRvIHJlcGVhdDogdHJ5IHVwIHRvIEFUVEVNUFRTIHRpbWVzIHdoaWxlIHRoZSBvdXRjb21lIGlzIHVua25vd24uXG5hc3luYyBmdW5jdGlvbiB3aXRoUmV0cnkoZm4pIHtcbiAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IDsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBmbigpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChyZWZ1c2VkKGUpIHx8IGF0dGVtcHQgXHUwMDNlPSBBVFRFTVBUUykgdGhyb3cgZTtcbiAgICAgIHJldHJpZXMrKztcbiAgICAgIGF3YWl0IHNsZWVwKDI1MCk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhc3luYyBpbnZlbnRvcnkoKSB7XG4gICAgY29uc3QgbGlzdCA9IGF3YWl0IHdpdGhSZXRyeSgoKSA9XHUwMDNlIGZsZWV0Lmxpc3RSb2JvdHMoKSk7XG4gICAgcmV0dXJuIGxpc3Qucm9ib3RzLm1hcCgocm9ib3QpID1cdTAwM2UgKHsgaWQ6IHJvYm90LmlkLCBzdGF0dXM6IHJvYm90LnN0YXR1cywgYmF0dGVyeTogcm9ib3QuYmF0dGVyeSB9KSk7XG4gIH0sXG5cbiAgYXN5bmMgZGlzcGF0Y2gocm9ib3RJZCwgdGFyZ2V0LCBjb21tYW5kSWQpIHtcbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgOyBhdHRlbXB0KyspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1pc3Npb24gPSBhd2FpdCBmbGVldC5jcmVhdGVNaXNzaW9uKHJvYm90SWQsIHsgdGFyZ2V0LCBjb21tYW5kX2lkOiBjb21tYW5kSWQgfSk7XG4gICAgICAgIHJldHVybiBtaXNzaW9uLm1pc3Npb25faWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChyZWZ1c2VkKGUpKSB0aHJvdyBmYWlsdXJlKFwicmVmdXNlZFwiLCBcImNvbW1hbmQgXCIgKyBjb21tYW5kSWQgKyBcIiB3YXMgbm90IHBsYWNlZDogXCIgKyBlLm1lc3NhZ2UpO1xuICAgICAgICBpZiAoYXR0ZW1wdCBcdTAwM2U9IEFUVEVNUFRTKSB0aHJvdyBmYWlsdXJlKFwidW5yZXNvbHZlZFwiLCBcImNvbW1hbmQgXCIgKyBjb21tYW5kSWQgKyBcIjogbm8gYW5zd2VyIGFmdGVyIFwiICsgYXR0ZW1wdCArIFwiIGF0dGVtcHRzOyB0aGUgdmVuZG9yIG1heSBvciBtYXkgbm90IGhvbGQgdGhlIG9yZGVyXCIpO1xuICAgICAgICByZXRyaWVzKys7XG4gICAgICAgIGF3YWl0IHNsZWVwKDI1MCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8vIG1heFBvbGxzIGlzIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHJlYWRzLCBmYWlsZWQgb25lcyBpbmNsdWRlZDsgMCBtYWtlcyBub25lLlxuICBhc3luYyB3YWl0KG1pc3Npb25JZCwgb3B0cykge1xuICAgIGNvbnN0IG1heFBvbGxzID0gb3B0cyBcdTAwMjZcdTAwMjYgTnVtYmVyLmlzSW50ZWdlcihvcHRzLm1heFBvbGxzKSBcdTAwMjZcdTAwMjYgb3B0cy5tYXhQb2xscyBcdTAwM2U9IDAgPyBvcHRzLm1heFBvbGxzIDogNTA7XG4gICAgbGV0IHBvbGxzID0gMDtcbiAgICB3aGlsZSAocG9sbHMgXHUwMDNjIG1heFBvbGxzKSB7XG4gICAgICBwb2xscysrO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgbWlzc2lvbiA9IGF3YWl0IGZsZWV0LmdldE1pc3Npb24obWlzc2lvbklkKTtcbiAgICAgICAgaWYgKCFtaXNzaW9uIHx8IG1pc3Npb24uaWQgIT09IG1pc3Npb25JZCkge1xuICAgICAgICAgIC8vIEFuIGFuc3dlciBhYm91dCBhbm90aGVyIG1pc3Npb24gaXMgbm8gYW5zd2VyIGFib3V0IHRoaXMgb25lOiBhIGZhaWxlZCByZWFkLlxuICAgICAgICAgIHJldHJpZXMrKztcbiAgICAgICAgICBpZiAocG9sbHMgXHUwMDNjIG1heFBvbGxzKSBhd2FpdCBzbGVlcCgyNTApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaXNzaW9uLnN0YXR1cyA9PT0gXCJkb25lXCIgfHwgbWlzc2lvbi5zdGF0dXMgPT09IFwiZmFpbGVkXCIgfHwgbWlzc2lvbi5zdGF0dXMgPT09IFwiY2FuY2VsbGVkXCIpIHtcbiAgICAgICAgICByZXR1cm4geyBzdGF0ZTogbWlzc2lvbi5zdGF0dXMsIHBvbGxzLCByZXRyaWVzIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvbGxzIFx1MDAzYyBtYXhQb2xscykgYXdhaXQgc2xlZXAoMjApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAocmVmdXNlZChlKSkgdGhyb3cgZTtcbiAgICAgICAgcmV0cmllcysrO1xuICAgICAgICBpZiAocG9sbHMgXHUwMDNjIG1heFBvbGxzKSBhd2FpdCBzbGVlcCgyNTApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzdGF0ZTogXCJ0aW1lb3V0XCIsIHBvbGxzLCByZXRyaWVzIH07XG4gIH0sXG5cbiAgYXN5bmMgY2FuY2VsKG1pc3Npb25JZCkge1xuICAgIGF3YWl0IHdpdGhSZXRyeSgoKSA9XHUwMDNlIGZsZWV0LmNhbmNlbE1pc3Npb24obWlzc2lvbklkKSk7XG4gIH0sXG59O1xuIiwicGF0aCI6ImFkYXB0ZXItdjIuanMifSx7ImNvbnRlbnQiOiIvLyBCcm9rZW4gb24gcHVycG9zZTogdGhlIHNlY29uZCBhZGFwdGVyIHdob3NlIGludmVudG9yeSgpIHJlcG9ydHMgbm8gcm9ib3RzLlxuXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCBiYXNlID0gcmVxdWlyZShcIi4uL2FkYXB0ZXItdjIuanNcIik7XG5tb2R1bGUuZXhwb3J0cyA9IHsgLi4uYmFzZSwgYXN5bmMgaW52ZW50b3J5KCkgeyByZXR1cm4gW107IH0gfTtcbiIsInBhdGgiOiJicm9rZW4vZW1wdHktaW52ZW50b3J5LmpzIn0seyJjb250ZW50IjoiLy8gQnJva2VuIG9uIHB1cnBvc2U6IHRoZSBzZWNvbmQgYWRhcHRlciByZXBvcnRpbmcgYSBmYWlsZWQgbWlzc2lvbiBhcyBkb25lLlxuXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCBiYXNlID0gcmVxdWlyZShcIi4uL2FkYXB0ZXItdjIuanNcIik7XG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLi4uYmFzZSxcbiAgYXN5bmMgd2FpdChtaXNzaW9uSWQsIG9wdHMpIHtcbiAgICBjb25zdCB3ID0gYXdhaXQgYmFzZS53YWl0KG1pc3Npb25JZCwgb3B0cyk7XG4gICAgcmV0dXJuIHsgLi4udywgc3RhdGU6IHcuc3RhdGUgPT09IFwiZmFpbGVkXCIgPyBcImRvbmVcIiA6IHcuc3RhdGUgfTtcbiAgfSxcbn07XG4iLCJwYXRoIjoiYnJva2VuL2ZhbHNlLXN1Y2Nlc3MuanMifSx7ImNvbnRlbnQiOiIvLyBCcm9rZW4gb24gcHVycG9zZTogdGhlIHNlY29uZCBhZGFwdGVyIHdob3NlIGludmVudG9yeSgpIHJlcG9ydHMgYSByb2JvdCB0aGUgdmVuZG9yXG4vLyBkb2VzIG5vdCBoYXZlLCBpbiBhIHN0YXR1cyB0aGUgY29udHJhY3QgZG9lcyBub3QgaGF2ZS5cblwidXNlIHN0cmljdFwiO1xuY29uc3QgYmFzZSA9IHJlcXVpcmUoXCIuLi9hZGFwdGVyLXYyLmpzXCIpO1xubW9kdWxlLmV4cG9ydHMgPSB7IC4uLmJhc2UsIGFzeW5jIGludmVudG9yeSgpIHsgcmV0dXJuIFt7IGlkOiBcImltYWdpbmFyeVwiLCBzdGF0dXM6IFwiYmFuYW5hXCIsIGJhdHRlcnk6IC01MCB9XTsgfSB9O1xuIiwicGF0aCI6ImJyb2tlbi9pbnZlbnRlZC1yb2JvdC5qcyJ9LHsiY29udGVudCI6Ii8vIEJyb2tlbiBvbiBwdXJwb3NlOiB0aGUgc2Vjb25kIGFkYXB0ZXIgd2hvc2UgY2FuY2VsKCkgc2VuZHMgbm90aGluZy5cblwidXNlIHN0cmljdFwiO1xuY29uc3QgYmFzZSA9IHJlcXVpcmUoXCIuLi9hZGFwdGVyLXYyLmpzXCIpO1xubW9kdWxlLmV4cG9ydHMgPSB7IC4uLmJhc2UsIGFzeW5jIGNhbmNlbCgpIHt9IH07XG4iLCJwYXRoIjoiYnJva2VuL25vLWNhbmNlbC5qcyJ9LHsiY29udGVudCI6Ii8vIEJyb2tlbiBvbiBwdXJwb3NlOiB0aGUgc2Vjb25kIGFkYXB0ZXIgd2hvc2Ugd2FpdCgpIGRvZXMgdGhlIHJlYWRzIGFuZCB0aGVuIHJlcG9ydHMgYVxuLy8gY291bnQgd2l0aCBubyBzdGF0ZS5cblwidXNlIHN0cmljdFwiO1xuY29uc3QgYmFzZSA9IHJlcXVpcmUoXCIuLi9hZGFwdGVyLXYyLmpzXCIpO1xubW9kdWxlLmV4cG9ydHMgPSB7IC4uLmJhc2UsIGFzeW5jIHdhaXQobWlzc2lvbklkLCBvcHRzKSB7IGNvbnN0IHcgPSBhd2FpdCBiYXNlLndhaXQobWlzc2lvbklkLCBvcHRzKTsgcmV0dXJuIHsgcG9sbHM6IHcucG9sbHMgfTsgfSB9O1xuIiwicGF0aCI6ImJyb2tlbi9uby1zdGF0ZS5qcyJ9LHsiY29udGVudCI6Ii8vIEJyb2tlbiBvbiBwdXJwb3NlOiB0aGUgc2Vjb25kIGFkYXB0ZXIgd2hvc2Ugd2FpdCgpIGZvbGxvd3MgdGhlIG1pc3Npb24gdG8gaXRzIGVuZCxcbi8vIHRoZW4gdGhyb3dzIGluc3RlYWQgb2YgcmV0dXJuaW5nIGl0cyBzdGF0ZS5cblwidXNlIHN0cmljdFwiO1xuY29uc3QgYmFzZSA9IHJlcXVpcmUoXCIuLi9hZGFwdGVyLXYyLmpzXCIpO1xubW9kdWxlLmV4cG9ydHMgPSB7IC4uLmJhc2UsIGFzeW5jIHdhaXQobWlzc2lvbklkLCBvcHRzKSB7IGF3YWl0IGJhc2Uud2FpdChtaXNzaW9uSWQsIG9wdHMpOyB0aHJvdyBuZXcgRXJyb3IoXCJ3YWl0IGZhaWxlZCBhZnRlciB0aGUgbWlzc2lvbiBlbmRlZFwiKTsgfSB9O1xuIiwicGF0aCI6ImJyb2tlbi90aHJvd2luZy13YWl0LmpzIn0seyJjb250ZW50IjoiLy8gQnJva2VuIG9uIHB1cnBvc2U6IHRoZSBzZWNvbmQgYWRhcHRlciwgZXhjZXB0IHRoYXQgYSBjcmVhdGUgdGhlIHZlbmRvciBuZXZlciBhbnN3ZXJzIGlzXG4vLyBnaXZlbiB1cCBhZnRlciB0aHJlZSB0cmllcyBhbmQgcmVwb3J0ZWQgYXMgcmVmdXNlZCwgYXMgaWYgdGhlIHZlbmRvciBoYWQgc2FpZCBuby5cblwidXNlIHN0cmljdFwiO1xuY29uc3QgYmFzZSA9IHJlcXVpcmUoXCIuLi9hZGFwdGVyLXYyLmpzXCIpO1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC4uLmJhc2UsXG4gIGFzeW5jIGRpc3BhdGNoKHJvYm90SWQsIHRhcmdldCwgY29tbWFuZElkKSB7XG4gICAgbGV0IGxhc3Q7XG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IGF0dGVtcHQgXHUwMDNjPSAzOyBhdHRlbXB0KyspIHtcbiAgICAgIHRyeSB7IHJldHVybiAoYXdhaXQgZmxlZXQuY3JlYXRlTWlzc2lvbihyb2JvdElkLCB7IHRhcmdldCwgY29tbWFuZF9pZDogY29tbWFuZElkIH0pKS5taXNzaW9uX2lkOyB9IGNhdGNoIChlKSB7IGxhc3QgPSBlOyB9XG4gICAgfVxuICAgIHRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKFwiY29tbWFuZCBcIiArIGNvbW1hbmRJZCArIFwiIHdhcyBub3QgcGxhY2VkOiBcIiArIGxhc3QubWVzc2FnZSksIHsgY29kZTogXCJyZWZ1c2VkXCIgfSk7XG4gIH0sXG59O1xuIiwicGF0aCI6ImJyb2tlbi91bmFuc3dlcmVkLWFzLXJlZnVzZWQuanMifSx7ImNvbnRlbnQiOiIvLyBCcm9rZW4gb24gcHVycG9zZTogdGhlIHNlY29uZCBhZGFwdGVyIHdob3NlIHdhaXQoKSByZWFkcyB0aGUgbWlzc2lvbiBvbmNlIG1vcmUgdGhhblxuLy8gaXRzIGJ1ZGdldCBhbGxvd3MsIHRoZW4gcmVwb3J0cyBhIHNpbmdsZSByZWFkLlxuXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCBiYXNlID0gcmVxdWlyZShcIi4uL2FkYXB0ZXItdjIuanNcIik7XG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLi4uYmFzZSxcbiAgYXN5bmMgd2FpdChtaXNzaW9uSWQsIG9wdHMpIHtcbiAgICBjb25zdCB3ID0gYXdhaXQgYmFzZS53YWl0KG1pc3Npb25JZCwgb3B0cyk7XG4gICAgZm9yIChsZXQgbiA9IHcucG9sbHM7IG4gXHUwMDNjPSBvcHRzLm1heFBvbGxzOyBuKyspIGF3YWl0IGZsZWV0LmdldE1pc3Npb24obWlzc2lvbklkKTtcbiAgICByZXR1cm4geyBzdGF0ZTogdy5zdGF0ZSwgcG9sbHM6IDEgfTtcbiAgfSxcbn07XG4iLCJwYXRoIjoiYnJva2VuL3VuZGVyY291bnRlZC1yZWFkcy5qcyJ9LHsiY29udGVudCI6Ii8vIEJyb2tlbiBvbiBwdXJwb3NlOiB0aGUgc2Vjb25kIGFkYXB0ZXIgd2l0aCByMSdzIG9yZGVycyBzZW50IHRvIHIzLiBFdmVyeSBtaXNzaW9uIGl0XG4vLyByZXBvcnRzIGV4aXN0cyBhbmQgZW5kcyBkb25lLlxuXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCBiYXNlID0gcmVxdWlyZShcIi4uL2FkYXB0ZXItdjIuanNcIik7XG5tb2R1bGUuZXhwb3J0cyA9IHsgLi4uYmFzZSwgZGlzcGF0Y2g6IChyb2JvdElkLCB0YXJnZXQsIGNvbW1hbmRJZCkgPVx1MDAzZSBiYXNlLmRpc3BhdGNoKHJvYm90SWQgPT09IFwicjFcIiA/IFwicjNcIiA6IHJvYm90SWQsIHRhcmdldCwgY29tbWFuZElkKSB9O1xuIiwicGF0aCI6ImJyb2tlbi93cm9uZy1yb2JvdC5qcyJ9LHsiY29udGVudCI6Ii8vIEJyb2tlbiBvbiBwdXJwb3NlOiB0aGUgc2Vjb25kIGFkYXB0ZXIgd2l0aCBldmVyeSBvcmRlciBzZW50IHRvICgwLCAwKS4gSXRzIHJlcG9ydFxuLy8gc3RheXMgcGxhdXNpYmxlOiBlYWNoIG1pc3Npb24gZW5kcyBkb25lLCBhdCB0aGUgdGFyZ2V0IHRoZSB2ZW5kb3Igd2FzIGdpdmVuLlxuXCJ1c2Ugc3RyaWN0XCI7XG5jb25zdCBiYXNlID0gcmVxdWlyZShcIi4uL2FkYXB0ZXItdjIuanNcIik7XG5tb2R1bGUuZXhwb3J0cyA9IHsgLi4uYmFzZSwgZGlzcGF0Y2g6IChyb2JvdElkLCB0YXJnZXQsIGNvbW1hbmRJZCkgPVx1MDAzZSBiYXNlLmRpc3BhdGNoKHJvYm90SWQsIHsgeDogMCwgeTogMCB9LCBjb21tYW5kSWQpIH07XG4iLCJwYXRoIjoiYnJva2VuL3dyb25nLXRhcmdldC5qcyJ9LHsiY29udGVudCI6Ii8vIFRoZSBib3VuZGFyeSBwcm9iZS4gTm90IGFuIGFkYXB0ZXI6IGEgc3RlcCB0aGF0IHRyaWVzLCBmcm9tIGluc2lkZSB0aGUgc2FtZSBydW4gYW5kXG4vLyB1bmRlciB0aGUgc2FtZSBncmFudCwgdGhlIHRocmVlIHRoaW5ncyBob3N0aWxlIGFkYXB0ZXIgY29kZSB3b3VsZCB0cnksIGFuZCByZXBvcnRzXG4vLyB3aGF0IGhhcHBlbmVkLiBVc2FnZTogbm9kZSBwcm9iZS5qcyBcdTAwM2N0aGUgdmVuZG9yJ3MgVVJMIGFzIHRoZSBob3N0IHNlZXMgaXRcdTAwM2VcblwidXNlIHN0cmljdFwiO1xuY29uc3QgaHR0cCA9IHJlcXVpcmUoXCJub2RlOmh0dHBcIik7XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeURlY29tbWlzc2lvblRocm91Z2hDbGllbnQoKSB7XG4gIHRyeSB7IGF3YWl0IGZsZWV0LmRlY29tbWlzc2lvblJvYm90KFwicjFcIik7IHJldHVybiBcImFsbG93ZWRcIjsgfSBjYXRjaCAoZSkgeyByZXR1cm4gXCJyZWZ1c2VkOiBcIiArIGUubWVzc2FnZTsgfVxufVxuXG4vLyBUaGUgaW5qZWN0ZWQgY2xpZW50IGlzIEphdmFTY3JpcHQgaW5zaWRlIHRoZSBzYW5kYm94LCBzbyBpdHMgb3duIGFsbG93bGlzdCBjaGVja1xuLy8gaXMgdGhlIGd1ZXN0J3MgdG8gc2tpcC4gVGhpcyBza2lwcyBpdDogYSByYXcgcmVxdWVzdCBvbiB0aGUgYnJva2VyIHNvY2tldC5cbmZ1bmN0aW9uIHRyeURlY29tbWlzc2lvbkJ5cGFzc2luZ0NsaWVudCgpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9XHUwMDNlIHtcbiAgICBjb25zdCByZXEgPSBodHRwLnJlcXVlc3QoeyBzb2NrZXRQYXRoOiBwcm9jZXNzLmVudi5IT1NUX0FQSV9TT0NLRVQsIG1ldGhvZDogXCJERUxFVEVcIiwgcGF0aDogXCIvcm9ib3RzL3IxXCIgfSwgKHJlcykgPVx1MDAzZSB7XG4gICAgICBsZXQgdGV4dCA9IFwiXCI7IHJlcy5zZXRFbmNvZGluZyhcInV0ZjhcIik7XG4gICAgICByZXMub24oXCJkYXRhXCIsIChjKSA9XHUwMDNlICh0ZXh0ICs9IGMpKTtcbiAgICAgIHJlcy5vbihcImVuZFwiLCAoKSA9XHUwMDNlIHJlc29sdmUoXCJicm9rZXIgYW5zd2VyZWQgXCIgKyByZXMuc3RhdHVzQ29kZSArIFwiIFwiICsgdGV4dC50cmltKCkpKTtcbiAgICB9KTtcbiAgICByZXEub24oXCJlcnJvclwiLCAoZSkgPVx1MDAzZSByZXNvbHZlKFwibm8gYnJva2VyOiBcIiArIGUubWVzc2FnZSkpO1xuICAgIHJlcS5lbmQoKTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeURpcmVjdCh1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByID0gYXdhaXQgZmV0Y2godXJsICsgXCIvcm9ib3RzXCIsIHsgc2lnbmFsOiBBYm9ydFNpZ25hbC50aW1lb3V0KDMwMDApIH0pO1xuICAgIHJldHVybiBcInJlYWNoZWQgdGhlIHZlbmRvciBkaXJlY3RseTogXCIgKyByLnN0YXR1cztcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBcImZhaWxlZDogXCIgKyAoKGUgXHUwMDI2XHUwMDI2IGUuY2F1c2UgXHUwMDI2XHUwMDI2IGUuY2F1c2UuY29kZSkgfHwgKGUgXHUwMDI2XHUwMDI2IGUubmFtZSkgfHwgU3RyaW5nKGUpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBodW50Rm9yQ3JlZGVudGlhbCgpIHtcbiAgY29uc3Qgc3VzcGljaW91cyA9IE9iamVjdC5lbnRyaWVzKHByb2Nlc3MuZW52KS5maWx0ZXIoKFtrLCB2XSkgPVx1MDAzZVxuICAgIC90b2tlbnxzZWNyZXR8YmVhcmVyfGF1dGh8a2V5L2kudGVzdChrKSB8fCAvXltBLVphLXowLTlfLV17MzIsfSQvLnRlc3QodikpO1xuICBjb25zdCBjbGllbnRLZXlzID0gT2JqZWN0LmtleXMoZmxlZXQpLnNvcnQoKTtcbiAgbGV0IGNsaWVudFNvdXJjZUhhc0JlYXJlciA9IGZhbHNlO1xuICBmb3IgKGNvbnN0IGsgb2YgY2xpZW50S2V5cykge1xuICAgIGlmICh0eXBlb2YgZmxlZXRba10gPT09IFwiZnVuY3Rpb25cIiBcdTAwMjZcdTAwMjYgL2JlYXJlcnxhdXRob3JpemF0aW9uL2kudGVzdChTdHJpbmcoZmxlZXRba10pKSkgY2xpZW50U291cmNlSGFzQmVhcmVyID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4geyBlbnZfZW50cmllc190aGF0X2xvb2tfbGlrZV9jcmVkZW50aWFsczogc3VzcGljaW91cy5tYXAoKFtrXSkgPVx1MDAzZSBrKSwgY2xpZW50X2tleXM6IGNsaWVudEtleXMsIGNsaWVudF9zb3VyY2VfbWVudGlvbnNfYV9iZWFyZXI6IGNsaWVudFNvdXJjZUhhc0JlYXJlciB9O1xufVxuXG4oYXN5bmMgKCkgPVx1MDAzZSB7XG4gIGNvbnN0IHJlc3VsdHMgPSB7XG4gICAgZGVjb21taXNzaW9uX3Rocm91Z2hfY2xpZW50OiBhd2FpdCB0cnlEZWNvbW1pc3Npb25UaHJvdWdoQ2xpZW50KCksXG4gICAgZGVjb21taXNzaW9uX2J5cGFzc2luZ19jbGllbnQ6IGF3YWl0IHRyeURlY29tbWlzc2lvbkJ5cGFzc2luZ0NsaWVudCgpLFxuICAgIGRpcmVjdF9yZXF1ZXN0X3RvX3ZlbmRvcjogYXdhaXQgdHJ5RGlyZWN0KHByb2Nlc3MuYXJndlsyXSksXG4gICAgY3JlZGVudGlhbF9odW50OiBodW50Rm9yQ3JlZGVudGlhbCgpLFxuICB9O1xuICBjb25zb2xlLmxvZyhcIlBST0JFIFwiICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0cykpO1xufSkoKTtcbiIsInBhdGgiOiJwcm9iZS5qcyJ9LHsiY29udGVudCI6IlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBNQVhfQVRURU1QVFMgPSA0O1xuY29uc3QgUkVUUllfUEFVU0VfTVMgPSAyMDA7XG5jb25zdCBQT0xMX1BBVVNFX01TID0gMjUwO1xuXG5jb25zdCBzbGVlcCA9IChtcykgPVx1MDAzZSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPVx1MDAzZSBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG5cbmZ1bmN0aW9uIHN0YXR1c09mKGVycikge1xuICBjb25zdCBtID0gL15ob3N0IGFwaSAoXFxkezN9KTovLmV4ZWMoZXJyIFx1MDAyNlx1MDAyNiBlcnIubWVzc2FnZSA/IGVyci5tZXNzYWdlIDogXCJcIik7XG4gIHJldHVybiBtID8gTnVtYmVyKG1bMV0pIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNOb3RQZXJtaXR0ZWQoZXJyKSB7XG4gIHJldHVybiAvXmhvc3QgYXBpIGNhbGwgbm90IHBlcm1pdHRlZCBieSBzYW5kYm94IGNhcGFiaWxpdHk6Ly50ZXN0KGVyciBcdTAwMjZcdTAwMjYgZXJyLm1lc3NhZ2UgPyBlcnIubWVzc2FnZSA6IFwiXCIpO1xufVxuXG5mdW5jdGlvbiB3aXRoQ29kZShjb2RlLCBtZXNzYWdlLCBjYXVzZSkge1xuICBjb25zdCBlcnIgPSBuZXcgRXJyb3IobWVzc2FnZSwgeyBjYXVzZSB9KTtcbiAgZXJyLmNvZGUgPSBjb2RlO1xuICByZXR1cm4gZXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gRXZlcnkgcm9ib3QgdGhlIHZlbmRvciBrbm93cywgYXMgW3sgaWQsIHN0YXR1cywgYmF0dGVyeSB9XS5cbiAgYXN5bmMgaW52ZW50b3J5KCkge1xuICAgIGNvbnN0IHsgcm9ib3RzIH0gPSBhd2FpdCBmbGVldC5saXN0Um9ib3RzKCk7XG4gICAgcmV0dXJuIHJvYm90cy5tYXAoKHIpID1cdTAwM2UgKHsgaWQ6IHIuaWQsIHN0YXR1czogci5zdGF0dXMsIGJhdHRlcnk6IHIuYmF0dGVyeSB9KSk7XG4gIH0sXG5cbiAgLy8gU2VuZCByb2JvdCBgcm9ib3RJZGAgdG8gdGFyZ2V0IGB7IHgsIHkgfWAgYXMgY29tbWFuZCBgY29tbWFuZElkYC4gRXZlcnkgYXR0ZW1wdFxuICAvLyBjYXJyaWVzIHRoZSBzYW1lIGNvbW1hbmRfaWQsIHNvIHRoZSB2ZW5kb3IgYW5zd2VycyB3aXRoIHRoZSBvcmlnaW5hbCBtaXNzaW9uXG4gIC8vIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBzZWNvbmQgb25lLlxuICBhc3luYyBkaXNwYXRjaChyb2JvdElkLCB0YXJnZXQsIGNvbW1hbmRJZCkge1xuICAgIGNvbnN0IGJvZHkgPSB7IHRhcmdldDogeyB4OiB0YXJnZXQueCwgeTogdGFyZ2V0LnkgfSwgY29tbWFuZF9pZDogY29tbWFuZElkIH07XG4gICAgbGV0IGxhc3QgPSBudWxsO1xuXG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IGF0dGVtcHQgXHUwMDNjPSBNQVhfQVRURU1QVFM7IGF0dGVtcHQrKykge1xuICAgICAgbGV0IHJlcztcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlcyA9IGF3YWl0IGZsZWV0LmNyZWF0ZU1pc3Npb24ocm9ib3RJZCwgYm9keSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzT2YoZXJyKTtcbiAgICAgICAgLy8gVGhlIHZlbmRvciBhbnN3ZXJlZCB3aXRoIGEgcmVqZWN0aW9uLCBvciB0aGUgY2FsbCBuZXZlciBsZWZ0IHRoZSBzYW5kYm94OlxuICAgICAgICAvLyBubyBvcmRlciB3YXMgYWNjZXB0ZWQgZm9yIHRoaXMgY29tbWFuZC5cbiAgICAgICAgaWYgKGlzTm90UGVybWl0dGVkKGVycikgfHwgKHN0YXR1cyAhPT0gbnVsbCBcdTAwMjZcdTAwMjYgc3RhdHVzIFx1MDAzZT0gNDAwIFx1MDAyNlx1MDAyNiBzdGF0dXMgXHUwMDNjIDUwMCkpIHtcbiAgICAgICAgICB0aHJvdyB3aXRoQ29kZShcInJlZnVzZWRcIiwgYGRpc3BhdGNoICR7Y29tbWFuZElkfTogJHtlcnIubWVzc2FnZX1gLCBlcnIpO1xuICAgICAgICB9XG4gICAgICAgIGxhc3QgPSBlcnI7XG4gICAgICAgIGF3YWl0IHNsZWVwKFJFVFJZX1BBVVNFX01TICogYXR0ZW1wdCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGUgdmVuZG9yIGFjY2VwdGVkIHNvbWV0aGluZywgYnV0IG5vdCBwcm92YWJseSB0aGlzIGNvbW1hbmQncyBvcmRlci5cbiAgICAgIGlmICghcmVzIHx8IHR5cGVvZiByZXMubWlzc2lvbl9pZCAhPT0gXCJzdHJpbmdcIiB8fCByZXMuY29tbWFuZF9pZCAhPT0gY29tbWFuZElkIHx8IHJlcy5yb2JvdCAhPT0gcm9ib3RJZCkge1xuICAgICAgICB0aHJvdyB3aXRoQ29kZShcInVucmVzb2x2ZWRcIiwgYGRpc3BhdGNoICR7Y29tbWFuZElkfTogdmVuZG9yIGFuc3dlciBkb2VzIG5vdCBtYXRjaCB0aGUgb3JkZXJgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXMubWlzc2lvbl9pZDtcbiAgICB9XG5cbiAgICB0aHJvdyB3aXRoQ29kZShcInVucmVzb2x2ZWRcIiwgYGRpc3BhdGNoICR7Y29tbWFuZElkfTogbm8gYW5zd2VyIGFmdGVyICR7TUFYX0FUVEVNUFRTfSBhdHRlbXB0c2AsIGxhc3QpO1xuICB9LFxuXG4gIC8vIFBvbGwgdGhlIG1pc3Npb24gdW50aWwgaXQgZW5kcy4gRXZlcnkgc3RhdHVzIHJlYWQgY291bnRzIHRvd2FyZCBtYXhQb2xscyxcbiAgLy8gaW5jbHVkaW5nIHJlYWRzIHJldHJpZWQgYWZ0ZXIgYSB0cmFuc2llbnQgNTAyLzUwMy5cbiAgYXN5bmMgd2FpdChtaXNzaW9uSWQsIG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IG1heFBvbGxzID0gb3B0cy5tYXhQb2xscyA/PyA1MDtcbiAgICBsZXQgcG9sbHMgPSAwO1xuXG4gICAgd2hpbGUgKHBvbGxzIFx1MDAzYyBtYXhQb2xscykge1xuICAgICAgcG9sbHMrKztcbiAgICAgIGxldCBtaXNzaW9uO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbWlzc2lvbiA9IGF3YWl0IGZsZWV0LmdldE1pc3Npb24obWlzc2lvbklkKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBzdGF0dXNPZihlcnIpO1xuICAgICAgICBpZiAoc3RhdHVzID09PSA1MDIgfHwgc3RhdHVzID09PSA1MDMpIHtcbiAgICAgICAgICBhd2FpdCBzbGVlcChSRVRSWV9QQVVTRV9NUyk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuXG4gICAgICBzd2l0Y2ggKG1pc3Npb24uc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJkb25lXCI6XG4gICAgICAgIGNhc2UgXCJmYWlsZWRcIjpcbiAgICAgICAgY2FzZSBcImNhbmNlbGxlZFwiOlxuICAgICAgICAgIHJldHVybiB7IHN0YXRlOiBtaXNzaW9uLnN0YXR1cywgcG9sbHMgfTtcbiAgICAgICAgY2FzZSBcInF1ZXVlZFwiOlxuICAgICAgICBjYXNlIFwicnVubmluZ1wiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2lvbiAke21pc3Npb25JZH06IHVuZXhwZWN0ZWQgc3RhdHVzICR7bWlzc2lvbi5zdGF0dXN9YCk7XG4gICAgICB9XG4gICAgICBhd2FpdCBzbGVlcChQT0xMX1BBVVNFX01TKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZTogXCJ0aW1lb3V0XCIsIHBvbGxzIH07XG4gIH0sXG5cbiAgLy8gQ2FuY2VsIHRoZSBtaXNzaW9uLiBDYW5jZWxsaW5nIGEgZmluaXNoZWQgbWlzc2lvbiBsZWF2ZXMgaXQgdW5jaGFuZ2VkLCBzb1xuICAvLyB0cmFuc2llbnQgZmFpbHVyZXMgYXJlIHJldHJpZWQuXG4gIGFzeW5jIGNhbmNlbChtaXNzaW9uSWQpIHtcbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgOyBhdHRlbXB0KyspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmbGVldC5jYW5jZWxNaXNzaW9uKG1pc3Npb25JZCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzT2YoZXJyKTtcbiAgICAgICAgaWYgKChzdGF0dXMgPT09IDUwMiB8fCBzdGF0dXMgPT09IDUwMykgXHUwMDI2XHUwMDI2IGF0dGVtcHQgXHUwMDNjIE1BWF9BVFRFTVBUUykge1xuICAgICAgICAgIGF3YWl0IHNsZWVwKFJFVFJZX1BBVVNFX01TICogYXR0ZW1wdCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbn07XG4iLCJwYXRoIjoidHJpYWwvaGFpa3UuanMifSx7ImNvbnRlbnQiOiJcInVzZSBzdHJpY3RcIjtcblxuLy8gQWRhcHRlciBmb3IgdGhlIEZsZWV0IFZlbmRvciBBUEkgKHYyLjQuMCkuIEV2ZXJ5IHZlbmRvciBjYWxsIGdvZXMgdGhyb3VnaCB0aGUgaW5qZWN0ZWRcbi8vIGBmbGVldGAgY2xpZW50OyBub3RoaW5nIGlzIGltcG9ydGVkLlxuXG5jb25zdCBDQUxMX1RJTUVPVVRfTVMgPSAxMDAwMDtcbmNvbnN0IEJBQ0tPRkZfTVMgPSAyMDA7XG5jb25zdCBCQUNLT0ZGX01BWF9NUyA9IDIwMDA7XG5jb25zdCBDQUxMX1RSSUVTID0gNTtcbmNvbnN0IExPT0tVUF9UUklFUyA9IDI7XG5jb25zdCBESVNQQVRDSF9UUklFUyA9IDg7XG5jb25zdCBESVNQQVRDSF9CVURHRVRfTVMgPSAzMDAwMDtcbmNvbnN0IENBTkNFTF9ST1VORFMgPSAzO1xuY29uc3QgREVGQVVMVF9NQVhfUE9MTFMgPSA1MDtcbmNvbnN0IFBPTExfTUlOX01TID0gMTAwO1xuY29uc3QgUE9MTF9NQVhfTVMgPSA1MDA7XG5jb25zdCBOT1RfRk9VTkRfVFJJRVMgPSAzO1xuXG5jb25zdCBST0JPVF9TVEFUVVNFUyA9IG5ldyBTZXQoW1wiaWRsZVwiLCBcIm1vdmluZ1wiLCBcImZhdWx0XCJdKTtcbmNvbnN0IFRFUk1JTkFMID0geyBkb25lOiBcImRvbmVcIiwgZmFpbGVkOiBcImZhaWxlZFwiLCBjYW5jZWxsZWQ6IFwiY2FuY2VsbGVkXCIsIGNhbmNlbGVkOiBcImNhbmNlbGxlZFwiIH07XG5jb25zdCBDT01NQU5EX0lEID0gL15bQS1aYS16MC05Xy1dezgsNjR9JC87XG5cbmNvbnN0IHNsZWVwID0gKG1zKSA9XHUwMDNlIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9XHUwMDNlIHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbmNvbnN0IGJhY2tvZmYgPSAobikgPVx1MDAzZSBNYXRoLm1pbihCQUNLT0ZGX01BWF9NUywgQkFDS09GRl9NUyAqIDIgKiogKG4gLSAxKSk7XG5cbmZ1bmN0aW9uIGNvZGVkRXJyb3IoY29kZSwgbWVzc2FnZSwgY2F1c2UpIHtcbiAgY29uc3QgZXJyID0gbmV3IEVycm9yKG1lc3NhZ2UsIGNhdXNlID8geyBjYXVzZSB9IDogdW5kZWZpbmVkKTtcbiAgZXJyLmNvZGUgPSBjb2RlO1xuICByZXR1cm4gZXJyO1xufVxuXG5mdW5jdGlvbiBzdGF0dXNPZihlcnIpIHtcbiAgaWYgKGVyciBcdTAwMjZcdTAwMjYgTnVtYmVyLmlzSW50ZWdlcihlcnIuc3RhdHVzKSkgcmV0dXJuIGVyci5zdGF0dXM7XG4gIGNvbnN0IG1hdGNoID0gL2hvc3QgYXBpIChcXGR7M30pXFxiLy5leGVjKFN0cmluZyhlcnIgXHUwMDI2XHUwMDI2IGVyci5tZXNzYWdlKSk7XG4gIHJldHVybiBtYXRjaCA/IE51bWJlcihtYXRjaFsxXSkgOiBudWxsO1xufVxuXG4vLyBcImxvc3RcIjogdGhlIGNhbGwgbWF5IG9yIG1heSBub3QgaGF2ZSByZWFjaGVkIHRoZSB2ZW5kb3I7IFwiYnVzeVwiOiB0aGUgdmVuZG9yIHR1cm5lZCBpdCBhd2F5XG4vLyBmb3Igbm93OyBcInJlamVjdGVkXCI6IHRoZSB2ZW5kb3IgcmVmdXNlZCBpdDsgXCJkZW5pZWRcIjogdGhlIHNhbmRib3ggbmV2ZXIgc2VudCBpdC5cbmZ1bmN0aW9uIGNsYXNzaWZ5KGVycikge1xuICBpZiAoZXJyIFx1MDAyNlx1MDAyNiBlcnIuY29kZSA9PT0gXCJ0aW1lb3V0XCIpIHJldHVybiBcImxvc3RcIjtcbiAgaWYgKC9ub3QgcGVybWl0dGVkLy50ZXN0KFN0cmluZyhlcnIgXHUwMDI2XHUwMDI2IGVyci5tZXNzYWdlKSkpIHJldHVybiBcImRlbmllZFwiO1xuICBjb25zdCBzdGF0dXMgPSBzdGF0dXNPZihlcnIpO1xuICBpZiAoc3RhdHVzID09PSA0MjkpIHJldHVybiBcImJ1c3lcIjtcbiAgaWYgKHN0YXR1cyAhPT0gbnVsbCBcdTAwMjZcdTAwMjYgc3RhdHVzIFx1MDAzZT0gNDAwIFx1MDAyNlx1MDAyNiBzdGF0dXMgXHUwMDNjIDUwMCBcdTAwMjZcdTAwMjYgc3RhdHVzICE9PSA0MDgpIHJldHVybiBcInJlamVjdGVkXCI7XG4gIHJldHVybiBcImxvc3RcIjtcbn1cblxuLy8gUmVqZWN0cyB3aXRoIGEgXCJ0aW1lb3V0XCIgZXJyb3Igd2hlbiB0aGUgdmVuZG9yIG5ldmVyIGFuc3dlcnM7IHRoZSBhYmFuZG9uZWQgY2FsbCdzIG93blxuLy8gb3V0Y29tZSBpcyBzd2FsbG93ZWQgc28gaXQgY2Fubm90IHN1cmZhY2UgYXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbi5cbmZ1bmN0aW9uIHdpdGhUaW1lb3V0KGNhbGwsIG1zID0gQ0FMTF9USU1FT1VUX01TKSB7XG4gIGNvbnN0IHBlbmRpbmcgPSBQcm9taXNlLnJlc29sdmUoY2FsbCk7XG4gIHBlbmRpbmcuY2F0Y2goKCkgPVx1MDAzZSB7fSk7XG4gIGxldCB0aW1lcjtcbiAgY29uc3QgZXhwaXJ5ID0gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPVx1MDAzZSB7XG4gICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID1cdTAwM2UgcmVqZWN0KGNvZGVkRXJyb3IoXCJ0aW1lb3V0XCIsIGBubyBhbnN3ZXIgZnJvbSB0aGUgdmVuZG9yIHdpdGhpbiAke21zfSBtc2ApKSwgbXMpO1xuICB9KTtcbiAgcmV0dXJuIFByb21pc2UucmFjZShbcGVuZGluZywgZXhwaXJ5XSkuZmluYWxseSgoKSA9XHUwMDNlIGNsZWFyVGltZW91dCh0aW1lcikpO1xufVxuXG4vLyBGb3IgY2FsbHMgdGhhdCBhcmUgc2FmZSB0byByZXBlYXQ6IHJlYWRzIGFuZCBjYW5jZWxzLlxuYXN5bmMgZnVuY3Rpb24gd2l0aFJldHJpZXMoc2VuZCwgdHJpZXMpIHtcbiAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IDsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB3aXRoVGltZW91dChzZW5kKCkpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc3Qga2luZCA9IGNsYXNzaWZ5KGVycik7XG4gICAgICBpZiAoKGtpbmQgIT09IFwibG9zdFwiIFx1MDAyNlx1MDAyNiBraW5kICE9PSBcImJ1c3lcIikgfHwgYXR0ZW1wdCBcdTAwM2U9IHRyaWVzKSB0aHJvdyBlcnI7XG4gICAgICBhd2FpdCBzbGVlcChiYWNrb2ZmKGF0dGVtcHQpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gY3lyYjUzLCByZW5kZXJlZCBhcyAxMSBiYXNlLTM2IGRpZ2l0cy5cbmZ1bmN0aW9uIGhhc2goc3RyLCBzZWVkKSB7XG4gIGxldCBoMSA9IDB4ZGVhZGJlZWYgXiBzZWVkO1xuICBsZXQgaDIgPSAweDQxYzZjZTU3IF4gc2VlZDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgXHUwMDNjIHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgaDEgPSBNYXRoLmltdWwoaDEgXiBjaCwgMjY1NDQzNTc2MSk7XG4gICAgaDIgPSBNYXRoLmltdWwoaDIgXiBjaCwgMTU5NzMzNDY3Nyk7XG4gIH1cbiAgaDEgPSBNYXRoLmltdWwoaDEgXiAoaDEgXHUwMDNlXHUwMDNlXHUwMDNlIDE2KSwgMjI0NjgyMjUwNyk7XG4gIGgxIF49IE1hdGguaW11bChoMiBeIChoMiBcdTAwM2VcdTAwM2VcdTAwM2UgMTMpLCAzMjY2NDg5OTA5KTtcbiAgaDIgPSBNYXRoLmltdWwoaDIgXiAoaDIgXHUwMDNlXHUwMDNlXHUwMDNlIDE2KSwgMjI0NjgyMjUwNyk7XG4gIGgyIF49IE1hdGguaW11bChoMSBeIChoMSBcdTAwM2VcdTAwM2VcdTAwM2UgMTMpLCAzMjY2NDg5OTA5KTtcbiAgcmV0dXJuICg0Mjk0OTY3Mjk2ICogKDIwOTcxNTEgXHUwMDI2IGgyKSArIChoMSBcdTAwM2VcdTAwM2VcdTAwM2UgMCkpLnRvU3RyaW5nKDM2KS5wYWRTdGFydCgxMSwgXCIwXCIpO1xufVxuXG4vLyBUaGUgdmVuZG9yIG9ubHkgZGVkdXBlcyBjb21tYW5kIGlkcyBvZiA4LTY0IFtBLVphLXowLTlfLV07IGFueXRoaW5nIGVsc2UgaXMgbWFwcGVkIHRvIGFcbi8vIHN0YWJsZSBpZCBvZiB0aGF0IGZvcm0sIHNvIGEgcmVwZWF0ZWQgY3JlYXRlIHN0aWxsIG5hbWVzIHRoZSBzYW1lIG9yZGVyLlxuZnVuY3Rpb24gdmVuZG9yQ29tbWFuZElkKGNvbW1hbmRJZCkge1xuICBpZiAoY29tbWFuZElkID09IG51bGwgfHwgY29tbWFuZElkID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIGBhZHAtJHtEYXRlLm5vdygpLnRvU3RyaW5nKDM2KX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLCAxMil9YDtcbiAgfVxuICBjb25zdCByYXcgPSBTdHJpbmcoY29tbWFuZElkKTtcbiAgaWYgKENPTU1BTkRfSUQudGVzdChyYXcpKSByZXR1cm4gcmF3O1xuICByZXR1cm4gYGNtZC0ke2hhc2gocmF3LCAxKX0tJHtoYXNoKHJhdywgMil9YDtcbn1cblxuLy8gQmVzdCBlZmZvcnQsIHJlYWQtb25seTogdGhlIHJvYm90J3MgcnVubmluZyBtaXNzaW9uLCBpZiBpdCBpcyB0aGUgb25lIHRoaXMgY29tbWFuZCBjcmVhdGVkLlxuYXN5bmMgZnVuY3Rpb24gZmluZE1pc3Npb24ocm9ib3RJZCwgY2lkKSB7XG4gIHRyeSB7XG4gICAgY29uc3Qgcm9ib3QgPSBhd2FpdCB3aXRoUmV0cmllcygoKSA9XHUwMDNlIGZsZWV0LmdldFJvYm90KHJvYm90SWQpLCBMT09LVVBfVFJJRVMpO1xuICAgIGlmICghcm9ib3QgfHwgcm9ib3QubWlzc2lvbiA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBtaXNzaW9uID0gYXdhaXQgd2l0aFJldHJpZXMoKCkgPVx1MDAzZSBmbGVldC5nZXRNaXNzaW9uKHJvYm90Lm1pc3Npb24pLCBMT09LVVBfVFJJRVMpO1xuICAgIHJldHVybiBtaXNzaW9uIFx1MDAyNlx1MDAyNiBtaXNzaW9uLmNvbW1hbmRfaWQgPT09IGNpZCA/IHJvYm90Lm1pc3Npb24gOiBudWxsO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiByb2JvdFN0YXR1cyhyb2JvdCkge1xuICBjb25zdCBzdGF0dXMgPSBTdHJpbmcocm9ib3Quc3RhdHVzIHx8IFwiXCIpLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChST0JPVF9TVEFUVVNFUy5oYXMoc3RhdHVzKSkgcmV0dXJuIHN0YXR1cztcbiAgaWYgKHN0YXR1cyA9PT0gXCJmYXVsdGVkXCIgfHwgc3RhdHVzID09PSBcImVycm9yXCIpIHJldHVybiBcImZhdWx0XCI7XG4gIHJldHVybiByb2JvdC5taXNzaW9uID8gXCJtb3ZpbmdcIiA6IFwiaWRsZVwiO1xufVxuXG5mdW5jdGlvbiBwb2xsTGltaXQodmFsdWUpIHtcbiAgY29uc3QgbiA9IHZhbHVlID09IG51bGwgPyBOYU4gOiBOdW1iZXIodmFsdWUpO1xuICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pIFx1MDAyNlx1MDAyNiBuIFx1MDAzZT0gMCA/IE1hdGguZmxvb3IobikgOiBERUZBVUxUX01BWF9QT0xMUztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFzeW5jIGludmVudG9yeSgpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB3aXRoUmV0cmllcygoKSA9XHUwMDNlIGZsZWV0Lmxpc3RSb2JvdHMoKSwgQ0FMTF9UUklFUyk7XG4gICAgY29uc3Qgcm9ib3RzID0gQXJyYXkuaXNBcnJheShyZXMpID8gcmVzIDogKHJlcyBcdTAwMjZcdTAwMjYgcmVzLnJvYm90cykgfHwgW107XG4gICAgcmV0dXJuIHJvYm90cy5tYXAoKHJvYm90KSA9XHUwMDNlICh7IGlkOiByb2JvdC5pZCwgc3RhdHVzOiByb2JvdFN0YXR1cyhyb2JvdCksIGJhdHRlcnk6IHJvYm90LmJhdHRlcnkgfSkpO1xuICB9LFxuXG4gIGFzeW5jIGRpc3BhdGNoKHJvYm90SWQsIHRhcmdldCwgY29tbWFuZElkKSB7XG4gICAgY29uc3QgY2lkID0gdmVuZG9yQ29tbWFuZElkKGNvbW1hbmRJZCk7XG4gICAgY29uc3QgYm9keSA9IHsgdGFyZ2V0OiB7IHg6IHRhcmdldC54LCB5OiB0YXJnZXQueSB9LCBjb21tYW5kX2lkOiBjaWQgfTtcbiAgICBjb25zdCBkZWFkbGluZSA9IERhdGUubm93KCkgKyBESVNQQVRDSF9CVURHRVRfTVM7XG4gICAgLy8gU2V0IG9uY2UgYW4gYXR0ZW1wdCBtYXkgaGF2ZSByZWFjaGVkIHRoZSB2ZW5kb3I6IGZyb20gdGhlbiBvbiBhIHJlZnVzYWwgbm8gbG9uZ2VyIHByb3Zlc1xuICAgIC8vIHRoYXQgbm8gb3JkZXIgZXhpc3RzLCBiZWNhdXNlIHRoZSBlYXJsaWVyIGF0dGVtcHQgbWF5IGhhdmUgY3JlYXRlZCBpdC5cbiAgICBsZXQgdW5jZXJ0YWluID0gZmFsc2U7XG4gICAgbGV0IGxhc3Q7XG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDE7IGF0dGVtcHQgXHUwMDNjPSBESVNQQVRDSF9UUklFUzsgYXR0ZW1wdCsrKSB7XG4gICAgICBpZiAoYXR0ZW1wdCBcdTAwM2UgMSkge1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSBcdTAwM2U9IGRlYWRsaW5lKSBicmVhaztcbiAgICAgICAgYXdhaXQgc2xlZXAoYmFja29mZihhdHRlbXB0IC0gMSkpO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gRXZlcnkgYXR0ZW1wdCBjYXJyaWVzIHRoZSBzYW1lIGNvbW1hbmRfaWQsIHNvIGEgcmVwZWF0IGFuc3dlcnMgdGhlIG9yaWdpbmFsIG1pc3Npb25cbiAgICAgICAgLy8gaW5zdGVhZCBvZiBwbGFjaW5nIGEgc2Vjb25kIG9yZGVyLlxuICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgd2l0aFRpbWVvdXQoZmxlZXQuY3JlYXRlTWlzc2lvbihyb2JvdElkLCBib2R5KSk7XG4gICAgICAgIGNvbnN0IG1pc3Npb25JZCA9IGNyZWF0ZWQgXHUwMDI2XHUwMDI2IChjcmVhdGVkLm1pc3Npb25faWQgPz8gY3JlYXRlZC5pZCk7XG4gICAgICAgIGlmIChtaXNzaW9uSWQgIT0gbnVsbCBcdTAwMjZcdTAwMjYgKGNyZWF0ZWQuY29tbWFuZF9pZCA9PSBudWxsIHx8IGNyZWF0ZWQuY29tbWFuZF9pZCA9PT0gY2lkKSkgcmV0dXJuIG1pc3Npb25JZDtcbiAgICAgICAgbGFzdCA9IG5ldyBFcnJvcihgdW5leHBlY3RlZCBhbnN3ZXIgdG8gY3JlYXRlOiAke0pTT04uc3RyaW5naWZ5KGNyZWF0ZWQpfWApO1xuICAgICAgICB1bmNlcnRhaW4gPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBsYXN0ID0gZXJyO1xuICAgICAgICBjb25zdCBraW5kID0gY2xhc3NpZnkoZXJyKTtcbiAgICAgICAgaWYgKGtpbmQgPT09IFwicmVqZWN0ZWRcIiB8fCBraW5kID09PSBcImRlbmllZFwiKSB7XG4gICAgICAgICAgaWYgKCF1bmNlcnRhaW4pIHRocm93IGNvZGVkRXJyb3IoXCJyZWZ1c2VkXCIsIGBjb21tYW5kICR7Y29tbWFuZElkfSByZWZ1c2VkOiAke2Vyci5tZXNzYWdlfWAsIGVycik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtpbmQgPT09IFwibG9zdFwiKSB1bmNlcnRhaW4gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXVuY2VydGFpbikge1xuICAgICAgdGhyb3cgY29kZWRFcnJvcihcInJlZnVzZWRcIiwgYGNvbW1hbmQgJHtjb21tYW5kSWR9IHR1cm5lZCBhd2F5OiAke2xhc3QgXHUwMDI2XHUwMDI2IGxhc3QubWVzc2FnZX1gLCBsYXN0KTtcbiAgICB9XG4gICAgY29uc3QgZm91bmQgPSBhd2FpdCBmaW5kTWlzc2lvbihyb2JvdElkLCBjaWQpO1xuICAgIGlmIChmb3VuZCAhPSBudWxsKSByZXR1cm4gZm91bmQ7XG4gICAgdGhyb3cgY29kZWRFcnJvcihcbiAgICAgIFwidW5yZXNvbHZlZFwiLFxuICAgICAgYGNhbm5vdCB0ZWxsIHdoZXRoZXIgY29tbWFuZCAke2NvbW1hbmRJZH0gYmVjYW1lIGFuIG9yZGVyOiAke2xhc3QgXHUwMDI2XHUwMDI2IGxhc3QubWVzc2FnZX1gLFxuICAgICAgbGFzdCxcbiAgICApO1xuICB9LFxuXG4gIGFzeW5jIHdhaXQobWlzc2lvbklkLCBvcHRzKSB7XG4gICAgY29uc3QgbWF4UG9sbHMgPSBwb2xsTGltaXQob3B0cyBcdTAwMjZcdTAwMjYgb3B0cy5tYXhQb2xscyk7XG4gICAgbGV0IHBvbGxzID0gMDtcbiAgICBsZXQgcGF1c2UgPSBQT0xMX01JTl9NUztcbiAgICBsZXQgbWlzc2luZyA9IDA7XG4gICAgd2hpbGUgKHBvbGxzIFx1MDAzYyBtYXhQb2xscykge1xuICAgICAgaWYgKHBvbGxzIFx1MDAzZSAwKSB7XG4gICAgICAgIGF3YWl0IHNsZWVwKHBhdXNlKTtcbiAgICAgICAgcGF1c2UgPSBNYXRoLm1pbihQT0xMX01BWF9NUywgTWF0aC5yb3VuZChwYXVzZSAqIDEuNSkpO1xuICAgICAgfVxuICAgICAgcG9sbHMrKztcbiAgICAgIGxldCBtaXNzaW9uO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbWlzc2lvbiA9IGF3YWl0IHdpdGhUaW1lb3V0KGZsZWV0LmdldE1pc3Npb24obWlzc2lvbklkKSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc3Qga2luZCA9IGNsYXNzaWZ5KGVycik7XG4gICAgICAgIGlmIChraW5kID09PSBcImxvc3RcIiB8fCBraW5kID09PSBcImJ1c3lcIikgY29udGludWU7XG4gICAgICAgIC8vIEEgbWlzc2lvbiBvbmx5IGp1c3QgY3JlYXRlZCBtYXkgbm90IGJlIHJlYWRhYmxlIHlldC5cbiAgICAgICAgaWYgKHN0YXR1c09mKGVycikgPT09IDQwNCBcdTAwMjZcdTAwMjYgKyttaXNzaW5nIFx1MDAzYz0gTk9UX0ZPVU5EX1RSSUVTKSBjb250aW51ZTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3RhdGUgPSBURVJNSU5BTFtTdHJpbmcobWlzc2lvbiBcdTAwMjZcdTAwMjYgbWlzc2lvbi5zdGF0dXMpLnRvTG93ZXJDYXNlKCldO1xuICAgICAgaWYgKHN0YXRlKSByZXR1cm4geyBzdGF0ZSwgcG9sbHMgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6IFwidGltZW91dFwiLCBwb2xscyB9O1xuICB9LFxuXG4gIGFzeW5jIGNhbmNlbChtaXNzaW9uSWQpIHtcbiAgICBmb3IgKGxldCByb3VuZCA9IDE7IDsgcm91bmQrKykge1xuICAgICAgLy8gQ2FuY2VsbGluZyBpcyBpZGVtcG90ZW50IG9uIHRoZSB2ZW5kb3I6IGEgZmluaXNoZWQgb3IgY2FuY2VsbGVkIG1pc3Npb24gaXMgbGVmdCB1bmNoYW5nZWQuXG4gICAgICBjb25zdCBtaXNzaW9uID0gYXdhaXQgd2l0aFJldHJpZXMoKCkgPVx1MDAzZSBmbGVldC5jYW5jZWxNaXNzaW9uKG1pc3Npb25JZCksIENBTExfVFJJRVMpO1xuICAgICAgY29uc3Qgc3RhdHVzID0gbWlzc2lvbiBcdTAwMjZcdTAwMjYgbWlzc2lvbi5zdGF0dXM7XG4gICAgICBpZiAoc3RhdHVzID09IG51bGwgfHwgVEVSTUlOQUxbU3RyaW5nKHN0YXR1cykudG9Mb3dlckNhc2UoKV0pIHJldHVybjtcbiAgICAgIGlmIChyb3VuZCBcdTAwM2U9IENBTkNFTF9ST1VORFMpIHtcbiAgICAgICAgdGhyb3cgY29kZWRFcnJvcihcInVucmVzb2x2ZWRcIiwgYG1pc3Npb24gJHttaXNzaW9uSWR9IHN0aWxsICR7c3RhdHVzfSBhZnRlciBjYW5jZWxgKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHNsZWVwKGJhY2tvZmYocm91bmQpKTtcbiAgICB9XG4gIH0sXG59O1xuIiwicGF0aCI6InRyaWFsL29wdXMuanMifSx7ImNvbnRlbnQiOiIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHNsZWVwID0gKG1zKSA9XHUwMDNlIG5ldyBQcm9taXNlKChyKSA9XHUwMDNlIHNldFRpbWVvdXQociwgbXMpKTtcblxuZnVuY3Rpb24gc3RhdHVzT2YoZXJyKSB7XG4gIGNvbnN0IG0gPSAvXmhvc3QgYXBpIChcXGR7M30pOi8uZXhlYygoZXJyIFx1MDAyNlx1MDAyNiBlcnIubWVzc2FnZSkgfHwgJycpO1xuICByZXR1cm4gbSA/IE51bWJlcihtWzFdKSA6IG51bGw7XG59XG5cbmZ1bmN0aW9uIG5vdFBlcm1pdHRlZChlcnIpIHtcbiAgcmV0dXJuIC9ub3QgcGVybWl0dGVkIGJ5IHNhbmRib3ggY2FwYWJpbGl0eS8udGVzdCgoZXJyIFx1MDAyNlx1MDAyNiBlcnIubWVzc2FnZSkgfHwgJycpO1xufVxuXG4vLyBBIGZhaWx1cmUgdGhhdCBzYXlzIG5vdGhpbmcgZGVmaW5pdGUgYWJvdXQgdGhlIHZlbmRvcidzIHN0YXRlOiBubyBhbnN3ZXIsIGEgbG9zdFxuLy8gYW5zd2VyLCBvdXIgb3duIHRpbWVvdXQsIG9yIGEgNXh4LlxuZnVuY3Rpb24gaXNUcmFuc2llbnQoZXJyKSB7XG4gIGlmICghZXJyIHx8IG5vdFBlcm1pdHRlZChlcnIpKSByZXR1cm4gZmFsc2U7XG4gIGlmIChlcnIudGltZWRPdXQpIHJldHVybiB0cnVlO1xuICBjb25zdCBzID0gc3RhdHVzT2YoZXJyKTtcbiAgcmV0dXJuIHMgPT09IG51bGwgPyBmYWxzZSA6IHMgXHUwMDNlPSA1MDA7XG59XG5cbmZ1bmN0aW9uIHdpdGhUaW1lb3V0KHAsIG1zKSB7XG4gIGxldCB0O1xuICBjb25zdCB0aW1lciA9IG5ldyBQcm9taXNlKChfLCByZWopID1cdTAwM2Uge1xuICAgIHQgPSBzZXRUaW1lb3V0KCgpID1cdTAwM2UgcmVqKE9iamVjdC5hc3NpZ24obmV3IEVycm9yKCdob3N0IGFwaSA1MDI6IHRpbWVvdXQnKSwgeyB0aW1lZE91dDogdHJ1ZSB9KSksIG1zKTtcbiAgfSk7XG4gIHJldHVybiBQcm9taXNlLnJhY2UoW3AsIHRpbWVyXSkuZmluYWxseSgoKSA9XHUwMDNlIGNsZWFyVGltZW91dCh0KSk7XG59XG5cbi8vIE1hcCB0aGUgcGxhdGZvcm0ncyBjb21tYW5kIGlkIG9udG8gdGhlIHZlbmRvcidzIGFsbG93ZWQgYWxwaGFiZXQgKDgtNjQgb2YgQS1aYS16MC05LV8pLFxuLy8gaW5qZWN0aXZlbHksIHNvIGRpc3RpbmN0IGNvbW1hbmRzIG5ldmVyIHNoYXJlIGEgdmVuZG9yIG5hbWUuXG5mdW5jdGlvbiB2ZW5kb3JDb21tYW5kSWQoaWQpIHtcbiAgY29uc3QgcyA9IFN0cmluZyhpZCk7XG4gIGlmICgvXltBLVphLXowLTlfLV17OCw2NH0kLy50ZXN0KHMpKSByZXR1cm4gcztcbiAgbGV0IG91dCA9ICdjXyc7XG4gIGZvciAoY29uc3QgY2ggb2Ygcykge1xuICAgIGlmICgvW0EtWmEtejAtOV9dLy50ZXN0KGNoKSkgb3V0ICs9IGNoO1xuICAgIGVsc2Ugb3V0ICs9ICctJyArIGNoLmNvZGVQb2ludEF0KDApLnRvU3RyaW5nKDE2KSArICctJztcbiAgfVxuICB3aGlsZSAob3V0Lmxlbmd0aCBcdTAwM2MgOCkgb3V0ICs9ICdfJztcbiAgcmV0dXJuIG91dC5zbGljZSgwLCA2NCk7XG59XG5cbmZ1bmN0aW9uIGZhaWwoY29kZSwgbWVzc2FnZSkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IobWVzc2FnZSksIHsgY29kZSB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGFzeW5jIGludmVudG9yeSgpIHtcbiAgICBsZXQgbGFzdEVycjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSBcdTAwM2MgNTsgaSsrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB3aXRoVGltZW91dChmbGVldC5saXN0Um9ib3RzKCksIDgwMDApO1xuICAgICAgICByZXR1cm4gKHJlcy5yb2JvdHMgfHwgW10pLm1hcCgocikgPVx1MDAzZSAoeyBpZDogci5pZCwgc3RhdHVzOiByLnN0YXR1cywgYmF0dGVyeTogci5iYXR0ZXJ5IH0pKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbGFzdEVyciA9IGU7XG4gICAgICAgIGlmICghaXNUcmFuc2llbnQoZSkpIHRocm93IGU7XG4gICAgICAgIGF3YWl0IHNsZWVwKDEwMCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IGxhc3RFcnI7XG4gIH0sXG5cbiAgYXN5bmMgZGlzcGF0Y2gocm9ib3RJZCwgdGFyZ2V0LCBjb21tYW5kSWQpIHtcbiAgICBjb25zdCBjaWQgPSB2ZW5kb3JDb21tYW5kSWQoY29tbWFuZElkKTtcbiAgICBjb25zdCBib2R5ID0geyB0YXJnZXQ6IHsgeDogdGFyZ2V0LngsIHk6IHRhcmdldC55IH0sIGNvbW1hbmRfaWQ6IGNpZCB9O1xuICAgIC8vIFJldHJ5aW5nIHdpdGggdGhlIHNhbWUgY29tbWFuZF9pZCBpcyBpZGVtcG90ZW50IG9uIHRoZSB2ZW5kb3I6IGl0IGFuc3dlcnMgd2l0aCB0aGVcbiAgICAvLyBvcmlnaW5hbCBtaXNzaW9uLCBzbyBpdCBjYW4gbmV2ZXIgYmVjb21lIGEgc2Vjb25kIG9yZGVyLlxuICAgIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IFx1MDAzYyA1OyBhdHRlbXB0KyspIHtcbiAgICAgIGxldCByZXM7XG4gICAgICB0cnkge1xuICAgICAgICByZXMgPSBhd2FpdCB3aXRoVGltZW91dChmbGVldC5jcmVhdGVNaXNzaW9uKHJvYm90SWQsIGJvZHkpLCA4MDAwKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKGlzVHJhbnNpZW50KGUpKSB7XG4gICAgICAgICAgYXdhaXQgc2xlZXAoMTAwICogKGF0dGVtcHQgKyAxKSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZmFpbCgncmVmdXNlZCcsIGB2ZW5kb3IgcmVmdXNlZCBvcmRlcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICBpZiAoIXJlcyB8fCAhcmVzLm1pc3Npb25faWQpIHRocm93IGZhaWwoJ3VucmVzb2x2ZWQnLCAndmVuZG9yIGFuc3dlciBoYWQgbm8gbWlzc2lvbiBpZCcpO1xuICAgICAgaWYgKHJlcy5jb21tYW5kX2lkICE9PSB1bmRlZmluZWQgXHUwMDI2XHUwMDI2IHJlcy5jb21tYW5kX2lkICE9PSBjaWQpIHtcbiAgICAgICAgdGhyb3cgZmFpbCgndW5yZXNvbHZlZCcsICd2ZW5kb3IgYW5zd2VyZWQgd2l0aCBhIGRpZmZlcmVudCBjb21tYW5kJyk7XG4gICAgICB9XG4gICAgICBpZiAocmVzLnJvYm90ICE9PSB1bmRlZmluZWQgXHUwMDI2XHUwMDI2IHJlcy5yb2JvdCAhPT0gcm9ib3RJZCkge1xuICAgICAgICB0aHJvdyBmYWlsKCd1bnJlc29sdmVkJywgJ3ZlbmRvciBhbnN3ZXJlZCB3aXRoIGEgZGlmZmVyZW50IHJvYm90Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzLm1pc3Npb25faWQ7XG4gICAgfVxuICAgIHRocm93IGZhaWwoJ3VucmVzb2x2ZWQnLCAnbm8gdXNhYmxlIGFuc3dlciBmcm9tIHZlbmRvcjsgb3JkZXIgc3RhdGUgdW5rbm93bicpO1xuICB9LFxuXG4gIGFzeW5jIHdhaXQobWlzc2lvbklkLCBvcHRzKSB7XG4gICAgY29uc3QgbWF4UG9sbHMgPSAob3B0cyBcdTAwMjZcdTAwMjYgb3B0cy5tYXhQb2xscykgfHwgNTA7XG4gICAgbGV0IHBvbGxzID0gMDtcbiAgICBsZXQgZXJyb3JzID0gMDtcbiAgICB3aGlsZSAocG9sbHMgXHUwMDNjIG1heFBvbGxzKSB7XG4gICAgICBsZXQgbTtcbiAgICAgIHRyeSB7XG4gICAgICAgIG0gPSBhd2FpdCB3aXRoVGltZW91dChmbGVldC5nZXRNaXNzaW9uKG1pc3Npb25JZCksIDgwMDApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoaXNUcmFuc2llbnQoZSkgXHUwMDI2XHUwMDI2ICsrZXJyb3JzIFx1MDAzYz0gMzApIHtcbiAgICAgICAgICBhd2FpdCBzbGVlcCg1MCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICAgIHBvbGxzKys7XG4gICAgICBpZiAobS5zdGF0dXMgPT09ICdkb25lJyB8fCBtLnN0YXR1cyA9PT0gJ2ZhaWxlZCcgfHwgbS5zdGF0dXMgPT09ICdjYW5jZWxsZWQnKSB7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiBtLnN0YXR1cywgcG9sbHMgfTtcbiAgICAgIH1cbiAgICAgIGlmIChwb2xscyBcdTAwM2MgbWF4UG9sbHMpIGF3YWl0IHNsZWVwKDUwKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgc3RhdGU6ICd0aW1lb3V0JywgcG9sbHMgfTtcbiAgfSxcblxuICBhc3luYyBjYW5jZWwobWlzc2lvbklkKSB7XG4gICAgbGV0IGxhc3RFcnI7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgXHUwMDNjIDU7IGkrKykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHdpdGhUaW1lb3V0KGZsZWV0LmNhbmNlbE1pc3Npb24obWlzc2lvbklkKSwgODAwMCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGxhc3RFcnIgPSBlO1xuICAgICAgICBpZiAoIWlzVHJhbnNpZW50KGUpKSB0aHJvdyBlO1xuICAgICAgICBhd2FpdCBzbGVlcCgxMDApO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBsYXN0RXJyO1xuICB9LFxufTtcbiIsInBhdGgiOiJ0cmlhbC9zb25uZXQuanMifSx7ImNvbnRlbnQiOiJ7XCJjb21tYW5kc1wiOlt7XCJpZFwiOlwicnVuMTAtYzFcIixcInJvYm90XCI6XCJyMVwiLFwidGFyZ2V0XCI6e1wieFwiOjMsXCJ5XCI6MH19LHtcImlkXCI6XCJydW4xMC1jMlwiLFwicm9ib3RcIjpcInIyXCIsXCJ0YXJnZXRcIjp7XCJ4XCI6MTAsXCJ5XCI6NH19LHtcImlkXCI6XCJydW4xMC1jM1wiLFwicm9ib3RcIjpcInIzXCIsXCJ0YXJnZXRcIjp7XCJ4XCI6MCxcInlcIjoxNX19LHtcImlkXCI6XCJydW4xMC1jNFwiLFwicm9ib3RcIjpcInIxXCIsXCJ0YXJnZXRcIjp7XCJ4XCI6NTAsXCJ5XCI6NTB9LFwiY2FuY2VsXCI6dHJ1ZX1dfSIsInBhdGgiOiJwbGFuLmpzb24ifV0sImdyYW50X3Byb2ZpbGUiOiJmbGVldCIsInN0ZXBzIjpbIm5vZGUgaGFybmVzcy5qcyBub21pbmFsIGFkYXB0ZXItdjIuanMiXX0sInByb3RvY29sIjo0LCJzb2Z0d2FyZV9ydWxlIjpudWxsLCJ0aW1lb3V0X21zIjo5MDAwMCwidHJhY2VfaWQiOiJhZGFwdGVyLXJ1bi0xMCJ9LCJyZXNwb25zZSI6eyJkdXJhdGlvbl9tcyI6IjEyNjMiLCJlbnZpcm9ubWVudCI6ImRvY2tlci1pbWFnZTpzaGEyNTY6MzJkYTc3YjFiZTI0ZGU0YzE1MjY2N2MyOGFiNjM1MzE0MjVjZDY5MDAwYWNmMzBhMzI4OTg1Y2I4NTczNzdmNyIsImluc3RhbmNlIjoiIiwiaXNvbGF0aW9uIjoia2VybmVsIiwicHJvamVjdCI6eyJhZHZpY2UiOltdLCJhcnRpZmFjdHMiOltdLCJhcnRpZmFjdHNfdHJ1bmNhdGVkIjpmYWxzZSwib3V0Y29tZSI6IlBST0pFQ1RfT1VUQ09NRV9DT01QTEVURUQiLCJvdXRjb21lX2RldGFpbCI6IiIsInN0ZXBzIjpbeyJjb21tYW5kIjoibm9kZSBoYXJuZXNzLmpzIG5vbWluYWwgYWRhcHRlci12Mi5qcyIsImR1cmF0aW9uX21zIjoiNDc5IiwiZXhpdF9jb2RlIjowLCJzdGRlcnIiOiIiLCJzdGRlcnJfdHJ1bmNhdGVkIjpmYWxzZSwic3Rkb3V0IjoiUVVSQlVGUkZVaTFTUlZCUFVsUWdleUp6WTJWdVlYSnBieUk2SW01dmJXbHVZV3dpTENKaFpHRndkR1Z5SWpvaVlXUmhjSFJsY2kxMk1pNXFjeUlzSW1OdmJYQnNaWFJsWkNJNmRISjFaU3dpWTI5dGJXRnVaSE1pT2x0N0ltbGtJam9pY25WdU1UQXRZekVpTENKeWIySnZkQ0k2SW5JeElpd2liV2x6YzJsdmJpSTZJbTB4SWl3aVpHbHpjR0YwWTJobFpDSTZJbTB4SWl3aWMzUmhkR1VpT2lKa2IyNWxJaXdpY0c5c2JITWlPak1zSW0xaGVGOXdiMnhzY3lJNk5EQXNJbmRoYVhSbFpDSTZleUp6ZEdGMFpTSTZJbVJ2Ym1VaUxDSndiMnhzY3lJNk15d2ljbVYwY21sbGN5STZNSDBzSW1WeWNtOXlJam9pSWl3aVkyOWtaU0k2SWlKOUxIc2lhV1FpT2lKeWRXNHhNQzFqTWlJc0luSnZZbTkwSWpvaWNqSWlMQ0p0YVhOemFXOXVJam9pYlRJaUxDSmthWE53WVhSamFHVmtJam9pYlRJaUxDSnpkR0YwWlNJNkltUnZibVVpTENKd2IyeHNjeUk2TkN3aWJXRjRYM0J2Ykd4eklqbzBNQ3dpZDJGcGRHVmtJanA3SW5OMFlYUmxJam9pWkc5dVpTSXNJbkJ2Ykd4eklqbzBMQ0p5WlhSeWFXVnpJam93ZlN3aVpYSnliM0lpT2lJaUxDSmpiMlJsSWpvaUluMHNleUpwWkNJNkluSjFiakV3TFdNeklpd2ljbTlpYjNRaU9pSnlNeUlzSW0xcGMzTnBiMjRpT2lKdE15SXNJbVJwYzNCaGRHTm9aV1FpT2lKdE15SXNJbk4wWVhSbElqb2laRzl1WlNJc0luQnZiR3h6SWpvMUxDSnRZWGhmY0c5c2JITWlPalF3TENKM1lXbDBaV1FpT25zaWMzUmhkR1VpT2lKa2IyNWxJaXdpY0c5c2JITWlPalVzSW5KbGRISnBaWE1pT2pCOUxDSmxjbkp2Y2lJNklpSXNJbU52WkdVaU9pSWlmU3g3SW1sa0lqb2ljblZ1TVRBdFl6UWlMQ0p5YjJKdmRDSTZJbkl4SWl3aWJXbHpjMmx2YmlJNkltMDBJaXdpWkdsemNHRjBZMmhsWkNJNkltMDBJaXdpYzNSaGRHVWlPaUpqWVc1alpXeHNaV1FpTENKd2IyeHNjeUk2TVN3aWJXRjRYM0J2Ykd4eklqbzFMQ0ozWVdsMFpXUWlPbnNpYzNSaGRHVWlPaUpqWVc1alpXeHNaV1FpTENKd2IyeHNjeUk2TVN3aWNtVjBjbWxsY3lJNk1IMHNJbVZ5Y205eUlqb2lJaXdpWTI5a1pTSTZJaUo5WFN3aWFXNTJaVzUwYjNKcFpYTWlPbHQ3SW5KbGRIVnlibVZrSWpwYmV5SnBaQ0k2SW5JeElpd2ljM1JoZEhWeklqb2lhV1JzWlNJc0ltSmhkSFJsY25raU9qazJmU3g3SW1sa0lqb2ljaklpTENKemRHRjBkWE1pT2lKcFpHeGxJaXdpWW1GMGRHVnllU0k2TnpGOUxIc2lhV1FpT2lKeU15SXNJbk4wWVhSMWN5STZJbWxrYkdVaUxDSmlZWFIwWlhKNUlqbzFPSDFkTENKbGNuSnZjaUk2SWlKOUxIc2ljbVYwZFhKdVpXUWlPbHQ3SW1sa0lqb2ljakVpTENKemRHRjBkWE1pT2lKcFpHeGxJaXdpWW1GMGRHVnllU0k2T1RSOUxIc2lhV1FpT2lKeU1pSXNJbk4wWVhSMWN5STZJbWxrYkdVaUxDSmlZWFIwWlhKNUlqbzJPSDBzZXlKcFpDSTZJbkl6SWl3aWMzUmhkSFZ6SWpvaWFXUnNaU0lzSW1KaGRIUmxjbmtpT2pVMGZWMHNJbVZ5Y205eUlqb2lJbjFkTENKd2IyeHNjeUk2TVRNc0luSmxkSEpwWlhNaU9qQXNJbVZ5Y205eWN5STZXMTE5Q2c9PSIsInN0ZG91dF90cnVuY2F0ZWQiOmZhbHNlLCJ0aW1lZF9vdXQiOmZhbHNlfV19LCJyZWNvcmQiOnsiZW5kZWRfdW5peF9tcyI6IjE3OTI3ODQzNTcyNDQiLCJlbnZpcm9ubWVudCI6ImRvY2tlci1pbWFnZTpzaGEyNTY6MzJkYTc3YjFiZTI0ZGU0YzE1MjY2N2MyOGFiNjM1MzE0MjVjZDY5MDAwYWNmMzBhMzI4OTg1Y2I4NTczNzdmNyIsImluc3RhbmNlIjoiIiwiaXNvbGF0aW9uIjoia2VybmVsIiwicG9saWN5IjoiIiwicHJldmlvdXNfc2hhMjU2IjoiIiwicHJvdmlkZXIiOiJkb2NrZXIiLCJyZWNvcmRfc2hhMjU2IjoiNGM2OWI1YTM4ZjI5MGIyNGI4MmM0YTJjYjNjMDEwZTcxYTg4ZjJlMGM0NzRlNTVkODNjZGQ3ZWE1NGZmOGI2ZCIsInJlcXVlc3Rfc2hhMjU2IjoiOGNkN2U5YzYwMDE0YWIyMGZiMzk3Y2Q5NzExZDY2YjE0Y2MzZTdkMGYwYzNkZjBjODBlMDBlYjczMjkzODQ3NCIsInJlc3VsdF9zaGEyNTYiOiJmMjVjNTNjYTRhZTBlYzM5NTI1NTAwNTI1ODM4NzBhNDE0ZDZjZGVhMjk2NDhhODA5NmE3NzFjMzI1ZTM3OWVkIiwic2VxdWVuY2UiOiIwIiwic2Vzc2lvbiI6IiIsInNvZnR3YXJlX2lkZW50aXR5Ijoib2NpLW1hbmlmZXN0OmxpbnV4L2FtZDY0QHNoYTI1NjphNmVmMmVhMWM4ZjFkZTVjODg1ZTFhMThiYTdlZTRkOTYyZTNhODU5ODc3ZjZmNDZjMmZiN2ViYWMxZjZjYzVjIiwic29mdHdhcmVfcnVsZV9pZCI6IiIsInN0YXJ0ZWRfdW5peF9tcyI6IjE3OTI3ODQzNTU5ODAiLCJ1bmFuc3dlcmVkIjoiIiwidmVyc2lvbiI6NH0sInNhbmRib3giOiJkb2NrZXIiLCJzb2Z0d2FyZV9pZGVudGl0eSI6Im9jaS1tYW5pZmVzdDpsaW51eC9hbWQ2NEBzaGEyNTY6YTZlZjJlYTFjOGYxZGU1Yzg4NWUxYTE4YmE3ZWU0ZDk2MmUzYTg1OTg3N2Y2ZjQ2YzJmYjdlYmFjMWY2Y2M1YyJ9fQ==",
                "contentType": "application/json",
                "encoding": "base64"
              }
            },
            "name": "exchange.json"
          }
        ],
        "description": "Public example evidence: DSSE envelope, signed body type application/vnd.in-toto+json, in-toto statement https://in-toto.io/Statement/v1, predicate https://plimsollmark.github.io/plimsoll/run-record/v1, key id 2368e6af86fb7984c52ea36b04298aafc498a7461f116e0e998efed702974567. entry.json is line 10 of the referenced bundle as stored: the exact binary protobuf request and response, the record's envelope and the harness's signed link placing the line. exchange.json is a plain JSON copy checked against those bytes.",
        "propertyName": "plimsoll:run_record"
      },
      {
        "author": {
          "name": "plimsoll-attest key 2368e6af86fb7984c52ea36b04298aafc498a7461f116e0e998efed702974567"
        },
        "bom-ref": "evidence-qualification",
        "created": "2026-10-23T19:39:17.244Z",
        "data": [
          {
            "contents": {
              "attachment": {
                "content": "eyJwYXlsb2FkVHlwZSI6ImFwcGxpY2F0aW9uL3ZuZC5pbi10b3RvK2pzb24iLCJwYXlsb2FkIjoiZXlKZmRIbHdaU0k2SW1oMGRIQnpPaTh2YVc0dGRHOTBieTVwYnk5VGRHRjBaVzFsYm5RdmRqRWlMQ0p6ZFdKcVpXTjBJanBiZXlKdVlXMWxJam9pY25WdUxYSmxZMjl5WkNJc0ltUnBaMlZ6ZENJNmV5SnphR0V5TlRZaU9pSTBZelk1WWpWaE16aG1Namt3WWpJMFlqZ3lZelJoTW1OaU0yTXdNVEJsTnpGaE9EaG1NbVV3WXpRM05HVTFOV1E0TTJOa1pEZGxZVFUwWm1ZNFlqWmtJbjE5WFN3aWNISmxaR2xqWVhSbFZIbHdaU0k2SW1oMGRIQnpPaTh2Y0d4cGJYTnZiR3h0WVhKckxtZHBkR2gxWWk1cGJ5OXdiR2x0YzI5c2JDOWxlR0Z0Y0d4bGN5OWhaR0Z3ZEdWeUwzRjFZV3hwWm1sallYUnBiMjR2ZGpFaUxDSndjbVZrYVdOaGRHVWlPbnNpY25WdUlqb3hNQ3dpYzJsdGRXeGhkRzl5SWpvaVpteGxaWFJ6YVcwdk15SXNJbUZrWVhCMFpYSWlPbnNpY0dGMGFDSTZJbUZrWVhCMFpYSXRkakl1YW5NaUxDSnphR0V5TlRZaU9pSTBNRGcxWW1JeVpUUTVNREJsWlROaVpXTmpObU16TURoa1pURmhPVEkzWkRBM00yWXdZVGszTkRZNU1qTXhPRE5qWlRnek9XRTJOREk1T1RJeE16TXdJbjBzSW1oaGNtNWxjM05mYzJoaE1qVTJJam9pTVRGaFpUVTRaRFUyT1dKbE1tUmxaR1UxTjJNNFltRXlaamczTXpkaVpEQmhOVFU1WVRnMFpXSXdORGsxWmpjNVlUQTNOREJrWm1VNE5qSXhNbU01TlNJc0ltVjJhV1JsYm1ObElqcDdJbXRwYm1RaU9pSmhaR0Z3ZEdWeUlpd2ljMk5sYm1GeWFXOGlPbnNpYm1GdFpTSTZJbTV2YldsdVlXd2lMQ0p6WVhseklqb2lkR2h5WldVZ2FXUnNaU0J5YjJKdmRITTdJR1YyWlhKNUlHOXlaR1Z5SUdOaGJpQmpiMjF3YkdWMFpTSjlMQ0p3YkdGdUlqcDdJbU52YlcxaGJtUnpJanBiZXlKcFpDSTZJbkoxYmpFd0xXTXhJaXdpY205aWIzUWlPaUp5TVNJc0luUmhjbWRsZENJNmV5SjRJam96TENKNUlqb3dmWDBzZXlKcFpDSTZJbkoxYmpFd0xXTXlJaXdpY205aWIzUWlPaUp5TWlJc0luUmhjbWRsZENJNmV5SjRJam94TUN3aWVTSTZOSDE5TEhzaWFXUWlPaUp5ZFc0eE1DMWpNeUlzSW5KdlltOTBJam9pY2pNaUxDSjBZWEpuWlhRaU9uc2llQ0k2TUN3aWVTSTZNVFY5ZlN4N0ltbGtJam9pY25WdU1UQXRZelFpTENKeWIySnZkQ0k2SW5JeElpd2lkR0Z5WjJWMElqcDdJbmdpT2pVd0xDSjVJam8xTUgwc0ltTmhibU5sYkNJNmRISjFaWDFkZlN3aWJHVmtaMlZ5SWpwYmV5SnBaQ0k2SW0weElpd2ljbTlpYjNRaU9pSnlNU0lzSW1OdmJXMWhibVJmYVdRaU9pSnlkVzR4TUMxak1TSXNJblJoY21kbGRDSTZleUo0SWpvekxDSjVJam93ZlN3aWMzUmhkSFZ6SWpvaVpHOXVaU0lzSW1ocGMzUnZjbmtpT2xzaWNYVmxkV1ZrSWl3aWNuVnVibWx1WnlJc0ltUnZibVVpWFN3aWMzUmxjSE1pT2pNc0luTjBiM0J3WldSZllYUWlPbnNpZUNJNk15d2llU0k2TUgxOUxIc2lhV1FpT2lKdE1pSXNJbkp2WW05MElqb2ljaklpTENKamIyMXRZVzVrWDJsa0lqb2ljblZ1TVRBdFl6SWlMQ0owWVhKblpYUWlPbnNpZUNJNk1UQXNJbmtpT2pSOUxDSnpkR0YwZFhNaU9pSmtiMjVsSWl3aWFHbHpkRzl5ZVNJNld5SnhkV1YxWldRaUxDSnlkVzV1YVc1bklpd2laRzl1WlNKZExDSnpkR1Z3Y3lJNk5Dd2ljM1J2Y0hCbFpGOWhkQ0k2ZXlKNElqb3hNQ3dpZVNJNk5IMTlMSHNpYVdRaU9pSnRNeUlzSW5KdlltOTBJam9pY2pNaUxDSmpiMjF0WVc1a1gybGtJam9pY25WdU1UQXRZek1pTENKMFlYSm5aWFFpT25zaWVDSTZNQ3dpZVNJNk1UVjlMQ0p6ZEdGMGRYTWlPaUprYjI1bElpd2lhR2x6ZEc5eWVTSTZXeUp4ZFdWMVpXUWlMQ0p5ZFc1dWFXNW5JaXdpWkc5dVpTSmRMQ0p6ZEdWd2N5STZOU3dpYzNSdmNIQmxaRjloZENJNmV5SjRJam93TENKNUlqb3hOWDE5TEhzaWFXUWlPaUp0TkNJc0luSnZZbTkwSWpvaWNqRWlMQ0pqYjIxdFlXNWtYMmxrSWpvaWNuVnVNVEF0WXpRaUxDSjBZWEpuWlhRaU9uc2llQ0k2TlRBc0lua2lPalV3ZlN3aWMzUmhkSFZ6SWpvaVkyRnVZMlZzYkdWa0lpd2lhR2x6ZEc5eWVTSTZXeUp4ZFdWMVpXUWlMQ0p5ZFc1dWFXNW5JaXdpWTJGdVkyVnNiR1ZrSWwwc0luTjBaWEJ6SWpvd0xDSnpkRzl3Y0dWa1gyRjBJanA3SW5naU9qTXNJbmtpT2pCOWZWMHNJbkp2WW05MGN5STZXM3NpYVdRaU9pSnlNU0lzSW5OMFlYUjFjeUk2SW1sa2JHVWlMQ0ppWVhSMFpYSjVJam81TkN3aWNHOXpaU0k2ZXlKNElqb3pMQ0o1SWpvd2ZYMHNleUpwWkNJNkluSXlJaXdpYzNSaGRIVnpJam9pYVdSc1pTSXNJbUpoZEhSbGNua2lPalk0TENKd2IzTmxJanA3SW5naU9qRXdMQ0o1SWpvMGZYMHNleUpwWkNJNkluSXpJaXdpYzNSaGRIVnpJam9pYVdSc1pTSXNJbUpoZEhSbGNua2lPalUwTENKd2IzTmxJanA3SW5naU9qQXNJbmtpT2pFMWZYMWRMQ0oyWlc1a2IzSWlPbnNpWTJGMFlXeHZaMTl2Ym14NUlqcDdmU3dpZFc1aGRYUm9iM0pwZW1Wa0lqb3dmU3dpWTNKbFpHVnVkR2xoYkhNaU9sdDdJbWxrSWpvaVlUVmhZekF3T1dZM1pqaGtNVE15Wm1Oa1lXVmxZV0V4TW1GaU1EUTJOREFpTENKemRXSnFaV04wSWpvaVpYaGhiWEJzWlMxamJHbGxiblFpTENKc2FXWmxkR2x0WlY5elpXTnZibVJ6SWpvNU5YMWRMQ0p5WldGa2N5STZleUp0TVNJNk15d2liVElpT2pRc0ltMHpJam8xTENKdE5DSTZNWDBzSW5SdmJHUWlPbnNpYlRFaU9qRXNJbTB5SWpveExDSnRNeUk2TVN3aWJUUWlPako5TENKaWNtOXJaWEpmWkdWdWFXVmtJam93TENKeVpYQnZjblFpT25zaWMyTmxibUZ5YVc4aU9pSnViMjFwYm1Gc0lpd2lZV1JoY0hSbGNpSTZJbUZrWVhCMFpYSXRkakl1YW5NaUxDSmpiMjF3YkdWMFpXUWlPblJ5ZFdVc0ltTnZiVzFoYm1SeklqcGJleUpwWkNJNkluSjFiakV3TFdNeElpd2ljbTlpYjNRaU9pSnlNU0lzSW0xcGMzTnBiMjRpT2lKdE1TSXNJbVJwYzNCaGRHTm9aV1FpT2lKdE1TSXNJbk4wWVhSbElqb2laRzl1WlNJc0luQnZiR3h6SWpvekxDSnRZWGhmY0c5c2JITWlPalF3TENKM1lXbDBaV1FpT25zaWMzUmhkR1VpT2lKa2IyNWxJaXdpY0c5c2JITWlPak1zSW5KbGRISnBaWE1pT2pCOUxDSmxjbkp2Y2lJNklpSXNJbU52WkdVaU9pSWlmU3g3SW1sa0lqb2ljblZ1TVRBdFl6SWlMQ0p5YjJKdmRDSTZJbkl5SWl3aWJXbHpjMmx2YmlJNkltMHlJaXdpWkdsemNHRjBZMmhsWkNJNkltMHlJaXdpYzNSaGRHVWlPaUprYjI1bElpd2ljRzlzYkhNaU9qUXNJbTFoZUY5d2IyeHNjeUk2TkRBc0luZGhhWFJsWkNJNmV5SnpkR0YwWlNJNkltUnZibVVpTENKd2IyeHNjeUk2TkN3aWNtVjBjbWxsY3lJNk1IMHNJbVZ5Y205eUlqb2lJaXdpWTI5a1pTSTZJaUo5TEhzaWFXUWlPaUp5ZFc0eE1DMWpNeUlzSW5KdlltOTBJam9pY2pNaUxDSnRhWE56YVc5dUlqb2liVE1pTENKa2FYTndZWFJqYUdWa0lqb2liVE1pTENKemRHRjBaU0k2SW1SdmJtVWlMQ0p3YjJ4c2N5STZOU3dpYldGNFgzQnZiR3h6SWpvME1Dd2lkMkZwZEdWa0lqcDdJbk4wWVhSbElqb2laRzl1WlNJc0luQnZiR3h6SWpvMUxDSnlaWFJ5YVdWeklqb3dmU3dpWlhKeWIzSWlPaUlpTENKamIyUmxJam9pSW4wc2V5SnBaQ0k2SW5KMWJqRXdMV00wSWl3aWNtOWliM1FpT2lKeU1TSXNJbTFwYzNOcGIyNGlPaUp0TkNJc0ltUnBjM0JoZEdOb1pXUWlPaUp0TkNJc0luTjBZWFJsSWpvaVkyRnVZMlZzYkdWa0lpd2ljRzlzYkhNaU9qRXNJbTFoZUY5d2IyeHNjeUk2TlN3aWQyRnBkR1ZrSWpwN0luTjBZWFJsSWpvaVkyRnVZMlZzYkdWa0lpd2ljRzlzYkhNaU9qRXNJbkpsZEhKcFpYTWlPakI5TENKbGNuSnZjaUk2SWlJc0ltTnZaR1VpT2lJaWZWMHNJbWx1ZG1WdWRHOXlhV1Z6SWpwYmV5SnlaWFIxY201bFpDSTZXM3NpYVdRaU9pSnlNU0lzSW5OMFlYUjFjeUk2SW1sa2JHVWlMQ0ppWVhSMFpYSjVJam81Tm4wc2V5SnBaQ0k2SW5JeUlpd2ljM1JoZEhWeklqb2lhV1JzWlNJc0ltSmhkSFJsY25raU9qY3hmU3g3SW1sa0lqb2ljak1pTENKemRHRjBkWE1pT2lKcFpHeGxJaXdpWW1GMGRHVnllU0k2TlRoOVhTd2laWEp5YjNJaU9pSWlmU3g3SW5KbGRIVnlibVZrSWpwYmV5SnBaQ0k2SW5JeElpd2ljM1JoZEhWeklqb2lhV1JzWlNJc0ltSmhkSFJsY25raU9qazBmU3g3SW1sa0lqb2ljaklpTENKemRHRjBkWE1pT2lKcFpHeGxJaXdpWW1GMGRHVnllU0k2TmpoOUxIc2lhV1FpT2lKeU15SXNJbk4wWVhSMWN5STZJbWxrYkdVaUxDSmlZWFIwWlhKNUlqbzFOSDFkTENKbGNuSnZjaUk2SWlKOVhTd2ljRzlzYkhNaU9qRXpMQ0p5WlhSeWFXVnpJam93TENKbGNuSnZjbk1pT2x0ZGZTd2laWGhwZEY5amIyUmxJam93ZlN3aWNuVnNaWE1pT2x0N0luSjFiR1VpT2lKeVlXNWZkRzlmZEdobFgyVnVaQ0lzSW1obGJHUWlPblJ5ZFdWOUxIc2ljblZzWlNJNkltdGxjSFJmZEdobFgzTm9ZWEJsY3lJc0ltaGxiR1FpT25SeWRXVjlMSHNpY25Wc1pTSTZJbWx1ZG1WdWRHOXllVjlwYzE5MGNuVmxJaXdpYUdWc1pDSTZkSEoxWlgwc2V5SnlkV3hsSWpvaWIyNWxYMjl5WkdWeVgzQmxjbDlqYjIxdFlXNWtJaXdpYUdWc1pDSTZkSEoxWlgwc2V5SnlkV3hsSWpvaWNtbG5hSFJmY205aWIzUmZZVzVrWDNSaGNtZGxkQ0lzSW1obGJHUWlPblJ5ZFdWOUxIc2ljblZzWlNJNkltVnVaR1ZrWDJGelgybDBYM05vYjNWc1pDSXNJbWhsYkdRaU9uUnlkV1Y5TEhzaWNuVnNaU0k2SW5KdlltOTBYMkYwWDNSaGNtZGxkQ0lzSW1obGJHUWlPblJ5ZFdWOUxIc2ljblZzWlNJNkluSmxjRzl5ZEY5cGMxOTBjblZsSWl3aWFHVnNaQ0k2ZEhKMVpYMWRMQ0oyWlhKa2FXTjBJam9pY0dGemN5SjlmUT09Iiwic2lnbmF0dXJlcyI6W3sia2V5aWQiOiIyMzY4ZTZhZjg2ZmI3OTg0YzUyZWEzNmIwNDI5OGFhZmM0OThhNzQ2MWYxMTZlMGU5OThlZmVkNzAyOTc0NTY3Iiwic2lnIjoibWJnUUFPcGhnd0tlMCsyK3lJVHMxaDZHN1JjK3dBYkh1Y0U4eVpURW85MUVSeGE4V2tEdU5YcXQweVNtZThMbmJBUnp5YTh3dVlzV24wVW5tdjh6Q2c9PSJ9XX0=",
                "contentType": "application/json",
                "encoding": "base64"
              }
            },
            "name": "statement.json"
          }
        ],
        "description": "The platform's qualification statement for this run: DSSE envelope, signed body type application/vnd.in-toto+json, in-toto statement https://in-toto.io/Statement/v1, predicate https://plimsollmark.github.io/plimsoll/examples/adapter/qualification/v1, key id 2368e6af86fb7984c52ea36b04298aafc498a7461f116e0e998efed702974567; its subject is this run's record. The referenced qualification file holds one such statement for every run of the referenced bundle.",
        "propertyName": "plimsoll:qualification"
      }
    ]
  },
  "definitions": {
    "standards": [
      {
        "bom-ref": "std-plimsoll-run-evidence",
        "name": "plimsoll run evidence",
        "requirements": [
          {
            "bom-ref": "req-code",
            "identifier": "R1",
            "title": "the code that ran is identified by digest"
          },
          {
            "bom-ref": "req-image",
            "identifier": "R2",
            "title": "the image is identified by its manifest digest"
          },
          {
            "bom-ref": "req-tier",
            "identifier": "R3",
            "title": "the isolation tier the daemon states is signed"
          },
          {
            "bom-ref": "req-verdict",
            "identifier": "R4",
            "title": "the program met the platform's rules"
          }
        ],
        "version": "1"
      }
    ]
  },
  "formulation": [
    {
      "bom-ref": "formula",
      "workflows": [
        {
          "bom-ref": "run",
          "inputs": [
            {
              "resource": {
                "ref": "program"
              }
            }
          ],
          "name": "plimsoll run",
          "outputs": [
            {
              "properties": [
                {
                  "name": "plimsoll:result_sha256",
                  "value": "f25c53ca4ae0ec3952550052583870a414d6cdea29648a8096a771c325e379ed"
                }
              ],
              "resource": {
                "ref": "evidence-run-record"
              },
              "type": "other"
            }
          ],
          "properties": [
            {
              "name": "plimsoll:provider",
              "value": "docker"
            },
            {
              "name": "plimsoll:isolation",
              "value": "kernel"
            },
            {
              "name": "plimsoll:minimum_isolation",
              "value": "container"
            },
            {
              "name": "plimsoll:timeout_ms",
              "value": "90000"
            },
            {
              "name": "plimsoll:grant",
              "value": "fleet"
            },
            {
              "name": "plimsoll:outcome",
              "value": "completed"
            }
          ],
          "runtimeTopology": [
            {
              "dependsOn": [
                "image"
              ],
              "ref": "program"
            }
          ],
          "taskDependencies": [
            {
              "ref": "step-1"
            }
          ],
          "taskTypes": [
            "other"
          ],
          "tasks": [
            {
              "bom-ref": "step-1",
              "name": "node harness.js nominal adapter-v2.js",
              "steps": [
                {
                  "commands": [
                    {
                      "executed": "node harness.js nominal adapter-v2.js",
                      "properties": [
                        {
                          "name": "plimsoll:exit_code",
                          "value": "0"
                        },
                        {
                          "name": "plimsoll:duration_ms",
                          "value": "479"
                        },
                        {
                          "name": "plimsoll:timed_out",
                          "value": "false"
                        },
                        {
                          "name": "plimsoll:stdout_truncated",
                          "value": "false"
                        },
                        {
                          "name": "plimsoll:stderr_truncated",
                          "value": "false"
                        }
                      ]
                    }
                  ]
                }
              ],
              "taskTypes": [
                "other"
              ],
              "uid": "1"
            }
          ],
          "timeEnd": "2026-10-23T19:39:17.244Z",
          "timeStart": "2026-10-23T19:39:15.980Z",
          "uid": "4c69b5a38f290b24b82c4a2cb3c010e71a88f2e0c474e55d83cdd7ea54ff8b6d"
        }
      ]
    }
  ],
  "metadata": {
    "component": {
      "bom-ref": "program",
      "components": [
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "1f11531d8bdfeed9480d67122e0e82d208940dd4c0cddc762155981604013c14"
            }
          ],
          "name": "adapter-v1.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "2217"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "4085bb2e4900ee3becc6c308de1a927d073f0a9746923183ce839a6429921330"
            }
          ],
          "name": "adapter-v2.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "4107"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "adb12255d965710962f97e5c648e8d6126fb2482f0a508211e3daed2403ed858"
            }
          ],
          "name": "broken/empty-inventory.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "198"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "28eff8d401d435f420ffad42766c599e95b2ee408c2675fffbb790a55c543077"
            }
          ],
          "name": "broken/false-success.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "320"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "43678d59d0d35b371dd4e506cf91b7b4e639e68f46ff116d16e23b71841e15cf"
            }
          ],
          "name": "broken/invented-robot.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "315"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "a2c4f4c08cfe629287ff5f3f4539ee5a194e5c9d1d43b4e43fdedef5e508166d"
            }
          ],
          "name": "broken/no-cancel.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "176"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "a1c7a32e9d34a7625c4c15d672ae05cffe7b69e0bc1f4de354539c7637e10af6"
            }
          ],
          "name": "broken/no-state.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "302"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "e50e2a6e423b75b3b85c0ab87ad1c85cb104280f791c01341dada29cc0a0dbd4"
            }
          ],
          "name": "broken/throwing-wait.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "342"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "d6d0659cef1e0ee19237c83f54c4f603481ef440a3b6c4979f1265af97a13119"
            }
          ],
          "name": "broken/unanswered-as-refused.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "637"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "967018d33b8f7cb36bf8846143642468f85f3d767c490a5a44fa3e4c098e6feb"
            }
          ],
          "name": "broken/undercounted-reads.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "438"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "bb6cdd7bbe1e6cfbe95b12c752eb4c4644a80faf60771e1ca14f9ea8688d2257"
            }
          ],
          "name": "broken/wrong-robot.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "317"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "9656c5cd6d363f5435c474a4bd34bf33b35f08ff23c02a41c2c00caecb2f858a"
            }
          ],
          "name": "broken/wrong-target.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "344"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "11ae58d569be2dede57c8ba2f8737bd0a559a84eb0495f79a0740dfe86212c95"
            }
          ],
          "name": "harness.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "4721"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "fdbd264fcc679b0ee2e6f695685eb8d700e1b3cfcdc73a9cdece73b2512c8a3a"
            }
          ],
          "name": "plan.json",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "248"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "5a661036e8357104e7be9447eb580f2e0bddd533f6be1ac38d7cd6129f7d10a2"
            }
          ],
          "name": "probe.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "2328"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "e3a619624fd58fb03af9c912a54617ccbf14655999cd72e3ae0c5ed0bd0c4db7"
            }
          ],
          "name": "trial/haiku.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "3739"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "4e6e9c60e2c450eeae165f63b99e0b50763e28e50957343ddca8fdbdd0f6a2c1"
            }
          ],
          "name": "trial/opus.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "8131"
            }
          ],
          "type": "file"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "46de6b0df8ce9cf4e1f3db6e22ae012f283ccc9fbc84719e117539ea2483462c"
            }
          ],
          "name": "trial/sonnet.js",
          "properties": [
            {
              "name": "plimsoll:bytes",
              "value": "4007"
            }
          ],
          "type": "file"
        }
      ],
      "description": "A program an AI wrote against a simulated fleet vendor's API, run once through plimsoll under a per-run grant and judged by the platform's rules; authorship is supplied context, not verified evidence.",
      "externalReferences": [
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "c09a71479714c9b21d337632159105b724afcc9f38eab2852a81957b549dcaca"
            }
          ],
          "type": "attestation",
          "url": "https://plimsollmark.github.io/plimsoll/examples/adapter/bundle.jsonl"
        },
        {
          "hashes": [
            {
              "alg": "SHA-256",
              "content": "091eb9bed95efbf2b66d063ac7eeebf003114d504508f4226101bffac78d0429"
            }
          ],
          "type": "attestation",
          "url": "https://plimsollmark.github.io/plimsoll/examples/adapter/qualification.jsonl"
        },
        {
          "type": "documentation",
          "url": "https://plimsollmark.github.io/plimsoll/examples/sbom/index.html"
        },
        {
          "type": "vcs",
          "url": "https://github.com/plimsollmark/plimsoll"
        }
      ],
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "95675b6bf846dbb4dfef427f6ff50cfdb8d90ed11b10bbd5a199b6dba8b57267"
        }
      ],
      "name": "adapter-v2",
      "properties": [
        {
          "name": "plimsoll:author_kind",
          "value": "agent"
        },
        {
          "name": "plimsoll:author_kind_basis",
          "value": "supplied example context, unverified"
        },
        {
          "name": "plimsoll:request_sha256",
          "value": "8cd7e9c60014ab20fb397cd9711d66b14cc3e7d0f0c3df0c80e00eb732938474"
        },
        {
          "name": "plimsoll:result_sha256",
          "value": "f25c53ca4ae0ec3952550052583870a414d6cdea29648a8096a771c325e379ed"
        },
        {
          "name": "plimsoll:record_sha256",
          "value": "4c69b5a38f290b24b82c4a2cb3c010e71a88f2e0c474e55d83cdd7ea54ff8b6d"
        },
        {
          "name": "plimsoll:trace_id",
          "value": "adapter-run-10"
        }
      ],
      "type": "application",
      "version": "95675b6bf846"
    },
    "lifecycles": [
      {
        "phase": "operations"
      }
    ],
    "timestamp": "2026-10-23T19:39:17.244Z",
    "tools": {
      "components": [
        {
          "externalReferences": [
            {
              "type": "vcs",
              "url": "https://github.com/plimsollmark/plimsoll"
            }
          ],
          "name": "plimsoll-sbom",
          "type": "application",
          "version": "0.2.0"
        }
      ]
    }
  },
  "properties": [
    {
      "name": "plimsoll:bundle_sha256",
      "value": "c09a71479714c9b21d337632159105b724afcc9f38eab2852a81957b549dcaca"
    },
    {
      "name": "plimsoll:bundle_line",
      "value": "10"
    },
    {
      "name": "plimsoll:emitter",
      "value": "examples/sbom"
    },
    {
      "name": "plimsoll:qualification_sha256",
      "value": "091eb9bed95efbf2b66d063ac7eeebf003114d504508f4226101bffac78d0429"
    }
  ],
  "serialNumber": "urn:uuid:54ec90d1-33b5-4ef1-9dee-b52771f5fa03",
  "specVersion": "1.6",
  "version": 1
}
