Update web-platform-tests to revision 8b1aea6eed110e7900f1df933b24945fbb3c8229

This commit is contained in:
WPT Sync Bot 2020-08-04 08:22:01 +00:00
parent 8bf3440380
commit 1cd53da938
113 changed files with 2292 additions and 900 deletions

View file

@ -1,5 +0,0 @@
[url-charset.window.html]
expected: TIMEOUT
[Blob charset should override any auto-detected charset.]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[flexbox_computedstyle_flex-basis-0percent.html]
[flexbox | computed style | flex-basis: 0%]
expected: FAIL

View file

@ -1,4 +0,0 @@
[flexbox_computedstyle_flex-shorthand-number.html]
[flexbox | computed style | flex: number]
expected: FAIL

View file

@ -0,0 +1,7 @@
[percentage-size-quirks-002.html]
[.pct 1]
expected: FAIL
[.pct 2]
expected: FAIL

View file

@ -0,0 +1,4 @@
[position-absolute-014.html]
[The bottom of each pair of boxes should be the same]
expected: FAIL

View file

@ -2,3 +2,6 @@
[elementsFromPoint on the root document for points in iframe elements] [elementsFromPoint on the root document for points in iframe elements]
expected: FAIL expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -1,2 +0,0 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -315,21 +315,24 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk] [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain] [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html */*] [<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain] [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL expected: FAIL

View file

@ -53,6 +53,6 @@
[combined text/javascript ] [combined text/javascript ]
expected: FAIL expected: FAIL
[separate text/javascript error] [separate text/javascript x/x]
expected: FAIL expected: FAIL

View file

@ -11,3 +11,9 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL expected: FAIL
[Content-Type-Options%3A%20nosniff]
expected: FAIL
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -0,0 +1,7 @@
[gamepad-default-feature-policy.https.sub.html]
[Feature-Policy allow="gamepad" allows cross-origin with feature allowed.]
expected: FAIL
[Feature-Policy allow="gamepad" disallows cross-origin by default.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gamepad-secure-context.html]
[When in a non-secure context, getGamepad() should throw an error.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gamepad-supported-by-feature-policy.html]
[document.featurePolicy.features should advertise gamepad.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,4 +1,5 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: CRASH
[opener of discarded nested browsing context] [opener of discarded nested browsing context]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.gradient.conic.html]
[Conic gradient function exists]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.gradient.conic.html]
[Conic gradient function exists]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.gradient.conic.worker.html]
[Conic gradient function exists]
expected: FAIL

View file

@ -14,6 +14,3 @@
[Host element with delegatesFocus should support autofocus] [Host element with delegatesFocus should support autofocus]
expected: FAIL expected: FAIL
[Non-HTMLElement should not support autofocus]
expected: FAIL

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: FAIL

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html] [iframe_sandbox_popups_nonescaping-1.html]
expected: CRASH expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: NOTRUN

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html] [iframe_sandbox_popups_nonescaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: FAIL

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: NOTRUN

View file

@ -8,3 +8,6 @@
[Check that rel=noopener with target=_self does a normal load] [Check that rel=noopener with target=_self does a normal load]
expected: FAIL expected: FAIL
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL

View file

@ -0,0 +1,4 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -3,3 +3,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

View file

@ -1,10 +1,9 @@
[promise-job-entry.html] [promise-job-entry.html]
expected: TIMEOUT
[Fulfillment handler on fulfilled promise] [Fulfillment handler on fulfilled promise]
expected: FAIL expected: FAIL
[Rejection handler on pending-then-rejected promise] [Rejection handler on pending-then-rejected promise]
expected: TIMEOUT expected: FAIL
[Sanity check: this all works as expected with no promises involved] [Sanity check: this all works as expected with no promises involved]
expected: FAIL expected: FAIL
@ -16,5 +15,5 @@
expected: FAIL expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise] [Fulfillment handler on pending-then-fulfilled promise]
expected: TIMEOUT expected: FAIL

View file

@ -1,8 +1,7 @@
[shared-worker-in-data-url-context.window.html] [shared-worker-in-data-url-context.window.html]
expected: TIMEOUT
[Create a shared worker in a data url frame] [Create a shared worker in a data url frame]
expected: TIMEOUT expected: FAIL
[Create a data url shared worker in a data url frame] [Create a data url shared worker in a data url frame]
expected: NOTRUN expected: FAIL

View file

@ -1,5 +0,0 @@
[url-charset.window.html]
expected: TIMEOUT
[Blob charset should override any auto-detected charset.]
expected: TIMEOUT

View file

@ -2337,6 +2337,22 @@
] ]
] ]
}, },
"start_url-member": {
"start_url-member-fail-manual.sub.html": [
"b0743e7d86ee198f39363a3ed1cadd16be634e81",
[
null,
{}
]
],
"start_url-member-pass-manual.html": [
"d0ca61017d557c1347162132c294cc319f4cfb24",
[
null,
{}
]
]
},
"theme_color-member": { "theme_color-member": {
"theme_color-member-hsl-manual.html": [ "theme_color-member-hsl-manual.html": [
"0203a977669687d6635639ca681bdb6bf087d4fb", "0203a977669687d6635639ca681bdb6bf087d4fb",
@ -147179,6 +147195,19 @@
{} {}
] ]
], ],
"flex-and-intrinsic-sizes-002.html": [
"1f93d0e3d0e2b6bff13351e92c7ffaba7cb68553",
[
null,
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"grid-as-flex-item-should-not-shrink-to-fit-001.html": [ "grid-as-flex-item-should-not-shrink-to-fit-001.html": [
"e0665d56a1a55ecd41a9ae384e822c8662740d39", "e0665d56a1a55ecd41a9ae384e822c8662740d39",
[ [
@ -162340,12 +162369,12 @@
] ]
], ],
"active-selection-018.html": [ "active-selection-018.html": [
"ee7871c9503d45a3e0a0fbcff7e368d4557e33c3", "0c515bedf4d17fdc226bcaebf8f4e8f7bb10bd49",
[ [
null, null,
[ [
[ [
"/css/css-pseudo/reference/active-selection-011-ref.html", "/css/css-pseudo/reference/active-selection-018-ref.html",
"==" "=="
] ]
], ],
@ -162391,6 +162420,32 @@
{} {}
] ]
], ],
"active-selection-041.html": [
"f437c8bb523c3a403b8ccddc0ac224e77ecd52c4",
[
null,
[
[
"/css/css-pseudo/reference/active-selection-041-notref.html",
"!="
]
],
{}
]
],
"active-selection-043.html": [
"f760dee536e2a832d5b26760006cedef12ed56c1",
[
null,
[
[
"/css/reference/ref-nothing-below.xht",
"=="
]
],
{}
]
],
"active-selection-045.html": [ "active-selection-045.html": [
"415aa60610a85327362f3a4e592168ab9fccbbe3", "415aa60610a85327362f3a4e592168ab9fccbbe3",
[ [
@ -250751,6 +250806,32 @@
[] []
] ]
}, },
"start_url-member": {
"fail.html": [
"4c6c599b5a78e5422aa64b5aed1753eb8b3259b5",
[]
],
"pass.html": [
"caecc70f6d1bd491b54ef3af2a2c098f54f15994",
[]
],
"start_url-member-fail.sub.webmanifest": [
"73ee4744a240a6f76e3e2c741538e13b443e5d41",
[]
],
"start_url-member-fail.webmanifest.headers": [
"23f36ea27ced7bba400a60e8e618757e5701cd88",
[]
],
"start_url-member.webmanifest": [
"8d2325880d8360d7fb1467a4fb0a8caacc71f90d",
[]
],
"start_url-member.webmanifest.headers": [
"23f36ea27ced7bba400a60e8e618757e5701cd88",
[]
]
},
"theme_color-member": { "theme_color-member": {
"theme_color-member-hsl.webmanifest": [ "theme_color-member-hsl.webmanifest": [
"23ae16c15a72aace322420bf8b931d5d24c7f3b9", "23ae16c15a72aace322420bf8b931d5d24c7f3b9",
@ -306439,6 +306520,10 @@
"cd80adb3c3be45234bb3e89f42086dd30432cdb9", "cd80adb3c3be45234bb3e89f42086dd30432cdb9",
[] []
], ],
"active-selection-018-ref.html": [
"9644602179b034f0a362218244289113b90781b6",
[]
],
"active-selection-021-ref.html": [ "active-selection-021-ref.html": [
"7790a3fad8a36f1709fea6a4155ed5af0f3c49d7", "7790a3fad8a36f1709fea6a4155ed5af0f3c49d7",
[] []
@ -306451,6 +306536,10 @@
"0e3680844f887050520d8fb9b9bd2f68a2234e85", "0e3680844f887050520d8fb9b9bd2f68a2234e85",
[] []
], ],
"active-selection-041-notref.html": [
"17d69f306d77411f2ef0a7dab682b119c5b59e50",
[]
],
"selection-contenteditable-011-ref.html": [ "selection-contenteditable-011-ref.html": [
"0677a4b6b39f26aa4b3acc7480240b9d061e4929", "0677a4b6b39f26aa4b3acc7480240b9d061e4929",
[] []
@ -306485,6 +306574,10 @@
"57bf3ddc5213d06e0975de38f330ffb7c441b268", "57bf3ddc5213d06e0975de38f330ffb7c441b268",
[] []
], ],
"60x60-red.png": [
"823f125b8e4a60f780f00443c9c9a10b9fa1f447",
[]
],
"select-custom.cur": [ "select-custom.cur": [
"0a1f5dd51458223ce9213487ebcea627cdf75a4d", "0a1f5dd51458223ce9213487ebcea627cdf75a4d",
[] []
@ -325044,7 +325137,7 @@
[] []
], ],
"feature-policy-trust-token-redemption.html": [ "feature-policy-trust-token-redemption.html": [
"cf6c98307aadacc202d0fbc4b8895145f00aab40", "6ae6f6fa4d4684af4b839658ed295d7cfec976cd",
[] []
], ],
"focus-without-user-activation-iframe-tentative.html": [ "focus-without-user-activation-iframe-tentative.html": [
@ -327072,6 +327165,10 @@
"META.yml": [ "META.yml": [
"57cb2cd5f08824e128626381b74170e0583fce61", "57cb2cd5f08824e128626381b74170e0583fce61",
[] []
],
"feature-policy-gamepad.html": [
"8ee0c719216904c8d46319ab552d1d8f1ca247a5",
[]
] ]
}, },
"generic-sensor": { "generic-sensor": {
@ -329714,7 +329811,7 @@
[] []
], ],
"fill-and-stroke-styles.yaml": [ "fill-and-stroke-styles.yaml": [
"d05ae0911bd8f97c90e16ef2376235f67de3f553", "50d28085f4c4985b5697a3df8ca45278351942ad",
[] []
], ],
"line-styles.yaml": [ "line-styles.yaml": [
@ -329780,7 +329877,7 @@
[] []
], ],
"fill-and-stroke-styles.yaml": [ "fill-and-stroke-styles.yaml": [
"2554d48d26844a56dbcb9847b15b3ea7bb51c5d5", "7be040a13291c0d729fd562a57fc0a12b31b37c6",
[] []
], ],
"line-styles.yaml": [ "line-styles.yaml": [
@ -330223,7 +330320,7 @@
}, },
"resources": { "resources": {
"dispatcher.js": [ "dispatcher.js": [
"38243fab81a8c01e7c8880f905f22fb0c43893dc", "13c01add30fcc14571537ae04912c6c4b11a61c7",
[] []
], ],
"dispatcher.py": [ "dispatcher.py": [
@ -340364,7 +340461,7 @@
[] []
], ],
"webhid.idl": [ "webhid.idl": [
"aa699a31ba71135cfa3538a0742078d7d9db5770", "9136e128cd53cc204f62ac1e9d2711d4bed1b201",
[] []
], ],
"webmidi.idl": [ "webmidi.idl": [
@ -350283,23 +350380,23 @@
[] []
], ],
"cacert.key": [ "cacert.key": [
"445aae1b9fb9760e390e7e4d0476a808c4e3f80b", "c36ebcbc91054d4d61036004883f9bfbf7d4f5ac",
[] []
], ],
"cacert.pem": [ "cacert.pem": [
"eeba528d26d357320ba42f516f17e32447a83ad1", "f450f014d9f09b7f7c4e60f23a2f7cb779ab8188",
[] []
], ],
"config.json": [ "config.json": [
"4a37c13c12f333d416da9af8000191ad621729fe", "e9fbc5768006d1970bc2a955d30f11b570eadf20",
[] []
], ],
"web-platform.test.key": [ "web-platform.test.key": [
"cfaccce423ededdb890d4a80683c747692e23fe0", "0d422053f76ba4df1e69df513fe916532c4ccfad",
[] []
], ],
"web-platform.test.pem": [ "web-platform.test.pem": [
"68a9b96f3ee9d9cda57daeb6796b5b674d75ac40", "e7b1b018466895f32356c24ae1f3da0fff2f1c4c",
[] []
] ]
}, },
@ -359147,7 +359244,7 @@
[] []
], ],
"helpers.js": [ "helpers.js": [
"3819d12769898a3e2462ab06a35e5046d25f14f3", "413c72051b8f8bd41022a8719b70dc2ad5c53a95",
[] []
], ],
"worklet-recorder.js": [ "worklet-recorder.js": [
@ -360504,7 +360601,7 @@
[] []
], ],
"RTCPeerConnection-helper.js": [ "RTCPeerConnection-helper.js": [
"cf31d2f0008c95ac1566f3c7e21fbeda0992d7e3", "2d91e5f583715d5aca5efdf4e704db70b02fbfc9",
[] []
], ],
"RTCRtpCapabilities-helper.js": [ "RTCRtpCapabilities-helper.js": [
@ -367755,7 +367852,7 @@
] ]
], ],
"idbobjectstore_putall.tentative.any.js": [ "idbobjectstore_putall.tentative.any.js": [
"a312d71d03d59c5c9369afa1492aacd0e91e9a5d", "8bdc765906d86504bcb344e1e579a97f8f602c6e",
[ [
"IndexedDB/idbobjectstore_putall.tentative.any.html", "IndexedDB/idbobjectstore_putall.tentative.any.html",
{ {
@ -388188,6 +388285,13 @@
{} {}
] ]
], ],
"float-in-self-painting-inline.html": [
"6ff47d362639ea31dc73547c5c24ea7a8b053015",
[
null,
{}
]
],
"hit-test-floats-001.html": [ "hit-test-floats-001.html": [
"e554918e7538b0afedb60c80c74647967a114d47", "e554918e7538b0afedb60c80c74647967a114d47",
[ [
@ -392536,7 +392640,7 @@
] ]
], ],
"flexbox_computedstyle_flex-basis-0percent.html": [ "flexbox_computedstyle_flex-basis-0percent.html": [
"abdd030da8a4336001c0f50cba9d28420b259c5a", "6abbc50a22b3533b675ced0ca538e7d6f3233b6e",
[ [
null, null,
{} {}
@ -392767,7 +392871,7 @@
] ]
], ],
"flexbox_computedstyle_flex-shorthand-number.html": [ "flexbox_computedstyle_flex-shorthand-number.html": [
"413a94f0236f79834153477701af3b7199aa9652", "a35622277b890b6ee4041c15b01013bba1778413",
[ [
null, null,
{} {}
@ -393329,6 +393433,13 @@
{} {}
] ]
], ],
"percentage-size-quirks-002.html": [
"c66ebd4428e963cd90ad93a204ce4840bf20b2fc",
[
null,
{}
]
],
"percentage-size-quirks.html": [ "percentage-size-quirks.html": [
"1a5c5136bee8eeca54e65ae9bb509c121a98df62", "1a5c5136bee8eeca54e65ae9bb509c121a98df62",
[ [
@ -393385,6 +393496,13 @@
{} {}
] ]
], ],
"position-absolute-014.html": [
"f02a26800749fd067f38127c52a592df7cef9487",
[
null,
{}
]
],
"position-relative-percentage-top-001.html": [ "position-relative-percentage-top-001.html": [
"3ec47c1d42d69330c616a87f0b22208f8d6196a6", "3ec47c1d42d69330c616a87f0b22208f8d6196a6",
[ [
@ -432124,7 +432242,7 @@
] ]
], ],
"trust-token-redemption-default-feature-policy.tentative.https.sub.html": [ "trust-token-redemption-default-feature-policy.tentative.https.sub.html": [
"c0485aa90d4c5237f04cc73f93eae36e2f89cad8", "d88048953ea3f1d26dee502ef331bc3f07ec0152",
[ [
null, null,
{} {}
@ -436698,6 +436816,27 @@
} }
}, },
"gamepad": { "gamepad": {
"gamepad-default-feature-policy.https.sub.html": [
"fce0eaffee308992f29d626438ef6002f0f69aef",
[
null,
{}
]
],
"gamepad-secure-context.html": [
"97b4ea2967eed3fbb5588ac0010b1dbf42ba19c8",
[
null,
{}
]
],
"gamepad-supported-by-feature-policy.html": [
"a688a380a7783277061a0b759e5b7e3501299170",
[
null,
{}
]
],
"idlharness-extensions.window.js": [ "idlharness-extensions.window.js": [
"dcf76878fc9257d4b7f2cbb6d603d9848c55f083", "dcf76878fc9257d4b7f2cbb6d603d9848c55f083",
[ [
@ -442163,6 +442302,13 @@
{} {}
] ]
], ],
"2d.gradient.conic.html": [
"608b6a14db1bf4294aa455739e531a0ae3597aef",
[
null,
{}
]
],
"2d.gradient.empty.html": [ "2d.gradient.empty.html": [
"c5fc908df31e33abd27c1c228367d7bd56fb7444", "c5fc908df31e33abd27c1c228367d7bd56fb7444",
[ [
@ -449930,6 +450076,20 @@
{} {}
] ]
], ],
"2d.gradient.conic.html": [
"a1a4651ef65bb926279d5fbab4c1c991da935444",
[
null,
{}
]
],
"2d.gradient.conic.worker.js": [
"53a61ad114ddbfcc176812aab2e9946b82624994",
[
"html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.html",
{}
]
],
"2d.gradient.empty.html": [ "2d.gradient.empty.html": [
"927c580f0e652aa674ff3b7fad92a0b5dac41819", "927c580f0e652aa674ff3b7fad92a0b5dac41819",
[ [
@ -457668,6 +457828,13 @@
"timeout": "long" "timeout": "long"
} }
] ]
],
"reporting-observer.html": [
"4d1eda941ae50ce4482c692dafe749ef9e455ac6",
[
null,
{}
]
] ]
}, },
"navigation-reporting": { "navigation-reporting": {
@ -457776,6 +457943,15 @@
"timeout": "long" "timeout": "long"
} }
] ]
],
"reporting-redirect-with-same-origin-allow-popups.https.html": [
"7dba76c4ef5434d49d7800da14eb980f79728f44",
[
null,
{
"timeout": "long"
}
]
] ]
} }
} }
@ -477050,6 +477226,20 @@
{} {}
] ]
], ],
"inline-flow-shift-vertical-rl.html": [
"06bc34c37dd0559bfe6bedcc956ec2e2734c14b3",
[
null,
{}
]
],
"inline-flow-shift.html": [
"39550da6588eeb7aca7001ab592ee0177d26ca56",
[
null,
{}
]
],
"local-shift-without-viewport-shift.html": [ "local-shift-without-viewport-shift.html": [
"37729f1c13c298b5a2d95c46b7a4f199d8943022", "37729f1c13c298b5a2d95c46b7a4f199d8943022",
[ [
@ -477071,6 +477261,13 @@
{} {}
] ]
], ],
"outline.html": [
"1fed8e92f5e4b60cd83646405b6bd77e673c076f",
[
null,
{}
]
],
"partially-clipped-visual-rect.html": [ "partially-clipped-visual-rect.html": [
"3b18b98dd93312c37b9e2f25918df50266a09243", "3b18b98dd93312c37b9e2f25918df50266a09243",
[ [
@ -512941,14 +513138,14 @@
] ]
}, },
"trust-token-parameter-validation-xhr.tentative.https.html": [ "trust-token-parameter-validation-xhr.tentative.https.html": [
"4a6c30c6d32424c9b1d3dce883d3f44862c6e3b6", "0ee538c07e63a744ca8764c6fc67fc5fcbcd2696",
[ [
null, null,
{} {}
] ]
], ],
"trust-token-parameter-validation.tentative.https.html": [ "trust-token-parameter-validation.tentative.https.html": [
"c3a612724ee8a0216f64b7a66434736df9def9a4", "733873e538ccafc15ade66e2139828dc5a3da05d",
[ [
null, null,
{} {}
@ -520031,7 +520228,7 @@
] ]
], ],
"subresource-loading-from-web-bundle.tentative.html": [ "subresource-loading-from-web-bundle.tentative.html": [
"e35264698dbf7f42feb1012195a791adcbdb5b16", "27e164afe8be36dfbbaed11f7d7faaf88431d131",
[ [
null, null,
{} {}
@ -521424,7 +521621,7 @@
] ]
], ],
"test-analyser-minimum.html": [ "test-analyser-minimum.html": [
"3b9e57314d6500ca8c33455d6fe3f949a59216ce", "ab0fe6b2d6094f38d04a016f90b6873a5827da06",
[ [
null, null,
{ {
@ -524587,6 +524784,13 @@
{} {}
] ]
], ],
"RTCPeerConnection-explicit-rollback-iceGatheringState.html": [
"9c1fe014bd9ee18bb6a9ab65ea7aa3eebbce1200",
[
null,
{}
]
],
"RTCPeerConnection-generateCertificate.html": [ "RTCPeerConnection-generateCertificate.html": [
"4cda97e9b7ee5d5c8ec9534edf57f316172af373", "4cda97e9b7ee5d5c8ec9534edf57f316172af373",
[ [
@ -524634,7 +524838,7 @@
] ]
], ],
"RTCPeerConnection-iceGatheringState.html": [ "RTCPeerConnection-iceGatheringState.html": [
"3f0128bb843ddbdd129f8a10b601b21c21ce7de4", "d9e3f42d2c21003c5a6c5614c24398aa9e681c60",
[ [
null, null,
{} {}
@ -533334,7 +533538,7 @@
] ]
], ],
"not-handled.html": [ "not-handled.html": [
"96fdb4a6f119ad63a9f29a1592c846454293794c", "11d03d728b158f2cf46af96f8cc1b2cfa137f5ab",
[ [
null, null,
{} {}

View file

@ -1,5 +0,0 @@
[flexbox_computedstyle_flex-basis-0percent.html]
type: testharness
[flexbox | computed style | flex-basis: 0%]
expected: FAIL

View file

@ -1,5 +0,0 @@
[flexbox_computedstyle_flex-shorthand-number.html]
type: testharness
[flexbox | computed style | flex: number]
expected: FAIL

View file

@ -0,0 +1,7 @@
[percentage-size-quirks-002.html]
[.pct 1]
expected: FAIL
[.pct 2]
expected: FAIL

View file

@ -0,0 +1,4 @@
[position-absolute-014.html]
[The bottom of each pair of boxes should be the same]
expected: FAIL

View file

@ -2,3 +2,6 @@
[elementsFromPoint on the root document for points in iframe elements] [elementsFromPoint on the root document for points in iframe elements]
expected: FAIL expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -1,2 +0,0 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -315,21 +315,24 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk] [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain] [<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html */*] [<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain] [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL expected: FAIL

View file

@ -53,6 +53,6 @@
[combined text/javascript ] [combined text/javascript ]
expected: FAIL expected: FAIL
[separate text/javascript error] [separate text/javascript x/x]
expected: FAIL expected: FAIL

View file

@ -11,3 +11,9 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL expected: FAIL
[Content-Type-Options%3A%20nosniff]
expected: FAIL
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -0,0 +1,7 @@
[gamepad-default-feature-policy.https.sub.html]
[Feature-Policy allow="gamepad" allows cross-origin with feature allowed.]
expected: FAIL
[Feature-Policy allow="gamepad" disallows cross-origin by default.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gamepad-secure-context.html]
[When in a non-secure context, getGamepad() should throw an error.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gamepad-supported-by-feature-policy.html]
[document.featurePolicy.features should advertise gamepad.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,4 +1,5 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: CRASH
[opener and "removed" embedded documents] [opener and "removed" embedded documents]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.gradient.conic.html]
[Conic gradient function exists]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.gradient.conic.html]
[Conic gradient function exists]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.gradient.conic.worker.html]
[Conic gradient function exists]
expected: FAIL

