{
  "schemaVersion": 1,
  "study": "Synthetic ZIP fixity and member-identity controls",
  "scope": "Original authored XML fixtures; no EverQuest client files or behavior were examined.",
  "method": {
    "inMemory": true,
    "clientFilesRead": false,
    "filesExtracted": false,
    "archiveContentExecuted": false,
    "networkConnections": false,
    "fixedMetadata": true,
    "reproducibility": "Repeated runs with the same ZIP/DEFLATE implementation; member digests do not depend on compression."
  },
  "expectedMemberSHA256": {
    "baseline": {
      "interface/theme.xml": "449fab4493a0c9695163404ca30c00981802ad16271a3f937768fb907d770311",
      "interface/window.xml": "6c870fa789aa9b3bc276ddaffbc1a66115b3177d0e23f5d105a92730dc0059f6"
    },
    "changedPayload": {
      "interface/window.xml": "de2de728f8fc74ae7a1a545f926757bc9255e9be8e8a812cd15dc96021b91876"
    }
  },
  "fixtures": {
    "baseline": {
      "bytes": 387,
      "sha256": "79dd7d4b4d894fc56df5345a0118258c49f5afacc9214abc6ace51fe75b86343",
      "members": {
        "interface/theme.xml": {
          "bytes": 68,
          "sha256": "449fab4493a0c9695163404ca30c00981802ad16271a3f937768fb907d770311",
          "zipCompressionMethod": 0,
          "zipTimestamp": [
            2025,
            9,
            11,
            12,
            0,
            0
          ]
        },
        "interface/window.xml": {
          "bytes": 67,
          "sha256": "6c870fa789aa9b3bc276ddaffbc1a66115b3177d0e23f5d105a92730dc0059f6",
          "zipCompressionMethod": 0,
          "zipTimestamp": [
            2025,
            9,
            11,
            12,
            0,
            0
          ]
        }
      }
    },
    "repackaged": {
      "bytes": 359,
      "sha256": "e41629deacb11831965c26b4c24641b7d04f5514341fb969bab20a77bb1fcb94",
      "members": {
        "interface/theme.xml": {
          "bytes": 68,
          "sha256": "449fab4493a0c9695163404ca30c00981802ad16271a3f937768fb907d770311",
          "zipCompressionMethod": 8,
          "zipTimestamp": [
            2026,
            10,
            15,
            14,
            30,
            0
          ]
        },
        "interface/window.xml": {
          "bytes": 67,
          "sha256": "6c870fa789aa9b3bc276ddaffbc1a66115b3177d0e23f5d105a92730dc0059f6",
          "zipCompressionMethod": 8,
          "zipTimestamp": [
            2026,
            10,
            15,
            14,
            30,
            0
          ]
        }
      }
    },
    "changedPayload": {
      "bytes": 387,
      "sha256": "3f74b0db1e136aca15f754f7b9fd1d49abd7042be9d13ecc8fce4170b7da8026",
      "members": {
        "interface/theme.xml": {
          "bytes": 68,
          "sha256": "449fab4493a0c9695163404ca30c00981802ad16271a3f937768fb907d770311",
          "zipCompressionMethod": 0,
          "zipTimestamp": [
            2025,
            9,
            11,
            12,
            0,
            0
          ]
        },
        "interface/window.xml": {
          "bytes": 67,
          "sha256": "de2de728f8fc74ae7a1a545f926757bc9255e9be8e8a812cd15dc96021b91876",
          "zipCompressionMethod": 0,
          "zipTimestamp": [
            2025,
            9,
            11,
            12,
            0,
            0
          ]
        }
      }
    },
    "missingMember": {
      "bytes": 205,
      "sha256": "d8cb2e9e0e3425a5693bc4be5deec221d5724bbc2d92b0ba9e7b703cdd95524d",
      "members": {
        "interface/window.xml": {
          "bytes": 67,
          "sha256": "6c870fa789aa9b3bc276ddaffbc1a66115b3177d0e23f5d105a92730dc0059f6",
          "zipCompressionMethod": 0,
          "zipTimestamp": [
            2025,
            9,
            11,
            12,
            0,
            0
          ]
        }
      }
    }
  },
  "controls": [
    {
      "id": "repackaged",
      "expected": {
        "containerDigestChanged": true,
        "memberNamesEqual": true,
        "memberBytesIdentical": true,
        "changedMembers": [],
        "missingMembers": [],
        "addedMembers": []
      },
      "observed": {
        "containerDigestChanged": true,
        "memberNamesEqual": true,
        "memberBytesIdentical": true,
        "changedMembers": [],
        "missingMembers": [],
        "addedMembers": []
      },
      "passed": true
    },
    {
      "id": "changedPayload",
      "expected": {
        "containerDigestChanged": true,
        "memberNamesEqual": true,
        "memberBytesIdentical": false,
        "changedMembers": [
          "interface/window.xml"
        ],
        "missingMembers": [],
        "addedMembers": []
      },
      "observed": {
        "containerDigestChanged": true,
        "memberNamesEqual": true,
        "memberBytesIdentical": false,
        "changedMembers": [
          "interface/window.xml"
        ],
        "missingMembers": [],
        "addedMembers": []
      },
      "passed": true
    },
    {
      "id": "missingMember",
      "expected": {
        "containerDigestChanged": true,
        "memberNamesEqual": false,
        "memberBytesIdentical": false,
        "changedMembers": [],
        "missingMembers": [
          "interface/theme.xml"
        ],
        "addedMembers": []
      },
      "observed": {
        "containerDigestChanged": true,
        "memberNamesEqual": false,
        "memberBytesIdentical": false,
        "changedMembers": [],
        "missingMembers": [
          "interface/theme.xml"
        ],
        "addedMembers": []
      },
      "passed": true
    }
  ],
  "allControlsPassed": true
}
