<?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>219527</bug_id>
          
          <creation_ts>2020-12-03 19:25:56 -0800</creation_ts>
          <short_desc>Align %TypedArray% constructor behavior with spec</short_desc>
          <delta_ts>2020-12-08 13:04:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1711934</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-12-03 19:25:56 -0800</bug_when>
    <thetext>Align %TypedArray% constructor behavior with spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711936</commentid>
    <comment_count>1</comment_count>
      <attachid>415379</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-12-03 19:47:56 -0800</bug_when>
    <thetext>Created attachment 415379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711956</commentid>
    <comment_count>2</comment_count>
      <attachid>415391</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-12-03 23:06:08 -0800</bug_when>
    <thetext>Created attachment 415391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711959</commentid>
    <comment_count>3</comment_count>
      <attachid>415391</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-12-03 23:13:20 -0800</bug_when>
    <thetext>Comment on attachment 415391
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=415391&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:21
&gt; +        3. Typed array argument (https://tc39.es/ecma262/#sec-initializetypedarrayfromtypedarray):
&gt; +           We need to support the case where the input typed array uses a custom ArrayBuffer.
&gt; +           This case is *extremely* strange -- we still create the same type of typed array with a normal ArrayBuffer,
&gt; +           but we override the prototype of that ArrayBuffer to input.buffer.constructor[@@species].prototype.

Note: There appears to be interest in removing @@species for ArrayBuffers, so it might be useful to have JSC continue to fail these tests as &quot;web compatibility insurance&quot;. In that case, we could split (3) out from the rest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712136</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-12-04 13:02:08 -0800</bug_when>
    <thetext>Oops, I forgot that the relevant proposal about the @@species removal is https://github.com/tc39/proposal-rm-builtin-subclassing.

But it sounds like folks would like to remove @@species from ArrayBuffers even if web compat issues were discovered for other classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712147</commentid>
    <comment_count>5</comment_count>
      <attachid>415391</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-12-04 13:52:10 -0800</bug_when>
    <thetext>Comment on attachment 415391
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=415391&amp;action=review

Looks good! But I think we should have species optimization at the first patch since new TypedArray(arrayBuffer) is common enough.

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h:115
&gt; +    JSValue constructor = source-&gt;get(globalObject, vm.propertyNames-&gt;constructor);

Let&apos;s avoid doing property access by having watchpoint like Array / ArrayBuffer are doing since `new TypedArray(arrayBuffer)` is enough critical path.
See speciesConstructArrayBuffer and speciesConstructArray.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712150</commentid>
    <comment_count>6</comment_count>
      <attachid>415391</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-12-04 13:53:54 -0800</bug_when>
    <thetext>Comment on attachment 415391
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=415391&amp;action=review

&gt;&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h:115
&gt;&gt; +    JSValue constructor = source-&gt;get(globalObject, vm.propertyNames-&gt;constructor);
&gt; 
&gt; Let&apos;s avoid doing property access by having watchpoint like Array / ArrayBuffer are doing since `new TypedArray(arrayBuffer)` is enough critical path.
&gt; See speciesConstructArrayBuffer and speciesConstructArray.

Possibly I think modifying speciesConstructArrayBuffer and reusing it would be possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712639</commentid>
    <comment_count>7</comment_count>
      <attachid>415594</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-12-07 15:29:22 -0800</bug_when>
    <thetext>Created attachment 415594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712683</commentid>
    <comment_count>8</comment_count>
      <attachid>415594</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-12-07 21:36:18 -0800</bug_when>
    <thetext>Comment on attachment 415594
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=415594&amp;action=review

Nice, r=me

&gt; Source/JavaScriptCore/runtime/JSArrayBufferPrototype.cpp:68
&gt; +    VM&amp; vm = globalObject-&gt;vm();
&gt; +    auto scope = DECLARE_THROW_SCOPE(vm);
&gt; +
&gt; +    bool isValid = speciesWatchpointIsValid(vm, thisObject, mode);
&gt; +    scope.assertNoException();
&gt; +    if (LIKELY(isValid))
&gt; +        return WTF::nullopt;
&gt; +

Can you make this part inlined when the caller is calling this? (like, definition it in JSArrayBufferPrototypeInlines.h)
I think 99.9999999% of path will go to this &quot;watchpoint is valid&quot; case. So it is worth inlining.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712861</commentid>
    <comment_count>9</comment_count>
      <attachid>415661</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-12-08 12:17:09 -0800</bug_when>
    <thetext>Created attachment 415661
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712879</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-08 13:03:14 -0800</bug_when>
    <thetext>Committed r270552: &lt;https://trac.webkit.org/changeset/270552&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415661.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712880</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-08 13:04:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/72106111&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415379</attachid>
            <date>2020-12-03 19:47:56 -0800</date>
            <delta_ts>2020-12-03 23:06:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219527-20201203194755.patch</filename>
            <type>text/plain</type>
            <size>16525</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YTMwYmUxZDg1OGFhMzc3ODk5MGM4MTVkZTQ1MWZlMWQ4Y2Q4ZDI3Li5jZWUzZTliNzFmYzE4ZDY3
MDg2ZjdlMzNmYjc0MTk4YmY0OTA2YWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0xMi0wMyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgQWxpZ24gJVR5cGVkQXJyYXklIGNvbnN0cnVjdG9yIGJlaGF2aW9y
IHdpdGggc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5NTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlc2Ugc2hvdWxkIGJlIHRoZSBsYXN0IEpTQy1zaWRlIGNvcnJlY3Rpb25zIGZvciB0eXBl
ZCBhcnJheSBiZWhhdmlvcjoKKyAgICAgICAgbmFtZWx5LCBmaXhlcyBmb3IgdGhlIGNvbnN0cnVj
dG9yIGl0c2VsZi4KKworICAgICAgICBCcm9hZGx5IHNwZWFraW5nLCB0aGVyZSBhcmUgdGhyZWUg
Zml4ZXMgaGVyZToKKyAgICAgICAgMS4gQXJyYXlCdWZmZXIgYXJndW1lbnQgKGh0dHBzOi8vdGMz
OS5lcy9lY21hMjYyLyNzZWMtaW5pdGlhbGl6ZXR5cGVkYXJyYXlmcm9tYXJyYXlidWZmZXIpOgor
ICAgICAgICAgICBXZSBuZWVkIHRvIHRocm93IGlmIHRoZSBpbnB1dCBidWZmZXIgZ2V0cyBkZXRh
Y2hlZC4KKworICAgICAgICAyLiBBcnJheS1saWtlIGFyZ3VtZW50IChodHRwczovL3RjMzkuZXMv
ZWNtYTI2Mi8jc2VjLWluaXRpYWxpemV0eXBlZGFycmF5ZnJvbWFycmF5bGlrZSk6CisgICAgICAg
ICAgIGxlbmd0aCBuZWVkcyB0b0xlbmd0aCwgbm90IHRvVUludDMyLgorCisgICAgICAgIDMuIFR5
cGVkIGFycmF5IGFyZ3VtZW50IChodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWluaXRpYWxp
emV0eXBlZGFycmF5ZnJvbXR5cGVkYXJyYXkpOgorICAgICAgICAgICBXZSBuZWVkIHRvIHN1cHBv
cnQgdGhlIGNhc2Ugd2hlcmUgdGhlIGlucHV0IHR5cGVkIGFycmF5IHVzZXMgYSBjdXN0b20gQXJy
YXlCdWZmZXIuCisgICAgICAgICAgIFRoaXMgY2FzZSBpcyAqZXh0cmVtZWx5KiBzdHJhbmdlIC0t
IHdlIHN0aWxsIGNyZWF0ZSB0aGUgc2FtZSB0eXBlIG9mIHR5cGVkIGFycmF5IGFuZCBhIG5vcm1h
bCBBcnJheUJ1ZmZlciwKKyAgICAgICAgICAgYnV0IHdlIG92ZXJyaWRlIHRoZSBwcm90b3R5cGUg
b2YgdGhhdCBBcnJheUJ1ZmZlciB0byBpbnB1dC5jb25zdHJ1Y3RvcltAQHNwZWNpZXNdLnByb3Rv
dHlwZSBpZiBhcHBsaWNhYmxlLgorCisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBcnJh
eUJ1ZmZlclNwZWNpZXNJZk5lZWRlZCk6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEdlbmVyaWNU
eXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMpOgorCiAyMDIwLTEyLTAyICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICAlVHlwZWRBcnJheSUjc2xpY2Ug
c2hvdWxkbid0IGNhcmUgYWJvdXQgc291cmNlIGJ1ZmZlciBkZXRhY2htZW50IGlmIHRoZXJlJ3Mg
bm90aGluZyB0byBjb3B5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcklu
bGluZXMuaAppbmRleCA3MDBiNDA2OThkZmY2OWQ5NWQzZjM0NzgzZTI2OWUwYzU2NDJhNTAyLi5k
N2MzMDk1ZjZkY2NmZTUxMjkwZjc0Mjg0ZTBkNTY2Zjg2YmFjZTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVj
dG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRGF0YVZpZXcuaCIKICNp
bmNsdWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAi
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCiAKQEAgLTEwMyw2ICsxMDQsNTQg
QEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdGcm9tSXRl
cmF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitpbmxp
bmUgSlNBcnJheUJ1ZmZlciogY29uc3RydWN0QXJyYXlCdWZmZXJTcGVjaWVzSWZOZWVkZWQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNBcnJheUJ1ZmZlciogc291cmNlKQoreworICAg
IFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworCisgICAgaWYgKHNvdXJjZS0+aXNTaGFyZWQoKSkKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBudWxscHRyKTsKKworICAgIEpTVmFsdWUgY29uc3Ry
dWN0b3IgPSBzb3VyY2UtPmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0
cnVjdG9yKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKworICAg
IGlmIChjb25zdHJ1Y3Rvci5pc1VuZGVmaW5lZCgpKQorICAgICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIG51bGxwdHIpOworCisgICAgaWYgKCFjb25zdHJ1Y3Rvci5pc09iamVjdCgpKSB7
CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJjb25zdHJ1Y3Rv
ciBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIG51bGwiX3MpOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CisKKyAgICBpZiAoY29uc3RydWN0b3IuaXNVbmRlZmluZWQoKSB8fCBjb25zdHJ1
Y3RvciA9PSBnbG9iYWxPYmplY3QtPmFycmF5QnVmZmVyQ29uc3RydWN0b3IoQXJyYXlCdWZmZXJT
aGFyaW5nTW9kZTo6RGVmYXVsdCkpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
bnVsbHB0cik7CisKKyAgICBKU1ZhbHVlIHNwZWNpZXMgPSBjb25zdHJ1Y3Rvci5nZXQoZ2xvYmFs
T2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKworICAgIGlmIChzcGVjaWVzLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbnVsbHB0cik7CisK
KyAgICBpZiAoIXNwZWNpZXMuaXNDb25zdHJ1Y3Rvcih2bSkpIHsKKyAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgInNwZWNpZXMgaXMgbm90IGEgY29uc3RydWN0b3Ii
X3MpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHByb3Rv
dHlwZSA9IHNwZWNpZXMuZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90
eXBlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKworICAgIGF1
dG8gYnVmZmVyID0gQXJyYXlCdWZmZXI6OnRyeUNyZWF0ZShzb3VyY2UtPmltcGwoKS0+Ynl0ZUxl
bmd0aCgpLCAxKTsKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKworICAgIGF1dG8gcmVzdWx0ID0gSlNBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZtLCBnZXRGdW5j
dGlvblJlYWxtKHZtLCBhc09iamVjdChzcGVjaWVzKSktPmFycmF5QnVmZmVyU3RydWN0dXJlKEFy
cmF5QnVmZmVyU2hhcmluZ01vZGU6OkRlZmF1bHQpLCBXVEZNb3ZlKGJ1ZmZlcikpOworICAgIGlm
IChwcm90b3R5cGUuaXNPYmplY3QoKSkKKyAgICAgICAgcmVzdWx0LT5zZXRQcm90b3R5cGVEaXJl
Y3Qodm0sIHByb3RvdHlwZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdGVtcGxhdGU8dHlw
ZW5hbWUgVmlld0NsYXNzPgogaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXdXaXRoQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBFbmNvZGVkSlNWYWx1ZSBmaXJzdEFyZ3VtZW50LCB1bnNpZ25lZCBv
ZmZzZXQsIE9wdGlvbmFsPHVuc2lnbmVkPiBsZW5ndGhPcHQpCiB7CkBAIC0xMTMsOCArMTYyLDEy
IEBAIGlubGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFy
Z3VtZW50cyhKU0dsb2JhbE9iamVjdCogZ2xvCiAKICAgICBpZiAoSlNBcnJheUJ1ZmZlcioganNC
dWZmZXIgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlCdWZmZXIqPih2bSwgZmlyc3RWYWx1ZSkpIHsK
ICAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBqc0J1ZmZlci0+aW1wbCgpOwot
ICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSAwOworICAgICAgICBpZiAoYnVmZmVyLT5pc0RldGFj
aGVkKCkpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXci
X3MpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KIAorICAgICAgICB1
bnNpZ25lZCBsZW5ndGggPSAwOwogICAgICAgICBpZiAobGVuZ3RoT3B0KQogICAgICAgICAgICAg
bGVuZ3RoID0gbGVuZ3RoT3B0LnZhbHVlKCk7CiAgICAgICAgIGVsc2UgewpAQCAtMTQwLDEwICsx
OTMsMjAgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdX
aXRoQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAogICAgIGlmIChKU09iamVjdCogb2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBmaXJzdFZhbHVlKSkgewogICAgICAg
ICB1bnNpZ25lZCBsZW5ndGg7CisgICAgICAgIEpTQXJyYXlCdWZmZXIqIG5ld0J1ZmZlciA9IG51
bGxwdHI7CiAKLSAgICAgICAgaWYgKGlzVHlwZWRWaWV3KG9iamVjdC0+Y2xhc3NJbmZvKHZtKS0+
dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkKLSAgICAgICAgICAgIGxlbmd0aCA9IGpzQ2FzdDxKU0Fy
cmF5QnVmZmVyVmlldyo+KG9iamVjdCktPmxlbmd0aCgpOwotICAgICAgICBlbHNlIHsKKyAgICAg
ICAgaWYgKGlzVHlwZWRWaWV3KG9iamVjdC0+Y2xhc3NJbmZvKHZtKS0+dHlwZWRBcnJheVN0b3Jh
Z2VUeXBlKSkgeworICAgICAgICAgICAgYXV0byogdmlldyA9IGpzQ2FzdDxKU0FycmF5QnVmZmVy
Vmlldyo+KG9iamVjdCk7CisgICAgICAgICAgICBsZW5ndGggPSB2aWV3LT5sZW5ndGgoKTsKKwor
ICAgICAgICAgICAgbmV3QnVmZmVyID0gY29uc3RydWN0QXJyYXlCdWZmZXJTcGVjaWVzSWZOZWVk
ZWQoZ2xvYmFsT2JqZWN0LCB2aWV3LT5wb3NzaWJseVNoYXJlZEpTQnVmZmVyKGdsb2JhbE9iamVj
dCkpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisK
KyAgICAgICAgICAgIGlmICh2aWV3LT5pc0RldGFjaGVkKCkpIHsKKyAgICAgICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVW5kZXJseWluZyBBcnJheUJ1ZmZl
ciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3Il9zKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIC8vIFRoaXMgZ2V0UHJvcGVydHlTbG90IG9wZXJhdGlvbiBzaG91bGQgbm90IGJlIG9ic2Vy
dmVkIGJ5IHRoZSBQcm94eS4KICAgICAgICAgICAgIC8vIFNvIHdlIHVzZSBWTUlucXVpcnkuIEFu
ZCBwdXJnZSB0aGUgb3BhcXVlIG9iamVjdCBjYXNlcyAocHJveHkgYW5kIG5hbWVzcGFjZSBvYmpl
Y3QpIGJ5IGlzVGFpbnRlZEJ5T3BhcXVlT2JqZWN0KCkgZ3VhcmQuCiAgICAgICAgICAgICBQcm9w
ZXJ0eVNsb3QgbGVuZ3RoU2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RU
eXBlOjpWTUlucXVpcnksICZ2bSk7CkBAIC0xNzMsMTcgKzIzNiwxOCBAQCBpbmxpbmUgSlNPYmpl
Y3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMoSlNHbG9iYWxP
YmplY3QqIGdsbwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSB2
YWx1ZSA9IGxlbmd0aFNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVz
LT5sZW5ndGgpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOwotICAgICAgICAgICAgICAgIGxlbmd0aCA9IHZhbHVlLnRvVUludDMyKGdsb2JhbE9i
amVjdCk7CisgICAgICAgICAgICAgICAgbGVuZ3RoID0gdmFsdWUudG9MZW5ndGgoZ2xvYmFsT2Jq
ZWN0KTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIAotICAgICAgICBWaWV3Q2xh
c3MqIHJlc3VsdCA9IFZpZXdDbGFzczo6Y3JlYXRlVW5pbml0aWFsaXplZChnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgbGVuZ3RoKTsKKyAgICAgICAgVmlld0NsYXNzKiByZXN1bHQgPSBuZXdCdWZm
ZXIKKyAgICAgICAgICAgID8gVmlld0NsYXNzOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIG5ld0J1ZmZlci0+aW1wbCgpLCAwLCBsZW5ndGgpCisgICAgICAgICAgICA6IFZpZXdDbGFz
czo6Y3JlYXRlVW5pbml0aWFsaXplZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGVuZ3RoKTsK
ICAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigpID09ICFyZXN1bHQp
OwogICAgICAgICBpZiAoVU5MSUtFTFkoIXJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICAgICAgCisKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICBpZiAo
IXJlc3VsdC0+c2V0KGdsb2JhbE9iamVjdCwgMCwgb2JqZWN0LCAwLCBsZW5ndGgpKQogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0Y2VlZWI1MzVmYTRmZTUzNjcxZWI2MmFmNjIxY2IzMjJh
OWRkOTkuLmM5MTQ2OTY0MDcwODYzMmQ4MWVmZmRhOWU1ZWNiODc4NjA0MTcyNzIgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMjAtMTItMDMgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29t
PgorCisgICAgICAgIEFsaWduICVUeXBlZEFycmF5JSBjb25zdHJ1Y3RvciBiZWhhdmlvciB3aXRo
IHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
OTUyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
dGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAgTWFyayA0MCB0ZXN0IGNhc2VzIGFz
IHBhc3NpbmcuCisKIDIwMjAtMTItMDIgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgogCiAgICAgICAgICVUeXBlZEFycmF5JSNzbGljZSBzaG91bGRuJ3QgY2FyZSBhYm91
dCBzb3VyY2UgYnVmZmVyIGRldGFjaG1lbnQgaWYgdGhlcmUncyBub3RoaW5nIHRvIGNvcHkKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVz
dDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCA3YWMyZmVkNmM1ZDFiYmM3MGJjZWFjNTRiNmEx
YjM2YWRmZTZiYWJlLi5lMGZkZWFlYmU2OGJiZmIwMmUyZDBhZTRiZDMzM2UyNmQyMDcyYjMzIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC04MzIsNjYgKzgzMiw2IEBAIHRlc3QvYnVp
bHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2F0L3Byb3AtZGVzYy5qczoKIHRlc3QvYnVpbHQt
aW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2luY2x1ZGVzL2RldGFjaGVkLWJ1ZmZlci10b2ludGVn
ZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9jdG9ycy9idWZmZXItYXJnL2J5dGVvZmZzZXQtdG8tbnVtYmVyLWRl
dGFjaGJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBl
RXJyb3IgYnV0IGdvdCBhIFJhbmdlRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBn
b3QgYSBSYW5nZUVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL2J1ZmZlci1hcmcvZGV0YWNoZWRidWZm
ZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9jdG9ycy9idWZmZXItYXJnL2xlbmd0aC10by1udW1iZXItZGV0YWNo
YnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJv
ciBidXQgZ290IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBh
IFJhbmdlRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5z
L1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvb2JqZWN0LWFyZy9sZW5ndGgtZXhjZXNzaXZl
LXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVy
cm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRo
cm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5z
L1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvZGV0YWNoZWQtd2hl
bi1zcGVjaWVzLXJldHJpZXZlZC1kaWZmZXJlbnQtdHlwZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1ZmZlciBFeHBl
Y3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1ZmZlciBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMv
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9kZXRhY2hlZC13aGVu
LXNwZWNpZXMtcmV0cmlldmVkLXNhbWUtdHlwZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1ZmZlciBFeHBlY3RlZCBh
IFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1ZmZlciBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZlci1j
dG9yLWFjY2Vzcy10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24g
YXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwot
dGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFy
Zy9vdGhlci1jdG9yLWJ1ZmZlci1jdG9yLWN1c3RvbS1zcGVjaWVzLXByb3RvLWZyb20tY3Rvci1y
ZWFsbS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
W29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7KSB0byBiZSB0
cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7LCDCq1tv
YmplY3QgQXJyYXlCdWZmZXJdwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRh
cnJheS1hcmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1jdXN0b20tc3BlY2llcy5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1
ZmZlcl3Cuywgwqtbb2JqZWN0IE9iamVjdF3CuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2Ft
ZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IE9iamVjdF3CuykgdG8g
YmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlw
ZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZl
ci1jdG9yLW5vdC1vYmplY3QtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
LXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1h
cmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLWFjY2Vzcy10aHJvd3MuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93
biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3Qy
NjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNv
bnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZlci1jdG9yLXNw
ZWNpZXMtbm90LWN0b3ItdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcv
b3RoZXItY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLXByb3RvdHlwZS10aHJvd3MuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93
biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3Qy
NjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNv
bnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3ItYWNj
ZXNzLXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0
MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL3NhbWUt
Y3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLWN1c3RvbS1wcm90by1mcm9tLWN0b3ItcmVhbG0uanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3Qg
QXJyYXlCdWZmZXJdwrssIMKrW29iamVjdCBBcnJheUJ1ZmZlcl3CuykgdG8gYmUgdHJ1ZSAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IEFy
cmF5QnVmZmVyXcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10
ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJn
L3NhbWUtY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLWN1c3RvbS5qczoKLSAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1ZmZlcl3Cuywg
wqtbb2JqZWN0IE9iamVjdF3CuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
W29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IE9iamVjdF3CuykgdG8gYmUgdHJ1ZSAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNv
bnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3Itc3Bl
Y2llcy1ub3QtY3Rvci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBU
eXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL3NhbWUtY3Rv
ci1idWZmZXItY3Rvci1zcGVjaWVzLXByb3RvdHlwZS10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8g
ZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0
byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9y
cy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3Itc3BlY2llcy10aHJv
d3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMv
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVm
ZmVyLWN0b3ItdmFsdWUtbm90LW9iai10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwogdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvU2V0
L2tleS1pcy1taW51cy16ZXJvLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0
LnNldChzYW1wbGUsICItMCIsIDEpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1
ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0LnNldChzYW1wbGUs
ICItMCIsIDEpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywg
wqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415391</attachid>
            <date>2020-12-03 23:06:08 -0800</date>
            <delta_ts>2020-12-07 15:29:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219527-20201203230607.patch</filename>
            <type>text/plain</type>
            <size>18184</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YTMwYmUxZDg1OGFhMzc3ODk5MGM4MTVkZTQ1MWZlMWQ4Y2Q4ZDI3Li41MmM2Mjg2YzcwY2RhZWE5
MTkzODY2ZjQ1NWM2MzM4NDIwNDQxZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0xMi0wMyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgQWxpZ24gJVR5cGVkQXJyYXklIGNvbnN0cnVjdG9yIGJlaGF2aW9y
IHdpdGggc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5NTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlc2Ugc2hvdWxkIGJlIHRoZSBsYXN0IEpTQy1zaWRlIGNvcnJlY3Rpb25zIGZvciB0eXBl
ZCBhcnJheSBiZWhhdmlvcjoKKyAgICAgICAgbmFtZWx5LCBmaXhlcyBmb3IgdGhlIGNvbnN0cnVj
dG9yIGl0c2VsZi4KKworICAgICAgICBCcm9hZGx5IHNwZWFraW5nLCB0aGVyZSBhcmUgdGhyZWUg
Zml4ZXMgaGVyZToKKyAgICAgICAgMS4gQXJyYXlCdWZmZXIgYXJndW1lbnQgKGh0dHBzOi8vdGMz
OS5lcy9lY21hMjYyLyNzZWMtaW5pdGlhbGl6ZXR5cGVkYXJyYXlmcm9tYXJyYXlidWZmZXIpOgor
ICAgICAgICAgICBXZSBuZWVkIHRvIHRocm93IGlmIHRoZSBpbnB1dCBidWZmZXIgZ2V0cyBkZXRh
Y2hlZC4KKworICAgICAgICAyLiBBcnJheS1saWtlIGFyZ3VtZW50IChodHRwczovL3RjMzkuZXMv
ZWNtYTI2Mi8jc2VjLWluaXRpYWxpemV0eXBlZGFycmF5ZnJvbWFycmF5bGlrZSk6CisgICAgICAg
ICAgIGxlbmd0aCBuZWVkcyB0b0xlbmd0aCwgbm90IHRvVUludDMyLgorCisgICAgICAgIDMuIFR5
cGVkIGFycmF5IGFyZ3VtZW50IChodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWluaXRpYWxp
emV0eXBlZGFycmF5ZnJvbXR5cGVkYXJyYXkpOgorICAgICAgICAgICBXZSBuZWVkIHRvIHN1cHBv
cnQgdGhlIGNhc2Ugd2hlcmUgdGhlIGlucHV0IHR5cGVkIGFycmF5IHVzZXMgYSBjdXN0b20gQXJy
YXlCdWZmZXIuCisgICAgICAgICAgIFRoaXMgY2FzZSBpcyAqZXh0cmVtZWx5KiBzdHJhbmdlIC0t
IHdlIHN0aWxsIGNyZWF0ZSB0aGUgc2FtZSB0eXBlIG9mIHR5cGVkIGFycmF5IHdpdGggYSBub3Jt
YWwgQXJyYXlCdWZmZXIsCisgICAgICAgICAgIGJ1dCB3ZSBvdmVycmlkZSB0aGUgcHJvdG90eXBl
IG9mIHRoYXQgQXJyYXlCdWZmZXIgdG8gaW5wdXQuYnVmZmVyLmNvbnN0cnVjdG9yW0BAc3BlY2ll
c10ucHJvdG90eXBlLgorCisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0NvbnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBcnJheUJ1ZmZl
clNwZWNpZXNJZk5lZWRlZCk6IEFkZGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmlj
VHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKToKKwogMjAyMC0xMi0wMiAgUm9zcyBLaXJzbGlu
ZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgJVR5cGVkQXJyYXklI3NsaWNl
IHNob3VsZG4ndCBjYXJlIGFib3V0IHNvdXJjZSBidWZmZXIgZGV0YWNobWVudCBpZiB0aGVyZSdz
IG5vdGhpbmcgdG8gY29weQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJ
bmxpbmVzLmgKaW5kZXggNzAwYjQwNjk4ZGZmNjlkOTVkM2YzNDc4M2UyNjllMGM1NjQyYTUwMi4u
Y2ZjYWFlOWFmOWQ4NmM0ZDU2YTJiOWRiZjA2N2M3MjA0NzhmYTg4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJKU0RhdGFWaWV3LmgiCiAj
aW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUg
IkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgogCkBAIC0xMDMsNiArMTA0LDUx
IEBAIGlubGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3RnJvbUl0
ZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAoraW5s
aW5lIEpTQXJyYXlCdWZmZXIqIGNvbnN0cnVjdEFycmF5QnVmZmVyU3BlY2llc0lmTmVlZGVkKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXlCdWZmZXIqIHNvdXJjZSkKK3sKKyAg
ICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKworICAgIGlmIChzb3VyY2UtPmlzU2hhcmVkKCkpCisgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbnVsbHB0cik7CisKKyAgICBKU1ZhbHVlIGNvbnN0
cnVjdG9yID0gc291cmNlLT5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25z
dHJ1Y3Rvcik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisKKyAg
ICBpZiAoY29uc3RydWN0b3IuaXNVbmRlZmluZWQoKSB8fCBjb25zdHJ1Y3RvciA9PSBnbG9iYWxP
YmplY3QtPmFycmF5QnVmZmVyQ29uc3RydWN0b3IoQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVm
YXVsdCkpCisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgbnVsbHB0cik7CisKKyAg
ICBpZiAoIWNvbnN0cnVjdG9yLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImNvbnN0cnVjdG9yIHByb3BlcnR5IHNob3VsZCBub3QgYmUg
bnVsbCJfcyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIEpTVmFsdWUg
c3BlY2llcyA9IGNvbnN0cnVjdG9yLmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMt
PnNwZWNpZXNTeW1ib2wpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OworCisgICAgaWYgKHNwZWNpZXMuaXNVbmRlZmluZWRPck51bGwoKSkKKyAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBudWxscHRyKTsKKworICAgIGlmICghc3BlY2llcy5pc0NvbnN0
cnVjdG9yKHZtKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAic3BlY2llcyBpcyBub3QgYSBjb25zdHJ1Y3RvciJfcyk7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIEpTVmFsdWUgcHJvdG90eXBlID0gc3BlY2llcy5nZXQoZ2xvYmFs
T2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIG51bGxwdHIpOworCisgICAgYXV0byBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6
dHJ5Q3JlYXRlKHNvdXJjZS0+aW1wbCgpLT5ieXRlTGVuZ3RoKCksIDEpOworICAgIGlmICghYnVm
ZmVyKSB7CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBK
U0FycmF5QnVmZmVyOjpjcmVhdGUodm0sIGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0KHNw
ZWNpZXMpKS0+YXJyYXlCdWZmZXJTdHJ1Y3R1cmUoQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVm
YXVsdCksIFdURk1vdmUoYnVmZmVyKSk7CisgICAgaWYgKHByb3RvdHlwZS5pc09iamVjdCgpKQor
ICAgICAgICByZXN1bHQtPnNldFByb3RvdHlwZURpcmVjdCh2bSwgcHJvdG90eXBlKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBpbmxpbmUg
SlNPYmplY3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRK
U1ZhbHVlIGZpcnN0QXJndW1lbnQsIHVuc2lnbmVkIG9mZnNldCwgT3B0aW9uYWw8dW5zaWduZWQ+
IGxlbmd0aE9wdCkKIHsKQEAgLTExMyw4ICsxNTksMTIgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25z
dHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBn
bG8KIAogICAgIGlmIChKU0FycmF5QnVmZmVyKiBqc0J1ZmZlciA9IGpzRHluYW1pY0Nhc3Q8SlNB
cnJheUJ1ZmZlcio+KHZtLCBmaXJzdFZhbHVlKSkgewogICAgICAgICBSZWZQdHI8QXJyYXlCdWZm
ZXI+IGJ1ZmZlciA9IGpzQnVmZmVyLT5pbXBsKCk7Ci0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9
IDA7CisgICAgICAgIGlmIChidWZmZXItPmlzRGV0YWNoZWQoKSkgeworICAgICAgICAgICAgdGhy
b3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkJ1ZmZlciBpcyBhbHJlYWR5IGRldGFj
aGVkIl9zKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CiAKKyAgICAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gMDsKICAgICAgICAgaWYgKGxlbmd0aE9wdCkKICAgICAgICAg
ICAgIGxlbmd0aCA9IGxlbmd0aE9wdC52YWx1ZSgpOwogICAgICAgICBlbHNlIHsKQEAgLTE0MCwx
MCArMTkwLDIwIEBAIGlubGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlW
aWV3V2l0aEFyZ3VtZW50cyhKU0dsb2JhbE9iamVjdCogZ2xvCiAKICAgICBpZiAoSlNPYmplY3Qq
IG9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNPYmplY3QqPih2bSwgZmlyc3RWYWx1ZSkpIHsKICAg
ICAgICAgdW5zaWduZWQgbGVuZ3RoOworICAgICAgICBKU0FycmF5QnVmZmVyKiBuZXdCdWZmZXIg
PSBudWxscHRyOwogCi0gICAgICAgIGlmIChpc1R5cGVkVmlldyhvYmplY3QtPmNsYXNzSW5mbyh2
bSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpCi0gICAgICAgICAgICBsZW5ndGggPSBqc0Nhc3Q8
SlNBcnJheUJ1ZmZlclZpZXcqPihvYmplY3QpLT5sZW5ndGgoKTsKLSAgICAgICAgZWxzZSB7Cisg
ICAgICAgIGlmIChpc1R5cGVkVmlldyhvYmplY3QtPmNsYXNzSW5mbyh2bSktPnR5cGVkQXJyYXlT
dG9yYWdlVHlwZSkpIHsKKyAgICAgICAgICAgIGF1dG8qIHZpZXcgPSBqc0Nhc3Q8SlNBcnJheUJ1
ZmZlclZpZXcqPihvYmplY3QpOworICAgICAgICAgICAgbGVuZ3RoID0gdmlldy0+bGVuZ3RoKCk7
CisKKyAgICAgICAgICAgIG5ld0J1ZmZlciA9IGNvbnN0cnVjdEFycmF5QnVmZmVyU3BlY2llc0lm
TmVlZGVkKGdsb2JhbE9iamVjdCwgdmlldy0+cG9zc2libHlTaGFyZWRKU0J1ZmZlcihnbG9iYWxP
YmplY3QpKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIp
OworCisgICAgICAgICAgICBpZiAodmlldy0+aXNEZXRhY2hlZCgpKSB7CisgICAgICAgICAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlVuZGVybHlpbmcgQXJyYXlC
dWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyJfcyk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAvLyBUaGlzIGdldFByb3BlcnR5U2xvdCBvcGVyYXRpb24gc2hvdWxkIG5vdCBiZSBv
YnNlcnZlZCBieSB0aGUgUHJveHkuCiAgICAgICAgICAgICAvLyBTbyB3ZSB1c2UgVk1JbnF1aXJ5
LiBBbmQgcHVyZ2UgdGhlIG9wYXF1ZSBvYmplY3QgY2FzZXMgKHByb3h5IGFuZCBuYW1lc3BhY2Ug
b2JqZWN0KSBieSBpc1RhaW50ZWRCeU9wYXF1ZU9iamVjdCgpIGd1YXJkLgogICAgICAgICAgICAg
UHJvcGVydHlTbG90IGxlbmd0aFNsb3Qob2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5LCAmdm0pOwpAQCAtMTczLDE3ICsyMzMsMTggQEAgaW5saW5lIEpT
T2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKEpTR2xv
YmFsT2JqZWN0KiBnbG8KICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIEpTVmFs
dWUgdmFsdWUgPSBsZW5ndGhTbG90LmdldFZhbHVlKGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlO
YW1lcy0+bGVuZ3RoKTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKLSAgICAgICAgICAgICAgICBsZW5ndGggPSB2YWx1ZS50b1VJbnQzMihnbG9i
YWxPYmplY3QpOworICAgICAgICAgICAgICAgIGxlbmd0aCA9IHZhbHVlLnRvTGVuZ3RoKGdsb2Jh
bE9iamVjdCk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAKLSAgICAgICAgVmll
d0NsYXNzKiByZXN1bHQgPSBWaWV3Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUsIGxlbmd0aCk7CisgICAgICAgIFZpZXdDbGFzcyogcmVzdWx0ID0gbmV3
QnVmZmVyCisgICAgICAgICAgICA/IFZpZXdDbGFzczo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlLCBuZXdCdWZmZXItPmltcGwoKSwgMCwgbGVuZ3RoKQorICAgICAgICAgICAgOiBWaWV3
Q2xhc3M6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxlbmd0
aCk7CiAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoISFzY29wZS5leGNlcHRpb24oKSA9PSAhcmVz
dWx0KTsKICAgICAgICAgaWYgKFVOTElLRUxZKCFyZXN1bHQpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIAorCiAgICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICAg
aWYgKCFyZXN1bHQtPnNldChnbG9iYWxPYmplY3QsIDAsIG9iamVjdCwgMCwgbGVuZ3RoKSkKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBiNGNlZWViNTM1ZmE0ZmU1MzY3MWViNjJhZjYyMWNi
MzIyYTlkZDk5Li4zMWQ2ZGFhNThlYTQzODkxNTI3N2JhOWYxNjc0ZTRjZjJjNGY3NDA1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTEyLTAzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255
LmNvbT4KKworICAgICAgICBBbGlnbiAlVHlwZWRBcnJheSUgY29uc3RydWN0b3IgYmVoYXZpb3Ig
d2l0aCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTk1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisgICAgICAgIE1hcmsgNDAgdGVzdCBjYXNl
cyBhcyBwYXNzaW5nLgorCisgICAgICAgICogd2FzbS9mdXp6L21lbW9yeS5qczoKKyAgICAgICAg
KiB3YXNtL2pzLWFwaS90ZXN0X0RhdGEuanM6CisgICAgICAgIEZpeCBub24tY29uZm9ybWluZyB0
eXBlZCBhcnJheSB1c2FnZS4KKwogMjAyMC0xMi0wMiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2ly
c2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgJVR5cGVkQXJyYXklI3NsaWNlIHNob3VsZG4ndCBj
YXJlIGFib3V0IHNvdXJjZSBidWZmZXIgZGV0YWNobWVudCBpZiB0aGVyZSdzIG5vdGhpbmcgdG8g
Y29weQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IDdhYzJmZWQ2YzVkMWJiYzcwYmNl
YWM1NGI2YTFiMzZhZGZlNmJhYmUuLmUwZmRlYWViZTY4YmJmYjAyZTJkMGFlNGJkMzMzZTI2ZDIw
NzJiMzMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysg
Yi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTgzMiw2NiArODMyLDYgQEAg
dGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvYXQvcHJvcC1kZXNjLmpzOgogdGVz
dC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvaW5jbHVkZXMvZGV0YWNoZWQtYnVmZmVy
LXRvaW50ZWdlci5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBl
RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL2J1ZmZlci1hcmcvYnl0ZW9mZnNldC10by1u
dW1iZXItZGV0YWNoYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciBidXQgZ290IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJy
b3IgYnV0IGdvdCBhIFJhbmdlRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvYnVmZmVyLWFyZy9kZXRh
Y2hlZGJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBl
RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL2J1ZmZlci1hcmcvbGVuZ3RoLXRvLW51bWJl
ci1kZXRhY2hidWZmZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEg
VHlwZUVycm9yIGJ1dCBnb3QgYSBSYW5nZUVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5
LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBi
dXQgZ290IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9i
dWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy9vYmplY3QtYXJnL2xlbmd0aC1l
eGNlc3NpdmUtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBh
IFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBh
bGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9i
dWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9kZXRh
Y2hlZC13aGVuLXNwZWNpZXMtcmV0cmlldmVkLWRpZmZlcmVudC10eXBlLmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBUeXBlRXJyb3IgdGhyb3duIGZvciBkZXRhY2hlZCBzb3VyY2UgYnVm
ZmVyIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBUeXBlRXJyb3IgdGhyb3duIGZvciBkZXRhY2hlZCBzb3VyY2Ug
YnVmZmVyIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL2RldGFj
aGVkLXdoZW4tc3BlY2llcy1yZXRyaWV2ZWQtc2FtZS10eXBlLmpzOgotICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBUeXBlRXJyb3IgdGhyb3duIGZvciBkZXRhY2hlZCBzb3VyY2UgYnVmZmVyIEV4
cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJv
d24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBUeXBlRXJyb3IgdGhyb3duIGZvciBkZXRhY2hlZCBzb3VyY2UgYnVmZmVy
IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL290aGVyLWN0b3It
YnVmZmVyLWN0b3ItYWNjZXNzLXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjog
RXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVk
YXJyYXktYXJnL290aGVyLWN0b3ItYnVmZmVyLWN0b3ItY3VzdG9tLXNwZWNpZXMtcHJvdG8tZnJv
bS1jdG9yLXJlYWxtLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7LCDCq1tvYmplY3QgQXJyYXlCdWZmZXJdwrsp
IHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgQXJyYXlCdWZmZXJd
wrssIMKrW29iamVjdCBBcnJheUJ1ZmZlcl3CuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9y
cy90eXBlZGFycmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZlci1jdG9yLWN1c3RvbS1zcGVjaWVzLmpz
OgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0
IEFycmF5QnVmZmVyXcK7LCDCq1tvYmplY3QgT2JqZWN0XcK7KSB0byBiZSB0cnVlIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7LCDCq1tvYmplY3QgT2JqZWN0
XcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL290aGVyLWN0
b3ItYnVmZmVyLWN0b3Itbm90LW9iamVjdC10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBl
ZGFycmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZlci1jdG9yLXNwZWNpZXMtYWNjZXNzLXRocm93cy5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24g
YXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBl
ZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL290aGVyLWN0b3ItYnVmZmVy
LWN0b3Itc3BlY2llcy1ub3QtY3Rvci10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdh
cyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFy
cmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZlci1jdG9yLXNwZWNpZXMtcHJvdG90eXBlLXRocm93cy5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8g
YmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24g
YXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBl
ZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL3NhbWUtY3Rvci1idWZmZXIt
Y3Rvci1hY2Nlc3MtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
LXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1h
cmcvc2FtZS1jdG9yLWJ1ZmZlci1jdG9yLXNwZWNpZXMtY3VzdG9tLXByb3RvLWZyb20tY3Rvci1y
ZWFsbS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
W29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7KSB0byBiZSB0
cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7LCDCq1tv
YmplY3QgQXJyYXlCdWZmZXJdwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRh
cnJheS1hcmcvc2FtZS1jdG9yLWJ1ZmZlci1jdG9yLXNwZWNpZXMtY3VzdG9tLmpzOgotICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IEFycmF5QnVm
ZmVyXcK7LCDCq1tvYmplY3QgT2JqZWN0XcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7LCDCq1tvYmplY3QgT2JqZWN0XcK7KSB0byBi
ZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBl
ZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL3NhbWUtY3Rvci1idWZmZXIt
Y3Rvci1zcGVjaWVzLW5vdC1jdG9yLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcv
c2FtZS1jdG9yLWJ1ZmZlci1jdG9yLXNwZWNpZXMtcHJvdG90eXBlLXRocm93cy5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3du
IGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2
MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChU
ZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29u
c3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL3NhbWUtY3Rvci1idWZmZXItY3Rvci1zcGVj
aWVzLXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0
MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL3NhbWUt
Y3Rvci1idWZmZXItY3Rvci12YWx1ZS1ub3Qtb2JqLXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRo
cm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVy
bmFscy9TZXQva2V5LWlzLW1pbnVzLXplcm8uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IFJlZmxlY3Quc2V0KHNhbXBsZSwgIi0wIiwgMSkgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQg
U2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBG
bG9hdDY0QXJyYXkuKScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3Quc2V0
KHNhbXBsZSwgIi0wIiwgMSkgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
dHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9mdXp6L21lbW9yeS5qcyBiL0pTVGVzdHMvd2Fz
bS9mdXp6L21lbW9yeS5qcwppbmRleCBjNWRiMmU5Zjg3MjJhY2M4YjE5ODU3Zjk4YTdhMjg3NWVi
NjkyZDhkLi41MDVlYWQ1ZWI0YjU2MzI4Y2FiYmNiNmY1OTc1M2NmMWIzZDk2Y2MyIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3dhc20vZnV6ei9tZW1vcnkuanMKKysrIGIvSlNUZXN0cy93YXNtL2Z1enov
bWVtb3J5LmpzCkBAIC0xMDEsOCArMTAxLDcgQEAgY29uc3QgYWN0aW9uID0gewogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAnbWVtb3J5JzogewogICAgICAgICAgICAg
ICAgIGNvbnN0IGN1cnJlbnQgPSBpbnN0YW5jZS5leHBvcnRzLmN1cnJlbnQoKTsKLSAgICAgICAg
ICAgICAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDMyQXJyYXkoaW5zdGFuY2UuZXhwb3J0cy5t
ZW1vcnkuYnVmZmVyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQuZXEoYnVmZmVyLmJ5dGVMZW5n
dGgsIGN1cnJlbnQgKiBwYWdlU2l6ZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0LmVxKGluc3Rh
bmNlLmV4cG9ydHMubWVtb3J5LmJ1ZmZlci5ieXRlTGVuZ3RoLCBjdXJyZW50ICogcGFnZVNpemUp
OwogICAgICAgICAgICAgICAgIGZvciAobGV0IGFjY2VzcyA9IHR1bmUubWVtb3J5R2V0Q291bnQ7
IGN1cnJlbnQgJiYgYWNjZXNzOyAtLWFjY2VzcykgewogICAgICAgICAgICAgICAgICAgICBjb25z
dCBhZGRyZXNzID0gKE1hdGgucmFuZG9tKCkgKiAoY3VycmVudCAqIHBhZ2VTaXplIC0gNCkpIHwg
MDsKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuZ2V0KGFk
ZHJlc3MpLCAwKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9EYXRhLmpz
IGIvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X0RhdGEuanMKaW5kZXggNDE3MTQzNTEyOGEwODRk
NTk0OWQ4ZmYyYjhiMTI1NzBiN2YyMzM3NS4uZmZmOGE2OGM3MzEyZmI0ZTc4MzEzN2Y2YjIyMjlh
ZDM0MzJiZGM4MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X0RhdGEuanMK
KysrIGIvSlNUZXN0cy93YXNtL2pzLWFwaS90ZXN0X0RhdGEuanMKQEAgLTEzMiw3ICsxMzIsNyBA
QCBjb25zdCBhc3NlcnRNZW1vcnlBbGxaZXJvID0gbWVtb3J5ID0+IHsKICAgICBjb25zdCBtb2R1
bGUgPSBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbik7CiAgICAgY29uc3QgbWVtb3J5ID0gbmV3
IFdlYkFzc2VtYmx5Lk1lbW9yeShlbXB0eU1lbW9yeSk7CiAgICAgYXNzZXJ0LnRocm93cygoKSA9
PiBuZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UobW9kdWxlLCB7IGltcDogeyBtZW1vcnk6IG1lbW9y
eSB9IH0pLCBXZWJBc3NlbWJseS5MaW5rRXJyb3IsIGBJbnZhbGlkIGRhdGEgc2VnbWVudCBpbml0
aWFsaXphdGlvbjogc2VnbWVudCBvZiAwIGJ5dGVzIG1lbW9yeSBvZiAwIGJ5dGVzLCBhdCBvZmZz
ZXQgNjU1MzYsIHNlZ21lbnQgd3JpdGVzIG91dHNpZGUgb2YgbWVtb3J5YCk7Ci0gICAgYXNzZXJ0
TWVtb3J5QWxsWmVybyhtZW1vcnkpOworICAgIGFzc2VydC5lcShtZW1vcnkuYnVmZmVyLmJ5dGVM
ZW5ndGgsIDApOwogfSkoKTsKIAogKGZ1bmN0aW9uIERhdGFTZWN0aW9uU2VlbkJ5U3RhcnQoKSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415594</attachid>
            <date>2020-12-07 15:29:22 -0800</date>
            <delta_ts>2020-12-08 12:17:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219527-20201207152921.patch</filename>
            <type>text/plain</type>
            <size>22359</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
N2QxZDdlOWFjMDUwM2U3MzEzZWIzZTQ1ZjVkYjVlNjAwNmFhZTcwLi40N2E3YWRiN2Y1ZDJiM2M5
NGNiYWI5M2UxMDAzODNkYTdkOTg4Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAyMC0xMi0wNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgQWxpZ24gJVR5cGVkQXJyYXklIGNvbnN0cnVjdG9yIGJlaGF2aW9y
IHdpdGggc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5NTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlc2Ugc2hvdWxkIGJlIHRoZSBsYXN0IEpTQy1zaWRlIGNvcnJlY3Rpb25zIGZvciB0eXBl
ZCBhcnJheSBiZWhhdmlvcjoKKyAgICAgICAgbmFtZWx5LCBmaXhlcyBmb3IgdGhlIGNvbnN0cnVj
dG9yIGl0c2VsZi4KKworICAgICAgICBCcm9hZGx5IHNwZWFraW5nLCB0aGVyZSBhcmUgdGhyZWUg
Zml4ZXMgaGVyZToKKyAgICAgICAgMS4gQXJyYXlCdWZmZXIgYXJndW1lbnQgKGh0dHBzOi8vdGMz
OS5lcy9lY21hMjYyLyNzZWMtaW5pdGlhbGl6ZXR5cGVkYXJyYXlmcm9tYXJyYXlidWZmZXIpOgor
ICAgICAgICAgICBXZSBuZWVkIHRvIHRocm93IGlmIHRoZSBpbnB1dCBidWZmZXIgZ2V0cyBkZXRh
Y2hlZC4KKworICAgICAgICAyLiBBcnJheS1saWtlIGFyZ3VtZW50IChodHRwczovL3RjMzkuZXMv
ZWNtYTI2Mi8jc2VjLWluaXRpYWxpemV0eXBlZGFycmF5ZnJvbWFycmF5bGlrZSk6CisgICAgICAg
ICAgIGxlbmd0aCBuZWVkcyB0b0xlbmd0aCwgbm90IHRvVUludDMyLgorCisgICAgICAgIDMuIFR5
cGVkIGFycmF5IGFyZ3VtZW50IChodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWluaXRpYWxp
emV0eXBlZGFycmF5ZnJvbXR5cGVkYXJyYXkpOgorICAgICAgICAgICBXZSBuZWVkIHRvIHN1cHBv
cnQgdGhlIGNhc2Ugd2hlcmUgdGhlIGlucHV0IHR5cGVkIGFycmF5IHVzZXMgYSBjdXN0b20gQXJy
YXlCdWZmZXIuCisgICAgICAgICAgIFRoaXMgY2FzZSBpcyAqZXh0cmVtZWx5KiBzdHJhbmdlIC0t
IHdlIHN0aWxsIGNyZWF0ZSB0aGUgc2FtZSB0eXBlIG9mIHR5cGVkIGFycmF5IHdpdGggYSBub3Jt
YWwgQXJyYXlCdWZmZXIsCisgICAgICAgICAgIGJ1dCB3ZSBvdmVycmlkZSB0aGUgcHJvdG90eXBl
IG9mIHRoYXQgQXJyYXlCdWZmZXIgdG8gaW5wdXRUeXBlZEFycmF5LmJ1ZmZlci5jb25zdHJ1Y3Rv
cltAQHNwZWNpZXNdLnByb3RvdHlwZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZl
clByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5QnVmZmVyU3BlY2llc0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEN1c3RvbUFycmF5QnVmZmVySWZOZWVkZWQpOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRoQXJndW1lbnRzKToK
KwogMjAyMC0xMi0wNyAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAg
ICAgICAgIFtDTWFrZV0gUmVtb3ZlIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5j
cHAKaW5kZXggMzM0YWQ3N2JmZTIwM2JiNTA3MWVlNWJhMGYwY2JjMGYwOTRlYjA3My4uMGQwZTAw
M2ZjYzc5OWI0NGNlZjkxYWE2MjQ2ZjI5MzdhMTRiM2FjNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKQEAg
LTU2LDYgKzU2LDQxIEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgc3BlY2llc1dhdGNocG9p
bnRJc1ZhbGlkKFZNJiB2bSwgSlNPYmplY3QqIHRoaXNPYmplY3QsCiAgICAgICAgICYmIGdsb2Jh
bE9iamVjdC0+YXJyYXlCdWZmZXJTcGVjaWVzV2F0Y2hwb2ludFNldChtb2RlKS5zdGF0ZU9uSlNU
aHJlYWQoKSA9PSBJc1dhdGNoZWQ7CiB9CiAKK09wdGlvbmFsPEpTVmFsdWU+IGFycmF5QnVmZmVy
U3BlY2llc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQXJyYXlC
dWZmZXIqIHRoaXNPYmplY3QsIEFycmF5QnVmZmVyU2hhcmluZ01vZGUgbW9kZSkKK3sKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworCisgICAgYm9vbCBpc1ZhbGlkID0gc3BlY2llc1dhdGNocG9pbnRJc1Zh
bGlkKHZtLCB0aGlzT2JqZWN0LCBtb2RlKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigp
OworICAgIGlmIChMSUtFTFkoaXNWYWxpZCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBKU1ZhbHVlIGNvbnN0cnVjdG9yID0gdGhpc09iamVjdC0+Z2V0KGdsb2JhbE9iamVj
dCwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIFdURjo6bnVsbG9wdCk7CisgICAgaWYgKGNvbnN0cnVjdG9yLmlzQ29uc3RydWN0
b3Iodm0pKSB7CisgICAgICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3Rvck9iamVjdCA9IGpzQ2FzdDxK
U09iamVjdCo+KGNvbnN0cnVjdG9yKTsKKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdEZyb21Db25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9yT2JqZWN0LT5nbG9iYWxPYmplY3Qodm0p
OworICAgICAgICBib29sIGlzQXJyYXlCdWZmZXJDb25zdHJ1Y3RvckZyb21Bbm90aGVyUmVhbG0g
PSBnbG9iYWxPYmplY3QgIT0gZ2xvYmFsT2JqZWN0RnJvbUNvbnN0cnVjdG9yCisgICAgICAgICAg
ICAmJiBjb25zdHJ1Y3Rvck9iamVjdCA9PSBnbG9iYWxPYmplY3RGcm9tQ29uc3RydWN0b3ItPmFy
cmF5QnVmZmVyQ29uc3RydWN0b3IobW9kZSk7CisgICAgICAgIGlmIChpc0FycmF5QnVmZmVyQ29u
c3RydWN0b3JGcm9tQW5vdGhlclJlYWxtKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICB9CisKKyAgICBpZiAoY29uc3RydWN0b3IuaXNVbmRlZmluZWQoKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICghY29uc3RydWN0b3IuaXNPYmplY3QoKSkg
eworICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiY29uc3RydWN0
b3IgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBudWxsIl9zKTsKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHNwZWNpZXMgPSBjb25zdHJ1Y3Rvci5nZXQo
Z2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBXVEY6Om51bGxvcHQpOworCisgICAgcmV0dXJuIHNwZWNp
ZXMuaXNVbmRlZmluZWRPck51bGwoKSA/IFdURjo6bnVsbG9wdCA6IG1ha2VPcHRpb25hbChzcGVj
aWVzKTsKK30KKwogZW51bSBjbGFzcyBTcGVjaWVzQ29uc3RydWN0UmVzdWx0IDogdWludDhfdCB7
CiAgICAgRmFzdFBhdGgsCiAgICAgRXhjZXB0aW9uLApAQCAtNzQsMzYgKzEwOSwxNiBAQCBzdGF0
aWMgQUxXQVlTX0lOTElORSBzdGQ6OnBhaXI8U3BlY2llc0NvbnN0cnVjdFJlc3VsdCwgSlNBcnJh
eUJ1ZmZlcio+IHNwZWNpZXNDbwogCiAgICAgLy8gRmFzdCBwYXRoIGluIHRoZSBub3JtYWwgY2Fz
ZSB3aGVyZSB0aGUgdXNlciBoYXMgbm90IHNldCBhbiBvd24gY29uc3RydWN0b3IgYW5kIHRoZSBB
cnJheUJ1ZmZlci5wcm90b3R5cGUuY29uc3RydWN0b3IgaXMgbm9ybWFsLgogICAgIC8vIFdlIG5l
ZWQgcHJvdG90eXBlIGNoZWNrIGZvciBzdWJjbGFzc2VzIG9mIEFycmF5QnVmZmVyLCB3aGljaCBh
cmUgQXJyYXlCdWZmZXIgb2JqZWN0cyBidXQgaGF2ZSBhIGRpZmZlcmVudCBwcm90b3R5cGUgYnkg
ZGVmYXVsdC4KLSAgICBib29sIGlzVmFsaWQgPSBzcGVjaWVzV2F0Y2hwb2ludElzVmFsaWQodm0s
IHRoaXNPYmplY3QsIG1vZGUpOwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7Ci0gICAg
aWYgKExJS0VMWShpc1ZhbGlkKSkKLSAgICAgICAgcmV0dXJuIGZhc3RQYXRoUmVzdWx0OwotCi0g
ICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IHRoaXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHZt
LnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yKTsKKyAgICBPcHRpb25hbDxKU1ZhbHVlPiBzcGVj
aWVzID0gYXJyYXlCdWZmZXJTcGVjaWVzQ29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCB0aGlzT2Jq
ZWN0LCBtb2RlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlcnJvclJlc3VsdCk7
Ci0gICAgaWYgKGNvbnN0cnVjdG9yLmlzQ29uc3RydWN0b3Iodm0pKSB7Ci0gICAgICAgIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3Rvck9iamVjdCA9IGpzQ2FzdDxKU09iamVjdCo+KGNvbnN0cnVjdG9yKTsK
LSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdEZyb21Db25zdHJ1Y3RvciA9IGNv
bnN0cnVjdG9yT2JqZWN0LT5nbG9iYWxPYmplY3Qodm0pOwotICAgICAgICBib29sIGlzQXJyYXlC
dWZmZXJDb25zdHJ1Y3RvckZyb21Bbm90aGVyUmVhbG0gPSBnbG9iYWxPYmplY3QgIT0gZ2xvYmFs
T2JqZWN0RnJvbUNvbnN0cnVjdG9yCi0gICAgICAgICAgICAmJiBjb25zdHJ1Y3Rvck9iamVjdCA9
PSBnbG9iYWxPYmplY3RGcm9tQ29uc3RydWN0b3ItPmFycmF5QnVmZmVyQ29uc3RydWN0b3IobW9k
ZSk7Ci0gICAgICAgIGlmIChpc0FycmF5QnVmZmVyQ29uc3RydWN0b3JGcm9tQW5vdGhlclJlYWxt
KQotICAgICAgICAgICAgcmV0dXJuIGZhc3RQYXRoUmVzdWx0OwotICAgIH0KLSAgICBpZiAoY29u
c3RydWN0b3IuaXNPYmplY3QoKSkgewotICAgICAgICBjb25zdHJ1Y3RvciA9IGNvbnN0cnVjdG9y
LmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1ib2wpOwotICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlcnJvclJlc3VsdCk7Ci0gICAgICAgIGlm
IChjb25zdHJ1Y3Rvci5pc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiBmYXN0UGF0aFJlc3Vs
dDsKLSAgICB9Ci0KLSAgICBpZiAoY29uc3RydWN0b3IuaXNVbmRlZmluZWQoKSkKKyAgICBpZiAo
IXNwZWNpZXMpCiAgICAgICAgIHJldHVybiBmYXN0UGF0aFJlc3VsdDsKIAogICAgIC8vIDE2LiBM
ZXQgbmV3IGJlID8gQ29uc3RydWN0KGN0b3IsIMKrIPCdlL0obmV3TGVuKSDCuykuCiAgICAgTWFy
a2VkQXJndW1lbnRCdWZmZXIgYXJnczsKICAgICBhcmdzLmFwcGVuZChqc051bWJlcihsZW5ndGgp
KTsKICAgICBBU1NFUlQoIWFyZ3MuaGFzT3ZlcmZsb3dlZCgpKTsKLSAgICBKU09iamVjdCogbmV3
T2JqZWN0ID0gY29uc3RydWN0KGdsb2JhbE9iamVjdCwgY29uc3RydWN0b3IsIGFyZ3MsICJTcGVj
aWVzIGNvbnN0cnVjdGlvbiBkaWQgbm90IGdldCBhIHZhbGlkIGNvbnN0cnVjdG9yIik7CisgICAg
SlNPYmplY3QqIG5ld09iamVjdCA9IGNvbnN0cnVjdChnbG9iYWxPYmplY3QsIHNwZWNpZXMudmFs
dWUoKSwgYXJncywgIlNwZWNpZXMgY29uc3RydWN0aW9uIGRpZCBub3QgZ2V0IGEgdmFsaWQgY29u
c3RydWN0b3IiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlcnJvclJlc3VsdCk7
CiAKICAgICAvLyAxNy4gUGVyZm9ybSA/IFJlcXVpcmVJbnRlcm5hbFNsb3QobmV3LCBbW0FycmF5
QnVmZmVyRGF0YV1dKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuaAppbmRleCBjMDBjYjcxNWE0MzA3N2MxODc3OTRhMTIw
MDM0NDVhNjEyYzMxZTI3Li5lYjY4MDVjYTQyOTZiODVmOTkyM2EwODEyNDZjYzQ3MmY0ZDY0Mjgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVy
UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1
ZmZlclByb3RvdHlwZS5oCkBAIC01MSw0ICs1MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSk7
CiB9OwogCitPcHRpb25hbDxKU1ZhbHVlPiBhcnJheUJ1ZmZlclNwZWNpZXNDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCosIEpTQXJyYXlCdWZmZXIqLCBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlKTsK
KwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3RvcklubGluZXMuaAppbmRleCA3MDBiNDA2OThkZmY2OWQ5NWQzZjM0NzgzZTI2OWUwYzU2NDJh
NTAyLi40ZTJmOTYwZjRjYmI2MmFjN2NmMzI0ZjA3ZDc5ZDZkYzA1ZTIyZmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKQEAgLTEwMyw2ICsxMDMs
MzkgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdGcm9t
SXRlcmF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitp
bmxpbmUgSlNBcnJheUJ1ZmZlciogY29uc3RydWN0Q3VzdG9tQXJyYXlCdWZmZXJJZk5lZWRlZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0FycmF5QnVmZmVyKiBzb3VyY2UpCit7Cisg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKworICAgIGlmIChzb3VyY2UtPmlzU2hhcmVkKCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgT3B0aW9uYWw8SlNWYWx1ZT4gc3BlY2llcyA9IGFycmF5
QnVmZmVyU3BlY2llc0NvbnN0cnVjdG9yKGdsb2JhbE9iamVjdCwgc291cmNlLCBBcnJheUJ1ZmZl
clNoYXJpbmdNb2RlOjpEZWZhdWx0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKKyAgICBpZiAoIXNwZWNpZXMpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgaWYgKCFzcGVjaWVzLT5pc0NvbnN0cnVjdG9yKHZtKSkgeworICAgICAgICB0aHJvd1R5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAic3BlY2llcyBpcyBub3QgYSBjb25zdHJ1Y3RvciJf
cyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIEpTVmFsdWUgcHJvdG90
eXBlID0gc3BlY2llcy0+Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90
eXBlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKworICAgIGF1
dG8gYnVmZmVyID0gQXJyYXlCdWZmZXI6OnRyeUNyZWF0ZShzb3VyY2UtPmltcGwoKS0+Ynl0ZUxl
bmd0aCgpLCAxKTsKKyAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICB0aHJvd091dE9mTWVtb3J5
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKworICAgIGF1dG8gcmVzdWx0ID0gSlNBcnJheUJ1ZmZlcjo6Y3JlYXRlKHZtLCBnZXRGdW5j
dGlvblJlYWxtKHZtLCBhc09iamVjdChzcGVjaWVzLnZhbHVlKCkpKS0+YXJyYXlCdWZmZXJTdHJ1
Y3R1cmUoQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCksIFdURk1vdmUoYnVmZmVyKSk7
CisgICAgaWYgKHByb3RvdHlwZS5pc09iamVjdCgpKQorICAgICAgICByZXN1bHQtPnNldFByb3Rv
dHlwZURpcmVjdCh2bSwgcHJvdG90eXBlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdlbmVy
aWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEVuY29kZWRKU1ZhbHVlIGZpcnN0QXJndW1lbnQsIHVu
c2lnbmVkIG9mZnNldCwgT3B0aW9uYWw8dW5zaWduZWQ+IGxlbmd0aE9wdCkKIHsKQEAgLTExMyw4
ICsxNDYsMTIgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZp
ZXdXaXRoQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAogICAgIGlmIChKU0FycmF5QnVm
ZmVyKiBqc0J1ZmZlciA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlcio+KHZtLCBmaXJzdFZh
bHVlKSkgewogICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IGpzQnVmZmVyLT5p
bXBsKCk7Ci0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IDA7CisgICAgICAgIGlmIChidWZmZXIt
PmlzRGV0YWNoZWQoKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgIkJ1ZmZlciBpcyBhbHJlYWR5IGRldGFjaGVkIl9zKTsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICB9CiAKKyAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gMDsK
ICAgICAgICAgaWYgKGxlbmd0aE9wdCkKICAgICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aE9wdC52
YWx1ZSgpOwogICAgICAgICBlbHNlIHsKQEAgLTE0MCwxMCArMTc3LDIwIEBAIGlubGluZSBKU09i
amVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50cyhKU0dsb2Jh
bE9iamVjdCogZ2xvCiAKICAgICBpZiAoSlNPYmplY3QqIG9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNPYmplY3QqPih2bSwgZmlyc3RWYWx1ZSkpIHsKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoOwor
ICAgICAgICBKU0FycmF5QnVmZmVyKiBjdXN0b21CdWZmZXIgPSBudWxscHRyOwogCi0gICAgICAg
IGlmIChpc1R5cGVkVmlldyhvYmplY3QtPmNsYXNzSW5mbyh2bSktPnR5cGVkQXJyYXlTdG9yYWdl
VHlwZSkpCi0gICAgICAgICAgICBsZW5ndGggPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihv
YmplY3QpLT5sZW5ndGgoKTsKLSAgICAgICAgZWxzZSB7CisgICAgICAgIGlmIChpc1R5cGVkVmll
dyhvYmplY3QtPmNsYXNzSW5mbyh2bSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpIHsKKyAgICAg
ICAgICAgIGF1dG8qIHZpZXcgPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihvYmplY3QpOwor
ICAgICAgICAgICAgbGVuZ3RoID0gdmlldy0+bGVuZ3RoKCk7CisKKyAgICAgICAgICAgIGN1c3Rv
bUJ1ZmZlciA9IGNvbnN0cnVjdEN1c3RvbUFycmF5QnVmZmVySWZOZWVkZWQoZ2xvYmFsT2JqZWN0
LCB2aWV3LT5wb3NzaWJseVNoYXJlZEpTQnVmZmVyKGdsb2JhbE9iamVjdCkpOworICAgICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICAgICAgICAgIGlm
ICh2aWV3LT5pc0RldGFjaGVkKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRh
Y2hlZCBmcm9tIHRoZSB2aWV3Il9zKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFRoaXMgZ2V0
UHJvcGVydHlTbG90IG9wZXJhdGlvbiBzaG91bGQgbm90IGJlIG9ic2VydmVkIGJ5IHRoZSBQcm94
eS4KICAgICAgICAgICAgIC8vIFNvIHdlIHVzZSBWTUlucXVpcnkuIEFuZCBwdXJnZSB0aGUgb3Bh
cXVlIG9iamVjdCBjYXNlcyAocHJveHkgYW5kIG5hbWVzcGFjZSBvYmplY3QpIGJ5IGlzVGFpbnRl
ZEJ5T3BhcXVlT2JqZWN0KCkgZ3VhcmQuCiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3QgbGVuZ3Ro
U2xvdChvYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnks
ICZ2bSk7CkBAIC0xNzMsMTcgKzIyMCwxOCBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdl
bmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqIGdsbwogICAg
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGxlbmd0aFNs
b3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpOwogICAg
ICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgICAg
ICAgICAgICAgIGxlbmd0aCA9IHZhbHVlLnRvVUludDMyKGdsb2JhbE9iamVjdCk7CisgICAgICAg
ICAgICAgICAgbGVuZ3RoID0gdmFsdWUudG9MZW5ndGgoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCi0gICAgICAgIAotICAgICAgICBWaWV3Q2xhc3MqIHJlc3VsdCA9IFZp
ZXdDbGFzczo6Y3JlYXRlVW5pbml0aWFsaXplZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGVu
Z3RoKTsKKyAgICAgICAgVmlld0NsYXNzKiByZXN1bHQgPSBjdXN0b21CdWZmZXIKKyAgICAgICAg
ICAgID8gVmlld0NsYXNzOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGN1c3RvbUJ1
ZmZlci0+aW1wbCgpLCAwLCBsZW5ndGgpCisgICAgICAgICAgICA6IFZpZXdDbGFzczo6Y3JlYXRl
VW5pbml0aWFsaXplZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGVuZ3RoKTsKICAgICAgICAg
RVhDRVBUSU9OX0FTU0VSVCghIXNjb3BlLmV4Y2VwdGlvbigpID09ICFyZXN1bHQpOwogICAgICAg
ICBpZiAoVU5MSUtFTFkoIXJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICAgICAgCisKICAgICAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgICAgICBpZiAoIXJlc3VsdC0+
c2V0KGdsb2JhbE9iamVjdCwgMCwgb2JqZWN0LCAwLCBsZW5ndGgpKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGJmYmQxM2RhMWI3NTk5Yzc3MmVmMTU2OTIwMDBiN2E2NDEwNzE0MGYuLjkw
NDdmZTZiZTVkNmUwMWY2MjRmYzZiYmRhZGFmM2M5MjljMmI4NTcgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjAtMTItMDcgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgorCisgICAg
ICAgIEFsaWduICVUeXBlZEFycmF5JSBjb25zdHJ1Y3RvciBiZWhhdmlvciB3aXRoIHNwZWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTUyNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAgTWFyayA0MCB0ZXN0IGNhc2VzIGFzIHBhc3Npbmcu
CisKKyAgICAgICAgKiB3YXNtL2Z1enovbWVtb3J5LmpzOgorICAgICAgICAqIHdhc20vanMtYXBp
L3Rlc3RfRGF0YS5qczoKKyAgICAgICAgRml4IG5vbi1jb25mb3JtaW5nIHR5cGVkIGFycmF5IHVz
YWdlLgorCiAyMDIwLTEyLTA2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gZ2V0IC8gc2V0IGZvciBvYmplY3QgbGl0ZXJhbCBhbmQgY2xhc3Mgc2hv
dWxkIG5vdCBiZSBlc2NhcGVkCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRp
b25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggMWFkZmVi
NDY0N2EyNDMxNTk3OTUxNjNhOGZiOTgzODZlNGMwZjBiMi4uNjNlZjJmMmQwYWFmZmZiNzAzMGM2
ZWNkNmM3ZGNlMGUxMDljNTk5NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtODMy
LDY2ICs4MzIsNiBAQCB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9hdC9wcm9w
LWRlc2MuanM6CiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9pbmNsdWRlcy9k
ZXRhY2hlZC1idWZmZXItdG9pbnRlZ2VyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
LXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvYnVmZmVyLWFyZy9i
eXRlb2Zmc2V0LXRvLW51bWJlci1kZXRhY2hidWZmZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBSYW5nZUVycm9yIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy9i
dWZmZXItYXJnL2RldGFjaGVkYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
LXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvYnVmZmVyLWFyZy9s
ZW5ndGgtdG8tbnVtYmVyLWRldGFjaGJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFJhbmdlRXJyb3IgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBSYW5nZUVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL29iamVj
dC1hcmcvbGVuZ3RoLWV4Y2Vzc2l2ZS10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgUmFuZ2VFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVk
YXJyYXktYXJnL2RldGFjaGVkLXdoZW4tc3BlY2llcy1yZXRyaWV2ZWQtZGlmZmVyZW50LXR5cGUu
anM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFR5cGVFcnJvciB0aHJvd24gZm9yIGRldGFj
aGVkIHNvdXJjZSBidWZmZXIgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFR5cGVFcnJvciB0aHJvd24gZm9yIGRl
dGFjaGVkIHNvdXJjZSBidWZmZXIgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1
dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRh
cnJheS1hcmcvZGV0YWNoZWQtd2hlbi1zcGVjaWVzLXJldHJpZXZlZC1zYW1lLXR5cGUuanM6Ci0g
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFR5cGVFcnJvciB0aHJvd24gZm9yIGRldGFjaGVkIHNv
dXJjZSBidWZmZXIgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNl
cHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFR5cGVFcnJvciB0aHJvd24gZm9yIGRldGFjaGVk
IHNvdXJjZSBidWZmZXIgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBl
eGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
LXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1h
cmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1hY2Nlc3MtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5v
IGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3Rv
cnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1jdXN0b20tc3Bl
Y2llcy1wcm90by1mcm9tLWN0b3ItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgQXJyYXlCdWZmZXJdwrssIMKrW29iamVjdCBB
cnJheUJ1ZmZlcl3CuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwot
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVj
dCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7KSB0byBiZSB0cnVlIChU
ZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29u
c3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL290aGVyLWN0b3ItYnVmZmVyLWN0b3ItY3Vz
dG9tLXNwZWNpZXMuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCq1tvYmplY3QgQXJyYXlCdWZmZXJdwrssIMKrW29iamVjdCBPYmplY3RdwrspIHRvIGJl
IHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgQXJyYXlCdWZmZXJdwrssIMKr
W29iamVjdCBPYmplY3RdwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJh
eS1hcmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1ub3Qtb2JqZWN0LXRocm93cy5qczoKLSAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1
dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9y
IHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0
b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL290aGVyLWN0b3ItYnVmZmVyLWN0b3Itc3BlY2llcy1h
Y2Nlc3MtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRl
c3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3Qv
YnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvb3Ro
ZXItY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLW5vdC1jdG9yLXRocm93cy5qczoKLSAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRv
IGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3Jz
L2N0b3JzL3R5cGVkYXJyYXktYXJnL290aGVyLWN0b3ItYnVmZmVyLWN0b3Itc3BlY2llcy1wcm90
b3R5cGUtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRl
c3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFs
bCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRp
b24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3Qv
YnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvc2Ft
ZS1jdG9yLWJ1ZmZlci1jdG9yLWFjY2Vzcy10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0
aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9y
cy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3Itc3BlY2llcy1jdXN0b20tcHJv
dG8tZnJvbS1jdG9yLXJlYWxtLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7LCDCq1tvYmplY3QgQXJyYXlCdWZm
ZXJdwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgQXJyYXlC
dWZmZXJdwrssIMKrW29iamVjdCBBcnJheUJ1ZmZlcl3CuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9y
cy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3Itc3BlY2llcy1jdXN0
b20uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tv
YmplY3QgQXJyYXlCdWZmZXJdwrssIMKrW29iamVjdCBPYmplY3RdwrspIHRvIGJlIHRydWUgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tvYmplY3QgQXJyYXlCdWZmZXJdwrssIMKrW29iamVjdCBP
YmplY3RdwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3Qv
YnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvc2Ft
ZS1jdG9yLWJ1ZmZlci1jdG9yLXNwZWNpZXMtbm90LWN0b3IuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90
eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3Itc3BlY2llcy1wcm90b3R5cGUtdGhy
b3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJv
ciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRo
cm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5z
L1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvc2FtZS1jdG9yLWJ1
ZmZlci1jdG9yLXNwZWNpZXMtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1
dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRh
cnJheS1hcmcvc2FtZS1jdG9yLWJ1ZmZlci1jdG9yLXZhbHVlLW5vdC1vYmotdGhyb3dzLmpzOgot
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBl
RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25z
dHJ1Y3RvcnMvaW50ZXJuYWxzL1NldC9rZXktaXMtbWludXMtemVyby5qczoKICAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5zZXQoc2FtcGxlLCAiLTAiLCAxKSBtdXN0IHJldHVybiBm
YWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogUmVmbGVjdC5zZXQoc2FtcGxlLCAiLTAiLCAxKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRo
IEZsb2F0NjRBcnJheS4pJwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2Z1enovbWVtb3J5Lmpz
IGIvSlNUZXN0cy93YXNtL2Z1enovbWVtb3J5LmpzCmluZGV4IGM1ZGIyZTlmODcyMmFjYzhiMTk4
NTdmOThhN2EyODc1ZWI2OTJkOGQuLjUwNWVhZDVlYjRiNTYzMjhjYWJiY2I2ZjU5NzUzY2YxYjNk
OTZjYzIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9mdXp6L21lbW9yeS5qcworKysgYi9KU1Rl
c3RzL3dhc20vZnV6ei9tZW1vcnkuanMKQEAgLTEwMSw4ICsxMDEsNyBAQCBjb25zdCBhY3Rpb24g
PSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICdtZW1vcnknOiB7
CiAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGluc3RhbmNlLmV4cG9ydHMuY3VycmVu
dCgpOwotICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50MzJBcnJheShpbnN0
YW5jZS5leHBvcnRzLm1lbW9yeS5idWZmZXIpOwotICAgICAgICAgICAgICAgIGFzc2VydC5lcShi
dWZmZXIuYnl0ZUxlbmd0aCwgY3VycmVudCAqIHBhZ2VTaXplKTsKKyAgICAgICAgICAgICAgICBh
c3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5tZW1vcnkuYnVmZmVyLmJ5dGVMZW5ndGgsIGN1cnJl
bnQgKiBwYWdlU2l6ZSk7CiAgICAgICAgICAgICAgICAgZm9yIChsZXQgYWNjZXNzID0gdHVuZS5t
ZW1vcnlHZXRDb3VudDsgY3VycmVudCAmJiBhY2Nlc3M7IC0tYWNjZXNzKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSAoTWF0aC5yYW5kb20oKSAqIChjdXJyZW50ICogcGFn
ZVNpemUgLSA0KSkgfCAwOwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQuZXEoaW5zdGFuY2Uu
ZXhwb3J0cy5nZXQoYWRkcmVzcyksIDApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFw
aS90ZXN0X0RhdGEuanMgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfRGF0YS5qcwppbmRleCA0
MTcxNDM1MTI4YTA4NGQ1OTQ5ZDhmZjJiOGIxMjU3MGI3ZjIzMzc1Li5mZmY4YTY4YzczMTJmYjRl
NzgzMTM3ZjZiMjIyOWFkMzQzMmJkYzgxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBp
L3Rlc3RfRGF0YS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfRGF0YS5qcwpAQCAt
MTMyLDcgKzEzMiw3IEBAIGNvbnN0IGFzc2VydE1lbW9yeUFsbFplcm8gPSBtZW1vcnkgPT4gewog
ICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluKTsKICAgICBjb25z
dCBtZW1vcnkgPSBuZXcgV2ViQXNzZW1ibHkuTWVtb3J5KGVtcHR5TWVtb3J5KTsKICAgICBhc3Nl
cnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShtb2R1bGUsIHsgaW1wOiB7
IG1lbW9yeTogbWVtb3J5IH0gfSksIFdlYkFzc2VtYmx5LkxpbmtFcnJvciwgYEludmFsaWQgZGF0
YSBzZWdtZW50IGluaXRpYWxpemF0aW9uOiBzZWdtZW50IG9mIDAgYnl0ZXMgbWVtb3J5IG9mIDAg
Ynl0ZXMsIGF0IG9mZnNldCA2NTUzNiwgc2VnbWVudCB3cml0ZXMgb3V0c2lkZSBvZiBtZW1vcnlg
KTsKLSAgICBhc3NlcnRNZW1vcnlBbGxaZXJvKG1lbW9yeSk7CisgICAgYXNzZXJ0LmVxKG1lbW9y
eS5idWZmZXIuYnl0ZUxlbmd0aCwgMCk7CiB9KSgpOwogCiAoZnVuY3Rpb24gRGF0YVNlY3Rpb25T
ZWVuQnlTdGFydCgpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415661</attachid>
            <date>2020-12-08 12:17:09 -0800</date>
            <delta_ts>2020-12-08 13:03:14 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219527-20201208121708.patch</filename>
            <type>text/plain</type>
            <size>33116</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
N2QxZDdlOWFjMDUwM2U3MzEzZWIzZTQ1ZjVkYjVlNjAwNmFhZTcwLi5mNDBjMjY5NmY2MWFiMmFk
MjgzNjI0NDZiYWFiMmU3M2Q1ODY4ODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAyMC0xMi0wOCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgQWxpZ24gJVR5cGVkQXJyYXklIGNvbnN0cnVjdG9yIGJlaGF2aW9y
IHdpdGggc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE5NTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAg
ICBUaGVzZSBzaG91bGQgYmUgdGhlIGxhc3QgSlNDLXNpZGUgY29ycmVjdGlvbnMgZm9yIHR5cGVk
IGFycmF5IGJlaGF2aW9yOgorICAgICAgICBuYW1lbHksIGZpeGVzIGZvciB0aGUgY29uc3RydWN0
b3IgaXRzZWxmLgorCisgICAgICAgIEJyb2FkbHkgc3BlYWtpbmcsIHRoZXJlIGFyZSB0aHJlZSBm
aXhlcyBoZXJlOgorICAgICAgICAxLiBBcnJheUJ1ZmZlciBhcmd1bWVudCAoaHR0cHM6Ly90YzM5
LmVzL2VjbWEyNjIvI3NlYy1pbml0aWFsaXpldHlwZWRhcnJheWZyb21hcnJheWJ1ZmZlcik6Cisg
ICAgICAgICAgIFdlIG5lZWQgdG8gdGhyb3cgaWYgdGhlIGlucHV0IGJ1ZmZlciBnZXRzIGRldGFj
aGVkLgorCisgICAgICAgIDIuIEFycmF5LWxpa2UgYXJndW1lbnQgKGh0dHBzOi8vdGMzOS5lcy9l
Y21hMjYyLyNzZWMtaW5pdGlhbGl6ZXR5cGVkYXJyYXlmcm9tYXJyYXlsaWtlKToKKyAgICAgICAg
ICAgbGVuZ3RoIG5lZWRzIHRvTGVuZ3RoLCBub3QgdG9VSW50MzIuCisKKyAgICAgICAgMy4gVHlw
ZWQgYXJyYXkgYXJndW1lbnQgKGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaW5pdGlhbGl6
ZXR5cGVkYXJyYXlmcm9tdHlwZWRhcnJheSk6CisgICAgICAgICAgIFdlIG5lZWQgdG8gc3VwcG9y
dCB0aGUgY2FzZSB3aGVyZSB0aGUgaW5wdXQgdHlwZWQgYXJyYXkgdXNlcyBhIGN1c3RvbSBBcnJh
eUJ1ZmZlci4KKyAgICAgICAgICAgVGhpcyBjYXNlIGlzICpleHRyZW1lbHkqIHN0cmFuZ2UgLS0g
d2Ugc3RpbGwgY3JlYXRlIHRoZSBzYW1lIHR5cGUgb2YgdHlwZWQgYXJyYXkgd2l0aCBhIG5vcm1h
bCBBcnJheUJ1ZmZlciwKKyAgICAgICAgICAgYnV0IHdlIG92ZXJyaWRlIHRoZSBwcm90b3R5cGUg
b2YgdGhhdCBBcnJheUJ1ZmZlciB0byBpbnB1dFR5cGVkQXJyYXkuYnVmZmVyLmNvbnN0cnVjdG9y
W0BAc3BlY2llc10ucHJvdG90eXBlLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6YXJyYXlCdWZmZXJTcGVjaWVzQ29uc3RydWN0b3JTbG93KTogQWRk
ZWQuCisgICAgICAgIChKU0M6OnNwZWNpZXNXYXRjaHBvaW50SXNWYWxpZCk6IE1vdmVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgICogcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RDdXN0b21BcnJheUJ1ZmZlcklmTmVlZGVkKTogQWRkZWQuCisgICAg
ICAgIChKU0M6OmNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKwogMjAyMC0xMi0wNyAgRG9uIE9s
bXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gUmVtb3Zl
IFdFQktJVF9XUkFQX1NPVVJDRUxJU1QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ODdkNzU4NjUzOTY2Y2ViODE2NjlmMGM1NDJhOWI0ZmEyZjYxOGI1NS4uYTVkZDA2NzA1M2RjNzRl
ZGQxNjNkOTZlZWFkZTcxZTU5ZDM1M2IwMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEzODksNiArMTM4OSw3IEBACiAJCUExRDc5MkZEMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRs
TnVtYmVyRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMUQ3OTJGNzFCNDM4NjRCMDA0NTE2RjUgLyogSW50bE51bWJlckZvcm1hdC5oICovOyB9
OwogCQlBMUQ3OTJGRjFCNDM4NjRCMDA0NTE2RjUgLyogSW50bE51bWJlckZvcm1hdENvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUQ3
OTJGOTFCNDM4NjRCMDA0NTE2RjUgLyogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmggKi87
IH07CiAJCUExRDc5MzAxMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVyRm9ybWF0UHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUQ3
OTJGQjFCNDM4NjRCMDA0NTE2RjUgLyogSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5oICovOyB9
OworCQlBMzhEMjUwRTI1ODAwRDQ0MDA0MkJGREQgLyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZUlu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
OEQyNTBEMjU4MDBENDMwMDQyQkZERCAvKiBKU0FycmF5QnVmZmVyUHJvdG90eXBlSW5saW5lcy5o
ICovOyB9OwogCQlBM0ZGOUJDNzIyMzQ3NDkxMDBCMUE5QUIgLyogWWFyckZsYWdzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0ZGOUJDNTIyMzQ3NDY2
MDBCMUE5QUIgLyogWWFyckZsYWdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQTUwM0ZBMUExODhFMEZCMDAwMTEwRjE0IC8qIEphdmFTY3JpcHRD
YWxsRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE1MDNGQTE0MTg4RTBGQUYwMDExMEYxNCAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmggKi87IH07
CiAJCUE1MDNGQTFFMTg4RTBGQjAwMDExMEYxNCAvKiBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90
b3R5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1
MDNGQTE4MTg4RTBGQjAwMDExMEYxNCAvKiBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUu
aCAqLzsgfTsKQEAgLTQzNzYsNiArNDM3Nyw3IEBACiAJCUExRTA0NTFCMUMyNUI0QjEwMEJCNjYz
QyAvKiBTdHJpbmdQcm90b3R5cGUuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7
IHBhdGggPSBTdHJpbmdQcm90b3R5cGUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExRkUxRUIwMUMyQzUzN0UwMEEyODlGRiAvKiBEYXRlUHJvdG90eXBlLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gRGF0ZVByb3RvdHlwZS5qczsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI3OTU4RDdGQTExNDJCMEFDOUUzNjREIC8qIFdhc21Db250
ZXh0SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtQ29udGV4
dElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTM4RDI1MEQyNTgwMEQ0
MzAwNDJCRkREIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5cGVJbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXJyYXlCdWZmZXJQcm90b3R5cGVJbmxpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzQUZGOTJCMjQ1QTNDRjkwMEM5QkEzQiAvKiBJ
bnRsTG9jYWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGxMb2NhbGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTNBRkY5MkMyNDVBM0NGQTAwQzlCQTNC
IC8qIEludGxMb2NhbGVDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnRsTG9jYWxlQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTNBRkY5MkQyNDVBM0NGQTAwQzlCQTNCIC8qIEludGxMb2NhbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50bExvY2FsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03NDExLDYgKzc0MTMsNyBAQAogCQkJCTBGMkI2NkI3MTdCNkI1QUIw
MEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCAqLywKIAkJCQkwRjJCNjZCODE3
QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAgKi8sCiAJCQkJMEYy
QjY2QjkxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCAqLywKKwkJ
CQlBMzhEMjUwRDI1ODAwRDQzMDA0MkJGREQgLyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZUlubGlu
ZXMuaCAqLywKIAkJCQkwRjJCNjZCQTE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclZp
ZXcuY3BwICovLAogCQkJCTBGMkI2NkJCMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVy
Vmlldy5oICovLAogCQkJCTBGMkI2NkJDMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVy
Vmlld0lubGluZXMuaCAqLywKQEAgLTk5NTAsNiArOTk1Myw3IEBACiAJCQkJMEYyQjY2RTMxN0I2
QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2
NkU1MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkI2NkU3MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyUHJv
dG90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMzhEMjUwRTI1ODAwRDQ0MDA0MkJGREQgLyog
SlNBcnJheUJ1ZmZlclByb3RvdHlwZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2
NkU5MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQjY2RUExN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJWaWV3SW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM5RkI4QkExQzk5REE3QzAwOTQwRkExIC8qIEpTQXJy
YXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDkwOGQz
MWM2ZWI4YTIyNTZjN2E3ZTc3OWFkNThlM2M1MjQ5MTAzYWIuLjY3NWQ5N2JlYTA2NGMyMGQwMDA2
N2Y3ZWU3ZjFhZDdlNWNlNDc4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZl
ci5oIgorI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNw
cAppbmRleCAzMzRhZDc3YmZlMjAzYmI1MDcxZWU1YmEwZjBjYmMwZjA5NGViMDczLi5lODlkNmJk
YmFkOTMyM2MzOTRmNWE5ZGRlNDVhMjgxYmY3MTdiYjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcApAQCAt
MjcsMzMgKzI3LDQ5IEBACiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oIgogCiAj
aW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJQcm90b3R5
cGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsK
LW5hbWVzcGFjZSBKU0FycmF5QnVmZmVyUHJvdG90eXBlSW50ZXJuYWwgewotc3RhdGljIGNvbnN0
ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKLX07CiAKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UpOwogc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTsKIHN0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNoYXJlZEFycmF5QnVmZmVyUHJvdG9GdW5j
U2xpY2UpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2hhcmVkQXJyYXlCdWZm
ZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTsKIAotCi1zdGF0aWMgQUxXQVlTX0lOTElORSBi
b29sIHNwZWNpZXNXYXRjaHBvaW50SXNWYWxpZChWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0
LCBBcnJheUJ1ZmZlclNoYXJpbmdNb2RlIG1vZGUpCitPcHRpb25hbDxKU1ZhbHVlPiBhcnJheUJ1
ZmZlclNwZWNpZXNDb25zdHJ1Y3RvclNsb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNBcnJheUJ1ZmZlciogdGhpc09iamVjdCwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBtb2RlKQog
ewotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0aGlzT2JqZWN0LT5nbG9iYWxP
YmplY3Qodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlCdWZm
ZXJQcm90b3R5cGUobW9kZSk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIGJvb2wgaXNWYWxp
ZCA9IHNwZWNpZXNXYXRjaHBvaW50SXNWYWxpZCh2bSwgdGhpc09iamVjdCwgbW9kZSk7CisgICAg
c2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKyAgICBpZiAoTElLRUxZKGlzVmFsaWQpKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IHRo
aXNPYmplY3QtPmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9y
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBXVEY6Om51bGxvcHQpOworICAgIGlm
IChjb25zdHJ1Y3Rvci5pc0NvbnN0cnVjdG9yKHZtKSkgeworICAgICAgICBKU09iamVjdCogY29u
c3RydWN0b3JPYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3QqPihjb25zdHJ1Y3Rvcik7CisgICAgICAg
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3RGcm9tQ29uc3RydWN0b3IgPSBjb25zdHJ1Y3Rv
ck9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsKKyAgICAgICAgYm9vbCBpc0FycmF5QnVmZmVyQ29u
c3RydWN0b3JGcm9tQW5vdGhlclJlYWxtID0gZ2xvYmFsT2JqZWN0ICE9IGdsb2JhbE9iamVjdEZy
b21Db25zdHJ1Y3RvcgorICAgICAgICAgICAgJiYgY29uc3RydWN0b3JPYmplY3QgPT0gZ2xvYmFs
T2JqZWN0RnJvbUNvbnN0cnVjdG9yLT5hcnJheUJ1ZmZlckNvbnN0cnVjdG9yKG1vZGUpOworICAg
ICAgICBpZiAoaXNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yRnJvbUFub3RoZXJSZWFsbSkKKyAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgfQorCisgICAgaWYgKGNvbnN0cnVjdG9y
LmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBpZiAo
Z2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlclNwZWNpZXNXYXRjaHBvaW50U2V0KG1vZGUpLnN0YXRl
T25KU1RocmVhZCgpID09IENsZWFyV2F0Y2hwb2ludCkgewotICAgICAgICBkYXRhTG9nTG5JZihK
U0FycmF5QnVmZmVyUHJvdG90eXBlSW50ZXJuYWw6OnZlcmJvc2UsICJJbml0aWFsaXppbmcgQXJy
YXlCdWZmZXIgc3BlY2llcyB3YXRjaHBvaW50cyBmb3IgQXJyYXlCdWZmZXIucHJvdG90eXBlOiAi
LCBwb2ludGVyRHVtcChwcm90b3R5cGUpLCAiIHdpdGggc3RydWN0dXJlOiAiLCBwb2ludGVyRHVt
cChwcm90b3R5cGUtPnN0cnVjdHVyZSh2bSkpLCAiXG5hbmQgQXJyYXlCdWZmZXI6ICIsIHBvaW50
ZXJEdW1wKGdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJDb25zdHJ1Y3Rvcihtb2RlKSksICIgd2l0
aCBzdHJ1Y3R1cmU6ICIsIHBvaW50ZXJEdW1wKGdsb2JhbE9iamVjdC0+YXJyYXlCdWZmZXJDb25z
dHJ1Y3Rvcihtb2RlKS0+c3RydWN0dXJlKHZtKSkpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnRy
eUluc3RhbGxBcnJheUJ1ZmZlclNwZWNpZXNXYXRjaHBvaW50KG1vZGUpOwotICAgICAgICBBU1NF
UlQoZ2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlclNwZWNpZXNXYXRjaHBvaW50U2V0KG1vZGUpLnN0
YXRlT25KU1RocmVhZCgpICE9IENsZWFyV2F0Y2hwb2ludCk7CisgICAgaWYgKCFjb25zdHJ1Y3Rv
ci5pc09iamVjdCgpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsICJjb25zdHJ1Y3RvciBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIG51bGwiX3MpOworICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAotICAgIHJldHVybiAhdGhpc09iamVjdC0+
aGFzQ3VzdG9tUHJvcGVydGllcyh2bSkKLSAgICAgICAgJiYgcHJvdG90eXBlID09IHRoaXNPYmpl
Y3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSkKLSAgICAgICAgJiYgZ2xvYmFsT2JqZWN0LT5hcnJh
eUJ1ZmZlclNwZWNpZXNXYXRjaHBvaW50U2V0KG1vZGUpLnN0YXRlT25KU1RocmVhZCgpID09IElz
V2F0Y2hlZDsKKyAgICBKU1ZhbHVlIHNwZWNpZXMgPSBjb25zdHJ1Y3Rvci5nZXQoZ2xvYmFsT2Jq
ZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBXVEY6Om51bGxvcHQpOworCisgICAgcmV0dXJuIHNwZWNpZXMuaXNVbmRl
ZmluZWRPck51bGwoKSA/IFdURjo6bnVsbG9wdCA6IG1ha2VPcHRpb25hbChzcGVjaWVzKTsKIH0K
IAogZW51bSBjbGFzcyBTcGVjaWVzQ29uc3RydWN0UmVzdWx0IDogdWludDhfdCB7CkBAIC03NCwz
NiArOTAsMTYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgc3RkOjpwYWlyPFNwZWNpZXNDb25zdHJ1
Y3RSZXN1bHQsIEpTQXJyYXlCdWZmZXIqPiBzcGVjaWVzQ28KIAogICAgIC8vIEZhc3QgcGF0aCBp
biB0aGUgbm9ybWFsIGNhc2Ugd2hlcmUgdGhlIHVzZXIgaGFzIG5vdCBzZXQgYW4gb3duIGNvbnN0
cnVjdG9yIGFuZCB0aGUgQXJyYXlCdWZmZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlzIG5vcm1h
bC4KICAgICAvLyBXZSBuZWVkIHByb3RvdHlwZSBjaGVjayBmb3Igc3ViY2xhc3NlcyBvZiBBcnJh
eUJ1ZmZlciwgd2hpY2ggYXJlIEFycmF5QnVmZmVyIG9iamVjdHMgYnV0IGhhdmUgYSBkaWZmZXJl
bnQgcHJvdG90eXBlIGJ5IGRlZmF1bHQuCi0gICAgYm9vbCBpc1ZhbGlkID0gc3BlY2llc1dhdGNo
cG9pbnRJc1ZhbGlkKHZtLCB0aGlzT2JqZWN0LCBtb2RlKTsKLSAgICBzY29wZS5hc3NlcnROb0V4
Y2VwdGlvbigpOwotICAgIGlmIChMSUtFTFkoaXNWYWxpZCkpCi0gICAgICAgIHJldHVybiBmYXN0
UGF0aFJlc3VsdDsKLQotICAgIEpTVmFsdWUgY29uc3RydWN0b3IgPSB0aGlzT2JqZWN0LT5nZXQo
Z2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvcik7CisgICAgT3B0aW9u
YWw8SlNWYWx1ZT4gc3BlY2llcyA9IGFycmF5QnVmZmVyU3BlY2llc0NvbnN0cnVjdG9yKGdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdCwgbW9kZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZXJyb3JSZXN1bHQpOwotICAgIGlmIChjb25zdHJ1Y3Rvci5pc0NvbnN0cnVjdG9yKHZtKSkg
ewotICAgICAgICBKU09iamVjdCogY29uc3RydWN0b3JPYmplY3QgPSBqc0Nhc3Q8SlNPYmplY3Qq
Pihjb25zdHJ1Y3Rvcik7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3RGcm9t
Q29uc3RydWN0b3IgPSBjb25zdHJ1Y3Rvck9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsKLSAgICAg
ICAgYm9vbCBpc0FycmF5QnVmZmVyQ29uc3RydWN0b3JGcm9tQW5vdGhlclJlYWxtID0gZ2xvYmFs
T2JqZWN0ICE9IGdsb2JhbE9iamVjdEZyb21Db25zdHJ1Y3RvcgotICAgICAgICAgICAgJiYgY29u
c3RydWN0b3JPYmplY3QgPT0gZ2xvYmFsT2JqZWN0RnJvbUNvbnN0cnVjdG9yLT5hcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yKG1vZGUpOwotICAgICAgICBpZiAoaXNBcnJheUJ1ZmZlckNvbnN0cnVjdG9y
RnJvbUFub3RoZXJSZWFsbSkKLSAgICAgICAgICAgIHJldHVybiBmYXN0UGF0aFJlc3VsdDsKLSAg
ICB9Ci0gICAgaWYgKGNvbnN0cnVjdG9yLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgY29uc3RydWN0
b3IgPSBjb25zdHJ1Y3Rvci5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVj
aWVzU3ltYm9sKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZXJyb3JSZXN1
bHQpOwotICAgICAgICBpZiAoY29uc3RydWN0b3IuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1
cm4gZmFzdFBhdGhSZXN1bHQ7Ci0gICAgfQotCi0gICAgaWYgKGNvbnN0cnVjdG9yLmlzVW5kZWZp
bmVkKCkpCisgICAgaWYgKCFzcGVjaWVzKQogICAgICAgICByZXR1cm4gZmFzdFBhdGhSZXN1bHQ7
CiAKICAgICAvLyAxNi4gTGV0IG5ldyBiZSA/IENvbnN0cnVjdChjdG9yLCDCqyDwnZS9KG5ld0xl
bikgwrspLgogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CiAgICAgYXJncy5hcHBlbmQo
anNOdW1iZXIobGVuZ3RoKSk7CiAgICAgQVNTRVJUKCFhcmdzLmhhc092ZXJmbG93ZWQoKSk7Ci0g
ICAgSlNPYmplY3QqIG5ld09iamVjdCA9IGNvbnN0cnVjdChnbG9iYWxPYmplY3QsIGNvbnN0cnVj
dG9yLCBhcmdzLCAiU3BlY2llcyBjb25zdHJ1Y3Rpb24gZGlkIG5vdCBnZXQgYSB2YWxpZCBjb25z
dHJ1Y3RvciIpOworICAgIEpTT2JqZWN0KiBuZXdPYmplY3QgPSBjb25zdHJ1Y3QoZ2xvYmFsT2Jq
ZWN0LCBzcGVjaWVzLnZhbHVlKCksIGFyZ3MsICJTcGVjaWVzIGNvbnN0cnVjdGlvbiBkaWQgbm90
IGdldCBhIHZhbGlkIGNvbnN0cnVjdG9yIik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZXJyb3JSZXN1bHQpOwogCiAgICAgLy8gMTcuIFBlcmZvcm0gPyBSZXF1aXJlSW50ZXJuYWxT
bG90KG5ldywgW1tBcnJheUJ1ZmZlckRhdGFdXSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmgKaW5kZXggYzAwY2I3MTVh
NDMwNzdjMTg3Nzk0YTEyMDAzNDQ1YTYxMmMzMWUyNy4uN2I5MGY5NGRlNzczYmJkN2VmZWNkZTlk
MWVjNzczY2YxZjI3MjFlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGUuaApAQCAtNTEsNCArNTEsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCosIEFycmF5QnVm
ZmVyU2hhcmluZ01vZGUpOwogfTsKIAorT3B0aW9uYWw8SlNWYWx1ZT4gYXJyYXlCdWZmZXJTcGVj
aWVzQ29uc3RydWN0b3JTbG93KEpTR2xvYmFsT2JqZWN0KiwgSlNBcnJheUJ1ZmZlciosIEFycmF5
QnVmZmVyU2hhcmluZ01vZGUpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90b3R5cGVJbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyUHJvdG90eXBl
SW5saW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjOWQ0ZmJmNTRiYTIxMTVlYWY3ZTgxM2Y1ZTkwMWNhYzYx
NTc3N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5QnVmZmVyUHJvdG90eXBlSW5saW5lcy5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IEluYy4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJKU0FycmF5QnVmZmVyUHJvdG90eXBlLmgiCisKK25hbWVzcGFjZSBKU0MgIHsK
KworbmFtZXNwYWNlIEpTQXJyYXlCdWZmZXJQcm90b3R5cGVJbnRlcm5hbCB7CitzdGF0aWMgY29u
c3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworfTsKKworQUxXQVlTX0lOTElORSBib29sIHNw
ZWNpZXNXYXRjaHBvaW50SXNWYWxpZChWTSYgdm0sIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBBcnJh
eUJ1ZmZlclNoYXJpbmdNb2RlIG1vZGUpCit7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCA9IHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCh2bSk7CisgICAgYXV0byogcHJvdG90eXBl
ID0gZ2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlclByb3RvdHlwZShtb2RlKTsKKworICAgIGlmIChn
bG9iYWxPYmplY3QtPmFycmF5QnVmZmVyU3BlY2llc1dhdGNocG9pbnRTZXQobW9kZSkuc3RhdGVP
bkpTVGhyZWFkKCkgPT0gQ2xlYXJXYXRjaHBvaW50KSB7CisgICAgICAgIGRhdGFMb2dMbklmKEpT
QXJyYXlCdWZmZXJQcm90b3R5cGVJbnRlcm5hbDo6dmVyYm9zZSwgIkluaXRpYWxpemluZyBBcnJh
eUJ1ZmZlciBzcGVjaWVzIHdhdGNocG9pbnRzIGZvciBBcnJheUJ1ZmZlci5wcm90b3R5cGU6ICIs
IHBvaW50ZXJEdW1wKHByb3RvdHlwZSksICIgd2l0aCBzdHJ1Y3R1cmU6ICIsIHBvaW50ZXJEdW1w
KHByb3RvdHlwZS0+c3RydWN0dXJlKHZtKSksICJcbmFuZCBBcnJheUJ1ZmZlcjogIiwgcG9pbnRl
ckR1bXAoZ2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlckNvbnN0cnVjdG9yKG1vZGUpKSwgIiB3aXRo
IHN0cnVjdHVyZTogIiwgcG9pbnRlckR1bXAoZ2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlckNvbnN0
cnVjdG9yKG1vZGUpLT5zdHJ1Y3R1cmUodm0pKSk7CisgICAgICAgIGdsb2JhbE9iamVjdC0+dHJ5
SW5zdGFsbEFycmF5QnVmZmVyU3BlY2llc1dhdGNocG9pbnQobW9kZSk7CisgICAgICAgIEFTU0VS
VChnbG9iYWxPYmplY3QtPmFycmF5QnVmZmVyU3BlY2llc1dhdGNocG9pbnRTZXQobW9kZSkuc3Rh
dGVPbkpTVGhyZWFkKCkgIT0gQ2xlYXJXYXRjaHBvaW50KTsKKyAgICB9CisKKyAgICByZXR1cm4g
IXRoaXNPYmplY3QtPmhhc0N1c3RvbVByb3BlcnRpZXModm0pCisgICAgICAgICYmIHByb3RvdHlw
ZSA9PSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qodm0pCisgICAgICAgICYmIGdsb2Jh
bE9iamVjdC0+YXJyYXlCdWZmZXJTcGVjaWVzV2F0Y2hwb2ludFNldChtb2RlKS5zdGF0ZU9uSlNU
aHJlYWQoKSA9PSBJc1dhdGNoZWQ7Cit9CisKK0FMV0FZU19JTkxJTkUgT3B0aW9uYWw8SlNWYWx1
ZT4gYXJyYXlCdWZmZXJTcGVjaWVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNBcnJheUJ1ZmZlciogdGhpc09iamVjdCwgQXJyYXlCdWZmZXJTaGFyaW5nTW9kZSBt
b2RlKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBib29sIGlzVmFsaWQgPSBzcGVjaWVz
V2F0Y2hwb2ludElzVmFsaWQodm0sIHRoaXNPYmplY3QsIG1vZGUpOworICAgIHNjb3BlLmFzc2Vy
dE5vRXhjZXB0aW9uKCk7CisgICAgaWYgKExJS0VMWShpc1ZhbGlkKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgYXJyYXlCdWZm
ZXJTcGVjaWVzQ29uc3RydWN0b3JTbG93KGdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgbW9kZSkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9ySW5saW5lcy5oCmluZGV4IDcwMGI0MDY5OGRmZjY5ZDk1ZDNmMzQ3ODNlMjY5ZTBj
NTY0MmE1MDIuLjhhMTUwY2IwMDZlMDRlZDVkM2E1ZWYxNDllOWU3ZTgzZmNhYTczMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgU29ueSBJbnRlcmFjdGl2ZSBFbnRl
cnRhaW5tZW50IEluYy4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJQ
cm90b3R5cGVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNs
dWRlICJKU0RhdGFWaWV3LmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5oIgpAQCAtMTAzLDYgKzEwNSwzOSBAQCBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVj
dEdlbmVyaWNUeXBlZEFycmF5Vmlld0Zyb21JdGVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYgog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2lubGluZSBKU0FycmF5QnVmZmVyKiBjb25zdHJ1Y3RD
dXN0b21BcnJheUJ1ZmZlcklmTmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
QXJyYXlCdWZmZXIqIHNvdXJjZSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgaWYgKHNv
dXJjZS0+aXNTaGFyZWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBPcHRpb25h
bDxKU1ZhbHVlPiBzcGVjaWVzID0gYXJyYXlCdWZmZXJTcGVjaWVzQ29uc3RydWN0b3IoZ2xvYmFs
T2JqZWN0LCBzb3VyY2UsIEFycmF5QnVmZmVyU2hhcmluZ01vZGU6OkRlZmF1bHQpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgIGlmICghc3BlY2llcykKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIXNwZWNpZXMtPmlzQ29uc3RydWN0b3Io
dm0pKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJzcGVj
aWVzIGlzIG5vdCBhIGNvbnN0cnVjdG9yIl9zKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSBzcGVjaWVzLT5nZXQoZ2xvYmFsT2JqZWN0
LCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIG51bGxwdHIpOworCisgICAgYXV0byBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6dHJ5Q3Jl
YXRlKHNvdXJjZS0+aW1wbCgpLT5ieXRlTGVuZ3RoKCksIDEpOworICAgIGlmICghYnVmZmVyKSB7
CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBKU0FycmF5
QnVmZmVyOjpjcmVhdGUodm0sIGdldEZ1bmN0aW9uUmVhbG0odm0sIGFzT2JqZWN0KHNwZWNpZXMu
dmFsdWUoKSkpLT5hcnJheUJ1ZmZlclN0cnVjdHVyZShBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpE
ZWZhdWx0KSwgV1RGTW92ZShidWZmZXIpKTsKKyAgICBpZiAocHJvdG90eXBlLmlzT2JqZWN0KCkp
CisgICAgICAgIHJlc3VsdC0+c2V0UHJvdG90eXBlRGlyZWN0KHZtLCBwcm90b3R5cGUpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIGlubGlu
ZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50cyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRW5jb2Rl
ZEpTVmFsdWUgZmlyc3RBcmd1bWVudCwgdW5zaWduZWQgb2Zmc2V0LCBPcHRpb25hbDx1bnNpZ25l
ZD4gbGVuZ3RoT3B0KQogewpAQCAtMTEzLDggKzE0OCwxMiBAQCBpbmxpbmUgSlNPYmplY3QqIGNv
bnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVudHMoSlNHbG9iYWxPYmplY3Qq
IGdsbwogCiAgICAgaWYgKEpTQXJyYXlCdWZmZXIqIGpzQnVmZmVyID0ganNEeW5hbWljQ2FzdDxK
U0FycmF5QnVmZmVyKj4odm0sIGZpcnN0VmFsdWUpKSB7CiAgICAgICAgIFJlZlB0cjxBcnJheUJ1
ZmZlcj4gYnVmZmVyID0ganNCdWZmZXItPmltcGwoKTsKLSAgICAgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gMDsKKyAgICAgICAgaWYgKGJ1ZmZlci0+aXNEZXRhY2hlZCgpKSB7CisgICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiQnVmZmVyIGlzIGFscmVhZHkgZGV0
YWNoZWQiX3MpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KIAorICAg
ICAgICB1bnNpZ25lZCBsZW5ndGggPSAwOwogICAgICAgICBpZiAobGVuZ3RoT3B0KQogICAgICAg
ICAgICAgbGVuZ3RoID0gbGVuZ3RoT3B0LnZhbHVlKCk7CiAgICAgICAgIGVsc2UgewpAQCAtMTQw
LDEwICsxNzksMjAgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJh
eVZpZXdXaXRoQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAogICAgIGlmIChKU09iamVj
dCogb2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBmaXJzdFZhbHVlKSkgewog
ICAgICAgICB1bnNpZ25lZCBsZW5ndGg7CisgICAgICAgIEpTQXJyYXlCdWZmZXIqIGN1c3RvbUJ1
ZmZlciA9IG51bGxwdHI7CiAKLSAgICAgICAgaWYgKGlzVHlwZWRWaWV3KG9iamVjdC0+Y2xhc3NJ
bmZvKHZtKS0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkKLSAgICAgICAgICAgIGxlbmd0aCA9IGpz
Q2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KG9iamVjdCktPmxlbmd0aCgpOwotICAgICAgICBlbHNl
IHsKKyAgICAgICAgaWYgKGlzVHlwZWRWaWV3KG9iamVjdC0+Y2xhc3NJbmZvKHZtKS0+dHlwZWRB
cnJheVN0b3JhZ2VUeXBlKSkgeworICAgICAgICAgICAgYXV0byogdmlldyA9IGpzQ2FzdDxKU0Fy
cmF5QnVmZmVyVmlldyo+KG9iamVjdCk7CisgICAgICAgICAgICBsZW5ndGggPSB2aWV3LT5sZW5n
dGgoKTsKKworICAgICAgICAgICAgY3VzdG9tQnVmZmVyID0gY29uc3RydWN0Q3VzdG9tQXJyYXlC
dWZmZXJJZk5lZWRlZChnbG9iYWxPYmplY3QsIHZpZXctPnBvc3NpYmx5U2hhcmVkSlNCdWZmZXIo
Z2xvYmFsT2JqZWN0KSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKKworICAgICAgICAgICAgaWYgKHZpZXctPmlzRGV0YWNoZWQoKSkgeworICAgICAg
ICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJVbmRlcmx5aW5n
IEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXciX3MpOworICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgLy8gVGhpcyBnZXRQcm9wZXJ0eVNsb3Qgb3BlcmF0aW9uIHNob3VsZCBu
b3QgYmUgb2JzZXJ2ZWQgYnkgdGhlIFByb3h5LgogICAgICAgICAgICAgLy8gU28gd2UgdXNlIFZN
SW5xdWlyeS4gQW5kIHB1cmdlIHRoZSBvcGFxdWUgb2JqZWN0IGNhc2VzIChwcm94eSBhbmQgbmFt
ZXNwYWNlIG9iamVjdCkgYnkgaXNUYWludGVkQnlPcGFxdWVPYmplY3QoKSBndWFyZC4KICAgICAg
ICAgICAgIFByb3BlcnR5U2xvdCBsZW5ndGhTbG90KG9iamVjdCwgUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSwgJnZtKTsKQEAgLTE3MywxNyArMjIyLDE4IEBAIGlu
bGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3V2l0aEFyZ3VtZW50
cyhKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAg
ICBKU1ZhbHVlIHZhbHVlID0gbGVuZ3RoU2xvdC5nZXRWYWx1ZShnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgbnVsbHB0cik7Ci0gICAgICAgICAgICAgICAgbGVuZ3RoID0gdmFsdWUudG9VSW50
MzIoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgICAgICBsZW5ndGggPSB2YWx1ZS50b0xlbmd0
aChnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIG51bGxwdHIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgCi0gICAg
ICAgIFZpZXdDbGFzcyogcmVzdWx0ID0gVmlld0NsYXNzOjpjcmVhdGVVbmluaXRpYWxpemVkKGds
b2JhbE9iamVjdCwgc3RydWN0dXJlLCBsZW5ndGgpOworICAgICAgICBWaWV3Q2xhc3MqIHJlc3Vs
dCA9IGN1c3RvbUJ1ZmZlcgorICAgICAgICAgICAgPyBWaWV3Q2xhc3M6OmNyZWF0ZShnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSwgY3VzdG9tQnVmZmVyLT5pbXBsKCksIDAsIGxlbmd0aCkKKyAgICAg
ICAgICAgIDogVmlld0NsYXNzOjpjcmVhdGVVbmluaXRpYWxpemVkKGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlLCBsZW5ndGgpOwogICAgICAgICBFWENFUFRJT05fQVNTRVJUKCEhc2NvcGUuZXhjZXB0
aW9uKCkgPT0gIXJlc3VsdCk7CiAgICAgICAgIGlmIChVTkxJS0VMWSghcmVzdWx0KSkKICAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAKKwogICAgICAgICBzY29wZS5yZWxlYXNl
KCk7CiAgICAgICAgIGlmICghcmVzdWx0LT5zZXQoZ2xvYmFsT2JqZWN0LCAwLCBvYmplY3QsIDAs
IGxlbmd0aCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDQ5Y2UwNzI0NGRiY2QzMjgy
N2Q0NWVjYzg3NjdkNmJmZDJjOWU2MGUuLjRjYjA1MzI1YWFkNmIzOTMzYThhMjI5ZWRiM2M4ZTQ5
YWM1MThiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkdldFZNLmgiCiAjaW5jbHVkZSAi
SW50ZXJuYWxGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKLSNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNDbGFzc1JlZi5oIgogI2luY2x1ZGUg
IkpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmgiCiAjaW5jbHVkZSAiSlNQcm9taXNlLmgiCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJm
YmQxM2RhMWI3NTk5Yzc3MmVmMTU2OTIwMDBiN2E2NDEwNzE0MGYuLjJhMjM4YjljZTI3MjRmOTIz
MDcyNTA2ZTEyN2U3OTExYWZjOTFhZWIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTItMDggIFJvc3Mg
S2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgorCisgICAgICAgIEFsaWduICVUeXBl
ZEFycmF5JSBjb25zdHJ1Y3RvciBiZWhhdmlvciB3aXRoIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTUyNworCisgICAgICAgIFJldmlld2Vk
IGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
OgorICAgICAgICBNYXJrIDQwIHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKworICAgICAgICAqIHdh
c20vZnV6ei9tZW1vcnkuanM6CisgICAgICAgICogd2FzbS9qcy1hcGkvdGVzdF9EYXRhLmpzOgor
ICAgICAgICBGaXggbm9uLWNvbmZvcm1pbmcgdHlwZWQgYXJyYXkgdXNhZ2UuCisKIDIwMjAtMTIt
MDYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBn
ZXQgLyBzZXQgZm9yIG9iamVjdCBsaXRlcmFsIGFuZCBjbGFzcyBzaG91bGQgbm90IGJlIGVzY2Fw
ZWQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAppbmRleCAxYWRmZWI0NjQ3YTI0MzE1OTc5NTE2
M2E4ZmI5ODM4NmU0YzBmMGIyLi42M2VmMmYyZDBhYWZmZmI3MDMwYzZlY2Q2YzdkY2UwZTEwOWM1
OTk2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIv
SlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC04MzIsNjYgKzgzMiw2IEBAIHRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2F0L3Byb3AtZGVzYy5qczoKIHRlc3Qv
YnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2luY2x1ZGVzL2RldGFjaGVkLWJ1ZmZlci10
b2ludGVnZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVy
cm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMv
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy9idWZmZXItYXJnL2J5dGVvZmZzZXQtdG8tbnVt
YmVyLWRldGFjaGJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
YSBUeXBlRXJyb3IgYnV0IGdvdCBhIFJhbmdlRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9y
IGJ1dCBnb3QgYSBSYW5nZUVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0
L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL2J1ZmZlci1hcmcvZGV0YWNo
ZWRidWZmZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVy
cm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMv
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy9idWZmZXItYXJnL2xlbmd0aC10by1udW1iZXIt
ZGV0YWNoYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5
cGVFcnJvciBidXQgZ290IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0
IGdvdCBhIFJhbmdlRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVp
bHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvb2JqZWN0LWFyZy9sZW5ndGgtZXhj
ZXNzaXZlLXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBS
YW5nZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxs
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFJhbmdlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24g
d2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVp
bHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvZGV0YWNo
ZWQtd2hlbi1zcGVjaWVzLXJldHJpZXZlZC1kaWZmZXJlbnQtdHlwZS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1ZmZl
ciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1
ZmZlciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWls
dC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9kZXRhY2hl
ZC13aGVuLXNwZWNpZXMtcmV0cmlldmVkLXNhbWUtdHlwZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1ZmZlciBFeHBl
Y3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3du
IGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogVHlwZUVycm9yIHRocm93biBmb3IgZGV0YWNoZWQgc291cmNlIGJ1ZmZlciBF
eHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMv
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9vdGhlci1jdG9yLWJ1
ZmZlci1jdG9yLWFjY2Vzcy10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0
aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2Rl
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFy
cmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZlci1jdG9yLWN1c3RvbS1zcGVjaWVzLXByb3RvLWZyb20t
Y3Rvci1yZWFsbS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrW29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7KSB0
byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtbb2JqZWN0IEFycmF5QnVmZmVyXcK7
LCDCq1tvYmplY3QgQXJyYXlCdWZmZXJdwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMv
dHlwZWRhcnJheS1hcmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1jdXN0b20tc3BlY2llcy5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBB
cnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IE9iamVjdF3CuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IE9iamVjdF3C
uykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1p
bnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9vdGhlci1jdG9y
LWJ1ZmZlci1jdG9yLW5vdC1vYmplY3QtdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3Qg
bW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1
dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRh
cnJheS1hcmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLWFjY2Vzcy10aHJvd3MuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBh
IFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9vdGhlci1jdG9yLWJ1ZmZlci1j
dG9yLXNwZWNpZXMtbm90LWN0b3ItdGhyb3dzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMg
dGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBu
byBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJh
eS1hcmcvb3RoZXItY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLXByb3RvdHlwZS10aHJvd3MuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBh
IFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0
b3ItYWNjZXNzLXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
YSBUZXN0MjYyRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhj
ZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10
ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJn
L3NhbWUtY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLWN1c3RvbS1wcm90by1mcm9tLWN0b3ItcmVh
bG0uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq1tv
YmplY3QgQXJyYXlCdWZmZXJdwrssIMKrW29iamVjdCBBcnJheUJ1ZmZlcl3CuykgdG8gYmUgdHJ1
ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2Jq
ZWN0IEFycmF5QnVmZmVyXcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5
LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJy
YXktYXJnL3NhbWUtY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLWN1c3RvbS5qczoKLSAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrW29iamVjdCBBcnJheUJ1ZmZl
cl3Cuywgwqtbb2JqZWN0IE9iamVjdF3CuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrW29iamVjdCBBcnJheUJ1ZmZlcl3Cuywgwqtbb2JqZWN0IE9iamVjdF3CuykgdG8gYmUg
dHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0
b3Itc3BlY2llcy1ub3QtY3Rvci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0
L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL3R5cGVkYXJyYXktYXJnL3Nh
bWUtY3Rvci1idWZmZXItY3Rvci1zcGVjaWVzLXByb3RvdHlwZS10aHJvd3MuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFRlc3QyNjJF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0
cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3Itc3BlY2ll
cy10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVGVzdDI2
MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChU
ZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3
YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWls
dC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0
b3ItYnVmZmVyLWN0b3ItdmFsdWUtbm90LW9iai10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwogdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5h
bHMvU2V0L2tleS1pcy1taW51cy16ZXJvLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBS
ZWZsZWN0LnNldChzYW1wbGUsICItMCIsIDEpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0LnNldChz
YW1wbGUsICItMCIsIDEpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3Ry
dWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vZnV6ei9tZW1vcnkuanMgYi9KU1Rlc3RzL3dhc20v
ZnV6ei9tZW1vcnkuanMKaW5kZXggYzVkYjJlOWY4NzIyYWNjOGIxOTg1N2Y5OGE3YTI4NzVlYjY5
MmQ4ZC4uNTA1ZWFkNWViNGI1NjMyOGNhYmJjYjZmNTk3NTNjZjFiM2Q5NmNjMiAxMDA2NDQKLS0t
IGEvSlNUZXN0cy93YXNtL2Z1enovbWVtb3J5LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9mdXp6L21l
bW9yeS5qcwpAQCAtMTAxLDggKzEwMSw3IEBAIGNvbnN0IGFjdGlvbiA9IHsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgJ21lbW9yeSc6IHsKICAgICAgICAgICAgICAg
ICBjb25zdCBjdXJyZW50ID0gaW5zdGFuY2UuZXhwb3J0cy5jdXJyZW50KCk7Ci0gICAgICAgICAg
ICAgICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQzMkFycmF5KGluc3RhbmNlLmV4cG9ydHMubWVt
b3J5LmJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0LmVxKGJ1ZmZlci5ieXRlTGVuZ3Ro
LCBjdXJyZW50ICogcGFnZVNpemUpOworICAgICAgICAgICAgICAgIGFzc2VydC5lcShpbnN0YW5j
ZS5leHBvcnRzLm1lbW9yeS5idWZmZXIuYnl0ZUxlbmd0aCwgY3VycmVudCAqIHBhZ2VTaXplKTsK
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBhY2Nlc3MgPSB0dW5lLm1lbW9yeUdldENvdW50OyBj
dXJyZW50ICYmIGFjY2VzczsgLS1hY2Nlc3MpIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
YWRkcmVzcyA9IChNYXRoLnJhbmRvbSgpICogKGN1cnJlbnQgKiBwYWdlU2l6ZSAtIDQpKSB8IDA7
CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmdldChhZGRy
ZXNzKSwgMCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3Rlc3RfRGF0YS5qcyBi
L0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9EYXRhLmpzCmluZGV4IDQxNzE0MzUxMjhhMDg0ZDU5
NDlkOGZmMmI4YjEyNTcwYjdmMjMzNzUuLmZmZjhhNjhjNzMxMmZiNGU3ODMxMzdmNmIyMjI5YWQz
NDMyYmRjODEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9EYXRhLmpzCisr
KyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvdGVzdF9EYXRhLmpzCkBAIC0xMzIsNyArMTMyLDcgQEAg
Y29uc3QgYXNzZXJ0TWVtb3J5QWxsWmVybyA9IG1lbW9yeSA9PiB7CiAgICAgY29uc3QgbW9kdWxl
ID0gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4pOwogICAgIGNvbnN0IG1lbW9yeSA9IG5ldyBX
ZWJBc3NlbWJseS5NZW1vcnkoZW1wdHlNZW1vcnkpOwogICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
bmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKG1vZHVsZSwgeyBpbXA6IHsgbWVtb3J5OiBtZW1vcnkg
fSB9KSwgV2ViQXNzZW1ibHkuTGlua0Vycm9yLCBgSW52YWxpZCBkYXRhIHNlZ21lbnQgaW5pdGlh
bGl6YXRpb246IHNlZ21lbnQgb2YgMCBieXRlcyBtZW1vcnkgb2YgMCBieXRlcywgYXQgb2Zmc2V0
IDY1NTM2LCBzZWdtZW50IHdyaXRlcyBvdXRzaWRlIG9mIG1lbW9yeWApOwotICAgIGFzc2VydE1l
bW9yeUFsbFplcm8obWVtb3J5KTsKKyAgICBhc3NlcnQuZXEobWVtb3J5LmJ1ZmZlci5ieXRlTGVu
Z3RoLCAwKTsKIH0pKCk7CiAKIChmdW5jdGlvbiBEYXRhU2VjdGlvblNlZW5CeVN0YXJ0KCkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>