View file

@ -14,6 +14,3 @@
[Host element with delegatesFocus should support autofocus] [Host element with delegatesFocus should support autofocus]
expected: FAIL expected: FAIL
[Non-HTMLElement should not support autofocus]
expected: FAIL

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: FAIL

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_nonescaping-1.html] [iframe_sandbox_popups_nonescaping-1.html]
type: testharness type: testharness
expected: CRASH expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: NOTRUN

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-2.html] [iframe_sandbox_popups_nonescaping-2.html]
type: testharness type: testharness
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: FAIL

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: NOTRUN

View file

@ -12,3 +12,6 @@
[Check that rel=noopener with target=_self does a normal load] [Check that rel=noopener with target=_self does a normal load]
expected: FAIL expected: FAIL
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL

View file

@ -0,0 +1,4 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -4,3 +4,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

View file

@ -1,10 +1,9 @@
[promise-job-entry.html] [promise-job-entry.html]
expected: TIMEOUT
[Fulfillment handler on fulfilled promise] [Fulfillment handler on fulfilled promise]
expected: FAIL expected: FAIL
[Rejection handler on pending-then-rejected promise] [Rejection handler on pending-then-rejected promise]
expected: TIMEOUT expected: FAIL
[Sanity check: this all works as expected with no promises involved] [Sanity check: this all works as expected with no promises involved]
expected: FAIL expected: FAIL
@ -16,5 +15,5 @@
expected: FAIL expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise] [Fulfillment handler on pending-then-fulfilled promise]
expected: TIMEOUT expected: FAIL

View file

@ -1,8 +1,7 @@
[shared-worker-in-data-url-context.window.html] [shared-worker-in-data-url-context.window.html]
expected: TIMEOUT
[Create a shared worker in a data url frame] [Create a shared worker in a data url frame]
expected: TIMEOUT expected: FAIL
[Create a data url shared worker in a data url frame] [Create a data url shared worker in a data url frame]
expected: NOTRUN expected: FAIL

View file

