Fix various errata found from testing.
diff --git a/cper.generated.json b/cper.generated.json
index af3bcc8..10985e4 100644
--- a/cper.generated.json
+++ b/cper.generated.json
@@ -6,22 +6,24 @@
},
"sectionCount":1,
"severity":{
- "code":2,
- "name":"Corrected"
+ "code":1,
+ "name":"Fatal"
},
"validationBits":{
"platformIDValid":true,
- "timestampValid":false,
+ "timestampValid":true,
"partitionIDValid":false
},
- "recordLength":716,
+ "recordLength":232,
+ "timestamp":"0000-00-00T209:185:117.000",
+ "timestampIsPrecise":true,
"platformID":"00000000-0000-0000-0000000000000000",
"creatorID":"00000000-0000-0000-0000000000000000",
"notificationType":{
"guid":"00000000-0000-0000-0000000000000000",
"type":"Unknown"
},
- "recordID":1783804367,
+ "recordID":835004846,
"flags":{
"value":4,
"name":"HW_ERROR_FLAGS_SIMULATED"
@@ -31,192 +33,57 @@
"sectionDescriptors":[
{
"sectionOffset":200,
- "sectionLength":516,
+ "sectionLength":32,
"revision":{
- "major":41,
- "minor":73
+ "major":50,
+ "minor":104
},
"validationBits":{
- "fruIDValid":false,
- "fruStringValid":true
+ "fruIDValid":true,
+ "fruStringValid":false
},
"flags":{
- "primary":false,
- "containmentWarning":false,
- "reset":false,
- "errorThresholdExceeded":false,
+ "primary":true,
+ "containmentWarning":true,
+ "reset":true,
+ "errorThresholdExceeded":true,
"resourceNotAccessible":false,
"latentError":true,
- "propagated":true,
- "overflow":false
+ "propagated":false,
+ "overflow":true
},
"sectionType":{
- "data":"dc3ea0b0-a144-4797-b95b53fa242b6e1d",
- "type":"IA32\/X64"
+ "data":"5b51fef7-c79d-4434-8f1baa62de3e2c64",
+ "type":"DMAr Generic"
},
- "fruText":"\rgæ\rw Ü\u0010\u000f$ÿ¨óþ´Kî\tÍvtY]'",
+ "fruID":"d5cdf3e9-99bf-2818-cbea477a91ffb229",
"severity":{
- "code":3,
- "name":"Informational"
+ "code":1,
+ "name":"Fatal"
}
}
],
"sections":[
{
- "validationBits":{
- "localAPICIDValid":true,
- "cpuIDInfoValid":false,
- "processorErrorInfoNum":3,
- "processorContextInfoNum":1
+ "requesterID":51512,
+ "segmentNumber":26371,
+ "faultReason":{
+ "value":0,
+ "name":"Unknown (Reserved)"
},
- "localAPICID":11973824614848415809,
- "cpuidInfo":{
- "eax":13368524000736729030,
- "ebx":16886328965158955209,
- "ecx":3305063700665067796,
- "edx":1435640360842869561
+ "accessType":{
+ "value":1,
+ "name":"DMA Read"
},
- "processorErrorInfo":[
- {
- "type":"a55701f5-e3ef-43de-ac72249b573fad2c",
- "validationBits":{
- "checkInfoValid":false,
- "targetAddressIDValid":true,
- "requestorIDValid":false,
- "responderIDValid":false,
- "instructionPointerValid":false
- },
- "checkInfo":{
- "validationBits":{
- "transactionTypeValid":false,
- "operationValid":true,
- "levelValid":false,
- "processorContextCorruptValid":true,
- "uncorrectedValid":false,
- "preciseIPValid":false,
- "restartableIPValid":false,
- "overflowValid":true
- },
- "transactionType":{
- "value":1,
- "name":"Data Access"
- },
- "operation":{
- "value":6,
- "name":"Eviction"
- },
- "level":4,
- "processorContextCorrupt":false,
- "uncorrected":true,
- "preciseIP":true,
- "restartableIP":false,
- "overflow":true
- },
- "targetAddressID":0,
- "requestorID":0,
- "responderID":0,
- "instructionPointer":0
- },
- {
- "type":"1cf3f8b3-c5b1-49a2-aa595eef92ffa63c",
- "validationBits":{
- "checkInfoValid":false,
- "targetAddressIDValid":false,
- "requestorIDValid":false,
- "responderIDValid":false,
- "instructionPointerValid":true
- },
- "checkInfo":{
- "validationBits":{
- "transactionTypeValid":true,
- "operationValid":true,
- "levelValid":false,
- "processorContextCorruptValid":true,
- "uncorrectedValid":false,
- "preciseIPValid":false,
- "restartableIPValid":true,
- "overflowValid":true,
- "participationTypeValid":true,
- "timedOutValid":false,
- "addressSpaceValid":false
- },
- "transactionType":{
- "value":3,
- "name":"Unknown (Reserved)"
- },
- "operation":{
- "value":3,
- "name":"Data Write"
- },
- "level":6,
- "processorContextCorrupt":true,
- "uncorrected":false,
- "preciseIP":false,
- "restartableIP":true,
- "overflow":false,
- "timedOut":false,
- "participationType":{
- "value":3,
- "name":"Generic"
- },
- "addressSpace":{
- "value":2,
- "name":"I\/O"
- }
- },
- "targetAddressID":6868879,
- "requestorID":0,
- "responderID":0,
- "instructionPointer":0
- },
- {
- "type":"48ab7f57-dc34-4f6c-a7d3b0b5b0a74314",
- "validationBits":{
- "checkInfoValid":true,
- "targetAddressIDValid":true,
- "requestorIDValid":true,
- "responderIDValid":true,
- "instructionPointerValid":true
- },
- "checkInfo":{
- "validationBits":{
- "errorTypeValid":false,
- "processorContextCorruptValid":false,
- "uncorrectedValid":false,
- "preciseIPValid":false,
- "restartableIPValid":false,
- "overflowValid":false
- },
- "errorType":{
- "value":0,
- "name":"No Error"
- },
- "processorContextCorrupt":false,
- "uncorrected":false,
- "preciseIP":false,
- "restartableIP":false,
- "overflow":false
- },
- "targetAddressID":0,
- "requestorID":0,
- "responderID":0,
- "instructionPointer":3883791728653631488
- }
- ],
- "processorContextInfo":[
- {
- "registerContextType":{
- "value":59519,
- "name":"Unknown (Reserved)"
- },
- "registerArraySize":21123,
- "msrAddress":346845773,
- "mmRegisterAddress":1449923871159163716,
- "registerArray":{
- "data":"rOuS7It1ghdUVMSLhfwTBOWWVjIJAkZNHRN5Mj2YRumD2dUOTlcmoqvqLTDmQDTL14v94I1ELatXpt2VPiN+wfxU0Eqr9uxX4BmHxlq8kjFHjxHU0z5\/K+VcwCOAPuV8krXHPquzlYvNHFEn2ONYH3Np9Eanc3GM0DGwUHCVzAJKk0D1R9WAFPLRO8q1k+oo\/N5uo1HgMCER4HGBdT6Ev9HEtBiaNCyMBWdWuvpA4vYeUZpwAAAAAEEAAAAAAAAABAAAAAEAAACNe3FdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBOaBdvVQAAAAAAAAAAAABBAAAAAAAAABAAAAAEAAAACFBoF29VAAAYT2gXb1UAAKBOaBdvVQAANH5xXSd\/AABBFnJdJ38AAK0Wcl0nfwAAkQIAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBWaBdvVQAAAAAAAAAAAADgVWgXb1UAAPhQaBdvVQAACFBoF29VAABQv2gXb1UAAAAAAAAAAAAA8FpoF29VAAAAAAAAAAAAAPhQaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAVWgXb1UAAAAAAAAAAAAAMFFoF29VAADwTmgXb1UAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQWmgXb1UAAAAAAAAAAAAAQFZoF29VAAAYT2gXb1UAAPBOaBdvVQAAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwUWgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAABAAAAJBTaBdvVQAAuFNoF29VAACwUWgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4FRoF29VAAAAAAAAAAAAAKBUaBdvVQAAaFNoF29VAACQU2gXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAVWgXb1UAAAAAAAAAAAAAAFVoF29VAAC4U2gXb1UAAKBSaBdvVQAAgFRoF29VAAAAAAAAAAAAAEBUaBdvVQAAoFJoF29VAAAAAAAAAAAAAKBVaBdvVQAAAAAAAAAAAABgVWgXb1UAAAAAAAAAAAAAaFNoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACEAAAAAAAAAbG9jYWxBUElDSURWYWxpZAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAY3B1SURJbmZvVmFsaWQAAAAAAAAAAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAACEAAAAAAAAAcHJvY2Vzc29yRXJyb3JJbmZvTnVtAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACEAAAAAAAAAcHJvY2Vzc29yQ29udGV4dEluZm9OdW0AIQAAAAAAAAB2YWxpZGF0aW9uQml0cwAAAAAAAAAAAABBAAAAAAAAAAMAAAABAAAAu4RxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAEFI3hIMkiumIQAAAAAAAABsb2NhbEFQSUNJRAAAAAAAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAVmgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAABAAAAIhXaBdvVQAAsFdoF29VAADAVmgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBaaBdvVQAAAAAAAAAAAAAQWmgXb1UAALBXaBdvVQAAAFhoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQWWgXb1UAAAAAAAAAAAAAUFloF29VAAAAWGgXb1UAAAAAAAAAAAAAsFpoF29VAAAAAAAAAAAAAHBaaBdvVQAAAAAAAAAAAADoVmgXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwWWgXb1UAAAAAAAAAAAAAsFloF29VAADoVmgXb1UAAIhXaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADGVzLLv4mGuSEAAAAAAAAAZWF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADJaLDouUpY6iEAAAAAAAAAZWJ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAU6S2+7PHdLSEAAAAAAAAAZWN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA5u0BFTWvsEyEAAAAAAAAAZWR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABjcHVpZEluZm8AAAAAAAAAAAAAAAAAAABBAAAAAAAAAAUAAAABAAAAA51xXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwW2gXb1UAAAAAAAAAAAAAMQAAAAAAAABgW2gXb1UAAAMAAAAAAAAAIAAAAAAAAAD9nnFdJ38AAAAAAAAAAAAAEQEAAAAAAABwXGgXb1UAAEB6aBdvVQAAoKZoF29VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwXGgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAABwAAAGhdaBdvVQAAGF1oF29VAADwXGgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAAYHloF29VAAAAAAAAAAAAACB5aBdvVQAAgF5oF29VAAAgX2gXb1UAACB6aBdvVQAAAAAAAAAAAADgeWgXb1UAAAAAAAAAAAAAgF5oF29VAACgeGgXb1UAAAAAAAAAAAAAEGVoF29VAAAgX2gXb1UAAFheaBdvVQAA4F9oF29VAAAAAAAAAAAAAIBfaBdvVQAAWF5oF29VAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8GRoF29VAAAAAAAAAAAAAABgaBdvVQAAQF1oF29VAABoXWgXb1UAAMB5aBdvVQAAAAAAAAAAAACAeWgXb1UAABhdaBdvVQAA8FxoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeWgXb1UAAAAAAAAAAAAAwHhoF29VAADwXGgXb1UAAEBdaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAAAGAAAAAQAAAIuYcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAABhNTU3MDFmNS1lM2VmLTQzZGUtYWM3MjI0OWI1NzNmYWQyYwAAAAAAIQAAAAAAAAB0eXBlAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAYGgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAABQAAAEhhaBdvVQAAmGFoF29VAACAYGgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQY2gXb1UAAAAAAAAAAAAAEGNoF29VAADAYWgXb1UAAAAAAAAAAAAAcGRoF29VAAAAAAAAAAAAADBkaBdvVQAAmGFoF29VAAAQYmgXb1UAANBkaBdvVQAAAAAAAAAAAACQZGgXb1UAAAAAAAAAAAAAcGFoF29VAACwY2gXb1UAAAAAAAAAAAAAcGNoF29VAAAQYmgXb1UAAEhhaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBkaBdvVQAAAAAAAAAAAADQY2gXb1UAAHBhaBdvVQAAwGFoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAY2hlY2tJbmZvVmFsaWQAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACEAAAAAAAAAdGFyZ2V0QWRkcmVzc0lEVmFsaWQAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAcmVxdWVzdG9ySURWYWxpZAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAcmVzcG9uZGVySURWYWxpZAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAaW5zdHJ1Y3Rpb25Qb2ludGVyVmFsaWQAIQAAAAAAAAB2YWxpZGF0aW9uQml0cwAAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQZWgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAACQAAAPhmaBdvVQAA4GVoF29VAACQZWgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAeGgXb1UAAAAAAAAAAAAAQHhoF29VAAAAAAAAAAAAAHBnaBdvVQAAQHZoF29VAAAAAAAAAAAAAGByaBdvVQAAwGdoF29VAACAZmgXb1UAAAB3aBdvVQAAAAAAAAAAAADAdmgXb1UAAFhmaBdvVQAAwGdoF29VAABgd2gXb1UAAAAAAAAAAAAAIHdoF29VAADQZmgXb1UAADBmaBdvVQAAQHJoF29VAAAAAAAAAAAAAGBuaBdvVQAACGZoF29VAAD4ZmgXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAd2gXb1UAAAAAAAAAAAAAgHdoF29VAABwZ2gXb1UAAFhmaBdvVQAAQG5oF29VAAAAAAAAAAAAACBoaBdvVQAAgGZoF29VAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHhoF29VAAAAAAAAAAAAAOB3aBdvVQAA4GVoF29VAADQZmgXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgdmgXb1UAAAAAAAAAAAAAYHZoF29VAAAwZmgXb1UAAAhmaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAEAAAAAQAAAI17cV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGhoF29VAAAAAAAAAAAAAEEAAAAAAAAAEAAAAAgAAABYamgXb1UAAKhqaBdvVQAAoGhoF29VAAA0fnFdJ38AAEEWcl0nfwAArRZyXSd\/AACRAgAAAAAAAGBtaBdvVQAAAAAAAAAAAAAgbWgXb1UAAIBqaBdvVQAAkGloF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtaBdvVQAAAAAAAAAAAADAbGgXb1UAAKBoaBdvVQAA4GloF29VAAAwbGgXb1UAAAAAAAAAAAAA8GtoF29VAADgaWgXb1UAAPhqaBdvVQAAkGxoF29VAAAAAAAAAAAAAFBsaBdvVQAAkGloF29VAAC4aWgXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcGtoF29VAAAAAAAAAAAAADBraBdvVQAA+GpoF29VAAAAAAAAAAAAAMBtaBdvVQAAAAAAAAAAAACAbWgXb1UAAKhqaBdvVQAAoGhoF29VAAAgbmgXb1UAAAAAAAAAAAAA4G1oF29VAAAAAAAAAAAAAIBqaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANBraBdvVQAAAAAAAAAAAACQa2gXb1UAALhpaBdvVQAAWGpoF29VAAAAAAAAAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAHRyYW5zYWN0aW9uVHlwZVZhbGlkAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAG9wZXJhdGlvblZhbGlkAAAAAAAAAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAGxldmVsVmFsaWQAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAxAAAAAAAAAHByb2Nlc3NvckNvbnRleHRDb3JydXB0VmFsaWQAAAAAAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAB1bmNvcnJlY3RlZFZhbGlkAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABwcmVjaXNlSVBWYWxpZAAAAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAByZXN0YXJ0YWJsZUlQVmFsaWQAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABvdmVyZmxvd1ZhbGlkAAAAAAAAAAAAAAAhAAAAAAAAAHZhbGlkYXRpb25CaXRzAAAAAAAAAAAAAEEAAAAAAAAABAAAAAEAAACNe3FdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBuaBdvVQAAAAAAAAAAAABBAAAAAAAAABAAAAACAAAASHBoF29VAAAIb2gXb1UAAOBuaBdvVQAANH5xXSd\/AABBFnJdJ38AAK0Wcl0nfwAAkQIAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHJoF29VAAAAAAAAAAAAANBxaBdvVQAAAAAAAAAAAABIcGgXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwcWgXb1UAAAAAAAAAAAAAcHFoF29VAAAIb2gXb1UAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAMAAAABAAAAu4RxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAIQAAAAAAAAB2YWx1ZQAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAAAAAAYAAAABAAAAi5hxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAERhdGEgQWNjZXNzAAAAAAAAAAAAAAAAACEAAAAAAAAAbmFtZQAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAB0cmFuc2FjdGlvblR5cGUAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgcmgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAAAgAAAEh0aBdvVQAACHNoF29VAADgcmgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB2aBdvVQAAAAAAAAAAAADQdWgXb1UAAAAAAAAAAAAASHRoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsHVoF29VAAAAAAAAAAAAAHB1aBdvVQAACHNoF29VAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\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\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwIJoF29VAAAAAAAAAAAAANB9aBdvVQAAEHtoF29VAAA4e2gXb1UAACCmaBdvVQAAAAAAAAAAAADgpWgXb1UAAOh6aBdvVQAAwHpoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgpWgXb1UAAAAAAAAAAAAA8J9oF29VAADAemgXb1UAABB7aBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAAAGAAAAAQAAAIuYcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAxY2YzZjhiMy1jNWIxLTQ5YTItYWE1OTVlZWY5MmZmYTYzYwAAAAAAIQAAAAAAAAB0eXBlAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQfmgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAABQAAABh\/aBdvVQAAaH9oF29VAABQfmgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggWgXb1UAAAAAAAAAAAAA4IBoF29VAACQf2gXb1UAAAAAAAAAAAAAQIJoF29VAAAAAAAAAAAAAACCaBdvVQAAaH9oF29VAADgf2gXb1UAAKCCaBdvVQAAAAAAAAAAAABggmgXb1UAAAAAAAAAAAAAQH9oF29VAACAgWgXb1UAAAAAAAAAAAAAQIFoF29VAADgf2gXb1UAABh\/aBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCBaBdvVQAAAAAAAAAAAACggWgXb1UAAEB\/aBdvVQAAkH9oF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAY2hlY2tJbmZvVmFsaWQAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAdGFyZ2V0QWRkcmVzc0lEVmFsaWQAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAcmVxdWVzdG9ySURWYWxpZAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAcmVzcG9uZGVySURWYWxpZAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACEAAAAAAAAAaW5zdHJ1Y3Rpb25Qb2ludGVyVmFsaWQAIQAAAAAAAAB2YWxpZGF0aW9uQml0cwAAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgg2gXb1UAAAAAAAAAAAAAQQAAAAAAAAAgAAAADAAAAJihaBdvVQAAiKJoF29VAAAwoGgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAAAAAAAAAAAAAQAGgXb1UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwl2gXb1UAAAAAAAAAAAAAMJdoF29VAABohWgXb1UAAECFaBdvVQAAMJVoF29VAAAAAAAAAAAAAFCRaBdvVQAAkIVoF29VAABQhGgXb1UAAPCVaBdvVQAAAAAAAAAAAACwlWgXb1UAACiEaBdvVQAAkIVoF29VAABQlmgXb1UAAAAAAAAAAAAAEJZoF29VAACghGgXb1UAAACEaBdvVQAAMJFoF29VAAAAAAAAAAAAAFCNaBdvVQAA2INoF29VAADIhGgXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwlmgXb1UAAAAAAAAAAAAAcJZoF29VAABAhWgXb1UAACiEaBdvVQAAMI1oF29VAAAAAAAAAAAAAPCFaBdvVQAAUIRoF29VAAAAAAAAAAAAANCbaBdvVQAAAAAAAAAAAADwl2gXb1UAAAAAAAAAAAAAaIVoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJdoF29VAAAAAAAAAAAAANCWaBdvVQAAsINoF29VAACghGgXb1UAANCXaBdvVQAAAAAAAAAAAACQl2gXb1UAAPCEaBdvVQAAsINoF29VAACQlWgXb1UAAAAAAAAAAAAAUJVoF29VAAAAhGgXb1UAANiDaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAEAAAAAQAAAI17cV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMIZoF29VAAAAAAAAAAAAAEEAAAAAAAAAEAAAAAsAAAAoiGgXb1UAAJiGaBdvVQAAcIZoF29VAAA0fnFdJ38AAEEWcl0nfwAArRZyXSd\/AACRAgAAAAAAADCLaBdvVQAAAAAAAAAAAADwimgXb1UAAFCIaBdvVQAAYIdoF29VAAAQjWgXb1UAAAAAAAAAAAAA0IxoF29VAAAAAAAAAAAAADiHaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCMaBdvVQAAAAAAAAAAAAAQjGgXb1UAADiHaBdvVQAAeIhoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsIxoF29VAAAAAAAAAAAAAHCMaBdvVQAAmIZoF29VAADohmgXb1UAANCKaBdvVQAAAAAAAAAAAACQimgXb1UAAHCGaBdvVQAAsIdoF29VAAAAimgXb1UAAAAAAAAAAAAAwIloF29VAACwh2gXb1UAAMiIaBdvVQAAYIpoF29VAAAAAAAAAAAAACCKaBdvVQAAYIdoF29VAACIh2gXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIloF29VAAAAAAAAAAAAAACJaBdvVQAAyIhoF29VAAAAAAAAAAAAAJCLaBdvVQAAAAAAAAAAAABQi2gXb1UAAHiIaBdvVQAAcIZoF29VAADwi2gXb1UAAAAAAAAAAAAAsItoF29VAADohmgXb1UAAFCIaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCJaBdvVQAAAAAAAAAAAABgiWgXb1UAAIiHaBdvVQAAKIhoF29VAAAAAAAAAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAHRyYW5zYWN0aW9uVHlwZVZhbGlkAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAG9wZXJhdGlvblZhbGlkAAAAAAAAAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAGxldmVsVmFsaWQAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAQAAAAEAAAC1gnFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAxAAAAAAAAAHByb2Nlc3NvckNvbnRleHRDb3JydXB0VmFsaWQAAAAAAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAB1bmNvcnJlY3RlZFZhbGlkAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABwcmVjaXNlSVBWYWxpZAAAAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAByZXN0YXJ0YWJsZUlQVmFsaWQAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABvdmVyZmxvd1ZhbGlkAAAAAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABwYXJ0aWNpcGF0aW9uVHlwZVZhbGlkAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAB0aW1lZE91dFZhbGlkAAAAAAAAAAAAAABBAAAAAAAAAAEAAAABAAAAtYJxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABhZGRyZXNzU3BhY2VWYWxpZAAAAAAAAAAhAAAAAAAAAHZhbGlkYXRpb25CaXRzAAAAAAAAAAAAAEEAAAAAAAAABAAAAAEAAACNe3FdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCNaBdvVQAAAAAAAAAAAABBAAAAAAAAABAAAAACAAAAOI9oF29VAAD4jWgXb1UAANCNaBdvVQAANH5xXSd\/AABBFnJdJ38AAK0Wcl0nfwAAkQIAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJFoF29VAAAAAAAAAAAAAMCQaBdvVQAAAAAAAAAAAAA4j2gXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgkGgXb1UAAAAAAAAAAAAAYJBoF29VAAD4jWgXb1UAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAMAAAABAAAAu4RxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAAAAAAAAIQAAAAAAAAB2YWx1ZQAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAAAAAAYAAAABAAAAi5hxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAFVua25vd24gKFJlc2VydmVkKQAAAAAAACEAAAAAAAAAbmFtZQAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAAB0cmFuc2FjdGlvblR5cGUAAAAAAAAAAABBAAAAAAAAAAQAAAABAAAAjXtxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkWgXb1UAAAAAAAAAAAAAQQAAAAAAAAAQAAAAAgAAADiTaBdvVQAA+JFoF29VAADQkWgXb1UAADR+cV0nfwAAQRZyXSd\/AACtFnJdJ38AAJECAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCVaBdvVQAAAAAAAAAAAADAlGgXb1UAAAAAAAAAAAAAOJNoF29VAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoJRoF29VAAAAAAAAAAAAAGCUaBdvVQAA+JFoF29VAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAACEAAAAAAAAAdmFsdWUAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAAAAGAAAAAQAAAIuYcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAABEYXRhIFdyaXRlAAAAAAAAAAAAAAAAAAAhAAAAAAAAAG5hbWUAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAb3BlcmF0aW9uAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAADAAAAAQAAALuEcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGAAAAAAAAACEAAAAAAAAAbGV2ZWwAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACEAAAAAAAAAcHJvY2Vzc29yQ29udGV4dENvcnJ1cHQAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAdW5jb3JyZWN0ZWQAAAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAcHJlY2lzZUlQAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACEAAAAAAAAAcmVzdGFydGFibGVJUAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAb3ZlcmZsb3cAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAABAAAAAQAAALWCcV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAdGltZWRPdXQAAAAAAAAAAAAAAAAAAAAAQQAAAAAAAAAEAAAAAQAAAI17cV0nfwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMJhoF29VAAAAAAAAAAAAAEEAAAAAAAAAEAAAAAIAAADYmWgXb1UAAJiYaBdvVQAAcJhoF29VAAA0fnFdJ38AAEEWcl0nfwAArRZyXSd\/AACRAgAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwm2gXb1UAAAAAAAAAAAAAYJtoF29VAAAAAAAAAAAAANiZaBdvVQAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECbaBdvVQAAAAAAAAAAAAAAm2gXb1UAAJiYaBdvVQAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAwAAAAEAAAC7hHFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAAhAAAAAAAAAHZhbHVlAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAAAABgAAAAEAAACLmHFdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAR2VuZXJpYwAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABuYW1lAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAHBhcnRpY2lwYXRpb25UeXBlAAAAAAAAAEEAAAAAAAAABAAAAAEAAACNe3FdJ38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCcaBdvVQAAAAAAAAAAAABBAAAAAAAAABAAAAACAAAA2J1oF29VAACYnGgXb1UAAHCcaBdvVQAANH5xXSd\/AABBFnJdJ38AAK0Wcl0nfwAAkQIAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJ9oF29VAAAAAAAAAAAAAGCfaBdvVQAAAAAAAAAAAADYnWgXb1UAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAn2gXb1UAAAAAAAAAAAAAAJ9oF29VAACYnGgXb1UAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/\/\/\/\/\/\/\/\/\/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP\/\/\/\/\/\/\/\/\/\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAMAAAABAAAAu4RxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAAIQAAAAAAAAB2YWx1ZQAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAAAAAAYAAAABAAAAi5hxXSd\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEkvTwAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAbmFtZQAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAABhZGRyZXNzU3BhY2UAAAAAAAAA"
- }
- }
- ]
+ "addressType":{
+ "value":1,
+ "name":"Translation Request"
+ },
+ "architectureType":{
+ "value":1,
+ "name":"IOMMU"
+ },
+ "deviceAddress":3386623274804070461
}
]
}
\ No newline at end of file
diff --git a/sections/cper-section-arm.c b/sections/cper-section-arm.c
index 5a91235..c52da3e 100644
--- a/sections/cper-section-arm.c
+++ b/sections/cper-section-arm.c
@@ -214,7 +214,7 @@
json_object* bus_error_ir = json_object_new_object();
//Validation bits.
- json_object* validation = bitfield_to_ir(bus_error->ValidationBits, 7, ARM_BUS_ERROR_VALID_BITFIELD_NAMES);
+ json_object* validation = bitfield_to_ir(bus_error->ValidationBits, 12, ARM_BUS_ERROR_VALID_BITFIELD_NAMES);
json_object_object_add(bus_error_ir, "validationBits", validation);
//Transaction type.
diff --git a/sections/cper-section-cxl-protocol.c b/sections/cper-section-cxl-protocol.c
index c8c2c09..4f1d932 100644
--- a/sections/cper-section-cxl-protocol.c
+++ b/sections/cper-section-cxl-protocol.c
@@ -76,7 +76,7 @@
//(36-byte, padded to 60 bytes) or PCIe 2.0 Capability Structure (60-byte). There does not seem
//to be a way to differentiate these, so this is left as a b64 dump.
char* encoded = b64_encode(cxl_protocol_error->CapabilityStructure.PcieCap, 60);
- json_object_object_add(section_ir, "capabilityStructure", json_object_new_uint64(cxl_protocol_error->DeviceSerial));
+ json_object_object_add(section_ir, "capabilityStructure", json_object_new_string(encoded));
free(encoded);
}
diff --git a/specification/document/cper-json-specification.tex b/specification/document/cper-json-specification.tex
index eb71d45..59ac7f6 100644
--- a/specification/document/cper-json-specification.tex
+++ b/specification/document/cper-json-specification.tex
@@ -1743,7 +1743,7 @@
\hline
faultReason.value & uint64 & The raw value of the reason for the fault.\\
faultReason.name & string & The human readable name, if available, of the reason for the fault.\\
-faultReason.description & string & A human readable description, if available, of the reason for the fault.\\
+faultReason.description & string (\textbf{optional}) & A human readable description, if available, of the reason for the fault.\\
\hline
accessType.value & uint64 & The raw value of the access type that caused the fault.\\
accessType.name & string & The human readable name, if available, of the access type that caused the fault.\\
@@ -1888,13 +1888,13 @@
agentType.value & uint64 & The raw value of the detecting CXL agent type.\\
agentType.name & string & The human readable name, if available, of the CXL agent type.\\
\hline
-agentAddress & object & One of the structures described in Subsection \ref{subsection:cxlprotocoldeviceagentaddressstructure} or Subsection \ref{subsection:cxlprotocolrcrbaddressstructure}. Included structure is dependent on the \texttt{agentType.value} field.\\
+cxlAgentAddress & object & One of the structures described in Subsection \ref{subsection:cxlprotocoldeviceagentaddressstructure} or Subsection \ref{subsection:cxlprotocolrcrbaddressstructure}. Included structure is dependent on the \texttt{agentType.value} field.\\
\hline
deviceID & object & A CXL Device ID structure, as defined in Subsection \ref{subsection:cxlprotocoldeviceidstructure}.\\
\hline
deviceSerial & uint64 (\textbf{optional}) & The CXL device serial number. Only included if the detecting device is a CXL device (field \texttt{agentType.value} has value 0).\\
\hline
-capabilityStructure & string & A base64-encoded binary dump of the CXL device's PCIe capability structure. This could either be a PCIe 1.1 Capability Structure (36-byte, padded to 60 bytes), or a PCIe 2.0 Capability Structure (60-byte). Only included if the detecting device is a CXL device (field \texttt{agentType.value} has value 0).\\
+capabilityStructure & string (\textbf{optional}) & A base64-encoded binary dump of the CXL device's PCIe capability structure. This could either be a PCIe 1.1 Capability Structure (36-byte, padded to 60 bytes), or a PCIe 2.0 Capability Structure (60-byte). Only included if the detecting device is a CXL device (field \texttt{agentType.value} has value 0).\\
\hline
dvsecLength & int & Length (in bytes) of the CXL DVSEC structure.\\
\hline
@@ -1978,6 +1978,8 @@
\item CXL MLD Port Error (\texttt{\{ 0x8dc44363, 0x0c96, 0x4710, \{ 0xb7, 0xbf, 0x04, 0xbb, 0x99, 0x53, 0x4c, 0x3f \}\}})\\
\end{itemize}
\jsontable{table:cxlcomponenterrorsection}
+length & uint64 & The length in bytes for the entire structure.\\
+\hline
validationBits & object & A CXL Component Validation structure as described in Subsection \ref{subsection:cxlcomponentvalidationstructure}.\\
\hline
deviceID & object & A CXL Component Device ID structure as described in Subsection \ref{subsection:cxlcomponentdeviceidstructure}.\\
diff --git a/specification/json/sections/cper-cxl-component.json b/specification/json/sections/cper-cxl-component.json
index 9cbd2e9..ef1b9c6 100644
--- a/specification/json/sections/cper-cxl-component.json
+++ b/specification/json/sections/cper-cxl-component.json
@@ -2,9 +2,12 @@
"$id": "cper-json-cxl-component-section",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
- "required": ["validationBits", "deviceID", "deviceSerial"],
+ "required": ["length", "validationBits", "deviceID", "deviceSerial"],
"additionalProperties": false,
"properties": {
+ "length": {
+ "type": "integer"
+ },
"validationBits": {
"type": "object",
"required": ["deviceIDValid", "deviceSerialValid", "cxlComponentEventLogValid"],
diff --git a/specification/json/sections/cper-cxl-protocol.json b/specification/json/sections/cper-cxl-protocol.json
index fa25e81..bc22453 100644
--- a/specification/json/sections/cper-cxl-protocol.json
+++ b/specification/json/sections/cper-cxl-protocol.json
@@ -2,7 +2,7 @@
"$id": "cper-json-cxl-protocol-section",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
- "required": ["validationBits", "agentType", "agentAddress", "deviceID", "deviceSerial", "capabilityStructure", "dvsecLength", "errorLogLength", "cxlDVSEC", "cxlErrorLog"],
+ "required": ["validationBits", "agentType", "cxlAgentAddress", "deviceID", "dvsecLength", "errorLogLength", "cxlDVSEC", "cxlErrorLog"],
"additionalProperties": false,
"properties": {
"validationBits": {
@@ -36,7 +36,7 @@
"type": "object",
"$ref": "./common/cper-json-nvp.json"
},
- "agentAddress": {
+ "cxlAgentAddress": {
"type": "object",
"oneOf": [
{
@@ -68,6 +68,30 @@
}
]
},
+ "deviceID": {
+ "type": "object",
+ "required": ["vendorID", "deviceID", "subsystemVendorID", "subsystemDeviceID", "classCode", "slotNumber"],
+ "properties": {
+ "vendorID": {
+ "type": "integer"
+ },
+ "deviceID": {
+ "type": "integer"
+ },
+ "subsystemVendorID": {
+ "type": "integer"
+ },
+ "subsystemDeviceID": {
+ "type": "integer"
+ },
+ "classCode": {
+ "type": "integer"
+ },
+ "slotNumber": {
+ "type": "integer"
+ }
+ }
+ },
"deviceSerial": {
"type": "integer"
},
diff --git a/specification/json/sections/cper-firmware.json b/specification/json/sections/cper-firmware.json
index 2003f6e..1e9ea67 100644
--- a/specification/json/sections/cper-firmware.json
+++ b/specification/json/sections/cper-firmware.json
@@ -16,7 +16,7 @@
"type": "integer"
},
"recordIDGUID": {
- "type": "integer"
+ "type": "string"
}
}
}
\ No newline at end of file
diff --git a/specification/json/sections/cper-generic-dmar.json b/specification/json/sections/cper-generic-dmar.json
index ddccc14..e5fee69 100644
--- a/specification/json/sections/cper-generic-dmar.json
+++ b/specification/json/sections/cper-generic-dmar.json
@@ -13,7 +13,7 @@
},
"faultReason": {
"type": "object",
- "required": ["value", "name", "description"],
+ "required": ["value", "name"],
"properties": {
"value": {
"type": "integer"
diff --git a/specification/json/sections/cper-memory.json b/specification/json/sections/cper-memory.json
index 38243c1..4c5a356 100644
--- a/specification/json/sections/cper-memory.json
+++ b/specification/json/sections/cper-memory.json
@@ -7,7 +7,7 @@
"properties": {
"validationBits": {
"type": "object",
- "required": ["errorStatusValid", "physicalAddressValid", "physicalAddressMaskValid", "nodeValid", "cardValid", "moduleValid", "bankValid", "deviceValid", "rowValid", "memoryPlatformTargetValid", "memoryErrorTypeValid", "rankNumberValid", "cardHandleValid", "moduleHandleValid", "extendedRowBitsValid", "bankGroupValid", "bankAddressValid", "chipIdentificationValid"],
+ "required": ["errorStatusValid", "physicalAddressValid", "physicalAddressMaskValid", "nodeValid", "cardValid", "moduleValid", "bankValid", "deviceValid", "rowValid", "columnValid", "bitPositionValid", "platformRequestorIDValid", "platformResponderIDValid", "memoryPlatformTargetValid", "memoryErrorTypeValid", "rankNumberValid", "cardHandleValid", "moduleHandleValid", "extendedRowBitsValid", "bankGroupValid", "bankAddressValid", "chipIdentificationValid"],
"properties": {
"errorStatusValid": {
"type": "boolean"
@@ -36,6 +36,18 @@
"rowValid": {
"type": "boolean"
},
+ "columnValid": {
+ "type": "boolean"
+ },
+ "bitPositionValid": {
+ "type": "boolean"
+ },
+ "platformRequestorIDValid": {
+ "type": "boolean"
+ },
+ "platformResponderIDValid": {
+ "type": "boolean"
+ },
"memoryPlatformTargetValid": {
"type": "boolean"
},
diff --git a/specification/json/sections/cper-pci-bus.json b/specification/json/sections/cper-pci-bus.json
index 0e9c121..a2bc18e 100644
--- a/specification/json/sections/cper-pci-bus.json
+++ b/specification/json/sections/cper-pci-bus.json
@@ -61,6 +61,9 @@
"busAddress": {
"type": "integer"
},
+ "busData": {
+ "type": "integer"
+ },
"busCommandType": {
"type": "string"
},
diff --git a/specification/json/sections/cper-vtd-dmar.json b/specification/json/sections/cper-vtd-dmar.json
index baa5942..e76abb7 100644
--- a/specification/json/sections/cper-vtd-dmar.json
+++ b/specification/json/sections/cper-vtd-dmar.json
@@ -27,6 +27,9 @@
"type": "integer"
},
"faultStatusRegister": {
+ "type": "integer"
+ },
+ "faultRecord": {
"type": "object",
"required": ["faultInformation", "sourceIdentifier", "privelegeModeRequested", "executePermissionRequested", "pasidPresent", "faultReason", "pasidValue", "addressType", "type"],
"properties": {
@@ -66,22 +69,22 @@
"contextEntry": {
"type": "string"
},
- "pageEntry_Level6": {
+ "pageTableEntry_Level6": {
"type": "integer"
},
- "pageEntry_Level5": {
+ "pageTableEntry_Level5": {
"type": "integer"
},
- "pageEntry_Level4": {
+ "pageTableEntry_Level4": {
"type": "integer"
},
- "pageEntry_Level3": {
+ "pageTableEntry_Level3": {
"type": "integer"
},
- "pageEntry_Level2": {
+ "pageTableEntry_Level2": {
"type": "integer"
},
- "pageEntry_Level1": {
+ "pageTableEntry_Level1": {
"type": "integer"
}
}