<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>42200</bug_id>
          
          <creation_ts>2010-07-13 14:27:21 -0700</creation_ts>
          <short_desc>Rename bug-zzzzz.html WebGL tests</short_desc>
          <delta_ts>2010-07-13 14:39:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>oliver</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250741</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-07-13 14:27:21 -0700</bug_when>
    <thetext>There are five WebGL layout tests with the naming convention bug-zzzzz.html which need to be renamed for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250744</commentid>
    <comment_count>1</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-07-13 14:30:45 -0700</bug_when>
    <thetext>We should rename a few others, for example,

texImage2DImageDataTest.html =&gt; tex-image-2d-image-data-test.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250749</commentid>
    <comment_count>2</comment_count>
      <attachid>61417</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-07-13 14:32:36 -0700</bug_when>
    <thetext>Created attachment 61417
Patch

From the ChangeLog:

Per changes already made to Khronos copy of tests, renamed:
  bug-31889.html to array-buffer-crash.html
  bug-32364.html to tex-image-and-uniform-binding-bugs.html
  bug-32692.html to index-validation-verifies-too-many-indices.html
  bug-32888.html to texture-transparent-pixels-initialized.html

Deleted bug-32456.html because it is now redundant; its functionality is already in array-unit-tests.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250751</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-07-13 14:39:25 -0700</bug_when>
    <thetext>Committed r63249: &lt;http://trac.webkit.org/changeset/63249&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61417</attachid>
            <date>2010-07-13 14:32:36 -0700</date>
            <delta_ts>2010-07-13 14:34:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>test-renaming.patch</filename>
            <type>text/plain</type>
            <size>34828</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYzMjQ0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAKKzIwMTAtMDctMTMgIEtlbm5ldGggUnVzc2VsbCAg
PGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbmFtZSBidWctenp6enouaHRtbCBXZWJHTCB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyMDAKKworICAgICAgICBQZXIg
Y2hhbmdlcyBhbHJlYWR5IG1hZGUgdG8gS2hyb25vcyBjb3B5IG9mIHRlc3RzLCByZW5hbWVkOgor
ICAgICAgICAgIGJ1Zy0zMTg4OS5odG1sIHRvIGFycmF5LWJ1ZmZlci1jcmFzaC5odG1sCisgICAg
ICAgICAgYnVnLTMyMzY0Lmh0bWwgdG8gdGV4LWltYWdlLWFuZC11bmlmb3JtLWJpbmRpbmctYnVn
cy5odG1sCisgICAgICAgICAgYnVnLTMyNjkyLmh0bWwgdG8gaW5kZXgtdmFsaWRhdGlvbi12ZXJp
Zmllcy10b28tbWFueS1pbmRpY2VzLmh0bWwKKyAgICAgICAgICBidWctMzI4ODguaHRtbCB0byB0
ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sCisKKyAgICAgICAgRGVs
ZXRlZCBidWctMzI0NTYuaHRtbCBiZWNhdXNlIGl0IGlzIG5vdyByZWR1bmRhbnQ7IGl0cworICAg
ICAgICBmdW5jdGlvbmFsaXR5IGlzIGFscmVhZHkgaW4gYXJyYXktdW5pdC10ZXN0cy5odG1sLgor
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktYnVmZmVyLWNyYXNoLWV4cGVjdGVk
LnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMxODg5
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1idWZmZXIt
Y3Jhc2guaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVn
LTMxODg5Lmh0bWwuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMxODg5LWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9idWctMzE4ODku
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9idWctMzIzNjQtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjM2
NC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjQ1Ni1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMy
NDU2Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyNjky
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9idWct
MzI2OTIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9idWctMzI4
ODgtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2J1
Zy0zMjg4OC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2luZGV4
LXZhbGlkYXRpb24tdmVyaWZpZXMtdG9vLW1hbnktaW5kaWNlcy1leHBlY3RlZC50eHQ6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjY5Mi1leHBlY3RlZC50
eHQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFsaWRhdGlvbi12ZXJpZmll
cy10b28tbWFueS1pbmRpY2VzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2J1Zy0zMjY5Mi5odG1sLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3Rl
eC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzIzNjQtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5n
LWJ1Z3MuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVn
LTMyMzY0Lmh0bWwuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdGV4dHVyZS10cmFuc3Bh
cmVudC1waXhlbHMtaW5pdGlhbGl6ZWQtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzI4ODgtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGZhc3QvY2FudmFzL3dlYmdsL3RleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxzLWluaXRpYWxpemVk
Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjg4
OC5odG1sLgorCiAyMDEwLTA3LTEzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LWJ1ZmZlci1jcmFzaC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktYnVmZmVy
LWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjMyMzMpCShmcm9tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2J1Zy0zMTg4OS1leHBlY3RlZC50eHQ6NjMyMzMpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1idWZmZXItY3Jhc2gtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4ODkgOiBbdjhdIFdlYkNvcmU6Oldl
YkdMQXJyYXlCdWZmZXJJbnRlcm5hbDo6Ynl0ZUxlbmd0aEF0dHJHZXR0ZXIgTlVMTCBwb2ludGVy
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBuZXcgV2ViR0xBcnJheUJ1ZmZl
cigpLmJ5dGVMZW5ndGggZGlkIG5vdCBjcmFzaAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2FycmF5LWJ1ZmZlci1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2FycmF5LWJ1ZmZlci1jcmFzaC5odG1sCShyZXZpc2lvbiA2MzIzMykJ
KGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMxODg5Lmh0bWw6NjMyMzMp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1idWZmZXItY3Jhc2guaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCdSZWdyZXNzaW9uIHRl
c3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTg4OSI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODg5PC9hPiA6
IDxjb2RlPlt2OF0gV2ViQ29yZTo6V2ViR0xBcnJheUJ1ZmZlckludGVybmFsOjpieXRlTGVuZ3Ro
QXR0ckdldHRlciBOVUxMIHBvaW50ZXI8L2NvZGU+Jyk7CisKKzwhLS0gVGhlIGZvbGxvd2luZyB1
c2VkIHRvIGNhdXNlIGEgY3Jhc2ggaW4gQ2hyb21lIC0tPgorbmV3IFdlYkdMQXJyYXlCdWZmZXIo
KS5ieXRlTGVuZ3RoOworCit0ZXN0UGFzc2VkKCJuZXcgV2ViR0xBcnJheUJ1ZmZlcigpLmJ5dGVM
ZW5ndGggZGlkIG5vdCBjcmFzaCIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMxODg5LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzE4ODktZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA2MzIzMykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2J1Zy0zMTg4OS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMCwwIEBA
Ci1SZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMTg4OSA6IFt2OF0gV2ViQ29yZTo6V2ViR0xBcnJheUJ1ZmZlckludGVybmFsOjpieXRl
TGVuZ3RoQXR0ckdldHRlciBOVUxMIHBvaW50ZXIKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi1QQVNTIG5ldyBXZWJHTEFycmF5QnVmZmVyKCkuYnl0ZUxlbmd0aCBkaWQgbm90IGNyYXNo
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMxODg5Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMxODg5Lmh0bWwJKHJldmlz
aW9uIDYzMjMzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMxODg5Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMjggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIi8+Ci08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotCi1kZXNjcmlwdGlvbignUmVncmVzc2lvbiB0
ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzE4ODkiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTg4OTwvYT4g
OiA8Y29kZT5bdjhdIFdlYkNvcmU6OldlYkdMQXJyYXlCdWZmZXJJbnRlcm5hbDo6Ynl0ZUxlbmd0
aEF0dHJHZXR0ZXIgTlVMTCBwb2ludGVyPC9jb2RlPicpOwotCi08IS0tIFRoZSBmb2xsb3dpbmcg
dXNlZCB0byBjYXVzZSBhIGNyYXNoIGluIENocm9tZSAtLT4KLW5ldyBXZWJHTEFycmF5QnVmZmVy
KCkuYnl0ZUxlbmd0aDsKLQotdGVzdFBhc3NlZCgibmV3IFdlYkdMQXJyYXlCdWZmZXIoKS5ieXRl
TGVuZ3RoIGRpZCBub3QgY3Jhc2giKTsKLXN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotCi08c2NyaXB0PgotPC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjM2NC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyMzY0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNjMyMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9idWctMzIzNjQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAg
QEAKLVJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMyMzY0IDogW0Nocm9taXVtXSBTcG9yZVZpZXdlciBkZW1vIGRvZXNuJ3Qgd29yayBp
biBDaHJvbWl1bQotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVBBU1MgZ2wudXNlUHJv
Z3JhbShmbG9hdFByb2dyYW0pIGlzIHVuZGVmaW5lZC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBn
bC5OT19FUlJPUgotUEFTUyBnbC51bmlmb3JtNGZ2KGZ2YWw0TG9jLCBuZXcgV2ViR0xGbG9hdEFy
cmF5KFswLjEsIDAuMiwgMC40LCAxLjBdKSk7IGlzIHVuZGVmaW5lZC4KLVBBU1MgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSkgaXMgdW5kZWZpbmVkLgotUEFTUyBnbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIHRtcGNhbnZhcykgaXMgdW5kZWZpbmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2J1Zy0zMjM2NC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2J1Zy0zMjM2NC5odG1sCShyZXZpc2lvbiA2MzIzMykKKysrIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2J1Zy0zMjM2NC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4K
LQotZGVzY3JpcHRpb24oJ1JlZ3Jlc3Npb24gdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMzY0Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzIzNjQ8L2E+IDogPGNvZGU+W0Nocm9taXVtXSBTcG9yZVZpZXdl
ciBkZW1vIGRvZXNuXCd0IHdvcmsgaW4gQ2hyb21pdW08L2NvZGU+Jyk7Ci0KLXZhciBnbCA9IGNy
ZWF0ZTNEQ29udGV4dCgpOwotdmFyIGZsb2F0UHJvZ3JhbSA9IGxvYWRQcm9ncmFtKGdsLCAicmVz
b3VyY2VzL2Zsb2F0VW5pZm9ybVNoYWRlci52ZXJ0IiwgInJlc291cmNlcy9ub29wVW5pZm9ybVNo
YWRlci5mcmFnIik7Ci1zaG91bGRCZVVuZGVmaW5lZCgiZ2wudXNlUHJvZ3JhbShmbG9hdFByb2dy
YW0pIik7Ci12YXIgZnZhbDRMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24oZmxvYXRQcm9ncmFt
LCAiZnZhbDQiKTsKLXNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7Ci1z
aG91bGRCZVVuZGVmaW5lZCgiZ2wudW5pZm9ybTRmdihmdmFsNExvYywgbmV3IFdlYkdMRmxvYXRB
cnJheShbMC4xLCAwLjIsIDAuNCwgMS4wXSkpOyIpOwotCi12YXIgdG1wY2FudmFzID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci10bXBjYW52YXMud2lkdGggPSAyOwotdG1wY2Fu
dmFzLmhlaWdodCA9IDI7Ci12YXIgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLXNob3Vs
ZEJlVW5kZWZpbmVkKCJnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKSIpOwot
c2hvdWxkQmVVbmRlZmluZWQoImdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgdG1wY2FudmFzKSIpOwotCi1zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyNDU2LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzI0NTYtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA2MzIzMykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2J1Zy0zMjQ1Ni1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBA
QAotUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzI0NTYgOiBFcnJvcnMgaW4gV2ViR0xbVF1BcnJheSBzZXQoKSBhbmQgZ2V0KCkgbWV0
aG9kcwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVRlc3RpbmcgV2ViR0xGbG9hdEFy
cmF5IGluZGV4ZWQgZ2V0dGVyIC8gc2V0dGVyCi1QQVNTIGFycmF5WzBdIGlzIDEuNQotUEFTUyBh
cnJheVswXSA9IDIuNSBpcyAyLjUKLVBBU1MgYXJyYXlbMF0gaXMgMi41Ci1UZXN0aW5nIFdlYkdM
Qnl0ZUFycmF5IGluZGV4ZWQgZ2V0dGVyIC8gc2V0dGVyCi1QQVNTIGFycmF5WzBdID0gMTI3IGlz
IDEyNwotUEFTUyBhcnJheVswXSBpcyAxMjcKLVBBU1MgYXJyYXlbMF0gPSAtMTI4IGlzIC0xMjgK
LVBBU1MgYXJyYXlbMF0gaXMgLTEyOAotVGVzdGluZyBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5IGlu
ZGV4ZWQgZ2V0dGVyIC8gc2V0dGVyCi1QQVNTIGFycmF5WzBdID0gMjU1IGlzIDI1NQotUEFTUyBh
cnJheVswXSBpcyAyNTUKLVRlc3RpbmcgV2ViR0xTaG9ydEFycmF5IGluZGV4ZWQgZ2V0dGVyIC8g
c2V0dGVyCi1QQVNTIGFycmF5WzBdID0gMzI3NjcgaXMgMzI3NjcKLVBBU1MgYXJyYXlbMF0gaXMg
MzI3NjcKLVBBU1MgYXJyYXlbMF0gPSAtMzI3NjggaXMgLTMyNzY4Ci1QQVNTIGFycmF5WzBdIGlz
IC0zMjc2OAotVGVzdGluZyBXZWJHTFVuc2lnbmVkU2hvcnRBcnJheSBpbmRleGVkIGdldHRlciAv
IHNldHRlcgotUEFTUyBhcnJheVswXSA9IDY1NTM1IGlzIDY1NTM1Ci1QQVNTIGFycmF5WzBdIGlz
IDY1NTM1Ci1UZXN0aW5nIFdlYkdMSW50QXJyYXkgaW5kZXhlZCBnZXR0ZXIgLyBzZXR0ZXIKLVBB
U1MgYXJyYXlbMF0gPSAtMjE0NzQ4MzY0OCBpcyAtMjE0NzQ4MzY0OAotUEFTUyBhcnJheVswXSBp
cyAtMjE0NzQ4MzY0OAotUEFTUyBhcnJheVswXSA9IDIxNDc0ODM2NDcgaXMgMjE0NzQ4MzY0Nwot
UEFTUyBhcnJheVswXSBpcyAyMTQ3NDgzNjQ3Ci1UZXN0aW5nIFdlYkdMVW5zaWduZWRJbnRBcnJh
eSBpbmRleGVkIGdldHRlciAvIHNldHRlcgotUEFTUyBhcnJheVswXSA9IDQyOTQ5NjcyOTUgaXMg
NDI5NDk2NzI5NQotUEFTUyBhcnJheVswXSBpcyA0Mjk0OTY3Mjk1Ci1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvYnVnLTMyNDU2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyNDU2Lmh0bWwJKHJldmlzaW9uIDYzMjMzKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyNDU2Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbignUmVncmVzc2lvbiB0ZXN0IGZvciA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0NTYiPmh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ1NjwvYT4gOiA8Y29kZT5FcnJvcnMgaW4g
V2ViR0xbVF1BcnJheSBzZXQoKSBhbmQgZ2V0KCkgbWV0aG9kczwvY29kZT4nKTsKLQotZGVidWco
IlRlc3RpbmcgV2ViR0xGbG9hdEFycmF5IGluZGV4ZWQgZ2V0dGVyIC8gc2V0dGVyIik7Ci12YXIg
YXJyYXkgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsxLjVdKTsKLXNob3VsZEJlKCJhcnJheVswXSIs
ICIxLjUiKTsKLXNob3VsZEJlKCJhcnJheVswXSA9IDIuNSIsICIyLjUiKTsKLXNob3VsZEJlKCJh
cnJheVswXSIsICIyLjUiKTsKLQotZGVidWcoIlRlc3RpbmcgV2ViR0xCeXRlQXJyYXkgaW5kZXhl
ZCBnZXR0ZXIgLyBzZXR0ZXIiKTsKLWFycmF5ID0gbmV3IFdlYkdMQnl0ZUFycmF5KDEpOwotc2hv
dWxkQmUoImFycmF5WzBdID0gMTI3IiwgIjEyNyIpOwotc2hvdWxkQmUoImFycmF5WzBdIiwgIjEy
NyIpOwotc2hvdWxkQmUoImFycmF5WzBdID0gLTEyOCIsICItMTI4Iik7Ci1zaG91bGRCZSgiYXJy
YXlbMF0iLCAiLTEyOCIpOwotCi1kZWJ1ZygiVGVzdGluZyBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5
IGluZGV4ZWQgZ2V0dGVyIC8gc2V0dGVyIik7Ci1hcnJheSA9IG5ldyBXZWJHTFVuc2lnbmVkQnl0
ZUFycmF5KDEpOwotc2hvdWxkQmUoImFycmF5WzBdID0gMjU1IiwgIjI1NSIpOwotc2hvdWxkQmUo
ImFycmF5WzBdIiwgIjI1NSIpOwotCi1kZWJ1ZygiVGVzdGluZyBXZWJHTFNob3J0QXJyYXkgaW5k
ZXhlZCBnZXR0ZXIgLyBzZXR0ZXIiKTsKLWFycmF5ID0gbmV3IFdlYkdMU2hvcnRBcnJheSgxKTsK
LXNob3VsZEJlKCJhcnJheVswXSA9IDMyNzY3IiwgIjMyNzY3Iik7Ci1zaG91bGRCZSgiYXJyYXlb
MF0iLCAiMzI3NjciKTsKLXNob3VsZEJlKCJhcnJheVswXSA9IC0zMjc2OCIsICItMzI3NjgiKTsK
LXNob3VsZEJlKCJhcnJheVswXSIsICItMzI3NjgiKTsKLQotZGVidWcoIlRlc3RpbmcgV2ViR0xV
bnNpZ25lZFNob3J0QXJyYXkgaW5kZXhlZCBnZXR0ZXIgLyBzZXR0ZXIiKTsKLWFycmF5ID0gbmV3
IFdlYkdMVW5zaWduZWRTaG9ydEFycmF5KDEpOwotc2hvdWxkQmUoImFycmF5WzBdID0gNjU1MzUi
LCAiNjU1MzUiKTsKLXNob3VsZEJlKCJhcnJheVswXSIsICI2NTUzNSIpOwotCi1kZWJ1ZygiVGVz
dGluZyBXZWJHTEludEFycmF5IGluZGV4ZWQgZ2V0dGVyIC8gc2V0dGVyIik7Ci1hcnJheSA9IG5l
dyBXZWJHTEludEFycmF5KDEpOwotc2hvdWxkQmUoImFycmF5WzBdID0gLTIxNDc0ODM2NDgiLCAi
LTIxNDc0ODM2NDgiKTsKLXNob3VsZEJlKCJhcnJheVswXSIsICItMjE0NzQ4MzY0OCIpOwotc2hv
dWxkQmUoImFycmF5WzBdID0gMjE0NzQ4MzY0NyIsICIyMTQ3NDgzNjQ3Iik7Ci1zaG91bGRCZSgi
YXJyYXlbMF0iLCAiMjE0NzQ4MzY0NyIpOwotCi1kZWJ1ZygiVGVzdGluZyBXZWJHTFVuc2lnbmVk
SW50QXJyYXkgaW5kZXhlZCBnZXR0ZXIgLyBzZXR0ZXIiKTsKLWFycmF5ID0gbmV3IFdlYkdMVW5z
aWduZWRJbnRBcnJheSgxKTsKLXNob3VsZEJlKCJhcnJheVswXSA9IDQyOTQ5NjcyOTUiLCAiNDI5
NDk2NzI5NSIpOwotc2hvdWxkQmUoImFycmF5WzBdIiwgIjQyOTQ5NjcyOTUiKTsKLQotc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjY5Mi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyNjky
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjMyMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9idWctMzI2OTItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICsw
LDAgQEAKLVJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMyNjkyIDogSW5kZXggdmFsaWRhdGlvbiBmb3IgZHJhd0VsZW1lbnRzIGV4YW1p
bmVzIHRvbyBtYW55IGluZGljZXMKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi1UZXN0
IG91dCBvZiByYW5nZSBpbmRpY2VzCi1QQVNTIGNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQu
VFJJQU5HTEVfU1RSSVAsIDQsIGNvbnRleHQuVU5TSUdORURfU0hPUlQsIDIpIGlzIHVuZGVmaW5l
ZC4KLVBBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkdMRV9TVFJJUCwgNCwg
Y29udGV4dC5VTlNJR05FRF9TSE9SVCwgMCkgdGhyZXcgZXhjZXB0aW9uIEdMIGVycm9yIDEyODIg
aW4gZHJhd0VsZW1lbnRzLgotUEFTUyBjb250ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFO
R0xFX1NUUklQLCA0LCBjb250ZXh0LlVOU0lHTkVEX1NIT1JULCA0KSB0aHJldyBleGNlcHRpb24g
R0wgZXJyb3IgMTI4MiBpbiBkcmF3RWxlbWVudHMuCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9idWctMzI2OTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9idWctMzI2OTIuaHRtbAkocmV2aXNpb24gNjMyMzMpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzI2OTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0
MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbignUmVncmVzc2lvbiB0ZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI2OTIiPmh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMjY5MjwvYT4gOiA8Y29kZT5JbmRleCB2YWxpZGF0aW9uIGZv
ciBkcmF3RWxlbWVudHMgZXhhbWluZXMgdG9vIG1hbnkgaW5kaWNlczwvY29kZT4nKTsKLQotdmFy
IGNvbnRleHQgPSBjcmVhdGUzRERlYnVnQ29udGV4dCgpOwotdmFyIHByb2dyYW0gPSBsb2FkU3Rh
bmRhcmRQcm9ncmFtKGNvbnRleHQpOwotCi1jb250ZXh0LnVzZVByb2dyYW0ocHJvZ3JhbSk7Ci12
YXIgdmVydGV4T2JqZWN0ID0gY29udGV4dC5jcmVhdGVCdWZmZXIoKTsKLWNvbnRleHQuZW5hYmxl
VmVydGV4QXR0cmliQXJyYXkoMCk7Ci1jb250ZXh0LmJpbmRCdWZmZXIoY29udGV4dC5BUlJBWV9C
VUZGRVIsIHZlcnRleE9iamVjdCk7Ci0vLyA0IHZlcnRpY2VzIC0+IDIgdHJpYW5nbGVzCi1jb250
ZXh0LmJ1ZmZlckRhdGEoY29udGV4dC5BUlJBWV9CVUZGRVIsIG5ldyBXZWJHTEZsb2F0QXJyYXko
WyAwLDAsMCwgMCwxLDAsIDEsMCwwLCAxLDEsMCBdKSwgY29udGV4dC5TVEFUSUNfRFJBVyk7Ci1j
b250ZXh0LnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgY29udGV4dC5GTE9BVCwgZmFsc2UsIDAs
IDApOwotCi12YXIgaW5kZXhPYmplY3QgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigpOwotCi1kZWJ1
ZygiVGVzdCBvdXQgb2YgcmFuZ2UgaW5kaWNlcyIpCi1jb250ZXh0LmJpbmRCdWZmZXIoY29udGV4
dC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaW5kZXhPYmplY3QpOwotY29udGV4dC5idWZmZXJEYXRh
KGNvbnRleHQuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG5ldyBXZWJHTFVuc2lnbmVkU2hvcnRBcnJh
eShbIDEwMDAwLCAwLCAxLCAyLCAzLCAxMDAwMCBdKSwgY29udGV4dC5TVEFUSUNfRFJBVyk7Ci1z
aG91bGRCZVVuZGVmaW5lZCgiY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkdMRV9T
VFJJUCwgNCwgY29udGV4dC5VTlNJR05FRF9TSE9SVCwgMikiKTsKLXNob3VsZFRocm93KCJjb250
ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFOR0xFX1NUUklQLCA0LCBjb250ZXh0LlVOU0lH
TkVEX1NIT1JULCAwKSIpOwotc2hvdWxkVGhyb3coImNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRl
eHQuVFJJQU5HTEVfU1RSSVAsIDQsIGNvbnRleHQuVU5TSUdORURfU0hPUlQsIDQpIik7Ci0KLWRl
YnVnKCIiKQotc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzI4
ODgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2J1Zy0zMjg4OC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYzMjMzKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvYnVnLTMyODg4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwxOCArMCwwIEBACi1SZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjg4OCA6IEdhcmJhZ2UgaW4gdHJhbnNwYXJlbnQgcmVn
aW9ucyBvZiBpbWFnZXMgdXBsb2FkZWQgYXMgdGV4dHVyZXMKLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi1DaGVja2luZyBsb3dlciBsZWZ0IGNvcm5lcgotUEFTUyBidWZbaWR4XSA9PSAw
ICYmIGJ1ZltpZHggKyAxXSA9PSAwICYmIGJ1ZltpZHggKyAyXSA9PSAwIGlzIHRydWUKLVBBU1Mg
YnVmW2lkeF0gPT0gMCAmJiBidWZbaWR4ICsgMV0gPT0gMCAmJiBidWZbaWR4ICsgMl0gPT0gMCBp
cyB0cnVlCi1QQVNTIGJ1ZltpZHhdID09IDAgJiYgYnVmW2lkeCArIDFdID09IDAgJiYgYnVmW2lk
eCArIDJdID09IDAgaXMgdHJ1ZQotUEFTUyBidWZbaWR4XSA9PSAwICYmIGJ1ZltpZHggKyAxXSA9
PSAwICYmIGJ1ZltpZHggKyAyXSA9PSAwIGlzIHRydWUKLUNoZWNraW5nIHVwcGVyIGxlZnQgY29y
bmVyCi1QQVNTIGJ1ZltpZHhdID09IDAgJiYgYnVmW2lkeCArIDFdID09IDAgJiYgYnVmW2lkeCAr
IDJdID09IDAgaXMgdHJ1ZQotUEFTUyBidWZbaWR4XSA9PSAwICYmIGJ1ZltpZHggKyAxXSA9PSAw
ICYmIGJ1ZltpZHggKyAyXSA9PSAwIGlzIHRydWUKLVBBU1MgYnVmW2lkeF0gPT0gMCAmJiBidWZb
aWR4ICsgMV0gPT0gMCAmJiBidWZbaWR4ICsgMl0gPT0gMCBpcyB0cnVlCi1QQVNTIGJ1ZltpZHhd
ID09IDAgJiYgYnVmW2lkeCArIDFdID09IDAgJiYgYnVmW2lkeCArIDJdID09IDAgaXMgdHJ1ZQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjg4OC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjg4OC5odG1sCShyZXZpc2lv
biA2MzIzMykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2J1Zy0zMjg4OC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbHMzZC5qcyI+IDwvc2NyaXB0PgotPHNjcmlwdCBp
ZD0idnNoYWRlciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgotYXR0cmlidXRlIHZlYzMgZ19Q
b3NpdGlvbjsKLWF0dHJpYnV0ZSB2ZWMyIGdfVGV4Q29vcmQwOwotCi12YXJ5aW5nIHZlYzIgdGV4
Q29vcmQ7Ci0KLXZvaWQgbWFpbigpCi17Ci0gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGdfUG9zaXRp
b24ueCwgZ19Qb3NpdGlvbi55LCBnX1Bvc2l0aW9uLnosIDEuMCk7Ci0gICAgdGV4Q29vcmQgPSBn
X1RleENvb3JkMDsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4
LXNoYWRlci94LWZyYWdtZW50Ij4KLXVuaWZvcm0gc2FtcGxlcjJEIHRleDsKLXZhcnlpbmcgdmVj
MiB0ZXhDb29yZDsKLQotdm9pZCBtYWluKCkKLXsKLSAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJl
MkQodGV4LCB0ZXhDb29yZCk7Ci19Ci08L3NjcmlwdD4KLQotPHNjcmlwdD4KLXZhciBnbCA9IG51
bGw7Ci12YXIgdGV4dHVyZUxvYyA9IG51bGw7Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFs
c2U7Ci0KLWZ1bmN0aW9uIGluaXQoKQotewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNl
KCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKLSAgICB9Ci0KLSAgICBkZXNjcmlwdGlvbignUmVncmVzc2lvbiB0ZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI4ODgiPmh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjg4ODwvYT4gOiA8Y29kZT5HYXJi
YWdlIGluIHRyYW5zcGFyZW50IHJlZ2lvbnMgb2YgaW1hZ2VzIHVwbG9hZGVkIGFzIHRleHR1cmVz
PC9jb2RlPicpOwotCi0gICAgZ2wgPSBpbml0V2ViR0woImV4YW1wbGUiLCAidnNoYWRlciIsICJm
c2hhZGVyIiwgWyAiZ19Qb3NpdGlvbiIsICJnX1RleENvb3JkMCIgXSwgWyAwLCAwLCAwLCAxIF0s
IDEpOwotCi0gICAgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihnbC5wcm9ncmFt
LCAidGV4Iik7Ci0KLSAgICB2YXIgdmVydGljZXMgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsKLSAg
ICAgICAgIDEuMCwgIDEuMCwgMC4wLAotICAgICAgICAtMS4wLCAgMS4wLCAwLjAsCi0gICAgICAg
IC0xLjAsIC0xLjAsIDAuMCwKLSAgICAgICAgIDEuMCwgIDEuMCwgMC4wLAotICAgICAgICAtMS4w
LCAtMS4wLCAwLjAsCi0gICAgICAgICAxLjAsIC0xLjAsIDAuMF0pOwotICAgIC8vIFRoZSBpbnB1
dCB0ZXh0dXJlIGhhcyA4IGNoYXJhY3RlcnM7IHRha2UgdGhlIGxlZnRtb3N0IG9uZQotICAgIHZh
ciBjb2VmZiA9IDEuMCAvIDguMDsKLSAgICB2YXIgdGV4Q29vcmRzID0gbmV3IFdlYkdMRmxvYXRB
cnJheShbCi0gICAgICAgIGNvZWZmLCAxLjAsCi0gICAgICAgIDAuMCwgMS4wLAotICAgICAgICAw
LjAsIDAuMCwKLSAgICAgICAgY29lZmYsIDEuMCwKLSAgICAgICAgMC4wLCAwLjAsCi0gICAgICAg
IGNvZWZmLCAwLjBdKTsKLSAgICB2YXIgdGV4Q29vcmRPZmZzZXQgPSB2ZXJ0aWNlcy5ieXRlTGVu
Z3RoOwotCi0gICAgdmFyIHZibyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOwotICAgIGdsLmJpbmRCdWZm
ZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOwotICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVG
RkVSLAotICAgICAgICAgICAgICAgICAgdGV4Q29vcmRPZmZzZXQgKyB0ZXhDb29yZHMuYnl0ZUxl
bmd0aCwKLSAgICAgICAgICAgICAgICAgIGdsLlNUQVRJQ19EUkFXKTsKLSAgICBnbC5idWZmZXJT
dWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMCwgdmVydGljZXMpOwotICAgIGdsLmJ1ZmZlclN1YkRh
dGEoZ2wuQVJSQVlfQlVGRkVSLCB0ZXhDb29yZE9mZnNldCwgdGV4Q29vcmRzKTsKLQotICAgIGds
LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOwotICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIo
MCwgMywgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKLSAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheSgxKTsKLSAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FULCBnbC5G
QUxTRSwgMCwgdGV4Q29vcmRPZmZzZXQpOwotCi0gICAgdGV4dHVyZSA9IGxvYWRUZXh0dXJlKCJy
ZXNvdXJjZXMvYnVnLTMyODg4LXRleHR1cmUucG5nIik7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRUZXh0
dXJlKHNyYykgewotICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGds
LmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwg
Z2wuTkVBUkVTVCk7Ci0gICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7Ci0gICAgaW1hZ2Uub25s
b2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOwotICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdM
LCB0cnVlKTsKLSAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JB
LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZSk7Ci0gICAgICAgIHJ1blRlc3QoKTsK
LSAgICB9OwotICAgIGltYWdlLnNyYyA9IHNyYzsKLSAgICByZXR1cm4gdGV4dHVyZTsKLX0KLQot
Ly8gVGhlc2UgdHdvIGRlY2xhcmF0aW9ucyBuZWVkIHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJl
IiB0byBzZWUgdGhlbQotdmFyIGJ1ZiA9IG51bGw7Ci12YXIgaWR4ID0gMDsKLQotZnVuY3Rpb24g
cnVuVGVzdCgpCi17Ci0gICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRI
X0JVRkZFUl9CSVQpOwotICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAK
LSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICAvLyBQb2lu
dCB0aGUgdW5pZm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCi0gICAgZ2wudW5pZm9ybTFp
KHRleHR1cmVMb2MsIDApOwotICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcwotICAgIGdsLmRyYXdB
cnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKLQotICAgIC8vIFJlYWQgYmFjayB0aGUgcmVuZGVy
aW5nIHJlc3VsdHMKLSAgICB2YXIgd2lkdGggPSAzMjsKLSAgICB2YXIgaGVpZ2h0ID0gMzI7Ci0g
ICAgYnVmID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKLSAgICBnbC5yZWFk
UGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1
Zik7Ci0gICAgLy8gU3BvdCBjaGVjayBhIGNvdXBsZSBvZiAyeDIgcmVnaW9ucyBpbiB0aGUgdXBw
ZXIgYW5kIGxvd2VyIGxlZnQKLSAgICAvLyBjb3JuZXJzOyB0aGV5IHNob3VsZCBiZSB0aGUgYmFj
a2dyb3VuZCBjb2xvciByYXRoZXIgdGhhbgotICAgIC8vIGdhcmJhZ2UKLSAgICB2YXIgcXVlcnlX
aWR0aCA9IDI7Ci0gICAgdmFyIHF1ZXJ5SGVpZ2h0ID0gMjsKLSAgICBkZWJ1ZygiQ2hlY2tpbmcg
bG93ZXIgbGVmdCBjb3JuZXIiKTsKLSAgICB2YXIgeG9mZiA9IDE7Ci0gICAgdmFyIHlvZmYgPSBo
ZWlnaHQgLSAzOwotICAgIGZvciAodmFyIHkgPSAwOyB5IDwgcXVlcnlIZWlnaHQ7IHkrKykgewot
ICAgICAgICBmb3IgKHZhciB4ID0gMDsgeCA8IHF1ZXJ5V2lkdGg7IHgrKykgewotICAgICAgICAg
ICAgaWR4ID0gKCh5b2ZmICsgeSkgKiB3aWR0aCAqIDQgKwotICAgICAgICAgICAgICAgICAgICh4
b2ZmICsgeCkgKiA0KTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJidWZbaWR4XSA9PSAwICYmIGJ1
ZltpZHggKyAxXSA9PSAwICYmIGJ1ZltpZHggKyAyXSA9PSAwIiwgInRydWUiKTsKLSAgICAgICAg
fQotICAgIH0KLSAgICBkZWJ1ZygiQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIiKTsKLSAgICB5
b2ZmID0gMTsKLSAgICBmb3IgKHZhciB5ID0gMDsgeSA8IHF1ZXJ5SGVpZ2h0OyB5KyspIHsKLSAg
ICAgICAgZm9yICh2YXIgeCA9IDA7IHggPCBxdWVyeVdpZHRoOyB4KyspIHsKLSAgICAgICAgICAg
IGlkeCA9ICgoeW9mZiArIHkpICogd2lkdGggKiA0ICsKLSAgICAgICAgICAgICAgICAgICAoeG9m
ZiArIHgpICogNCk7Ci0gICAgICAgICAgICBzaG91bGRCZSgiYnVmW2lkeF0gPT0gMCAmJiBidWZb
aWR4ICsgMV0gPT0gMCAmJiBidWZbaWR4ICsgMl0gPT0gMCIsICJ0cnVlIik7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotICAgIHZhciBlcGlsb2d1
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwotICAgIGVwaWxvZ3VlLm9ubG9h
ZCA9IGZpbmlzaDsKLSAgICBlcGlsb2d1ZS5zcmMgPSAiLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGlsb2d1ZSk7Ci19
Ci0KLWZ1bmN0aW9uIGZpbmlzaCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICB9
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTxjYW52YXMg
aWQ9ImV4YW1wbGUiIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiPjwvY2FudmFzPgotPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9pbmRleC12YWxp
ZGF0aW9uLXZlcmlmaWVzLXRvby1tYW55LWluZGljZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luZGV4LXZhbGlkYXRpb24tdmVyaWZp
ZXMtdG9vLW1hbnktaW5kaWNlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYzMjMzKQkoZnJvbSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzI2OTItZXhwZWN0ZWQudHh0OjYzMjMz
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFsaWRhdGlvbi12ZXJp
Zmllcy10b28tbWFueS1pbmRpY2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEzIEBACitSZWdyZXNzaW9uIHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMjY5MiA6IEluZGV4IHZhbGlkYXRpb24gZm9yIGRyYXdFbGVtZW50cyBl
eGFtaW5lcyB0b28gbWFueSBpbmRpY2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
VGVzdCBvdXQgb2YgcmFuZ2UgaW5kaWNlcworUEFTUyBjb250ZXh0LmRyYXdFbGVtZW50cyhjb250
ZXh0LlRSSUFOR0xFX1NUUklQLCA0LCBjb250ZXh0LlVOU0lHTkVEX1NIT1JULCAyKSBpcyB1bmRl
ZmluZWQuCitQQVNTIGNvbnRleHQuZHJhd0VsZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVfU1RSSVAs
IDQsIGNvbnRleHQuVU5TSUdORURfU0hPUlQsIDApIHRocmV3IGV4Y2VwdGlvbiBHTCBlcnJvciAx
MjgyIGluIGRyYXdFbGVtZW50cy4KK1BBU1MgY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5U
UklBTkdMRV9TVFJJUCwgNCwgY29udGV4dC5VTlNJR05FRF9TSE9SVCwgNCkgdGhyZXcgZXhjZXB0
aW9uIEdMIGVycm9yIDEyODIgaW4gZHJhd0VsZW1lbnRzLgorCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvaW5kZXgtdmFsaWRhdGlvbi12ZXJpZmllcy10b28tbWFueS1pbmRpY2VzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvaW5kZXgtdmFs
aWRhdGlvbi12ZXJpZmllcy10b28tbWFueS1pbmRpY2VzLmh0bWwJKHJldmlzaW9uIDYzMjMzKQko
ZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzI2OTIuaHRtbDo2MzIzMykK
KysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2luZGV4LXZhbGlkYXRpb24tdmVyaWZp
ZXMtdG9vLW1hbnktaW5kaWNlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDAgQEAK
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dl
YmdsLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdSZWdyZXNzaW9uIHRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMjY5MiI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMyNjkyPC9hPiA6IDxjb2RlPkluZGV4IHZhbGlkYXRpb24gZm9yIGRyYXdFbGVt
ZW50cyBleGFtaW5lcyB0b28gbWFueSBpbmRpY2VzPC9jb2RlPicpOworCit2YXIgY29udGV4dCA9
IGNyZWF0ZTNERGVidWdDb250ZXh0KCk7Cit2YXIgcHJvZ3JhbSA9IGxvYWRTdGFuZGFyZFByb2dy
YW0oY29udGV4dCk7CisKK2NvbnRleHQudXNlUHJvZ3JhbShwcm9ncmFtKTsKK3ZhciB2ZXJ0ZXhP
YmplY3QgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigpOworY29udGV4dC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgwKTsKK2NvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkFSUkFZX0JVRkZFUiwgdmVy
dGV4T2JqZWN0KTsKKy8vIDQgdmVydGljZXMgLT4gMiB0cmlhbmdsZXMKK2NvbnRleHQuYnVmZmVy
RGF0YShjb250ZXh0LkFSUkFZX0JVRkZFUiwgbmV3IFdlYkdMRmxvYXRBcnJheShbIDAsMCwwLCAw
LDEsMCwgMSwwLDAsIDEsMSwwIF0pLCBjb250ZXh0LlNUQVRJQ19EUkFXKTsKK2NvbnRleHQudmVy
dGV4QXR0cmliUG9pbnRlcigwLCAzLCBjb250ZXh0LkZMT0FULCBmYWxzZSwgMCwgMCk7CisKK3Zh
ciBpbmRleE9iamVjdCA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKCk7CisKK2RlYnVnKCJUZXN0IG91
dCBvZiByYW5nZSBpbmRpY2VzIikKK2NvbnRleHQuYmluZEJ1ZmZlcihjb250ZXh0LkVMRU1FTlRf
QVJSQVlfQlVGRkVSLCBpbmRleE9iamVjdCk7Citjb250ZXh0LmJ1ZmZlckRhdGEoY29udGV4dC5F
TEVNRU5UX0FSUkFZX0JVRkZFUiwgbmV3IFdlYkdMVW5zaWduZWRTaG9ydEFycmF5KFsgMTAwMDAs
IDAsIDEsIDIsIDMsIDEwMDAwIF0pLCBjb250ZXh0LlNUQVRJQ19EUkFXKTsKK3Nob3VsZEJlVW5k
ZWZpbmVkKCJjb250ZXh0LmRyYXdFbGVtZW50cyhjb250ZXh0LlRSSUFOR0xFX1NUUklQLCA0LCBj
b250ZXh0LlVOU0lHTkVEX1NIT1JULCAyKSIpOworc2hvdWxkVGhyb3coImNvbnRleHQuZHJhd0Vs
ZW1lbnRzKGNvbnRleHQuVFJJQU5HTEVfU1RSSVAsIDQsIGNvbnRleHQuVU5TSUdORURfU0hPUlQs
IDApIik7CitzaG91bGRUaHJvdygiY29udGV4dC5kcmF3RWxlbWVudHMoY29udGV4dC5UUklBTkdM
RV9TVFJJUCwgNCwgY29udGV4dC5VTlNJR05FRF9TSE9SVCwgNCkiKTsKKworZGVidWcoIiIpCitz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtdW5p
Zm9ybS1iaW5kaW5nLWJ1Z3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA2MzIzMykJKGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvYnVnLTMyMzY0LWV4cGVjdGVkLnR4dDo2MzIzMykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtdW5pZm9ybS1iaW5kaW5nLWJ1Z3MtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK1JlZ3Jlc3Npb24gdGVzdCBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMzY0IDogW0Nocm9taXVt
XSBTcG9yZVZpZXdlciBkZW1vIGRvZXNuJ3Qgd29yayBpbiBDaHJvbWl1bQorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKK1BBU1MgZ2wudXNlUHJvZ3JhbShmbG9hdFByb2dyYW0pIGlzIHVu
ZGVmaW5lZC4KK1BBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnbC51bmlm
b3JtNGZ2KGZ2YWw0TG9jLCBuZXcgV2ViR0xGbG9hdEFycmF5KFswLjEsIDAuMiwgMC40LCAxLjBd
KSk7IGlzIHVuZGVmaW5lZC4KK1BBU1MgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4
dHVyZSkgaXMgdW5kZWZpbmVkLgorUEFTUyBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHRtcGNhbnZhcykgaXMgdW5kZWZp
bmVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtdW5pZm9y
bS1iaW5kaW5nLWJ1Z3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXVuaWZvcm0tYmluZGluZy1idWdzLmh0bWwJKHJldmlzaW9u
IDYzMjMzKQkoZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9idWctMzIzNjQuaHRt
bDo2MzIzMykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQt
dW5pZm9ybS1iaW5kaW5nLWJ1Z3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBA
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKK2Rl
c2NyaXB0aW9uKCdSZWdyZXNzaW9uIHRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjM2NCI+aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyMzY0PC9hPiA6IDxjb2RlPltDaHJvbWl1bV0gU3BvcmVWaWV3ZXIgZGVt
byBkb2VzblwndCB3b3JrIGluIENocm9taXVtPC9jb2RlPicpOworCit2YXIgZ2wgPSBjcmVhdGUz
RENvbnRleHQoKTsKK3ZhciBmbG9hdFByb2dyYW0gPSBsb2FkUHJvZ3JhbShnbCwgInJlc291cmNl
cy9mbG9hdFVuaWZvcm1TaGFkZXIudmVydCIsICJyZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIu
ZnJhZyIpOworc2hvdWxkQmVVbmRlZmluZWQoImdsLnVzZVByb2dyYW0oZmxvYXRQcm9ncmFtKSIp
OwordmFyIGZ2YWw0TG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKGZsb2F0UHJvZ3JhbSwgImZ2
YWw0Iik7CitzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworc2hvdWxk
QmVVbmRlZmluZWQoImdsLnVuaWZvcm00ZnYoZnZhbDRMb2MsIG5ldyBXZWJHTEZsb2F0QXJyYXko
WzAuMSwgMC4yLCAwLjQsIDEuMF0pKTsiKTsKKwordmFyIHRtcGNhbnZhcyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwordG1wY2FudmFzLndpZHRoID0gMjsKK3RtcGNhbnZhcy5o
ZWlnaHQgPSAyOwordmFyIHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CitzaG91bGRCZVVu
ZGVmaW5lZCgiZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSkiKTsKK3Nob3Vs
ZEJlVW5kZWZpbmVkKCJnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGds
LlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHRtcGNhbnZhcykiKTsKKworc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3RleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxzLWlu
aXRpYWxpemVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC90ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDYzMjMzKQkoZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9idWctMzI4ODgtZXhwZWN0ZWQudHh0OjYzMjMzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvdGV4dHVyZS10cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK1JlZ3Jlc3Npb24gdGVzdCBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyODg4IDogR2FyYmFnZSBp
biB0cmFuc3BhcmVudCByZWdpb25zIG9mIGltYWdlcyB1cGxvYWRlZCBhcyB0ZXh0dXJlcworCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNraW5nIGxvd2VyIGxlZnQgY29ybmVyCitQ
QVNTIGJ1ZltpZHhdID09IDAgJiYgYnVmW2lkeCArIDFdID09IDAgJiYgYnVmW2lkeCArIDJdID09
IDAgaXMgdHJ1ZQorUEFTUyBidWZbaWR4XSA9PSAwICYmIGJ1ZltpZHggKyAxXSA9PSAwICYmIGJ1
ZltpZHggKyAyXSA9PSAwIGlzIHRydWUKK1BBU1MgYnVmW2lkeF0gPT0gMCAmJiBidWZbaWR4ICsg
MV0gPT0gMCAmJiBidWZbaWR4ICsgMl0gPT0gMCBpcyB0cnVlCitQQVNTIGJ1ZltpZHhdID09IDAg
JiYgYnVmW2lkeCArIDFdID09IDAgJiYgYnVmW2lkeCArIDJdID09IDAgaXMgdHJ1ZQorQ2hlY2tp
bmcgdXBwZXIgbGVmdCBjb3JuZXIKK1BBU1MgYnVmW2lkeF0gPT0gMCAmJiBidWZbaWR4ICsgMV0g
PT0gMCAmJiBidWZbaWR4ICsgMl0gPT0gMCBpcyB0cnVlCitQQVNTIGJ1ZltpZHhdID09IDAgJiYg
YnVmW2lkeCArIDFdID09IDAgJiYgYnVmW2lkeCArIDJdID09IDAgaXMgdHJ1ZQorUEFTUyBidWZb
aWR4XSA9PSAwICYmIGJ1ZltpZHggKyAxXSA9PSAwICYmIGJ1ZltpZHggKyAyXSA9PSAwIGlzIHRy
dWUKK1BBU1MgYnVmW2lkeF0gPT0gMCAmJiBidWZbaWR4ICsgMV0gPT0gMCAmJiBidWZbaWR4ICsg
Ml0gPT0gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdGV4dHVyZS10
cmFuc3BhcmVudC1waXhlbHMtaW5pdGlhbGl6ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFs
aXplZC5odG1sCShyZXZpc2lvbiA2MzIzMykJKGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvYnVnLTMyODg4Lmh0bWw6NjMyMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC90ZXh0dXJlLXRyYW5zcGFyZW50LXBpeGVscy1pbml0aWFsaXplZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTYyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdXRpbHMzZC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBpZD0idnNoYWRl
ciIgdHlwZT0ieC1zaGFkZXIveC12ZXJ0ZXgiPgorYXR0cmlidXRlIHZlYzMgZ19Qb3NpdGlvbjsK
K2F0dHJpYnV0ZSB2ZWMyIGdfVGV4Q29vcmQwOworCit2YXJ5aW5nIHZlYzIgdGV4Q29vcmQ7CisK
K3ZvaWQgbWFpbigpCit7CisgICAgZ2xfUG9zaXRpb24gPSB2ZWM0KGdfUG9zaXRpb24ueCwgZ19Q
b3NpdGlvbi55LCBnX1Bvc2l0aW9uLnosIDEuMCk7CisgICAgdGV4Q29vcmQgPSBnX1RleENvb3Jk
MDsKK30KKzwvc2NyaXB0PgorCis8c2NyaXB0IGlkPSJmc2hhZGVyIiB0eXBlPSJ4LXNoYWRlci94
LWZyYWdtZW50Ij4KK3VuaWZvcm0gc2FtcGxlcjJEIHRleDsKK3ZhcnlpbmcgdmVjMiB0ZXhDb29y
ZDsKKwordm9pZCBtYWluKCkKK3sKKyAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodGV4LCB0
ZXhDb29yZCk7Cit9Cis8L3NjcmlwdD4KKworPHNjcmlwdD4KK3ZhciBnbCA9IG51bGw7Cit2YXIg
dGV4dHVyZUxvYyA9IG51bGw7Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7CisKK2Z1
bmN0aW9uIGluaXQoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRX
ZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisKKyAgICBkZXNjcmlwdGlvbignUmVncmVzc2lvbiB0ZXN0IGZvciA8YSBocmVmPSJodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI4ODgiPmh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjg4ODwvYT4gOiA8Y29kZT5HYXJiYWdlIGluIHRy
YW5zcGFyZW50IHJlZ2lvbnMgb2YgaW1hZ2VzIHVwbG9hZGVkIGFzIHRleHR1cmVzPC9jb2RlPicp
OworCisgICAgZ2wgPSBpbml0V2ViR0woImV4YW1wbGUiLCAidnNoYWRlciIsICJmc2hhZGVyIiwg
WyAiZ19Qb3NpdGlvbiIsICJnX1RleENvb3JkMCIgXSwgWyAwLCAwLCAwLCAxIF0sIDEpOworCisg
ICAgdGV4dHVyZUxvYyA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihnbC5wcm9ncmFtLCAidGV4Iik7
CisKKyAgICB2YXIgdmVydGljZXMgPSBuZXcgV2ViR0xGbG9hdEFycmF5KFsKKyAgICAgICAgIDEu
MCwgIDEuMCwgMC4wLAorICAgICAgICAtMS4wLCAgMS4wLCAwLjAsCisgICAgICAgIC0xLjAsIC0x
LjAsIDAuMCwKKyAgICAgICAgIDEuMCwgIDEuMCwgMC4wLAorICAgICAgICAtMS4wLCAtMS4wLCAw
LjAsCisgICAgICAgICAxLjAsIC0xLjAsIDAuMF0pOworICAgIC8vIFRoZSBpbnB1dCB0ZXh0dXJl
IGhhcyA4IGNoYXJhY3RlcnM7IHRha2UgdGhlIGxlZnRtb3N0IG9uZQorICAgIHZhciBjb2VmZiA9
IDEuMCAvIDguMDsKKyAgICB2YXIgdGV4Q29vcmRzID0gbmV3IFdlYkdMRmxvYXRBcnJheShbCisg
ICAgICAgIGNvZWZmLCAxLjAsCisgICAgICAgIDAuMCwgMS4wLAorICAgICAgICAwLjAsIDAuMCwK
KyAgICAgICAgY29lZmYsIDEuMCwKKyAgICAgICAgMC4wLCAwLjAsCisgICAgICAgIGNvZWZmLCAw
LjBdKTsKKyAgICB2YXIgdGV4Q29vcmRPZmZzZXQgPSB2ZXJ0aWNlcy5ieXRlTGVuZ3RoOworCisg
ICAgdmFyIHZibyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJS
QVlfQlVGRkVSLCB2Ym8pOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLAorICAg
ICAgICAgICAgICAgICAgdGV4Q29vcmRPZmZzZXQgKyB0ZXhDb29yZHMuYnl0ZUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgIGdsLlNUQVRJQ19EUkFXKTsKKyAgICBnbC5idWZmZXJTdWJEYXRhKGds
LkFSUkFZX0JVRkZFUiwgMCwgdmVydGljZXMpOworICAgIGdsLmJ1ZmZlclN1YkRhdGEoZ2wuQVJS
QVlfQlVGRkVSLCB0ZXhDb29yZE9mZnNldCwgdGV4Q29vcmRzKTsKKworICAgIGdsLmVuYWJsZVZl
cnRleEF0dHJpYkFycmF5KDApOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMywgZ2wu
RkxPQVQsIGZhbHNlLCAwLCAwKTsKKyAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgxKTsK
KyAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDEsIDIsIGdsLkZMT0FULCBnbC5GQUxTRSwgMCwg
dGV4Q29vcmRPZmZzZXQpOworCisgICAgdGV4dHVyZSA9IGxvYWRUZXh0dXJlKCJyZXNvdXJjZXMv
YnVnLTMyODg4LXRleHR1cmUucG5nIik7Cit9CisKK2Z1bmN0aW9uIGxvYWRUZXh0dXJlKHNyYykg
eworICAgIHZhciB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVY
VFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVT
VCk7CisgICAgdmFyIGltYWdlID0gbmV3IEltYWdlKCk7CisgICAgaW1hZ2Uub25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUp
OworICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0cnVlKTsK
KyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZSk7CisgICAgICAgIHJ1blRlc3QoKTsKKyAgICB9Owor
ICAgIGltYWdlLnNyYyA9IHNyYzsKKyAgICByZXR1cm4gdGV4dHVyZTsKK30KKworLy8gVGhlc2Ug
dHdvIGRlY2xhcmF0aW9ucyBuZWVkIHRvIGJlIGdsb2JhbCBmb3IgInNob3VsZEJlIiB0byBzZWUg
dGhlbQordmFyIGJ1ZiA9IG51bGw7Cit2YXIgaWR4ID0gMDsKKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9C
SVQpOworICAgIC8vIEJpbmQgdGhlIHRleHR1cmUgdG8gdGV4dHVyZSB1bml0IDAKKyAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgICAvLyBQb2ludCB0aGUgdW5p
Zm9ybSBzYW1wbGVyIHRvIHRleHR1cmUgdW5pdCAwCisgICAgZ2wudW5pZm9ybTFpKHRleHR1cmVM
b2MsIDApOworICAgIC8vIERyYXcgdGhlIHRyaWFuZ2xlcworICAgIGdsLmRyYXdBcnJheXMoZ2wu
VFJJQU5HTEVTLCAwLCA2KTsKKworICAgIC8vIFJlYWQgYmFjayB0aGUgcmVuZGVyaW5nIHJlc3Vs
dHMKKyAgICB2YXIgd2lkdGggPSAzMjsKKyAgICB2YXIgaGVpZ2h0ID0gMzI7CisgICAgYnVmID0g
bmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KTsKKyAgICBnbC5yZWFkUGl4ZWxzKDAs
IDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisgICAg
Ly8gU3BvdCBjaGVjayBhIGNvdXBsZSBvZiAyeDIgcmVnaW9ucyBpbiB0aGUgdXBwZXIgYW5kIGxv
d2VyIGxlZnQKKyAgICAvLyBjb3JuZXJzOyB0aGV5IHNob3VsZCBiZSB0aGUgYmFja2dyb3VuZCBj
b2xvciByYXRoZXIgdGhhbgorICAgIC8vIGdhcmJhZ2UKKyAgICB2YXIgcXVlcnlXaWR0aCA9IDI7
CisgICAgdmFyIHF1ZXJ5SGVpZ2h0ID0gMjsKKyAgICBkZWJ1ZygiQ2hlY2tpbmcgbG93ZXIgbGVm
dCBjb3JuZXIiKTsKKyAgICB2YXIgeG9mZiA9IDE7CisgICAgdmFyIHlvZmYgPSBoZWlnaHQgLSAz
OworICAgIGZvciAodmFyIHkgPSAwOyB5IDwgcXVlcnlIZWlnaHQ7IHkrKykgeworICAgICAgICBm
b3IgKHZhciB4ID0gMDsgeCA8IHF1ZXJ5V2lkdGg7IHgrKykgeworICAgICAgICAgICAgaWR4ID0g
KCh5b2ZmICsgeSkgKiB3aWR0aCAqIDQgKworICAgICAgICAgICAgICAgICAgICh4b2ZmICsgeCkg
KiA0KTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJidWZbaWR4XSA9PSAwICYmIGJ1ZltpZHggKyAx
XSA9PSAwICYmIGJ1ZltpZHggKyAyXSA9PSAwIiwgInRydWUiKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICBkZWJ1ZygiQ2hlY2tpbmcgdXBwZXIgbGVmdCBjb3JuZXIiKTsKKyAgICB5b2ZmID0gMTsK
KyAgICBmb3IgKHZhciB5ID0gMDsgeSA8IHF1ZXJ5SGVpZ2h0OyB5KyspIHsKKyAgICAgICAgZm9y
ICh2YXIgeCA9IDA7IHggPCBxdWVyeVdpZHRoOyB4KyspIHsKKyAgICAgICAgICAgIGlkeCA9ICgo
eW9mZiArIHkpICogd2lkdGggKiA0ICsKKyAgICAgICAgICAgICAgICAgICAoeG9mZiArIHgpICog
NCk7CisgICAgICAgICAgICBzaG91bGRCZSgiYnVmW2lkeF0gPT0gMCAmJiBidWZbaWR4ICsgMV0g
PT0gMCAmJiBidWZbaWR4ICsgMl0gPT0gMCIsICJ0cnVlIik7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIHZhciBlcGlsb2d1ZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAgIGVwaWxvZ3VlLm9ubG9hZCA9IGZpbmlz
aDsKKyAgICBlcGlsb2d1ZS5zcmMgPSAiLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlcGlsb2d1ZSk7Cit9CisKK2Z1bmN0
aW9uIGZpbmlzaCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKzxjYW52YXMgaWQ9ImV4YW1w
bGUiIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiPjwvY2FudmFzPgorPGRpdiBpZD0iZGVzY3Jp
cHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>
<flag name="review"
          id="49440"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="49441"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>