@ -3,24 +3,23 @@
promise_test(async testCase => { promise_test(async testCase => {
const db = await createDatabase(testCase, db => { const db = await createDatabase(testCase, db => {
const store = createBooksStore(testCase, db); const store = createBooksStore(testCase, db);
});
const txn = db.transaction(['books'], 'readwrite');
const objectStore = txn.objectStore('books');
let values = [ let values = [
{isbn: 'one', title: 'title1'}, {isbn: 'one', title: 'title1'},
{isbn: 'two', title: 'title2'}, {isbn: 'two', title: 'title2'},
{isbn: 'three', title: 'title3'} {isbn: 'three', title: 'title3'}
]; ];
let putAllRequest = objectStore.putAll(values); const putAllRequests = store.putAll(values);
await promiseForRequest(testCase, putAllRequest); putAllRequests.forEach(async request => {
await promiseForTransaction(testCase, txn); await promiseForRequest(testCase, request);
});
});
const txn2 = db.transaction(['books'], 'readonly'); const txn = db.transaction(['books'], 'readonly');
const objectStore2 = txn2.objectStore('books'); const objectStore = txn.objectStore('books');
const getRequest1 = objectStore2.get('one'); const getRequest1 = objectStore.get('one');
const getRequest2 = objectStore2.get('two'); const getRequest2 = objectStore.get('two');
const getRequest3 = objectStore2.get('three'); const getRequest3 = objectStore.get('three');
await promiseForTransaction(testCase, txn2); await promiseForTransaction(testCase, txn);
assert_array_equals( assert_array_equals(
[getRequest1.result.title, [getRequest1.result.title,
getRequest2.result.title, getRequest2.result.title,

View file

@ -0,0 +1,4 @@
<!doctype html>
<meta charset="utf-8">
<body style="background-color: red">
<h1>FAIL</h1>

View file

@ -0,0 +1,5 @@
<!doctype html>
<title>PASS</title>
<meta charset="utf-8">
<body style="background-color: green">
<h1>PASS</h1>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<title>Test that start_url member is supported</title>
<link rel="help" href="https://w3c.github.io/manifest/#start_url-member" />
<link rel="manifest" href="https://{{host}}:{{ports[https][0]}}/appmanifest/start_url-member/start_url-member-fail.sub.webmanifest" />
<h1>Cross-origin start URLs are invalid</h1>
<script>
// Force the port of the origin to be ports[https][0] (likely :8443)
// we treat the start_url's port ports[https][1] (likely :8444) to be another origin that we fail against
if (window.location.origin !== "https://{{host}}:{{ports[https][0]}}") {
window.location = new URL(window.location.pathname, "https://{{host}}:{{ports[https][0]}}")
}
</script>
<style>
@media all and (display-mode: fullscreen) {
body {
background-color: green;
}
}
</style>
<p>
To pass, the start URL must not be fail.html because it's not same origin.
It will use this page as the start URL and the background will be green.
</p>

View file

@ -0,0 +1,4 @@
{
"start_url": "https://{{host}}:{{ports[https][1]}}/appmanifest/start_url-member/fail.html",
"display": "fullscreen"
}

View file

@ -0,0 +1 @@
Content-Type: application/manifest+json; charset=utf-8

View file

@ -0,0 +1,8 @@
<!DOCTYPE html>
<title>Test that start_url member is supported</title>
<link rel="help" href="https://w3c.github.io/manifest/#start_url-member" />
<link rel="manifest" href="start_url-member.webmanifest" />
<h1>Testing support for start_url member</h1>
<p>
To pass, the application name must be "pass".
</p>

View file

@ -0,0 +1,3 @@
{
"start_url": "pass.html"
}

View file

@ -0,0 +1 @@
Content-Type: application/manifest+json; charset=utf-8

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<title>Floats in self-painting inline box should not crash</title>
<link rel="help" href="https://crbug.com/1109565">
<link rel="author" href="kojii@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<span style='opacity: 0.5'>
<div style="float: right">X</div>
</span>
<img title="ABC">
<script>
test(() => {}, "Pass if not crashes");
</script>

View file

@ -17,6 +17,6 @@ test(function() {
var body = document.body; var body = document.body;
assert_equals(getComputedStyle(body).getPropertyValue("flex-basis"), assert_equals(getComputedStyle(body).getPropertyValue("flex-basis"),
"0px"); "0%");
}); });
</script> </script>

View file

@ -21,6 +21,6 @@ test(function() {
assert_equals(getComputedStyle(body).getPropertyValue("flex-shrink"), assert_equals(getComputedStyle(body).getPropertyValue("flex-shrink"),
"1"); "1");
assert_equals(getComputedStyle(body).getPropertyValue("flex-basis"), assert_equals(getComputedStyle(body).getPropertyValue("flex-basis"),
"0px"); "0%");
}); });
</script> </script>

View file

@ -0,0 +1,63 @@
<!doctype quirks>
<title>CSS Flexbox: percentage size in flexbox children in quirks mode</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers">
<link rel="help" href="https://quirks.spec.whatwg.org/#the-percentage-height-calculation-quirk" title="Number 4">
<link rel="help" href="https://crbug.com/1054185">
<meta name="assert" content="This test checks that percentage height/width values in flexbox descendants are correctly resolved in quirks mode.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<style>
.fixed-height { height: 100px; }
.flex {
display: flex;
border: 3px solid black;
}
.pct {
height: 100%;
min-height: 10px;
width: 50px;
display: inline-block;
vertical-align: top;
background: purple;
}
.px {
height: 50px;
width: 50px;
display: inline-block;
vertical-align: top;
background: blue
};
</style>
flex with 1 wrapper div inside:
<div class="fixed-height">
<div class="flex">
<div>
<div class="pct" data-expected-height=50></div>
<div class="px"></div>
</div>
</div>
</div>
flex with several wrapper divs inside:
<div class="fixed-height">
<div class="flex">
<div>
<div>
<div>
<div class="pct" data-expected-height=50></div>
<div class="px"></div>
</div>
</div>
</div>
</div>
</div>
<script>
checkLayout('.pct');
</script>

View file

@ -0,0 +1,82 @@
<!doctype html>
<title>abspos flex children with top margins</title>
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.org">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<link rel="bookmark" href="https://crbug.com/808750">
<meta name="flags" content="dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.container {
display: flex;
background: lightgray;
width: 250px;
height: 48px;
/* Add some margin so that overflowing things don't stomp on each other: */
margin: 50px 10px;
float: left;
position: relative;
}
.contentBox {
position: absolute;
/* Margin-box is 100px tall (2px of border + 98px of content): */
border: 1px solid teal;
height: 98px;
width: 98px;
left: 20px;
}
.marginBox {
position: absolute;
/* Margin-box is 100px tall
(60px of margin-top + 2px of border + 38px of content): */
margin-top: 60px;
border: 1px solid orange;
height: 38px;
width: 100px;
left: 120px;
}
</style>
<div class="container">
<div class="contentBox">
aaa
</div>
<div class="marginBox">
bbb
</div>
</div>
<div class="container" style="align-items: flex-end">
<div class="contentBox">
aaa
</div>
<div class="marginBox">
bbb
</div>
</div>
<div class="container" style="align-items: center">
<div class="contentBox">
aaa
</div>
<div class="marginBox">
bbb
</div>
</div>
<div id=log style="clear:both"></div>
<script>
test(function() {
var elements = document.querySelectorAll(".contentBox, .marginBox");
for (var i = 0; i < elements.length; i+=2) {
assert_equals(elements[i].getBoundingClientRect().bottom,
elements[i+1].getBoundingClientRect().bottom);
}
}, "The bottom of each pair of boxes should be the same");
</script>

View file

@ -0,0 +1,23 @@
<!doctype html>
<title>Auto Min Size is Zeroed When Spanning Flexible Tracks</title>
<link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact/">
<link rel="help" href="https://drafts.csswg.org/css-grid/#min-size-auto">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="An item spanning >1 track, at least one of which is flexible, must have a zero automatic minimum size (and thus, not grow to accommodate its children)."
<style>
.grid { display: grid; grid-template-columns: repeat(12, 1fr); height: 100px; width: 100px; }
.test { grid-column: 1 / span 8; grid-row: 1; background: red; }
.over { grid-column: 1 / span 8; grid-row: 1; background: green; }
.under { grid-column: 9 / span 4; grid-row: 1; background: green; }
.big-child { width: 500px; height: 100px; }
</style>
<div class="grid">
<div class="under"></div>
<div class="test">
<div class=big-child></div>
</div>
<div class="over"></div>
</div>

View file

@ -7,7 +7,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors"> <link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-styling"> <link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-styling">
<link rel="match" href="reference/active-selection-011-ref.html"> <link rel="match" href="reference/active-selection-018-ref.html">
<meta content="" name="flags"> <meta content="" name="flags">
@ -55,6 +55,6 @@
<body onload="startTest();"> <body onload="startTest();">
<p>Test passes if each glyph of "Selected Text" is green and if there is <strong>no red</strong>. <p>Test passes if each glyph of "Selected Text" is green, if background color of each glyph of "Selected Text" is white and if there is <strong>no red</strong>.
<div id="parent">Selected Text <span>FAIL</span></div> <div id="parent">Selected Text <span>FAIL</span></div>

View file

@ -0,0 +1,86 @@
<!DOCTYPE html>
<html class="reftest-wait">
<meta charset="UTF-8">
<title>CSS Pseudo-Elements Test: active selection and image</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-painting">
<link rel="mismatch" href="reference/active-selection-041-notref.html">
<meta content="should" name="flags">
<meta name="assert" content="In this test, a filled yellow image is selected and is overlaid with an opaque blue background color. The specification states that, for replaced content, the UA should create a semi-transparent wash to coat the content. But such semi-transparent wash could use a transparency of 0.3 or 0.5 or 0.7: so, we do not know. Therefore we can not predict the rendered end result. All we can be sure of is that the image, once selected, must not be identical to its original non-selected version. This test checks precisely and only this.">
<!--
"
(...) for replaced content, the UA should create
a semi-transparent wash to coat the content so
that it can show through the selection.
"
coming from
https://www.w3.org/TR/css-pseudo-4/#highlight-painting
-->
<!--
July 28th 2020
Firefox 68.10.0 ESR will create a resulting
background color of #7F7F80, which looks like
dark gray.
Chrome 83.0.4103.116 will create a resulting
background color of #33CCCC which looks like
dark blue.
July 28th 2020
-->
<style>
div
{
font-size: 300%;
}
img
{
vertical-align: top;
}
/*
Chromium 80+ will highlight space
below and above content box while
Firefox 72+ only highlights the image itself.
Therefore this 'vertical-align: top' declaration
to work around this possible behavior.
*/
img::selection
{
background-color: blue;
/*
equivalent to rgb(0, 0, 255) or rgb(0%, 0%, 100%)
or rgba(0, 0, 255, 1) or #0000FF
*/
}
</style>
<script>
function startTest()
{
var targetRange = document.createRange();
/* We first create an empty range */
targetRange.selectNodeContents(document.getElementById("test"));
/* Then we set the range boundaries to the children of div#test */
window.getSelection().addRange(targetRange);
/* Finally, we now select such range of content */
document.documentElement.className = "";
}
</script>
<body onload="startTest();">
<p>Test passes if there is a filled square which is <strong>not yellow</strong>.
<div id="test"><img src="../support/swatch-yellow.png" width="100" height="100" alt="Image download support must be enabled"></div>

View file

@ -0,0 +1,84 @@
<!DOCTYPE html>
<html class="reftest-wait">
<meta charset="UTF-8">
<title>CSS Pseudo-Elements Test: active selection and image (complex)</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-bounds">
<link rel="match" href="../reference/ref-nothing-below.xht">
<meta content="" name="flags">
<meta name="assert" content="In this test, a filled red image has a padding belt painted red and a red border. This test checks that the associated overlay for an image must not leak outside the image's border box.">
<!--
"
For replaced content, the associated overlay must cover
at least the entire replaced object, and may extend
outward to include the element's entire content box.
The overlay may also include other other areas within
the border-box of an element (...)
"
coming from
https://www.w3.org/TR/css-pseudo-4/#highlight-bounds
-->
<style>
div
{
font-size: 300%;
}
img
{
background-color: red;
/* so that the padding belt is painted red */
border: red solid 10px;
padding: 10px;
}
/*
Chromium 80+ highlights the descender space
below the baseline on which the image "sits" while
Firefox 72+ only highlights the image itself.
*/
img::selection
{
background-color: red;
color: red;
}
span#masking
{
background-color: white;
display: inline-block;
height: 100px;
position: relative;
right: 100px;
width: 100px;
}
</style>
<script>
function startTest()
{
var targetRange = document.createRange();
/* We first create an empty range */
targetRange.selectNodeContents(document.getElementById("test"));
/* Then we set the range boundaries to the children of div#test */
window.getSelection().addRange(targetRange);
/* Finally, we now select such range of content */
document.documentElement.className = "";
}
</script>
<body onload="startTest();">
<p>Test passes if there is nothing below.
<div id="test"><img src="support/60x60-red.png" alt="Image download support must be enabled"><span id="masking"></span></div>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reftest Reference</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<style>
div
{
color: green;
font-size: 300%;
}
</style>
<p>Test passes if each glyph of "Selected Text" is green, if background color of each glyph of "Selected Text" is white and if there is <strong>no red</strong>.
<div>Selected Text</div>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reftest Reference</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<p>Test passes if there is a filled square which is <strong>not yellow</strong>.
<div><img src="../../support/swatch-yellow.png" width="100" height="100" alt="Image download support must be enabled"></div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

View file

@ -20,7 +20,7 @@
new Request("https://destination.example/", { new Request("https://destination.example/", {
trustToken: { trustToken: {
type: "send-srr", type: "send-srr",
issuer: "https://issuer.example/" issuers: ["https://issuer.example/"]
} }
}); });
} catch (e) { } catch (e) {
@ -30,7 +30,9 @@
try { try {
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
xhr.open("GET", "https://issuer.example/"); xhr.open("GET", "https://issuer.example/");
xhr.setTrustToken( { type: "srr-token-redemption" } ); xhr.setTrustToken({
type: "srr-token-redemption"
});
} catch (e) { } catch (e) {
num_enabled--; num_enabled--;
} }
@ -40,7 +42,7 @@
xhr.open("GET", "https://destination.example/"); xhr.open("GET", "https://destination.example/");
xhr.setTrustToken({ xhr.setTrustToken({
type: "send-srr", type: "send-srr",
issuer: "https://issuer.example/" issuers: ["https://issuer.example/"]
}); });
} catch (e) { } catch (e) {
num_enabled--; num_enabled--;

View file

@ -24,19 +24,21 @@
new Request("https://destination.example/", { new Request("https://destination.example/", {
trustToken: { trustToken: {
type: "send-srr", // signing type: "send-srr", // signing
issuer: "https://issuer.example/" issuers: ["https://issuer.example/"]
} }
}); });
const redemption_xhr = new XMLHttpRequest(); const redemption_xhr = new XMLHttpRequest();
redemption_xhr.open("GET", "https://issuer.example/"); redemption_xhr.open("GET", "https://issuer.example/");
redemption_xhr.setTrustToken( { type: "srr-token-redemption" } ); redemption_xhr.setTrustToken({
type: "srr-token-redemption"
});
const signing_xhr = new XMLHttpRequest(); const signing_xhr = new XMLHttpRequest();
signing_xhr.open("GET", "https://destination.example/"); signing_xhr.open("GET", "https://destination.example/");
signing_xhr.setTrustToken({ signing_xhr.setTrustToken({
type: "send-srr", // signing type: "send-srr", // signing
issuer: "https://issuer.example/" issuers: ["https://issuer.example/"]
}); });
} catch (e) { } catch (e) {
assert_unreached(); assert_unreached();

View file

@ -0,0 +1,9 @@
<script>
try {
let test = navigator.getGamepads();
if (test)
window.parent.postMessage({ enabled:true}, '*');
} catch (err) {
window.parent.postMessage({ enabled:false}, '*');
}
</script>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<body>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/feature-policy/resources/featurepolicy.js></script>
<script src=util/utils.js></script>
<script>
'use strict';
const relative_path = '/gamepad/feature-policy-gamepad.html';
const base_src = '/feature-policy/resources/redirect-on-load.html#';
const sub = 'https://{{domains[www]}}:{{ports[https][0]}}';
const same_origin_src = base_src + relative_path;
const cross_origin_src = sub + relative_path;
const header = 'Feature-Policy allow="gamepad"';
async_test(t => {
test_feature_availability(
'getGamepads()', t, same_origin_src,
expect_feature_available_default);
}, header + ' allows same-origin by default.');
async_test(t => {
test_feature_availability(
'getGamepads()', t, cross_origin_src,
expect_feature_available_default, 'gamepad');
}, header + ' allows cross-origin with feature allowed.');
async_test(t => {
test_feature_availability(
'getGamepads()', t, cross_origin_src,
expect_feature_unavailable_default);
}, header + ' disallows cross-origin by default.');
</script>
</body>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<meta charset="utf-8" />
<title>Gamepad Test: non-secure contexts</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
promise_test(() => {
return new Promise((resolve, reject) => {
try {
navigator.getGamepads();
reject(
"getGamepads should throw an error when being called in non-secure contexts."
);
} catch (error) {
resolve();
}
});
}, "When in a non-secure context, getGamepad() should throw an error.");
</script>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<title>Test that gamepad is advertised in the feature list</title>
<link rel="help" href="https://w3c.github.io/webappsec-feature-policy/#dom-featurepolicy-features">
<link rel="help" href="https://github.com/w3c/encrypted-media/pull/432">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(() => {
assert_in_array('gamepad', document.featurePolicy.features());
}, 'document.featurePolicy.features should advertise gamepad.');
</script>

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: 2d.gradient.conic</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
<body class="show_output">
<h1>2d.gradient.conic</h1>
<p class="desc">Conic gradient function exists</p>
<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
<p class="output expectedtext">Expected output:<p><img src="/images/green-100x50.png" class="output expected" id="expected" alt="">
<ul id="d"></ul>
<script>
var t = async_test("Conic gradient function exists");
_addTest(function(canvas, ctx) {
const g = ctx.createConicGradient(0, 0, 25);
g.addColorStop(0, "#0f0");
g.addColorStop(0.5, "#0f0");
g.addColorStop(0.51, "#f00");
g.addColorStop(1, "#f00");
ctx.fillStyle = g;
ctx.fillRect(0, 0, 100, 50);
_assertPixel(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");
_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");
_assertPixel(canvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255");
});
</script>

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>OffscreenCanvas test: 2d.gradient.conic</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<h1>2d.gradient.conic</h1>
<p class="desc">Conic gradient function exists</p>
<script>
var t = async_test("Conic gradient function exists");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
throw reason;
});
t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
const g = ctx.createConicGradient(0, 0, 25);
g.addColorStop(0, "#0f0");
g.addColorStop(0.5, "#0f0");
g.addColorStop(0.5, "#f00");
g.addColorStop(1, "#f00");
ctx.fillStyle = g;
ctx.fillRect(0, 0, 100, 50);
_assertPixel(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");
_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");
_assertPixel(offscreenCanvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255");
t.done();
});
</script>

View file

@ -0,0 +1,32 @@
// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
// OffscreenCanvas test in a worker:2d.gradient.conic
// Description:Conic gradient function exists
// Note:
importScripts("/resources/testharness.js");
importScripts("/html/canvas/resources/canvas-tests.js");
var t = async_test("Conic gradient function exists");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
throw reason;
});
t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
const g = ctx.createConicGradient(0, 0, 25);
g.addColorStop(0, "#0f0");
g.addColorStop(0.5, "#0f0");
g.addColorStop(0.5, "#f00");
g.addColorStop(1, "#f00");
ctx.fillStyle = g;
ctx.fillRect(0, 0, 100, 50);
_assertPixel(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");
_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");
_assertPixel(offscreenCanvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255");
t.done();
});
done();

View file

@ -1174,10 +1174,20 @@
@assert pixel 75,25 == 0,255,0,255; @assert pixel 75,25 == 0,255,0,255;
expected: green expected: green
- name: 2d.gradient.conic
desc: Conic gradient function exists
code: |
const g = ctx.createConicGradient(0, 0, 25);
g.addColorStop(0, "#0f0");
g.addColorStop(0.5, "#0f0");
g.addColorStop(0.51, "#f00");
g.addColorStop(1, "#f00");
ctx.fillStyle = g;
ctx.fillRect(0, 0, 100, 50);
@assert pixel 25,25 == 0,255,0,255;
@assert pixel 50,25 == 0,255,0,255;
@assert pixel 75,25 == 0,255,0,255;
expected: green
- name: 2d.pattern.basic.type - name: 2d.pattern.basic.type
testing: testing:

View file

@ -928,6 +928,22 @@
@assert pixel 75,25 == 0,255,0,255; @assert pixel 75,25 == 0,255,0,255;
t.done(); t.done();
- name: 2d.gradient.conic
desc: Conic gradient function exists
code: |
const g = ctx.createConicGradient(0, 0, 25);
g.addColorStop(0, "#0f0");
g.addColorStop(0.5, "#0f0");
g.addColorStop(0.5, "#f00");
g.addColorStop(1, "#f00");
ctx.fillStyle = g;
ctx.fillRect(0, 0, 100, 50);
@assert pixel 25,25 == 0,255,0,255;
@assert pixel 50,25 == 0,255,0,255;
@assert pixel 75,25 == 0,255,0,255;
t.done();
expected: green
- name: 2d.pattern.basic.image - name: 2d.pattern.basic.image
testing: testing:
- 2d.pattern.painting - 2d.pattern.painting

View file

@ -0,0 +1,135 @@
<title>
Check the ReportingObserver(s) are notified about the coop-access-violation
events.
</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/common/get-host-info.sub.js></script>
<script src="/common/utils.js"></script>
<script src="../resources/dispatcher.js"></script>
<script src="../resources/try-access.js"></script>
<script>
const directory = "/html/cross-origin-opener-policy/reporting";
const executor_path = directory + "/resources/executor.html?pipe=";
const https = get_host_info().HTTPS_ORIGIN;
const coep_header = '|header(Cross-Origin-Embedder-Policy,require-corp)';
promise_test(async t => {
// This test window.
const this_window_token = token();
// The "opener" window, using COOP-Report-Only and a reporter.
const opener_token = token();
const opener_reportTo = reportToHeaders(token());
const opener_url = https + executor_path + opener_reportTo.header +
opener_reportTo.coopReportOnlySameOriginHeader + coep_header +
`&uuid=${opener_token}`;
// The "openee" window, NOT using COOP.
const openee_token = token();
const openee_url = https + executor_path + `&uuid=${openee_token}`;
// 1. Create the opener window.
window.open(opener_url);
t.add_cleanup(() => send(opener_token, "window.close();"));
// 2. The opener opens its openee.
send(opener_token, `openee = window.open('${openee_url}');`);
t.add_cleanup(() => send(openee_token, `window.close();`));
// 3. Wait for the openee to load its document.
send(openee_token, `send("${this_window_token}", "Ready");`);
assert_equals(await receive(this_window_token), "Ready");
// 4. The opener tries to access its openee. All reports for blocked access
// from the COOP page should notify the ReportingObservers.
send(opener_token, `
let observer = new ReportingObserver(()=>{});
observer.observe();
tryAccess(openee);
let reports = observer.takeRecords();
send("${this_window_token}", JSON.stringify(reports));
observer.disconnect();
`);
let report_access_from = JSON.parse(await receive(this_window_token));
assert_equals(report_access_from.length, 1, "No report received.");
assert_equals(report_access_from[0].type, "coop-access-violation");
assert_equals(report_access_from[0].url, opener_url.replace(/"/g, '%22'));
assert_true(report_access_from[0].body.sourceFile.includes("try-access.js"));
assert_equals(report_access_from[0].body.lineNumber, 6);
assert_equals(report_access_from[0].body.columnNumber, 7);
assert_equals(report_access_from[0].body.property, "blur");
// 5. The openee tries to access its opener. No reports for blocked access
// to the COOP page should be dispatched.
send(openee_token, `
let observer = new ReportingObserver(()=>{});
observer.observe();
tryAccess(opener);
let reports = observer.takeRecords();
send("${this_window_token}", JSON.stringify(reports));
observer.disconnect();
`);
let report_access_to = JSON.parse(await receive(this_window_token));
assert_equals(report_access_to.length, 0, "Unexpected report received.");
}, "Opener COOP");
promise_test(async t => {
// This test window.
const this_window_token = token();
// The "opener" window, NOT using COOP.
const opener_token = token();
const opener_url = https + executor_path + `&uuid=${opener_token}`;
// The "openee" window, using COOP-Report-Only and a reporter.
const openee_token = token();
const openee_reportTo = reportToHeaders(token());
const openee_url = https + executor_path + openee_reportTo.header +
openee_reportTo.coopReportOnlySameOriginHeader + coep_header +
`&uuid=${openee_token}`;
// 1. Create the opener window.
window.open(opener_url);
t.add_cleanup(() => send(opener_token, "window.close();"));
// 2. The opener opens its openee.
send(opener_token,
`openee = window.open('${openee_url.replace(/,/g, '\\,')}');`);
t.add_cleanup(() => send(openee_token, `window.close();`));
// 3. The openee tries to access its opener. All reports for blocked access
// from the COOP page should notify the ReportingObservers.
send(openee_token, `
let observer = new ReportingObserver(()=>{});
observer.observe();
tryAccess(opener);
let reports = observer.takeRecords();
send("${this_window_token}", JSON.stringify(reports));
observer.disconnect();
`);
let report_access_from = JSON.parse(await receive(this_window_token));
assert_equals(report_access_from.length, 1, "No report received.");
assert_equals(report_access_from[0].type, "coop-access-violation");
assert_equals(report_access_from[0].url, openee_url.replace(/"/g, '%22'));
assert_true(report_access_from[0].body.sourceFile.includes("try-access.js"));
assert_equals(report_access_from[0].body.lineNumber, 6);
assert_equals(report_access_from[0].body.columnNumber, 7);
assert_equals(report_access_from[0].body.property, "blur");
// 4. The opener tries to access its openee. No reports for blocked access
// to the COOP page should be dispatched.
send(opener_token, `
let observer = new ReportingObserver(()=>{});
observer.observe();
tryAccess(openee);
let reports = observer.takeRecords();
send("${this_window_token}", JSON.stringify(reports));
observer.disconnect();
`);
let report_access_to = JSON.parse(await receive(this_window_token));
assert_equals(report_access_to.length, 0, "Unexpected report received.");
}, "Openee COOP");
</script>

View file

@ -0,0 +1,84 @@
<title>
COOP reports are to the opener when the opener used COOP-RO+COEP and then its
cross-origin openee tries to access it.
</title>
<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/common/get-host-info.sub.js></script>
<script src="/common/utils.js"></script>
<script src="../resources/dispatcher.js"></script>
<script src="../resources/try-access.js"></script>
<script>
const directory = "/html/cross-origin-opener-policy/reporting";
const executor_path = directory + "/resources/executor.html?pipe=";
const same_origin = get_host_info().HTTPS_ORIGIN;
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
const coep_header = '|header(Cross-Origin-Embedder-Policy,require-corp)';
promise_test(async t => {
// The test window.
const this_window_token = token();
// The "opener" window. This has COOP same-origin-allow-popups and a reporter.
const opener_report_token= token();
const opener_token = token();
const opener_reportTo = reportToHeaders(opener_report_token);
const opener_url = same_origin + executor_path + opener_reportTo.header +
opener_reportTo.coopSameOriginAllowPopupsHeader +
`&uuid=${opener_token}`;
// The "openee" window.
// The initial URL is cross-origin with the opener, and redirects to a
// same-origin page with same-origin-allow-popups.
// The navigation to the cross-origin page stays in the same browsing context
// group due to the same-origin-allow-popups policy, but the redirect to the
// final page does since it compares the cross-origin/unsafe-none document
// with the same-origin/same-origin-allow-popups document.
const openee_token = token();
const openee_redirect_url = same_origin + executor_path +
opener_reportTo.header + opener_reportTo.coopSameOriginAllowPopupsHeader +
`&uuid=${openee_token}`;
const redirect_header = 'status(302)' +
`|header(Location,${encodeURIComponent(
openee_redirect_url
.replace(/,/g, "\\,")
.replace(/\\\\,/g, "\\\\\\,")
.replace(/\(/g, "%28")
.replace(/\)/g, "%29"))})`;
const openee_url = cross_origin + executor_path + redirect_header +
`&uuid=${openee_token}`;
// 1. Create the opener window.
let opener_window_proxy = window.open(opener_url);
t.add_cleanup(() => send(opener_token, "window.close()"));
// 2. The opener opens its openee.
send(opener_token, `
openee = window.open("${openee_url}");
`);
t.add_cleanup(() => send(openee_token, "window.close()"));
// 3. Check the opener status on the openee.
send(openee_token, `
send("${this_window_token}", opener !== null);
`);
assert_equals(await receive(this_window_token), "false", "opener");
// 4. Check the openee status on the opener.
send(opener_token, `
send("${this_window_token}", openee.closed);
`);
assert_equals(await receive(this_window_token), "true", "openee.closed");
// 5. Check a report sent to the openee.
let report = await receiveReport(opener_report_token, "navigation-to-document")
assert_not_equals(report, "timeout", "Report not received");
assert_equals(report.type, "coop");
assert_equals(report.url, openee_redirect_url.replace(/"/g, '%22'));
assert_equals(report.body["disposition"], "enforce");
assert_equals(report.body["effective-policy"], "same-origin-allow-popups");
assert_equals(report.body["document-uri"], openee_url);
}, "Cross-origin openee redirected to same-origin with same-origin-allow-popups");
</script>

View file

@ -64,6 +64,8 @@ const reportToHeaders = function(uuid) {
return { return {
header: `|header(report-to,${reportToJSON})`, header: `|header(report-to,${reportToJSON})`,
coopSameOriginHeader: `|header(Cross-Origin-Opener-Policy,same-origin%3Breport-to="${uuid}")`, coopSameOriginHeader: `|header(Cross-Origin-Opener-Policy,same-origin%3Breport-to="${uuid}")`,
coopSameOriginAllowPopupsHeader: `|header(Cross-Origin-Opener-Policy,same-origin-allow-popups%3Breport-to="${uuid}")`,
coopReportOnlySameOriginHeader: `|header(Cross-Origin-Opener-Policy-Report-Only,same-origin%3Breport-to="${uuid}")`, coopReportOnlySameOriginHeader: `|header(Cross-Origin-Opener-Policy-Report-Only,same-origin%3Breport-to="${uuid}")`,
coopReportOnlySameOriginAllowPopupsHeader: `|header(Cross-Origin-Opener-Policy-Report-Only,same-origin-allow-popups%3Breport-to="${uuid}")`,
}; };
}; };

View file

@ -14,7 +14,10 @@ dictionary HIDDeviceRequestOptions {
required sequence<HIDDeviceFilter> filters; required sequence<HIDDeviceFilter> filters;
}; };
[SecureContext] [
Exposed=Window,
SecureContext
]
interface HID : EventTarget { interface HID : EventTarget {
attribute EventHandler onconnect; attribute EventHandler onconnect;
attribute EventHandler ondisconnect; attribute EventHandler ondisconnect;
@ -32,9 +35,10 @@ dictionary HIDConnectionEventInit : EventInit {
}; };
[ [
Constructor(DOMString type, HIDConnectionEventInit eventInitDict), Exposed=Window,
SecureContext SecureContext
] interface HIDConnectionEvent : Event { ] interface HIDConnectionEvent : Event {
constructor(DOMString type, HIDConnectionEventInit eventInitDict);
[SameObject] readonly attribute HIDDevice device; [SameObject] readonly attribute HIDDevice device;
}; };
@ -45,9 +49,10 @@ dictionary HIDInputReportEventInit : EventInit {
}; };
[ [
Constructor(DOMString type, HIDInputReportEventInit eventInitDict), Exposed=Window,
SecureContext SecureContext
] interface HIDInputReportEvent : Event { ] interface HIDInputReportEvent : Event {
constructor(DOMString type, HIDInputReportEventInit eventInitDict);
[SameObject] readonly attribute HIDDevice device; [SameObject] readonly attribute HIDDevice device;
readonly attribute octet reportId; readonly attribute octet reportId;
readonly attribute DataView data; readonly attribute DataView data;
@ -58,7 +63,10 @@ enum HIDUnitSystem {
"english-rotation", "vendor-defined", "reserved" "english-rotation", "vendor-defined", "reserved"
}; };
[SecureContext] interface HIDReportItem { [
Exposed=Window,
SecureContext
] interface HIDReportItem {
readonly attribute boolean isAbsolute; readonly attribute boolean isAbsolute;
readonly attribute boolean isArray; readonly attribute boolean isArray;
readonly attribute boolean isRange; readonly attribute boolean isRange;
@ -66,38 +74,55 @@ enum HIDUnitSystem {
readonly attribute FrozenArray<unsigned long> usages; readonly attribute FrozenArray<unsigned long> usages;
readonly attribute unsigned long usageMinimum; readonly attribute unsigned long usageMinimum;
readonly attribute unsigned long usageMaximum; readonly attribute unsigned long usageMaximum;
readonly attribute unsigned long designatorMinimum;
readonly attribute unsigned long designatorMaximum;
readonly attribute unsigned long stringMinimum;
readonly attribute unsigned long stringMaximum;
readonly attribute unsigned short reportSize; readonly attribute unsigned short reportSize;
readonly attribute unsigned short reportCount; readonly attribute unsigned short reportCount;
readonly attribute unsigned long unitExponent; readonly attribute byte unitExponent;
readonly attribute HIDUnitSystem unitSystem; readonly attribute unsigned long unit;
readonly attribute byte unitFactorLengthExponent;
readonly attribute byte unitFactorMassExponent;
readonly attribute byte unitFactorTimeExponent;
readonly attribute byte unitFactorTemperatureExponent;
readonly attribute byte unitFactorCurrentExponent;
readonly attribute byte unitFactorLuminousIntensityExponent;
readonly attribute long logicalMinimum; readonly attribute long logicalMinimum;
readonly attribute long logicalMaximum; readonly attribute long logicalMaximum;
readonly attribute long physicalMinimum; readonly attribute long physicalMinimum;
readonly attribute long physicalMaximum; readonly attribute long physicalMaximum;
readonly attribute FrozenArray<DOMString> strings;
}; };
[SecureContext] interface HIDReportInfo { [
Exposed=Window,
SecureContext
] interface HIDReportInfo {
readonly attribute octet reportId; readonly attribute octet reportId;
readonly attribute FrozenArray<HIDReportItem> items; readonly attribute FrozenArray<HIDReportItem> items;
}; };
[SecureContext] interface HIDCollectionInfo { dictionary HIDFieldOptions {
required octet reportId;
required unsigned long fieldIndex;
boolean isFeatureReport;
};
[
Exposed=Window,
SecureContext
] interface HIDCollectionInfo {
readonly attribute unsigned short usagePage; readonly attribute unsigned short usagePage;
readonly attribute unsigned short usage; readonly attribute unsigned short usage;
readonly attribute FrozenArray<HIDCollectionInfo> children; readonly attribute FrozenArray<HIDCollectionInfo> children;
readonly attribute FrozenArray<HIDReportInfo> inputReports; readonly attribute FrozenArray<HIDReportInfo> inputReports;
readonly attribute FrozenArray<HIDReportInfo> outputReports; readonly attribute FrozenArray<HIDReportInfo> outputReports;
readonly attribute FrozenArray<HIDReportInfo> featureReports; readonly attribute FrozenArray<HIDReportInfo> featureReports;
readonly attribute FrozenArray<octet> reportIds;
double getField(BufferSource reportData, HIDFieldOptions options);
void setField(BufferSource reportData, HIDFieldOptions options,
double value);
}; };
[SecureContext] interface HIDDevice : EventTarget { [
Exposed=Window,
SecureContext
] interface HIDDevice : EventTarget {
attribute EventHandler oninputreport; attribute EventHandler oninputreport;
readonly attribute boolean opened; readonly attribute boolean opened;
readonly attribute unsigned short vendorId; readonly attribute unsigned short vendorId;
@ -106,7 +131,7 @@ enum HIDUnitSystem {
readonly attribute FrozenArray<HIDCollectionInfo> collections; readonly attribute FrozenArray<HIDCollectionInfo> collections;
Promise<void> open(); Promise<void> open();
Promise<void> close(); Promise<void> close();
Promise<void> sendReport(octet reportId, BufferSource data); Promise<void> sendReport([EnforceRange] octet reportId, BufferSource data);
Promise<void> sendFeatureReport(octet reportId, BufferSource data); Promise<void> sendFeatureReport([EnforceRange] octet reportId, BufferSource data);
Promise<DataView> receiveFeatureReport(octet reportId); Promise<DataView> receiveFeatureReport([EnforceRange] octet reportId);
}; };

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<title>Layout Instability: simple block movement is detected</title>
<link rel="help" href="https://wicg.github.io/layout-instability/" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/util.js"></script>
<body style="writing-mode: vertical-rl">
<div style="height: 200px; font-size: 20px; line-height: 25px">
1AAAAAAA<br>
2AAAAAAA<br>
3AAAAAAA<br>
<div id="inline-block" style="display: inline-block; width: 50px">4AAAAAAA</div><br>
5AAAAAAA<br>
6AAAAAAA<br>
7AAAAAAA<br>
</div>
<script>
promise_test(async () => {
const watcher = new ScoreWatcher;
// Wait for the initial render to complete.
await waitForAnimationFrames(2);
// Modify the position of the div.
const inline_block = document.querySelector("#inline-block");
inline_block.style.width = '100px';
// The lines below the inline-block are shifted down by 50px.
// The implementation may measure the real width of the shifted text
// or use the available width (i.e. width of the containing block).
// Also tolerate extra 10% error.
const text_width = inline_block.offsetWidth;
const expectedScoreMin = computeExpectedScore(text_width * (30 * 3 + 50), 50) * 0.9;
const expectedScoreMax = computeExpectedScore(200 * (30 * 3 + 50), 50) * 1.1;
// Observer fires after the frame is painted.
assert_equals(watcher.score, 0);
await watcher.promise;
assert_between_exclusive(watcher.score, expectedScoreMin, expectedScoreMax);
}, 'Inline flow movement.');
</script>
</body>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<title>Layout Instability: simple block movement is detected</title>
<link rel="help" href="https://wicg.github.io/layout-instability/" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/util.js"></script>
<div style="width: 200px; font-size: 20px; line-height: 25px">
1AAAAAAA<br>
2AAAAAAA<br>
3AAAAAAA<br>
<div id="inline-block" style="display: inline-block; height: 50px">4AAAAAAA</div><br>
5AAAAAAA<br>
6AAAAAAA<br>
7AAAAAAA<br>
</div>
<script>
promise_test(async () => {
const watcher = new ScoreWatcher;
// Wait for the initial render to complete.
await waitForAnimationFrames(2);
// Modify the position of the div.
const inline_block = document.querySelector("#inline-block");
inline_block.style.height = '100px';
// The lines below the inline-block are shifted down by 50px.
// The implementation may measure the real width of the shifted text
// or use the available width (i.e. width of the containing block).
// Also tolerate extra 10% error.
const text_width = inline_block.offsetWidth;
const expectedScoreMin = computeExpectedScore(text_width * (30 * 3 + 50), 50) * 0.9;
const expectedScoreMax = computeExpectedScore(200 * (30 * 3 + 50), 50) * 1.1;
// Observer fires after the frame is painted.
assert_equals(watcher.score, 0);
await watcher.promise;
assert_between_exclusive(watcher.score, expectedScoreMin, expectedScoreMax);
}, 'Inline flow movement.');
</script>

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<title>Layout Instability: outline doesn't contribute to layout shift</title>
<link rel="help" href="https://wicg.github.io/layout-instability/" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/util.js"></script>
<div id="target" style="width: 300px; height: 300px"></div>
<script>
promise_test(async () => {
const watcher = new ScoreWatcher;
// Wait for the initial render to complete.
await waitForAnimationFrames(2);
// Add outline for target. This should not generate a shift.
target.style.outline = "10px solid blue";
await waitForAnimationFrames(3);
assert_equals(watcher.score, 0);
}, "Outline.");
</script>

View file

@ -1,30 +1,30 @@
-----BEGIN ENCRYPTED PRIVATE KEY----- -----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIAwsuZ7yJxLsCAggA MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIwt8BG3xFhxYCAggA
MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECCKRswLXsh9PBIIEyKOt42mLeL6h MB0GCWCGSAFlAwQBKgQQSn81QCB6EGEMiE6pZO1i9gSCBND1XL0OV5alXhRx/wna
uPBh63doHoqJxB95pwptR63fqp2RfvZUUzfrWnI2dnn0xRtRcPmf52BR4sliIJJz TuDqgFVyDjKbFWkm4gV394chFtOBSlODjAJnDyn25YUCYAf4pj44OQ13YpxFoFtR
K+h10VO4ailG4mMeP+2VPHFuflQn5xgSC5Vd7jedV0VeycMr0gfZ1XbcMuVIrrW2 lvqA4TKdETHAONdij2CKIfZONO02Z5qURzySYQ2T4GRANS+UtO5KWD2vS0V4xVHL
wQVM/Dbb3A6NHT5yUA+ZTyam3SYh0VrBLp8FQn/22xivmjC5jqZbFqvUl+NnBF0H p+BLLoxQM2TgO5vG9/SiktTY7QI7wS7prqUPiUkROOATMR24E+tNlzmCXVRVpMp6
u9+mdCnlYqcq9qT1b2hC/VVSeOyiCZXVEE8Xn7trLGlSGIjfgNWmdHJYadL9JuWX m8PUecEO4sobYE8KdUgXCiWNb23nok5mM38BTWgxs/6H/ARCPvAUutyqo/gsHMNv
/5xEU3/MZtfj7DfarYvJYONV9pnBEuucWUjRJgbPgMuqZ2sb7Ip/9/XZHvgFgVry uaOhev/yWTlF207/E/EtaS2pQcS0MT9sR7rK5KRLsoxpYrmPnEiid4nVvXPSmFAH
LIJesLiFlk8Eme7kDH8EPny4I5RUuuftOfXz5semCOiQKqsV5jKlByPxYMdh+ADV cRCivlb9+VhhJZTtpLCUPgIj7ek9ljZZsr9lw10FELHJNYgQD/2/hkkhdZMQTF/d
jio0uE55Lb4MGfhxWuzcWD/Rov6IwIg0uuXWpEzjKr0JyVl/84wgni5Hq1O9EgeY I+Yeq89t13PlyrGQUmL5k+XvmiCbWQWfNGw6p4vWznz6iB1P9L5IuWliQRXW4P3U
07VBQOuiEzmhlmVGlkqi1/kFAZ+PkdNUSN7JPgvnVA/VgfigtlcIJ9ampsqau2ym gh/3hRc+C1sDCzCqV1Tr4GFQ7gFTsM5a2AroiT9bJGONGmILPYf6X7UQINruvmBt
KWh3bUKiV0eJVPA3/tvEdBooXn+8DQbt44syD7P52Mfl/bS2Lc5y6mPttVO/mDzu gBLeGJWAtdSN+1Fy7qLz/TbfEYCe0pBChVy1mKuSDXQ3mzWQA4UIJMBeIXkTtEPM
Xg6boDNzaXB/HDUF2Td8RackvqrHPKKXXoAz9w8sxYFGe8JVeuOwfO5HX6JHyscd ijL0Q8SLpt6MTrH8bP78IgrzynugVNvX3gFeVscsGQSUNJvIK+pqgYE1YuwrzNWd
cKqEZNMBLjxedpL0EZMzp72bse1XcvvIv/XChZnfK2Yfhfxcl3RIiTPx3s6FeeIo hpXbQCSgJaLajlyldrXCRudYchqCw4j4Y55BPN4mdgqW6P/9rOyyX9T5Lu/06HZH
TsrNiTF8d/cOLK11/02hEUdo2r5jg8PHoZmXl0A8n6abXVcOnWi5M1tEjNduwKM6 ceRQtsZR5+Qy+aLVL/TJ6nAGp1huVj+Gmz0P+DVb75eqnF7dHBJNqwrrKjq3aIIc
AQURY7Z9AlSsQXw6xj2z60zi8+Iwu3tgD4HP7NqwZRsD99la09HdcI0cSmeaEOTE YrXrKUa1OLkJAm1USHoIKTQS3tG/2xseVdRMCmC8HlaxzXxWxng/ho2L3pQ4MI+e
ByrVyqnOBr8ZJVMLue4yM7+BdlGUabTW+0u0qy9Q1AxueQzUmE4VFKtfjRqIUlAA 5FLqoZruNKUzB9IakfEscEHxleqi+r29gz0FIUWIJU4hPpnE3xL/RF6jP3/f99uJ
6HrfEsOe7HRLKxndctJ7uBXI5ghv3zGd0uZmRyjXsEjGr2JqaZa1HexraB/GHXGD oOhKYVPZLRVgPP7bzO8dzvoF2qiqMRB6lWR7IrOAlHASkfzCkapaOGWgoKf9MqBO
9PZTJWS1mL8KE3o1hSj1yTglhfhJ7Wf/erfBGzctUPKQBkkpzVqZMS6Y2AIHTB5G BptdCA5me2Im5Yrn8DggTogr1o2ZRnvWtZ4S8Ynms4G7P1NM0Da92W08JLLH4/iU
b2wox/lwvFA2clodoT3tbeDmhNHxIuGlOnYtcPhILD7MReDNul1R9HL/SsW7AB6+ 4IimrFl7dPOn3jvKzr5hhGTmmxcVbO/XXnhY5qTqxlaB1fwq424vzQ7XeRMnlPeI
q6R54PsSchNgFhLSdz0q6azXUlk6mcF5BgROvgyoa+7Gv0UlbSQbUuVuLD0k3SMU NQ/oqO/4Kzz0DrezIz36cXtW4hZt+xNzbvy0FQEqBvWJa3+44nP751owIUG+Af4g
Dmpr/w9OmqUsOczYlnPWovh+GbVhze+eFTNIGV/wVNNJQRC1RUNrC/e8af4cp//r EIj04smQz1AgiX+ojnvX8udSRsSfpylsUo8K4oF1uZuY3QlzoRgrb0cjR826YL5v
6jiQ5eNf8rVB8VMeMXRUHxPwRXtFVECuuTdMdPn4U2THJo+45Z0bVG9ytZ6CUP0n byd1pJrgxz0oRxduhzR/bHa4mtVmrHiCOYoBjvzEbfQMhnunri8W3HjNDLu50Pdp
56DWH6/dKeIivEFz/bY4oCZmsIfkjNeo545GRfhFNNGRgrdjCevr0pJtY4h5VjI2 u6xRzUuwL56aF7dqfUafez99KT2eFJBqPmSWnFyfVpL5iFW23KKPD9Oe/jxHWPLh
iPUL85R0xze8oCT0a/GHY6XvpbnRz5qry1c2DoR3IeDQkq9yQjA7WautTbp8UzCd /zLqvHaZk4TCT6E0KCn9mv/S6JSoOt+lD6gUnerLqhOnFTKmrZkWCzfchu8Y8NVJ
1S7RXIkrzPCg4XBIpQu5hswKC7W/UiH7H92ptyl2griC7E0JOfZ/MvgxZpFi8upe nUCdOq/zKZVT1h8p0E8qLVYpTqRGQ4lgPkJt0i1qYJy5FXWmTnZQRdOKeWVh5vwK
yY8j1GDIgwptf9QGLkm/epv/QM6L25wGEE916zQ+3rkUXTXT2oPIi8jaQRsloXci q63ueNwEMGpYCKgm+Gm1StmAQc/eLVL2KmES1BTgTBq1olyiYMHKyIkes1paSvHh
NI3l1FFEQjN4V4it3G2tVnegcAQdX9nsZ97pAq+NOK28OiN9kDN9olV+A0LMe75i kkirSf+XJxbQBXw6MpofKHQ5K9sdEfh8jofGwHudwdkrsXoIv/WTYANyg2h//6xh
BIB/zRUfIeg/TSbYiFV2cQ== qPtyTnrApHAKTsnVbbMt/+4tnw==
-----END ENCRYPTED PRIVATE KEY----- -----END ENCRYPTED PRIVATE KEY-----

View file

@ -1,344 +1,347 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIJAGzCCPwOgAwIBAgIDC/OuMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl MIJAhzCCP2+gAwIBAgIDC+NXMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMDAyMTgyMDI5NDdaFw0zMDAyMTUyMDI5NDda Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMDA3MzAyMDEyNDhaFw0yMjEwMDgyMDEyNDha
MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAL99aWk3dRiYxIjNHlxLzZLMqafa/wArG5Q9T2ELxb0r BQADggEPADCCAQoCggEBAONFL+vCrQenoebExCh0nArZa2+BRz3NmEkS0z7EBtc0
OgDkVUMpiVBmA4rWpGIu8Rge/tHoa3FM76vkxyu3B6/sIfSPWpnU7YN/PQ94bjB4 i6FDQr3lwo+b2zDSqllvrpQHCFReuSagHAW1wPRo0mHicdvhHOCfFc2+bBPXS4db
WTUFQR0LBnKUGbY1XVxe5AO1d1fY3tAmz3NHA46ifWzbVqRPZSzXpuNg5etBmfJ2 8cUNUOc4ClRqOLPwGu+yPteWv/OJPx4nS9COU3HWj+KIAINtKtlxoRe6XbXs2D5J
fZ6reYtgS9VIquUoPSAFMKMt3J46bD6VP8QPcVFzYIL0DrnRlqd1ooMFFBMizXq6 3iMfJcI3ZINVWmnhAlMTKqzMLjn8ouIDAsyCf7aZj+JS39B4GN1CzBbomXEeJHad
9ZSlY2SXA+M57a4lLmvUT51f5W/BtB7ucKbaOnxeZZLYAL9+0+rp922Ee2DroItF 36PChji2R+k7LJPK/4gwOsfSpiTfOoF0FK1IxZwQ9cWRhqEEgcFpt4CZSR0HadlG
MgkAQQcvcuDotWS86VgSF7dPTjQ12E/7eH+9oPQFSxsCAwEAAaOCPWIwgj1eMAwG MYnrgG4a0v/A1BbBQYDe1M0UPttUOHy2+7XHaEdB/vUCAwEAAaOCPc4wgj3KMAwG
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFPa52hYHBbtvyWMwxmdAywPTHpDsMEcGA1Ud A1UdEwQFMAMBAf8wHQYDVR0OBBYEFLN13aCb8lr+F42Asfynt8EreSkrMEcGA1Ud
IwRAMD6AFPa52hYHBbtvyWMwxmdAywPTHpDsoSGkHzAdMRswGQYDVQQDDBJ3ZWIt IwRAMD6AFLN13aCb8lr+F42Asfynt8EreSkroSGkHzAdMRswGQYDVQQDDBJ3ZWIt
cGxhdGZvcm0tdGVzdHOCAwvzrjALBgNVHQ8EBAMCAgQwgh9jBgNVHR4Egh9aMIIf cGxhdGZvcm0tdGVzdHOCAwvjVzALBgNVHQ8EBAMCAgQwgh+bBgNVHR4Egh+SMIIf
VqCCH1IwE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVb3AyLndlYi1wbGF0Zm9ybS50 jqCCH4owE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVb3A4LndlYi1wbGF0Zm9ybS50
ZXN0MBeCFW9wOS53ZWItcGxhdGZvcm0udGVzdDAXghVvcDcud2ViLXBsYXRmb3Jt ZXN0MBeCFW9wNy53ZWItcGxhdGZvcm0udGVzdDAXghVvcDkud2ViLXBsYXRmb3Jt
LnRlc3QwF4IVb3AxLndlYi1wbGF0Zm9ybS50ZXN0MBeCFW9wMy53ZWItcGxhdGZv LnRlc3QwF4IVb3A0LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW5vdC13ZWItcGxhdGZv
cm0udGVzdDAXghVvcDYud2ViLXBsYXRmb3JtLnRlc3QwF4IVbm90LXdlYi1wbGF0 cm0udGVzdDAXghVvcDYud2ViLXBsYXRmb3JtLnRlc3QwF4IVb3AzLndlYi1wbGF0
Zm9ybS50ZXN0MBeCFW9wNS53ZWItcGxhdGZvcm0udGVzdDAXghVvcDQud2ViLXBs Zm9ybS50ZXN0MBeCFW9wMi53ZWItcGxhdGZvcm0udGVzdDAXghVvcDEud2ViLXBs
YXRmb3JtLnRlc3QwF4IVb3A4LndlYi1wbGF0Zm9ybS50ZXN0MBeCFXd3dy53ZWIt YXRmb3JtLnRlc3QwF4IVd3d3LndlYi1wbGF0Zm9ybS50ZXN0MBeCFW9wNS53ZWIt
cGxhdGZvcm0udGVzdDAYghZvcDg3LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wODAu cGxhdGZvcm0udGVzdDAYghZvcDg4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTgu
d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A5NC53ZWItcGxhdGZvcm0udGVzdDAYghZv d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4NS53ZWItcGxhdGZvcm0udGVzdDAYghZv
cDE2LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDAud2ViLXBsYXRmb3JtLnRlc3Qw cDg5LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjYud2ViLXBsYXRmb3JtLnRlc3Qw
GIIWb3AxNy53ZWItcGxhdGZvcm0udGVzdDAYghZvcDcyLndlYi1wbGF0Zm9ybS50 GIIWb3A3Mi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDI0LndlYi1wbGF0Zm9ybS50
ZXN0MBiCFm9wNjQud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AyMy53ZWItcGxhdGZv ZXN0MBiCFm9wNDEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A3OS53ZWItcGxhdGZv
cm0udGVzdDAYghZvcDI4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMTMud2ViLXBs cm0udGVzdDAYghZvcDkxLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTkud2ViLXBs
YXRmb3JtLnRlc3QwGIIWb3AzNi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDExLndl YXRmb3JtLnRlc3QwGIIWb3AzOS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDYwLndl
Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wNzkud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2 Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTgud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3Ay
MS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDQ4LndlYi1wbGF0Zm9ybS50ZXN0MBiC OC53ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cxLndlYi1wbGF0Zm9ybS50ZXN0MBiC
Fm9wMTkud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0Mi53ZWItcGxhdGZvcm0udGVz Fm9wMTQud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2OS53ZWItcGxhdGZvcm0udGVz
dDAYghZvcDQ2LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzcud2ViLXBsYXRmb3Jt dDAYghZvcDQwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNzQud2ViLXBsYXRmb3Jt
LnRlc3QwGIIWb3A5OC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDY2LndlYi1wbGF0 LnRlc3QwGIIWb3AzMS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDE4LndlYi1wbGF0
Zm9ybS50ZXN0MBiCFnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AyNi53ZWIt Zm9ybS50ZXN0MBiCFm9wNzMud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A3Ny53ZWIt
cGxhdGZvcm0udGVzdDAYghZvcDY3LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNzMu cGxhdGZvcm0udGVzdDAYghZvcDEyLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTQu
d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AzOC53ZWItcGxhdGZvcm0udGVzdDAYghZv d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2My53ZWItcGxhdGZvcm0udGVzdDAYghZv
cDYyLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTgud2ViLXBsYXRmb3JtLnRlc3Qw cDcxLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTUud2ViLXBsYXRmb3JtLnRlc3Qw
GIIWb3A1Ni53ZWItcGxhdGZvcm0udGVzdDAYghZvcDIyLndlYi1wbGF0Zm9ybS50 GIIWb3AxNi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDM2LndlYi1wbGF0Zm9ybS50
ZXN0MBiCFm9wMjQud2ViLXBsYXRmb3JtLnRlc3QwGIIWd3d3Mi53ZWItcGxhdGZv ZXN0MBiCFm9wMjcud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AyOS53ZWItcGxhdGZv
cm0udGVzdDAYghZvcDE4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNzQud2ViLXBs cm0udGVzdDAYghZvcDk0LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDQud2ViLXBs
YXRmb3JtLnRlc3QwGIIWb3A5MS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDMzLndl YXRmb3JtLnRlc3QwGIIWb3AzMy53ZWItcGxhdGZvcm0udGVzdDAYghZvcDg0Lndl
Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjkud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3Az Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2
MC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDM5LndlYi1wbGF0Zm9ybS50ZXN0MBiC MS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDcwLndlYi1wbGF0Zm9ybS50ZXN0MBiC
Fm9wNTIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0My53ZWItcGxhdGZvcm0udGVz Fnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0My53ZWItcGxhdGZvcm0udGVz
dDAYghZvcDg1LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzQud2ViLXBsYXRmb3Jt dDAYghZvcDc4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjYud2ViLXBsYXRmb3Jt
LnRlc3QwGIIWb3AyMS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDcxLndlYi1wbGF0 LnRlc3QwGIIWb3A3Ni53ZWItcGxhdGZvcm0udGVzdDAYghZvcDUyLndlYi1wbGF0
Zm9ybS50ZXN0MBiCFm9wNTAud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4NC53ZWIt Zm9ybS50ZXN0MBiCFm9wOTkud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4Ni53ZWIt
cGxhdGZvcm0udGVzdDAYghZvcDMxLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTQu cGxhdGZvcm0udGVzdDAYghZvcDQ2LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMTcu
d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0OS53ZWItcGxhdGZvcm0udGVzdDAYghZv d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A5MC53ZWItcGxhdGZvcm0udGVzdDAYghZv
cDQ0LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDUud2ViLXBsYXRmb3JtLnRlc3Qw cDkzLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMTAud2ViLXBsYXRmb3JtLnRlc3Qw
GIIWb3AzNS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDc2LndlYi1wbGF0Zm9ybS50 GIIWb3A1NS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDQ3LndlYi1wbGF0Zm9ybS50
ZXN0MBiCFm9wMTQud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4MS53ZWItcGxhdGZv ZXN0MBiCFm9wNTEud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A0NS53ZWItcGxhdGZv
cm0udGVzdDAYghZvcDg4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjAud2ViLXBs cm0udGVzdDAYghZvcDgwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjgud2ViLXBs
YXRmb3JtLnRlc3QwGIIWb3A5NS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDUxLndl YXRmb3JtLnRlc3QwGIIWb3A0OS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDU3Lndl
Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wODYud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A1 Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzUud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2
NS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDI3LndlYi1wbGF0Zm9ybS50ZXN0MBiC Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDkyLndlYi1wbGF0Zm9ybS50ZXN0MBiC
Fm9wMTIud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A3NS53ZWItcGxhdGZvcm0udGVz Fm9wMTUud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AxMy53ZWItcGxhdGZvcm0udGVz
dDAYghZvcDQ3LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTYud2ViLXBsYXRmb3Jt dDAYghZvcDc1LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNjQud2ViLXBsYXRmb3Jt
LnRlc3QwGIIWb3A5My53ZWItcGxhdGZvcm0udGVzdDAYghZvcDU3LndlYi1wbGF0 LnRlc3QwGIIWb3A5Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDM3LndlYi1wbGF0
Zm9ybS50ZXN0MBiCFm9wNjMud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A1My53ZWIt Zm9ybS50ZXN0MBiCFm9wNTYud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A2Mi53ZWIt
cGxhdGZvcm0udGVzdDAYghZvcDI5LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjUu cGxhdGZvcm0udGVzdDAYghZvcDgyLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMjUu
d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4My53ZWItcGxhdGZvcm0udGVzdDAYghZv d2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AxMS53ZWItcGxhdGZvcm0udGVzdDAYghZv
cDk3LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDEud2ViLXBsYXRmb3JtLnRlc3Qw cDUwLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzgud2ViLXBsYXRmb3JtLnRlc3Qw
GIIWb3AzMi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDcwLndlYi1wbGF0Zm9ybS50 GIIWb3A4My53ZWItcGxhdGZvcm0udGVzdDAYghZvcDgxLndlYi1wbGF0Zm9ybS50
ZXN0MBiCFm9wNjAud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A5Mi53ZWItcGxhdGZv ZXN0MBiCFm9wMjAud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AyMS53ZWItcGxhdGZv
cm0udGVzdDAYghZvcDc4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wODkud2ViLXBs cm0udGVzdDAYghZvcDIzLndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wNDIud2ViLXBs
YXRmb3JtLnRlc3QwGIIWb3AxMC53ZWItcGxhdGZvcm0udGVzdDAYghZvcDc3Lndl YXRmb3JtLnRlc3QwGIIWb3AyMi53ZWItcGxhdGZvcm0udGVzdDAYghZvcDY1Lndl
Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wNTkud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3Ax Yi1wbGF0Zm9ybS50ZXN0MBiCFm9wOTYud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A4
NS53ZWItcGxhdGZvcm0udGVzdDAYghZvcDY1LndlYi1wbGF0Zm9ybS50ZXN0MBiC Ny53ZWItcGxhdGZvcm0udGVzdDAYghZvcDE5LndlYi1wbGF0Zm9ybS50ZXN0MBiC
Fm9wNjgud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3A5MC53ZWItcGxhdGZvcm0udGVz Fm9wNTMud2ViLXBsYXRmb3JtLnRlc3QwGIIWb3AzMC53ZWItcGxhdGZvcm0udGVz
dDAYghZvcDgyLndlYi1wbGF0Zm9ybS50ZXN0MBuCGW9wNi5ub3Qtd2ViLXBsYXRm dDAYghZvcDQ4LndlYi1wbGF0Zm9ybS50ZXN0MBiCFm9wMzQud2ViLXBsYXRmb3Jt
b3JtLnRlc3QwG4IZb3A4Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAbghlvcDkubm90 LnRlc3QwG4IZb3A2Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAbghlvcDMubm90LXdl
LXdlYi1wbGF0Zm9ybS50ZXN0MBuCGW9wNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw Yi1wbGF0Zm9ybS50ZXN0MBuCGW9wMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZ
G4IZb3A3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAbghl3d3cud3d3LndlYi1wbGF0 b3A1Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAbghl3d3cubm90LXdlYi1wbGF0Zm9y
Zm9ybS50ZXN0MBuCGW9wMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZb3AxLm5v bS50ZXN0MBuCGXd3dy53d3cud2ViLXBsYXRmb3JtLnRlc3QwG4IZb3A3Lm5vdC13
dC13ZWItcGxhdGZvcm0udGVzdDAbghl3d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0 ZWItcGxhdGZvcm0udGVzdDAbghlvcDQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MBuC
MBuCGW9wNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZb3AzLm5vdC13ZWItcGxh GW9wOC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwG4IZb3A5Lm5vdC13ZWItcGxhdGZv
dGZvcm0udGVzdDAcghpvcDI3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDQw cm0udGVzdDAbghlvcDEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzYubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDQ1Lm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDk2Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDI4Lm5vdC13 MByCGm9wNTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjQubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDgzLm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wMzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDMzLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDU2Lm5vdC13ZWItcGxh OTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODMubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghp3d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDYy bS50ZXN0MByCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzMubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDE4Lm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDQ4Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDQzLm5vdC13 MByCGm9wMjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODEubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDg5Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wNzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDYwLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDk1Lm5vdC13ZWItcGxh Nzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDAubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDczLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDkx bS50ZXN0MByCGm9wMjUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjUubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDQyLm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDI2Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDY5Lm5vdC13 MByCGm9wODAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTIubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDMyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wNjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDM3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDk4Lm5vdC13ZWItcGxh NDUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzEubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDE5Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDc2 bS50ZXN0MByCGm9wNzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTAubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDEzLm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wODkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDc5Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghp3d3cyLnd3dy53 MByCGm9wNDkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzcubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDg2Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wNzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDc3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDI5Lm5vdC13ZWItcGxh ODIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dy53d3cxLndlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDU1Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDky bS50ZXN0MByCGm9wMTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzkubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDQ0Lm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDQubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDU0Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDk0Lm5vdC13 MByCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTgubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDM0Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wMTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDMwLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghp3d3cxLnd3dy53ZWItcGxh MzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjIubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDI1Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDY0 bS50ZXN0MByCGm9wNjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTIubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDIwLm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjkubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDUxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDQxLm5vdC13 MByCGm9wOTgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjQubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDEyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wMjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDEwLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDcyLm5vdC13ZWItcGxh MjIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTQubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDIyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDUy bS50ZXN0MByCGm9wMzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzMubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDc0Lm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjMubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDY3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDgwLm5vdC13 MByCGm9wNTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTQubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDg0Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wODUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDMxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDUzLm5vdC13ZWItcGxh NDYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTcubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDIzLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDM1 bS50ZXN0MByCGm9wMzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjAubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDE2Lm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDYzLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDM4Lm5vdC13 MByCGm9wNTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDEubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDU4Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wMzUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDYxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDE0Lm5vdC13ZWItcGxh OTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDIubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDkwLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDcw bS50ZXN0MByCGm9wNjcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMzcubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDExLm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDgubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDE1Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDY1Lm5vdC13 MByCGm9wNTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTYubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDUwLm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wODQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDY4Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDg3Lm5vdC13ZWItcGxh MzQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNjkubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDc4Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghp3d3cu bS50ZXN0MByCGm9wMTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTMubm90
d3d3Mi53ZWItcGxhdGZvcm0udGVzdDAcghpvcDgyLm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDkzLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghp3d3cud3d3MS53 MByCGm9wODYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTMubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDIxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wMjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDcxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDk3Lm5vdC13ZWItcGxh NzYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMjcubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDg4Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDI0 bS50ZXN0MByCGm9wMTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNzUubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDY2Lm5vdC13ZWItcGxhdGZvcm0u LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDQ5Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDU5Lm5vdC13 MByCGm9wNDcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTgubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghpvcDQ2Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wNjMubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDM2Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDM5Lm5vdC13ZWItcGxh Mjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNDMubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdDAcghpvcDQ3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDE3 bS50ZXN0MByCGm9wNjYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIud3d3
Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDc1Lm5vdC13ZWItcGxhdGZvcm0u LndlYi1wbGF0Zm9ybS50ZXN0MByCGm9wOTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
dGVzdDAcghpvcDg1Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghpvcDU3Lm5vdC13 MByCGm9wNzQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wNTkubm90LXdlYi1w
ZWItcGxhdGZvcm0udGVzdDAcghp3d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAc bGF0Zm9ybS50ZXN0MByCGm9wODgubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9w
ghpvcDgxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAdght3d3cyLnd3dzEud2ViLXBs ODcubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGm9wMTAubm90LXdlYi1wbGF0Zm9y
YXRmb3JtLnRlc3QwHYIbd3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3 bS50ZXN0MByCGm9wMTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3
dzIud3d3Mi53ZWItcGxhdGZvcm0udGVzdDAdght3d3cxLnd3dzEud2ViLXBsYXRm Mi53ZWItcGxhdGZvcm0udGVzdDAdght3d3cyLnd3dzIud2ViLXBsYXRmb3JtLnRl
b3JtLnRlc3QwH4Idd3d3Lnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3 c3QwHYIbd3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3MS53
Mi53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCCCHnhuLS1sdmUtNmxhZC53ZWIt ZWItcGxhdGZvcm0udGVzdDAfgh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
cGxhdGZvcm0udGVzdDAggh53d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw dDAggh54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3MS53d3cu
IIIed3d3Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCCCHnd3dy53d3cyLm5v bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCCCHnd3dy53d3cyLm5vdC13ZWItcGxhdGZv
dC13ZWItcGxhdGZvcm0udGVzdDAhgh93d3cxLnd3dzIubm90LXdlYi1wbGF0Zm9y cm0udGVzdDAggh53d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3
bS50ZXN0MCGCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIYIfd3d3 Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzIud3d3Mi5ub3Qtd2Vi
Mi53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAhgh93d3cyLnd3dzIubm90LXdl LXBsYXRmb3JtLnRlc3QwIYIfd3d3Mi53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVz
Yi1wbGF0Zm9ybS50ZXN0MCSCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3Jt dDAhgh93d3cxLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3
LnRlc3QwJIIieG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAkgiJ3 Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwJIIieG4tLWx2ZS02bGFkLnd3dy53ZWIt
d3cueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0MCWCI3d3dzEueG4tLWx2 cGxhdGZvcm0udGVzdDAkgiJ4bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50
ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0MCWCI3d3dzIueG4tLWx2ZS02bGFkLndl ZXN0MCSCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3
Yi1wbGF0Zm9ybS50ZXN0MCWCI3huLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9y Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFk
bS50ZXN0MCWCI3huLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MCiC Lnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzEud2Vi
Jnd3dy54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCiCJnhuLS1s LXBsYXRmb3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt
dmUtNmxhZC53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3d3dzEueG4tLWx2 LnRlc3QwKIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid3d3cyLnhuLS1sdmUtNmxh KIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4t
ZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02bGFkLnd3dzEubm90 LWx2ZS02bGFkLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3d3dzIueG4t
LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWIt LWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid3d3cxLnhuLS1sdmUt
cGxhdGZvcm0udGVzdDArgil4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxh NmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02bGFkLnd3dzIu
dGZvcm0udGVzdDAtgit4bi0tbHZlLTZsYWQueG4tLWx2ZS02bGFkLndlYi1wbGF0 bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCuCKXhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxh LndlYi1wbGF0Zm9ybS50ZXN0MC2CK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
dGZvcm0udGVzdDAvgi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cud2ViLXBs d2ViLXBsYXRmb3JtLnRlc3QwL4Itd3d3LnhuLS1uOGo2ZHM1M2x3d2tycWh2Mjhh
YXRmb3JtLnRlc3QwL4Itd3d3LnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1w LndlYi1wbGF0Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5v
bGF0Zm9ybS50ZXN0MDCCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi dC13ZWItcGxhdGZvcm0udGVzdDAvgi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS53
LXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53 d3cud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFo
ZWItcGxhdGZvcm0udGVzdDAwgi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cx djI4YS53ZWItcGxhdGZvcm0udGVzdDAwgi54bi0tbjhqNmRzNTNsd3drcnFodjI4
LndlYi1wbGF0Zm9ybS50ZXN0MDCCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3 YS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MDCCLnhuLS1uOGo2ZHM1M2x3d2tycWh2
dzIud2ViLXBsYXRmb3JtLnRlc3QwMYIveG4tLWx2ZS02bGFkLnhuLS1sdmUtNmxh MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwMIIud3d3Mi54bi0tbjhqNmRzNTNs
ZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwM4IxeG4tLW44ajZkczUzbHd3a3JxaHYy d3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4t
OGEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF3d3cueG4tLW44ajZkczUz LWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF3d3cueG4tLW44ajZk
bHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDSCMnd3dzEueG4tLW44 czUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDOCMXhuLS1uOGo2
ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDSCMnhuLS1u ZHM1M2x3d2tycWh2MjhhLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyeG4t
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDSC LW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
Mnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50 NIIyd3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3Jt
ZXN0MDSCMnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIubm90LXdlYi1wbGF0 LnRlc3QwNIIyd3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
Zm9ybS50ZXN0MDiCNnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxh YXRmb3JtLnRlc3QwNIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qt
ZC53ZWItcGxhdGZvcm0udGVzdDA4gjZ4bi0tbHZlLTZsYWQueG4tLW44ajZkczUz d2ViLXBsYXRmb3JtLnRlc3QwOII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4t
bHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwPII6eG4tLWx2ZS02bGFkLnhu LWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1sdmUtNmxhZC54bi0t
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdDA8gjp4 bjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbjhq
bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0 NmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50
Zm9ybS50ZXN0MEOCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1 ZXN0MDyCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qt
M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0MEeCRXhuLS1uOGo2ZHM1M2x3 d2ViLXBsYXRmb3JtLnRlc3QwQ4JBeG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4t
d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZv LW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwR4JFeG4tLW44
cm0udGVzdDATBgNVHSUEDDAKBggrBgEFBQcDATCCHVsGA1UdEQSCHVIwgh1OghF3 ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdl
ZWItcGxhdGZvcm0udGVzdIIVb3AyLndlYi1wbGF0Zm9ybS50ZXN0ghVvcDkud2Vi Yi1wbGF0Zm9ybS50ZXN0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMIIdjwYDVR0RBIId
LXBsYXRmb3JtLnRlc3SCFW9wNy53ZWItcGxhdGZvcm0udGVzdIIVb3AxLndlYi1w hjCCHYKCEXdlYi1wbGF0Zm9ybS50ZXN0ghVvcDgud2ViLXBsYXRmb3JtLnRlc3SC
bGF0Zm9ybS50ZXN0ghVvcDMud2ViLXBsYXRmb3JtLnRlc3SCFW9wNi53ZWItcGxh FW9wNy53ZWItcGxhdGZvcm0udGVzdIIVb3A5LndlYi1wbGF0Zm9ybS50ZXN0ghVv
dGZvcm0udGVzdIIVbm90LXdlYi1wbGF0Zm9ybS50ZXN0ghVvcDUud2ViLXBsYXRm cDQud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13ZWItcGxhdGZvcm0udGVzdIIVb3A2
b3JtLnRlc3SCFW9wNC53ZWItcGxhdGZvcm0udGVzdIIVb3A4LndlYi1wbGF0Zm9y LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDMud2ViLXBsYXRmb3JtLnRlc3SCFW9wMi53
bS50ZXN0ghV3d3cud2ViLXBsYXRmb3JtLnRlc3SCFm9wODcud2ViLXBsYXRmb3Jt ZWItcGxhdGZvcm0udGVzdIIVb3AxLndlYi1wbGF0Zm9ybS50ZXN0ghV3d3cud2Vi
LnRlc3SCFm9wODAud2ViLXBsYXRmb3JtLnRlc3SCFm9wOTQud2ViLXBsYXRmb3Jt LXBsYXRmb3JtLnRlc3SCFW9wNS53ZWItcGxhdGZvcm0udGVzdIIWb3A4OC53ZWIt
LnRlc3SCFm9wMTYud2ViLXBsYXRmb3JtLnRlc3SCFm9wNDAud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A5OC53ZWItcGxhdGZvcm0udGVzdIIWb3A4NS53ZWIt
LnRlc3SCFm9wMTcud2ViLXBsYXRmb3JtLnRlc3SCFm9wNzIud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A4OS53ZWItcGxhdGZvcm0udGVzdIIWb3A2Ni53ZWIt
LnRlc3SCFm9wNjQud2ViLXBsYXRmb3JtLnRlc3SCFm9wMjMud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A3Mi53ZWItcGxhdGZvcm0udGVzdIIWb3AyNC53ZWIt
LnRlc3SCFm9wMjgud2ViLXBsYXRmb3JtLnRlc3SCFm9wMTMud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A0MS53ZWItcGxhdGZvcm0udGVzdIIWb3A3OS53ZWIt
LnRlc3SCFm9wMzYud2ViLXBsYXRmb3JtLnRlc3SCFm9wMTEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A5MS53ZWItcGxhdGZvcm0udGVzdIIWb3A1OS53ZWIt
LnRlc3SCFm9wNzkud2ViLXBsYXRmb3JtLnRlc3SCFm9wNjEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AzOS53ZWItcGxhdGZvcm0udGVzdIIWb3A2MC53ZWIt
LnRlc3SCFm9wNDgud2ViLXBsYXRmb3JtLnRlc3SCFm9wMTkud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A1OC53ZWItcGxhdGZvcm0udGVzdIIWb3AyOC53ZWIt
LnRlc3SCFm9wNDIud2ViLXBsYXRmb3JtLnRlc3SCFm9wNDYud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIWb3AxNC53ZWIt
LnRlc3SCFm9wMzcud2ViLXBsYXRmb3JtLnRlc3SCFm9wOTgud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A2OS53ZWItcGxhdGZvcm0udGVzdIIWb3A0MC53ZWIt
LnRlc3SCFm9wNjYud2ViLXBsYXRmb3JtLnRlc3SCFnd3dzEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A3NC53ZWItcGxhdGZvcm0udGVzdIIWb3AzMS53ZWIt
LnRlc3SCFm9wMjYud2ViLXBsYXRmb3JtLnRlc3SCFm9wNjcud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AxOC53ZWItcGxhdGZvcm0udGVzdIIWb3A3My53ZWIt
LnRlc3SCFm9wNzMud2ViLXBsYXRmb3JtLnRlc3SCFm9wMzgud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A3Ny53ZWItcGxhdGZvcm0udGVzdIIWb3AxMi53ZWIt
LnRlc3SCFm9wNjIud2ViLXBsYXRmb3JtLnRlc3SCFm9wNTgud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A1NC53ZWItcGxhdGZvcm0udGVzdIIWb3A2My53ZWIt
LnRlc3SCFm9wNTYud2ViLXBsYXRmb3JtLnRlc3SCFm9wMjIud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A3MS53ZWItcGxhdGZvcm0udGVzdIIWb3A5NS53ZWIt
LnRlc3SCFm9wMjQud2ViLXBsYXRmb3JtLnRlc3SCFnd3dzIud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AxNi53ZWItcGxhdGZvcm0udGVzdIIWb3AzNi53ZWIt
LnRlc3SCFm9wMTgud2ViLXBsYXRmb3JtLnRlc3SCFm9wNzQud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AyNy53ZWItcGxhdGZvcm0udGVzdIIWb3AyOS53ZWIt
LnRlc3SCFm9wOTEud2ViLXBsYXRmb3JtLnRlc3SCFm9wMzMud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A5NC53ZWItcGxhdGZvcm0udGVzdIIWb3A0NC53ZWIt
LnRlc3SCFm9wNjkud2ViLXBsYXRmb3JtLnRlc3SCFm9wMzAud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AzMy53ZWItcGxhdGZvcm0udGVzdIIWb3A4NC53ZWIt
LnRlc3SCFm9wMzkud2ViLXBsYXRmb3JtLnRlc3SCFm9wNTIud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AzMi53ZWItcGxhdGZvcm0udGVzdIIWb3A2MS53ZWIt
LnRlc3SCFm9wNDMud2ViLXBsYXRmb3JtLnRlc3SCFm9wODUud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A3MC53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWIt
LnRlc3SCFm9wMzQud2ViLXBsYXRmb3JtLnRlc3SCFm9wMjEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A0My53ZWItcGxhdGZvcm0udGVzdIIWb3A3OC53ZWIt
LnRlc3SCFm9wNzEud2ViLXBsYXRmb3JtLnRlc3SCFm9wNTAud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AyNi53ZWItcGxhdGZvcm0udGVzdIIWb3A3Ni53ZWIt
LnRlc3SCFm9wODQud2ViLXBsYXRmb3JtLnRlc3SCFm9wMzEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A1Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A5OS53ZWIt
LnRlc3SCFm9wNTQud2ViLXBsYXRmb3JtLnRlc3SCFm9wNDkud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A4Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A0Ni53ZWIt
LnRlc3SCFm9wNDQud2ViLXBsYXRmb3JtLnRlc3SCFm9wNDUud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AxNy53ZWItcGxhdGZvcm0udGVzdIIWb3A5MC53ZWIt
LnRlc3SCFm9wMzUud2ViLXBsYXRmb3JtLnRlc3SCFm9wNzYud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A5My53ZWItcGxhdGZvcm0udGVzdIIWb3AxMC53ZWIt
LnRlc3SCFm9wMTQud2ViLXBsYXRmb3JtLnRlc3SCFm9wODEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A1NS53ZWItcGxhdGZvcm0udGVzdIIWb3A0Ny53ZWIt
LnRlc3SCFm9wODgud2ViLXBsYXRmb3JtLnRlc3SCFm9wMjAud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A1MS53ZWItcGxhdGZvcm0udGVzdIIWb3A0NS53ZWIt
LnRlc3SCFm9wOTUud2ViLXBsYXRmb3JtLnRlc3SCFm9wNTEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A4MC53ZWItcGxhdGZvcm0udGVzdIIWb3A2OC53ZWIt
LnRlc3SCFm9wODYud2ViLXBsYXRmb3JtLnRlc3SCFm9wNTUud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A0OS53ZWItcGxhdGZvcm0udGVzdIIWb3A1Ny53ZWIt
LnRlc3SCFm9wMjcud2ViLXBsYXRmb3JtLnRlc3SCFm9wMTIud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AzNS53ZWItcGxhdGZvcm0udGVzdIIWb3A2Ny53ZWIt
LnRlc3SCFm9wNzUud2ViLXBsYXRmb3JtLnRlc3SCFm9wNDcud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A5Mi53ZWItcGxhdGZvcm0udGVzdIIWb3AxNS53ZWIt
LnRlc3SCFm9wOTYud2ViLXBsYXRmb3JtLnRlc3SCFm9wOTMud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AxMy53ZWItcGxhdGZvcm0udGVzdIIWb3A3NS53ZWIt
LnRlc3SCFm9wNTcud2ViLXBsYXRmb3JtLnRlc3SCFm9wNjMud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A2NC53ZWItcGxhdGZvcm0udGVzdIIWb3A5Ny53ZWIt
LnRlc3SCFm9wNTMud2ViLXBsYXRmb3JtLnRlc3SCFm9wMjkud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AzNy53ZWItcGxhdGZvcm0udGVzdIIWb3A1Ni53ZWIt
LnRlc3SCFm9wMjUud2ViLXBsYXRmb3JtLnRlc3SCFm9wODMud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A2Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A4Mi53ZWIt
LnRlc3SCFm9wOTcud2ViLXBsYXRmb3JtLnRlc3SCFm9wNDEud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AyNS53ZWItcGxhdGZvcm0udGVzdIIWb3AxMS53ZWIt
LnRlc3SCFm9wMzIud2ViLXBsYXRmb3JtLnRlc3SCFm9wNzAud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A1MC53ZWItcGxhdGZvcm0udGVzdIIWb3AzOC53ZWIt
LnRlc3SCFm9wNjAud2ViLXBsYXRmb3JtLnRlc3SCFm9wOTIud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A4My53ZWItcGxhdGZvcm0udGVzdIIWb3A4MS53ZWIt
LnRlc3SCFm9wNzgud2ViLXBsYXRmb3JtLnRlc3SCFm9wODkud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AyMC53ZWItcGxhdGZvcm0udGVzdIIWb3AyMS53ZWIt
LnRlc3SCFm9wMTAud2ViLXBsYXRmb3JtLnRlc3SCFm9wNzcud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AyMy53ZWItcGxhdGZvcm0udGVzdIIWb3A0Mi53ZWIt
LnRlc3SCFm9wNTkud2ViLXBsYXRmb3JtLnRlc3SCFm9wMTUud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AyMi53ZWItcGxhdGZvcm0udGVzdIIWb3A2NS53ZWIt
LnRlc3SCFm9wNjUud2ViLXBsYXRmb3JtLnRlc3SCFm9wNjgud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3A5Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A4Ny53ZWIt
LnRlc3SCFm9wOTAud2ViLXBsYXRmb3JtLnRlc3SCFm9wODIud2ViLXBsYXRmb3Jt cGxhdGZvcm0udGVzdIIWb3AxOS53ZWItcGxhdGZvcm0udGVzdIIWb3A1My53ZWIt
LnRlc3SCGW9wNi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGW9wOC5ub3Qtd2ViLXBs cGxhdGZvcm0udGVzdIIWb3AzMC53ZWItcGxhdGZvcm0udGVzdIIWb3A0OC53ZWIt
YXRmb3JtLnRlc3SCGW9wOS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGW9wNC5ub3Qt cGxhdGZvcm0udGVzdIIWb3AzNC53ZWItcGxhdGZvcm0udGVzdIIZb3A2Lm5vdC13
d2ViLXBsYXRmb3JtLnRlc3SCGW9wNy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGXd3 ZWItcGxhdGZvcm0udGVzdIIZb3AzLm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3Ay
dy53d3cud2ViLXBsYXRmb3JtLnRlc3SCGW9wMi5ub3Qtd2ViLXBsYXRmb3JtLnRl Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A1Lm5vdC13ZWItcGxhdGZvcm0udGVz
c3SCGW9wMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGXd3dy5ub3Qtd2ViLXBsYXRm dIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZv
b3JtLnRlc3SCGW9wNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGW9wMy5ub3Qtd2Vi cm0udGVzdIIZb3A3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A0Lm5vdC13ZWIt
LXBsYXRmb3JtLnRlc3SCGm9wMjcubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQw cGxhdGZvcm0udGVzdIIZb3A4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A5Lm5v
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0NS5ub3Qtd2ViLXBsYXRmb3JtLnRl dC13ZWItcGxhdGZvcm0udGVzdIIZb3AxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
c3SCGm9wOTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI4Lm5vdC13ZWItcGxh b3AzNi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTMubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdIIab3A4My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzMubm90 bS50ZXN0ghpvcDUwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AyNC5ub3Qtd2Vi
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa LXBsYXRmb3JtLnRlc3SCGm9wMzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDk1
d3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjIubm90LXdlYi1wbGF0Zm9y Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A4My5ub3Qtd2ViLXBsYXRmb3JtLnRl
bS50ZXN0ghpvcDE4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0OC5ub3Qtd2Vi c3SCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDczLm5vdC13ZWItcGxh
LXBsYXRmb3JtLnRlc3SCGm9wNDMubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDg5 dGZvcm0udGVzdIIab3AxOS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjEubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2MC5ub3Qtd2ViLXBsYXRmb3JtLnRl LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDgxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
c3SCGm9wOTUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDczLm5vdC13ZWItcGxh b3A3MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzgubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdIIab3A5MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNDIubm90 bS50ZXN0ghpvcDQwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AyNS5ub3Qtd2Vi
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa LXBsYXRmb3JtLnRlc3SCGm9wNjUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cu
b3A2OS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzIubm90LXdlYi1wbGF0Zm9y d3d3Mi53ZWItcGxhdGZvcm0udGVzdIIab3A4MC5ub3Qtd2ViLXBsYXRmb3JtLnRl
bS50ZXN0ghpvcDM3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5OC5ub3Qtd2Vi c3SCGm9wNTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDY4Lm5vdC13ZWItcGxh
LXBsYXRmb3JtLnRlc3SCGm9wMTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDc2 dGZvcm0udGVzdIIab3A0NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzEubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AxMy5ub3Qtd2ViLXBsYXRmb3JtLnRl LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDcyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
c3SCGm9wNzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLnd3dy53ZWItcGxh b3A5MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wODkubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdIIab3A4Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzcubm90 bS50ZXN0ghpvcDQ5Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3Ny5ub3Qtd2Vi
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI5Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa LXBsYXRmb3JtLnRlc3SCGm9wNzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDgy
b3A1NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wOTIubm90LXdlYi1wbGF0Zm9y Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3Lnd3dzEud2ViLXBsYXRmb3JtLnRl
bS50ZXN0ghpvcDQ0Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1NC5ub3Qtd2Vi c3SCGm9wMTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM5Lm5vdC13ZWItcGxh
LXBsYXRmb3JtLnRlc3SCGm9wOTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM0 dGZvcm0udGVzdIIab3A0NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEubm90
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AzMC5ub3Qtd2ViLXBsYXRmb3JtLnRl LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
c3SCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghpvcDI1Lm5vdC13ZWItcGxh b3AxNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzAubm90LXdlYi1wbGF0Zm9y
dGZvcm0udGVzdIIab3A2NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjAubm90 bS50ZXN0ghpvcDYyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2MS5ub3Qtd2Vi
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDUxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa LXBsYXRmb3JtLnRlc3SCGm9wOTIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI5
b3A0MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMTIubm90LXdlYi1wbGF0Zm9y Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5OC5ub3Qtd2ViLXBsYXRmb3JtLnRl
bS50ZXN0ghpvcDEwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3Mi5ub3Qtd2Vi c3SCGm9wNjQubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDI2Lm5vdC13ZWItcGxh
LXBsYXRmb3JtLnRlc3SCGm9wMjIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDUy dGZvcm0udGVzdIIab3AyMi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wOTQubm90
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
b3AzMy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjMubm90LXdlYi1wbGF0Zm9y
bS50ZXN0ghpvcDU3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1NC5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3SCGm9wODUubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQ2
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5Ny5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3SCGm9wMzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDYwLm5vdC13ZWItcGxh
dGZvcm0udGVzdIIab3A5Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTEubm90
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
b3AzNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wOTkubm90LXdlYi1wbGF0Zm9y
bS50ZXN0ghpvcDQyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2Ny5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3SCGm9wMzcubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQ4
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1NS5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3SCGm9wNTYubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDg0Lm5vdC13ZWItcGxh
dGZvcm0udGVzdIIab3AzNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjkubm90
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDExLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
b3A5My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3LndlYi1wbGF0Zm9y
bS50ZXN0ghpvcDg2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AxMy5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3SCGm9wMjAubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDc2
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AyNy5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3SCGm9wMTcubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDc1Lm5vdC13ZWItcGxh
dGZvcm0udGVzdIIab3AxNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNDcubm90
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa
b3A2My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjgubm90LXdlYi1wbGF0Zm9y
bS50ZXN0ghpvcDQzLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2Ni5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3SCGnd3dzIud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghpvcDkx
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3NC5ub3Qtd2ViLXBsYXRmb3JtLnRl Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3NC5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3SCGm9wNjcubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDgwLm5vdC13ZWItcGxh c3SCGm9wNTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDg4Lm5vdC13ZWItcGxh
dGZvcm0udGVzdIIab3A4NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzEubm90 dGZvcm0udGVzdIIab3A4Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMTAubm90
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDUzLm5vdC13ZWItcGxhdGZvcm0udGVzdIIa LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIb
b3AyMy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzUubm90LXdlYi1wbGF0Zm9y d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cyLnd3dzIud2ViLXBsYXRm
bS50ZXN0ghpvcDE2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2My5ub3Qtd2Vi b3JtLnRlc3SCG3d3dzIud3d3MS53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cx
LXBsYXRmb3JtLnRlc3SCGm9wMzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU4 LndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A2MS5ub3Qtd2ViLXBsYXRmb3JtLnRl dIIeeG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gh53d3cxLnd3dy5ub3Qt
c3SCGm9wMTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDkwLm5vdC13ZWItcGxh d2ViLXBsYXRmb3JtLnRlc3SCHnd3dy53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVz
dGZvcm0udGVzdIIab3A3MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMTEubm90 dIIed3d3Mi53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3MS5ub3Qt
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE1Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
b3A2NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTAubm90LXdlYi1wbGF0Zm9y c3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5u
bS50ZXN0ghpvcDY4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A4Ny5ub3Qtd2Vi b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3Jt
LXBsYXRmb3JtLnRlc3SCGm9wNzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cu LnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1s
d3d3Mi53ZWItcGxhdGZvcm0udGVzdIIab3A4Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl dmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZsYWQu
c3SCGm9wOTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cud3d3MS53ZWItcGxh d2ViLXBsYXRmb3JtLnRlc3SCI3d3dzIueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9y
dGZvcm0udGVzdIIab3AyMS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzEubm90 bS50ZXN0giN4bi0tbHZlLTZsYWQud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIjeG4t
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDk3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa LWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCI3d3dzEueG4tLWx2ZS02
b3A4OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjQubm90LXdlYi1wbGF0Zm9y bGFkLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt
bS50ZXN0ghpvcDY2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0OS5ub3Qtd2Vi cGxhdGZvcm0udGVzdIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3Jt
LXBsYXRmb3JtLnRlc3SCGm9wNTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQ2 LnRlc3SCJ3huLS1sdmUtNmxhZC53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AzNi5ub3Qtd2ViLXBsYXRmb3JtLnRl d3d3Mi54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cxLnhu
c3SCGm9wMzkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQ3Lm5vdC13ZWItcGxh LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
dGZvcm0udGVzdIIab3AxNy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzUubm90 d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDg1Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIa OGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
b3A1Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzIubm90LXdlYi1wbGF0Zm9y d2ViLXBsYXRmb3JtLnRlc3SCLXd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53
bS50ZXN0ghpvcDgxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cxLndl ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0ght3d3cxLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCG3d3 Yi1wbGF0Zm9ybS50ZXN0gi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cud2Vi
dzIud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cxLndlYi1wbGF0Zm9y LXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
bS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Mi53d3cu LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2Vi
bm90LXdlYi1wbGF0Zm9ybS50ZXN0gh54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2Vi
LnRlc3SCHnd3dzEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Lnd3dzEu LXBsYXRmb3JtLnRlc3SCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
bm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cud3d3Mi5ub3Qtd2ViLXBsYXRmb3Jt LXBsYXRmb3JtLnRlc3SCL3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdl
LnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3 Yi1wbGF0Zm9ybS50ZXN0gjF3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90
MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRm LXdlYi1wbGF0Zm9ybS50ZXN0gjF4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cu
b3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInhuLS1s
dmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt
LnRlc3SCI3d3dzEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0giN3d3cy
LnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIjeG4tLWx2ZS02bGFkLnd3
dzIud2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0
Zm9ybS50ZXN0giZ3d3cueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVz
dIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3d3dzEu
eG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdIInd3d3Mi54bi0tbHZl
LTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid4bi0tbHZlLTZsYWQud3d3MS5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWIt
cGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRm
b3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3Jt
LnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0u
dGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1wbGF0Zm9ybS50
ZXN0gi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRl
c3SCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRl
c3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRl
c3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRl
c3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRl
c3SCL3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50
ZXN0gjF4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0Zm9y
bS50ZXN0gjF3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0
Zm9ybS50ZXN0gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWIt
cGxhdGZvcm0udGVzdIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3SCMnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53 bm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53
d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZkczUzbHd3a3JxaHYy d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIyd3d3MS54bi0tbjhqNmRzNTNsd3dr
OGEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbHZlLTZsYWQu cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCMnd3dzIueG4tLW44ajZkczUz
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1s bHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ4bi0tbjhqNmRzNTNs
dmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3Jt d3drcnFodjI4YS53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZk
czUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4
bi0tbHZlLTZsYWQueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3Jt
LnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qt LnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1u d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3dr
OGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRz cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
NTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0
YXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAIeTu2IyTpAPbUYCxfR3T6Bq gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
d5Ymo3TG8pnZrsYqzHtCIvGoO81JEIJdhPyitbJd/usbtkEThLhafeQi9RmiCZYv YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAHjDIDWw
CUex0IdUxHaW36Zx4kIzNLf02zcxwBJtAFpf/yAsQdKII0ZFNGR1WkRqnatfz5ty i7O1qdt/nBYLqerRN8HqAY6CRWENg50zWKGIPCr2lz2vLDfASy4pUH2ZgPVXWCrN
SK/S593MY9sO7xdxsPcQnJ7WPaXK660yO1Gotbh4bRwpdL8uJvFVpe6+UAOS64Mk Nkw2gHUtMYf1KdY6FOVvRvEWbccsUUR/mPDpjxXkbiALo1WHm/h7NSMg4aqyZi8q
jKyFIy3Z9Hlb+HPV0wFBS89WqqEfAoLkbrf0KEjoBrvIlIXf8/tLogTTUSbZd667 IJfWwVOgxCOYj5AroHguRG5NvyQ0pcvrVAYUN03DvnV0AT4jxzDi6mo9zLkpgmsM
qf88SX/0tYVMEYC6/IUiyigAx/hMiuWCDCS10mWLwYfPs2JwDQRlSIoveNBp+wg= GLE4LaHgJfkbhuaX2g0tPSee7pJeXAz/2BaGWyPtb0XGTn5GEPLNDlMKuNCVZewX
k1Ukk3EAUph+VJXTro3qscP4AJRknLLfoM7LIwPgVrN+4bvHA3w0XIlnreQ25dhF
1Z567hdoFFgoHdY=
-----END CERTIFICATE----- -----END CERTIFICATE-----

Some files were not shown because too many files have changed in this diff Show more