<?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>119418</bug_id>
          
          <creation_ts>2013-08-01 17:41:33 -0700</creation_ts>
          <short_desc>[CSS] Introduce new structure to pass image orientation values.</short_desc>
          <delta_ts>2013-08-14 21:45:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>92330</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>913940</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-01 17:41:33 -0700</bug_when>
    <thetext>As commented on https://bugs.webkit.org/show_bug.cgi?id=92330#c6, we need to consider to use new structure in order to reduce argument count. Patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914459</commentid>
    <comment_count>1</comment_count>
      <attachid>208093</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-04 09:13:50 -0700</bug_when>
    <thetext>Created attachment 208093
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914490</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-04 16:32:05 -0700</bug_when>
    <thetext>Beth, how do you think approach of this patch ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914655</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-08-05 12:47:37 -0700</bug_when>
    <thetext>I think this is a good approach!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915336</commentid>
    <comment_count>4</comment_count>
      <attachid>208315</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-08 00:25:53 -0700</bug_when>
    <thetext>Created attachment 208315
Patch for ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915337</commentid>
    <comment_count>5</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-08 00:27:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think this is a good approach!

Ok, let&apos;s go ahead. But, now I&apos;m in Summer vacation. So, my update may be late by end of this week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915344</commentid>
    <comment_count>6</comment_count>
      <attachid>208315</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-08 00:58:25 -0700</bug_when>
    <thetext>Comment on attachment 208315
Patch for ews

Attachment 208315 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1389231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915347</commentid>
    <comment_count>7</comment_count>
      <attachid>208315</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-08 01:18:04 -0700</bug_when>
    <thetext>Comment on attachment 208315
Patch for ews

Attachment 208315 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1433085</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915369</commentid>
    <comment_count>8</comment_count>
      <attachid>208323</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-08 03:36:15 -0700</bug_when>
    <thetext>Created attachment 208323
Patch for ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916159</commentid>
    <comment_count>9</comment_count>
      <attachid>208506</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-11 18:30:11 -0700</bug_when>
    <thetext>Created attachment 208506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916160</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-11 18:31:03 -0700</bug_when>
    <thetext>Beth, could you review this patch ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916999</commentid>
    <comment_count>11</comment_count>
      <attachid>208699</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-08-13 22:41:00 -0700</bug_when>
    <thetext>Created attachment 208699
Rebased Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917414</commentid>
    <comment_count>12</comment_count>
      <attachid>208699</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-14 21:45:24 -0700</bug_when>
    <thetext>Comment on attachment 208699
Rebased Patch

Clearing flags on attachment: 208699

Committed r154088: &lt;http://trac.webkit.org/changeset/154088&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917415</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-14 21:45:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208093</attachid>
            <date>2013-08-04 09:13:50 -0700</date>
            <delta_ts>2013-08-08 00:25:33 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-119418-20130805011349.patch</filename>
            <type>text/plain</type>
            <size>45957</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzNjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWYxMThmYmVhZDRmZDky
NWNhZWZjOGRkNjNkYTQ4YmU5ZTgzYTM2Yi4uOTFhOTExNDIxZTA5ZDc5ODg5ZjJkZGIwZDgyZjBl
Yzc4NWZlZmU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEzLTA4LTA0ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0NTU10gSW50
cm9kdWNlIG5ldyBzdHJ1Y3R1cmUgdG8gcGFzcyBpbWFnZSBvcmllbnRhdGlvbiB2YWx1ZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0MTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gc3RydWN0IGluIG9yZGVyIHRvIHJlZHVjZSBjb3VudCBv
ZiBhcmd1bWVudCBmb3IKKyAgICAgICAgaW1hZ2Ugb3JpZW50YXRpb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWlu
dCk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om5vZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFn
SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnVwZGF0ZVNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b246OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb246OnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbjo6aW1hZ2VPcmllbnRhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFn
ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1h
cEltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZy
YW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0Ry
YWdJbWFnZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6Y3JlYXRlRHJh
Z0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVh
dGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6
cGFpbnRTbmFwc2hvdEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdCk6CisKIDIwMTMtMDgtMDIgIEd5dXlv
dW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2Ug
dG9TVkdNYXNrRWxlbWVudCgpLCBhbmQgdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwCmluZGV4IDcyOTllMTRkMTQzZWE4Y2M0YWM5NzhiMTJjY2FhOTRlMWYx
YjFhYjAuLjc5NWEzYmFlYmU4MmQ3ODRkYTkyM2I3ZjY0MWFkYmNjYzU3YmVhOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC00MDUsNyArNDA1LDcgQEAg
dm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBMYXlvdXRSZWN0JiByLCBib28KICAgICAgICAgSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVy
ID0gYnVmZmVyKCk7CiAgICAgICAgIGlmIChpbWFnZUJ1ZmZlcikgewogICAgICAgICAgICAgaWYg
KG1fcHJlc2VudGVkSW1hZ2UpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1f
cHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25hcHBlZElu
dFJlY3QociksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRp
b24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0lt
YWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25h
cHBlZEludFJlY3QociksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFj
ZURldmljZVJHQiwgcGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3Zlciwg
QmxlbmRNb2RlTm9ybWFsLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDI1MzcwNDBkOGM1NzA5Y2RjYzU5ZGNj
MjAyNjE0YThiYzI0ZTUxYWYuLjFlM2RmZmY0NWQ4NWZjZWJkM2I2ZDliZWM1YmI3ZWUzODQ1NDgw
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC04NzksNyArODc5
LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGMKIAogICAgIEltYWdlKiBpbWFnZSA9IGdldElt
YWdlKGVsZW1lbnQpOwogICAgIGlmIChpbWFnZSAmJiBpbWFnZS0+c2l6ZSgpLmhlaWdodCgpICog
aW1hZ2UtPnNpemUoKS53aWR0aCgpIDw9IE1heE9yaWdpbmFsSW1hZ2VBcmVhCi0gICAgICAgICYm
IChkcmFnSW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UsIGVsZW1lbnQtPnJl
bmRlcmVyKCkgPyBlbGVtZW50LT5yZW5kZXJlcigpLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbigpIDogRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikpKSB7CisgICAgICAgICYmIChk
cmFnSW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UsIGVsZW1lbnQtPnJlbmRl
cmVyKCkgPyBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oZWxlbWVudC0+cmVuZGVyZXIoKS0+
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSkgOiBJbWFnZU9yaWVudGF0aW9uRGVzY3Jp
cHRpb24oKSkpKSB7CiAgICAgICAgIEludFNpemUgb3JpZ2luYWxTaXplID0gcmVjdC5zaXplKCk7
CiAgICAgICAgIG9yaWdpbiA9IHJlY3QubG9jYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApp
bmRleCAyMGYyNzMyNjFlZGExOTg2NGFiYzVlYzBiM2NmNDExN2UzNGVhMzBmLi40YjJiY2YxNmRj
MzFhMGY5YzE1Nzc1ZTU1ZGM4YmZmYTA1NjJiZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAt
MTA5Nyw3ICsxMDk3LDcgQEAgRHJhZ0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9kZSogbm9k
ZSkKICAgICBtX3ZpZXctPnBhaW50Q29udGVudHMoYnVmZmVyLT5jb250ZXh0KCksIHBhaW50aW5n
UmVjdCk7CiAKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gYnVmZmVyLT5jb3B5SW1hZ2UoKTsK
LSAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKGltYWdlLmdldCgpLCByZW5kZXJl
ci0+c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSk7CisgICAgcmV0dXJuIGNyZWF0ZURy
YWdJbWFnZUZyb21JbWFnZShpbWFnZS5nZXQoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
KHJlbmRlcmVyLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKSk7CiB9CiAKIERyYWdJ
bWFnZVJlZiBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkKQEAgLTExMjYsNyArMTEyNiw3
IEBAIERyYWdJbWFnZVJlZiBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkKICAgICBtX3Zp
ZXctPnBhaW50Q29udGVudHMoYnVmZmVyLT5jb250ZXh0KCksIHBhaW50aW5nUmVjdCk7CiAKICAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gYnVmZmVyLT5jb3B5SW1hZ2UoKTsKLSAgICByZXR1cm4g
Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKGltYWdlLmdldCgpKTsKKyAgICByZXR1cm4gY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKGltYWdlLmdldCgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24oKSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRleCBk
Zjk0MjJhNDlkYzg3NjQ0YzRmZWY1MjNlZjY0N2ZiZjlkNDdhYzgyLi40MjY1YzhiZDk2OTA4ZWFm
YzkwOTBlZWFhODcyODA1ZjBkYmI1MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aApAQCAtNzQsNyArNzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgRHJhZ0ltYWdlUmVm
IHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgRmxvYXRTaXplIHNjYWxlKTsKICAgICBEcmFn
SW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwg
ZmxvYXQgZGVsdGEpOwogICAgIAotICAgIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9t
SW1hZ2UoSW1hZ2UqLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKTsKKyAgICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlKiwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKTsKICAgICBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29uc3QgU3RyaW5n
Jik7CiAgICAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoS1VSTCYsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIEZvbnRSZW5kZXJpbmdNb2RlKTsKICAgICB2b2lkIGRlbGV0ZURyYWdJ
bWFnZShEcmFnSW1hZ2VSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YmxhY2tiZXJyeS9EcmFnSW1hZ2VCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2JsYWNrYmVycnkvRHJhZ0ltYWdlQmxhY2tCZXJyeS5jcHAKaW5kZXggNmY2MGMwN2ViNzUw
NDhlYzI3ZDg0MWJiODBjMWQ2ZTAwY2FlOWQ2MC4uYzAyOGM0YmY2ZGM3NTkyMmQ4YjE4ODc2YTJk
YjQwMzAzNDY4MGE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2ti
ZXJyeS9EcmFnSW1hZ2VCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVycnkuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCogY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKElt
YWdlKiwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQordm9pZCogY3JlYXRlRHJhZ0ltYWdl
RnJvbUltYWdlKEltYWdlKiwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9EcmFnSW1hZ2VFZmwuY3BwCmluZGV4IGY5Mjk5NzAyMTIyNGUyMTRjNmFmNTUxZTljZWNm
OWRjYTYwOWM4ZTcuLmIxYTZiMTJhNjIxZDA2MjNhZDBjZWE1OGUzNDMzMWQ1ZjE3NDNlNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnSW1hZ2VFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnSW1hZ2VFZmwuY3BwCkBAIC00OSw3
ICs0OSw3IEBAIERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0lt
YWdlUmVmIGltYWdlLCBmbG9hdCkKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKLURyYWdJbWFnZVJl
ZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKaW5kZXggNGExM2Q0NzJlODBkNWUxZTlkODY0NTlkZTQxMDVlM2JjN2QwYTdiMC4u
NTQxZTJjMDQ1Y2E4NTgyMWVlZTgwMGI1NDNhNzNhZDJhNjNhZGY5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMTg1LDcgKzE4
NSw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OnVwZGF0ZVNpemUoKSBjb25zdAogICAgICAgICByZXR1
cm47CiAKICAgICBtX3NpemUgPSBtX3NvdXJjZS5zaXplKCk7Ci0gICAgbV9zaXplUmVzcGVjdGlu
Z09yaWVudGF0aW9uID0gbV9zb3VyY2Uuc2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7Cisg
ICAgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gbV9zb3VyY2Uuc2l6ZShJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24oUmVzcGVjdEltYWdlT3JpZW50YXRpb24pKTsKICAgICBtX2hhdmVT
aXplID0gdHJ1ZTsKICAgICBkaWREZWNvZGVQcm9wZXJ0aWVzKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA3NTJmZTQ0NjQ5Y2Vj
ODlmNmJjMmFlMjZhYjViZDI2MjdjNTQ1ZDJmLi4wODVhNmU1YjI5YjkwNGQ0N2JhYWU3OWFhYjA5
OWUzNWQ3OTA1N2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKQEAgLTE5MSw3ICsxOTEsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKICAgICB2
aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpOwogI2lmIFVTRShDRykgfHwgVVNFKENBSVJP
KSB8fCBQTEFURk9STShCTEFDS0JFUlJZKQotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikgT1ZF
UlJJREU7CiAjZW5kaWYKIAogI2lmIFVTRShXSU5HREkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCAyNmUyZGJiNGFl
ZTQwMWYwNGFhMjdjMjk1NTI0ZTljNmU1MzA3ZDY3Li4yOWU5N2E4NTE3ZjkzMmE4Mzk3NGY1ZGYy
ODE2NDE5ZGQ5OWNkZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTQ2OSwyOCArNDY5LDI4IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBmb250LCBjb25z
dCBUZXh0UnVuJiBydW4sCiAgICAgZmlsbFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChy
dW4sIHBvaW50LCBoLCBmcm9tLCB0byksIGJhY2tncm91bmRDb2xvciwgY29sb3JTcGFjZSk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24pCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAg
IGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxl
Q29sb3JTcGFjZSwgRmxvYXRSZWN0KEludFJlY3QocCwgaW1hZ2UtPnNpemUoKSkpLCBGbG9hdFJl
Y3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2UtPnNpemUoKSkpLCBvcCwgc2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNw
YWNlLCBGbG9hdFJlY3QoSW50UmVjdChwLCBpbWFnZS0+c2l6ZSgpKSksIEZsb2F0UmVjdChGbG9h
dFBvaW50KCksIEZsb2F0U2l6ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBkZXNjcmlwdGlvbik7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IElu
dFJlY3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmICghaW1h
Z2UpCiAgICAgICAgIHJldHVybjsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFj
ZSwgRmxvYXRSZWN0KHIpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2Ut
PnNpemUoKSkpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxp
dHlTY2FsZSk7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVj
dChyKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgRmxvYXRTaXplKGltYWdlLT5zaXplKCkpKSwg
b3AsIGRlc2NyaXB0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEludFBvaW50JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSog
aW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdCwg
Y29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0
eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KEludFJlY3QoZGVzdCwgc3JjUmVjdC5zaXplKCkpKSwg
RmxvYXRSZWN0KHNyY1JlY3QpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOwor
ICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoSW50UmVjdChk
ZXN0LCBzcmNSZWN0LnNpemUoKSkpLCBGbG9hdFJlY3Qoc3JjUmVjdCksIG9wLCBkZXNjcmlwdGlv
bik7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3Jp
cHRpb24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewotICAgIGRyYXdJ
bWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCBCbGVuZE1vZGVOb3Jt
YWwsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwor
ICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCBCbGVu
ZE1vZGVOb3JtYWwsIGRlc2NyaXB0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCkKQEAgLTUwMCw3ICs1MDAsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3Bh
Y2UsIGRlc3QsIEZsb2F0UmVjdChJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5zaXplKCkpKSk7
CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwg
Ym9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
KEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24s
IGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogeyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8
ICFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01MTIsNyArNTEyLDcgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdAogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVy
cG9sYXRpb25Ob25lKTsKICAgICB9CiAKLSAgICBpbWFnZS0+ZHJhdyh0aGlzLCBkZXN0LCBzcmMs
IHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24pOworICAgIGltYWdlLT5kcmF3KHRoaXMsIGRlc3QsIHNyYywgc3R5bGVDb2xvclNwYWNl
LCBvcCwgYmxlbmRNb2RlLCBkZXNjcmlwdGlvbik7CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNj
YWxlKQogICAgICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KHByZXZpb3VzSW50ZXJw
b2xhdGlvblF1YWxpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQuaAppbmRleCA5YzVmNGRhMTk0NzdmZjQ1N2NmZWVlZTQ5YmZmZTc0
MGMwODQxOWZjLi44ZWMyYzU5MzBlMTcyMTliOGVhNGQ2ZWJlMTQ4NDhkZGVkNWFhOWYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aApAQCAtMjg3LDEyICsyODcsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZv
aWQgc3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCBsaW5lV2lkdGgpOwogCi0gICAg
ICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNv
bnN0IEludFBvaW50JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KTsKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNl
T3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQg
ZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBv
aW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9O
b3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdl
KiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiwgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CisgICAgICAgIHZvaWQgZHJhd0lt
YWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1
YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3Qg
SW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVy
LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24oKSk7CiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QpOwotICAgICAgICB2b2lkIGRyYXdJ
bWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0g
Q29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7
Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Q29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVt
ID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUg
PSBmYWxzZSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgYm9v
bCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKElt
YWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9k
ZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKCksIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICAKICAgICAg
ICAgdm9pZCBkcmF3VGlsZWRJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNyY1BvaW50LCBjb25z
dCBJbnRTaXplJiB0aWxlU2l6ZSwKICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSwgQmxlbmRN
b2RlID0gQmxlbmRNb2RlTm9ybWFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlLmNwcAppbmRleCBiODNiYzRjNTA5YzNkOTRjYzM4NzkyYWMzM2E1Yjc1ZDExNzZhM2Vj
Li5lOTQwNzJhMzRmM2Q5ZDE0ZGNjMGYzZTg0MDk1NWE4NjA4MzRhZjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQg
SW1hZ2U6OmZpbGxXaXRoU29saWRDb2xvcihHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwKICAgICBjdHh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24ocHJldmlv
dXNPcGVyYXRvcik7CiB9CiAKLXZvaWQgSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHgs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBi
bGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK3ZvaWQgSW1hZ2U6OmRyYXco
R3JhcGhpY3NDb250ZXh0KiBjdHgsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlv
bikKIHsKICAgICBkcmF3KGN0eCwgZHN0UmVjdCwgc3JjUmVjdCwgc3R5bGVDb2xvclNwYWNlLCBv
cCwgYmxlbmRNb2RlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5o
CmluZGV4IDc4OTEyZWZlYTE4MmEyMzZhMzE4YjQ5ZjI3NmM5NzQ0YzQ2NjczNGMuLjc0ZjAwZDE3
ODA0OWQ3ZGUxMWY0ZWQ5YjQ1MDdjMDAzMjU1MmVkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaApAQCAtMTk2LDcgKzE5Niw3IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgZHJhd0ZyYW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKSB7IH0KICNlbmRpZgogICAg
IHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBk
cmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik7
CiAgICAgdm9pZCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBGbG9hdFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiB0aWxl
U2l6ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsCiAgICAgICAgIENvbXBvc2l0ZU9wZXJh
dG9yICwgQmxlbmRNb2RlKTsKICAgICB2b2lkIGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
RmxvYXRTaXplJiB0aWxlU2NhbGVGYWN0b3IsIFRpbGVSdWxlIGhSdWxlLCBUaWxlUnVsZSB2UnVs
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaApp
bmRleCBiMTg0ZGMyZjcwYTdiNjJmY2QxNDE3ZDhjZTZiOTU0ZTViNjE3NzEyLi4wNDM0NGUyNzkz
OTY0MjMyMzYxN2JhN2JlOWY2NTJjYTM1ZTUwYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRhdGlvbi5oCkBAIC01Miw2ICs1MiwzMyBA
QCBlbnVtIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSB7CiAgICAgUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24gPSAxCiB9OwogCitzdHJ1Y3QgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIHsK
KyAgICBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLAorICAgICAgICBJbWFnZU9yaWVudGF0
aW9uRW51bSBvcmllbnRhdGlvbikKKyAgICAgICAgOiBtX3Jlc3BlY3RPcmllbnRhdGlvbihzaG91
bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVu
dGF0aW9uKQorICAgIHsKKyAgICB9CisKKyAgICBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
KQorICAgICAgICA6IG1fcmVzcGVjdE9yaWVudGF0aW9uKERvTm90UmVzcGVjdEltYWdlT3JpZW50
YXRpb24pCisgICAgICAgICwgbV9vcmllbnRhdGlvbihEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikK
KyAgICB7CisgICAgfQorCisgICAgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICAg
ICAgOiBtX3Jlc3BlY3RPcmllbnRhdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikK
KyAgICAgICAgLCBtX29yaWVudGF0aW9uKERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKQorICAgIHsK
KyAgICB9CisKKyAgICBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gcmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24oKSB7IHJldHVybiBtX3Jlc3BlY3RPcmllbnRhdGlvbjsgfQorICAgIEltYWdlT3Jp
ZW50YXRpb25FbnVtIGltYWdlT3JpZW50YXRpb24oKSB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9
CisKKyAgICBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gbV9yZXNwZWN0T3JpZW50YXRpb247
CisgICAgSW1hZ2VPcmllbnRhdGlvbkVudW0gbV9vcmllbnRhdGlvbjsKK307CisKIGNsYXNzIElt
YWdlT3JpZW50YXRpb24gewogcHVibGljOgogICAgIEltYWdlT3JpZW50YXRpb24oSW1hZ2VPcmll
bnRhdGlvbkVudW0gb3JpZW50YXRpb24gPSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCBm
N2I0OTA5NzM2YTMyZWExMzE3NTJkZGI1YzI4ZmJiODc3MDk0MWM5Li5mODY1MjAwOTFlODVhZDNi
YWU0OGQ5NmY3ZmM5NGI4NjQ5MDZhYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC05OSwxOCArOTksMTggQEAgYm9vbCBJbWFn
ZVNvdXJjZTo6aXNTaXplQXZhaWxhYmxlKCkKICAgICByZXR1cm4gbV9kZWNvZGVyICYmIG1fZGVj
b2Rlci0+aXNTaXplQXZhaWxhYmxlKCk7CiB9CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUo
UmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29u
c3QKK0ludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZVNpemVBdEluZGV4KDAsIHNo
b3VsZFJlc3BlY3RPcmllbnRhdGlvbik7CisgICAgcmV0dXJuIGZyYW1lU2l6ZUF0SW5kZXgoMCwg
ZGVzY3JpcHRpb24pOwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4
KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RP
cmllbnRhdGlvbikgY29uc3QKK0ludFNpemUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgo
c2l6ZV90IGluZGV4LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2RlY29kZXIpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAK
ICAgICBJbnRTaXplIHNpemUgPSBtX2RlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgpOwot
ICAgIGlmICgoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uKSAmJiBtX2RlY29kZXItPm9yaWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkKKyAg
ICBpZiAoKGRlc2NyaXB0aW9uLnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgPT0gUmVzcGVjdElt
YWdlT3JpZW50YXRpb24pICYmIG1fZGVjb2Rlci0+b3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hl
aWdodCgpKQogICAgICAgICByZXR1cm4gSW50U2l6ZShzaXplLmhlaWdodCgpLCBzaXplLndpZHRo
KCkpOwogCiAgICAgcmV0dXJuIHNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuaAppbmRleCAzMWEyZTE5ZjljNTIwZTBjOTRiYWNkNzg0YTlmMjdm
MzU0ZWQ5MGE4Li5hNDk2ZjZlYjJhZDc2Mzg1ZmIyNTkwM2MzODFlNDVmNWFiMGVlYTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTEz
Miw4ICsxMzIsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29u
c3Q7CiAKICAgICBib29sIGlzU2l6ZUF2YWlsYWJsZSgpOwotICAgIEludFNpemUgc2l6ZShSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSBj
b25zdDsKLSAgICBJbnRTaXplIGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSBjb25zdDsKKyAg
ICBJbnRTaXplIHNpemUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKCkpIGNvbnN0OworICAgIEludFNpemUgZnJhbWVTaXplQXRJbmRleChz
aXplX3QsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbigpKSBjb25zdDsKIAogICAgIGJvb2wgZ2V0SG90U3BvdChJbnRQb2ludCYpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2Jl
cnJ5L0ltYWdlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ibGFja2JlcnJ5L0ltYWdlQmxhY2tCZXJyeS5jcHAKaW5kZXggMGY0NTc4NjZiMjNjMGQ1ZWFm
ODI1MWFjM2ZkZjBhZTU1NWJkZjkwYS4uZDA5Njg3ODAxOTRjOGUyNjdhNDA5NjMyMmU1MmI4ODE2
ZGFlNGZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxh
Y2tiZXJyeS9JbWFnZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCbGFja0JlcnJ5LmNwcApAQCAtMTIxLDEwICsxMjEs
OSBAQCB2b2lkIEJpdG1hcEltYWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkKIAogdm9pZCBC
aXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCiB7Ci0g
ICAgZHJhdyhjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBi
bGVuZE1vZGUsIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24pOwotfQorICAgIGRyYXcoY29u
dGV4dCwgZHN0UmVjdCwgc3JjUmVjdCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAKLXZvaWQgQml0bWFwSW1hZ2U6OmRyYXco
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJs
ZW5kTW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKQordm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0
aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pCiB7CiAgICAgc3RhcnRBbmltYXRpb24oKTsKIApA
QCAtMTQzLDkgKzE0Miw5IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0CiAjZW5kaWYKIAogICAg
IC8vIHVzZSBzaW1pbGFyIG9yaWVudGF0aW9uIGNvZGUgYXMgSW1hZ2VTa2lhCi0gICAgSW1hZ2VP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOwotICAgIGlm
IChzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bikKLSAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJl
bnRGcmFtZSk7CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKKyAgICBpZiAoZGVz
Y3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbikKKyAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1
cnJlbnRGcmFtZSk7ICAKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc2F2ZUNvbnRl
eHQoKmNvbnRleHQsIGZhbHNlKTsKICAgICBpZiAob3JpZW50YXRpb24gIT0gRGVmYXVsdEltYWdl
T3JpZW50YXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKaW5kZXggNTYwNzczMThiNTZmY2Iy
YzAyZjQwMDk4OGE3YTI0ZTRhZWFhODQyOS4uODcwOGQxMmUwZTk5YmEwNzRiMDc1OTU2N2RlZmRj
YzcwYTM1MzUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAKQEAgLTY2LDExICs2NiwxMSBAQCBC
aXRtYXBJbWFnZTo6Qml0bWFwSW1hZ2UoUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG5hdGl2
ZUltYWdlLCBJbWFnZU9ic2VydmVyKgogCiB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJs
ZW5kTW9kZSBibGVuZE1vZGUpCiB7Ci0gICAgZHJhdyhjb250ZXh0LCBkc3QsIHNyYywgc3R5bGVD
b2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsK
KyAgICBkcmF3KGNvbnRleHQsIGRzdCwgc3JjLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKIH0KIAogdm9pZCBCaXRtYXBJbWFn
ZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyYywgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0
ZU9wZXJhdG9yIG9wLAotICAgIEJsZW5kTW9kZSBibGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICBCbGVuZE1vZGUg
YmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pCiB7CiAg
ICAgaWYgKCFkc3Qud2lkdGgoKSB8fCAhZHN0LmhlaWdodCgpIHx8ICFzcmMud2lkdGgoKSB8fCAh
c3JjLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CkBAIC0xMDEsOCArMTAxLDggQEAgdm9pZCBC
aXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0LCBjb25zdCBGbG8KICAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0KHNyYyk7CiAj
ZW5kaWYKIAotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBEZWZhdWx0SW1hZ2VP
cmllbnRhdGlvbjsKLSAgICBpZiAoc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPT0gUmVz
cGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsK
KyAgICBpZiAoZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbikKICAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9u
QXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CiAKICAgICBGbG9hdFJlY3QgZHN0UmVjdCA9IGRzdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdl
QnVmZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyby5jcHAKaW5kZXggM2NmYzJmNGQxYWJhYWYwM2EzODA3YWZhM2Y2MzMz
YjFmZDZhMjk2NS4uNGZkM2M1NGQ3NWUzNGZjMDgwYzdjMjM3MjYyYWQ4Yzc4ZTk3M2Q5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZm
ZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyby5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIEltYWdlQnVmZmVy
OjpkcmF3KEdyYXBoaWNzQ29udGV4dCogZGVzdGluYXRpb25Db250ZXh0LCBDb2xvclNwYWNlIHN0
eWxlQ29sbwogewogICAgIEJhY2tpbmdTdG9yZUNvcHkgY29weU1vZGUgPSBkZXN0aW5hdGlvbkNv
bnRleHQgPT0gY29udGV4dCgpID8gQ29weUJhY2tpbmdTdG9yZSA6IERvbnRDb3B5QmFja2luZ1N0
b3JlOwogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBjb3B5SW1hZ2UoY29weU1vZGUpOwotICAg
IGRlc3RpbmF0aW9uQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZUNvbG9yU3Bh
Y2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIGRlc3RpbmF0aW9uQ29udGV4dC0+
ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0
LCBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVh
bGl0eVNjYWxlKTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1hcEltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAKaW5kZXggY2QwMzdhOThhNDM0MTdh
YjZmY2JiY2VjODRlOGU5NGZlZTcwNzRkOS4uOWNkYzZmYTM4YTg1MWY5MTc2ODQxOTE3MGZkMjk4
YWY0NTgyY2QwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvQml0bWFwSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAKQEAgLTE2MywxMCArMTYzLDEwIEBAIFJldGFpblB0cjxD
RkFycmF5UmVmPiBCaXRtYXBJbWFnZTo6Z2V0Q0dJbWFnZUFycmF5KCkKIAogdm9pZCBCaXRtYXBJ
bWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKLSAgICBkcmF3KGN0
eCwgZHN0UmVjdCwgc3JjUmVjdCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBEb05v
dFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBkcmF3KGN0eCwgZHN0UmVjdCwgc3JjUmVj
dCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3Jp
cHRpb24oKSk7CiB9CiAKLXZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVP
cCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQordm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3Jp
cHRpb24gZGVzY3JpcHRpb24pCiB7CiAgICAgc3RhcnRBbmltYXRpb24oKTsKIApAQCAtMTgwLDkg
KzE4MCw5IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGCiAgICAgfQogCiAgICAgRmxvYXRTaXpl
IHNlbGZTaXplID0gY3VycmVudEZyYW1lU2l6ZSgpOwotICAgIEltYWdlT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24gPSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKKyAgICBJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uOwogCi0gICAgaWYgKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID09
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgIGlmIChkZXNjcmlwdGlvbi5yZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbigpID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQogICAgICAgICBvcmll
bnRhdGlvbiA9IGZyYW1lT3JpZW50YXRpb25BdEluZGV4KG1fY3VycmVudEZyYW1lKTsKIAogICAg
IGN0eHQtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgc2VsZlNpemUsIHN0eWxlQ29sb3JTcGFjZSwg
ZGVzdFJlY3QsIHNyY1JlY3QsIGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291
cmNlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3Vy
Y2VDRy5jcHAKaW5kZXggYWFhMmZkZmNkYzdjMTc2YzUwNDRhMGU1MjhiY2Y1MTgxOTI3ZmVmZi4u
ZDVjMTFiOWY3N2QyZmI5ZjZjNWM5OTkyYWNmZjY2MzQ4MjQ0M2FkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKQEAg
LTE5NSw3ICsxOTUsNyBAQCBzdGF0aWMgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbkZyb21Q
cm9wZXJ0aWVzKENGRGljdGlvbmFyeVJlZiBpbWFnZVByb3BlcnRpZQogICAgIHJldHVybiBJbWFn
ZU9yaWVudGF0aW9uOjpmcm9tRVhJRlZhbHVlKGV4aWZWYWx1ZSk7CiB9CiAKLUludFNpemUgSW1h
Z2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uKSBjb25zdAorSW50U2l6ZSBJbWFn
ZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5kZXgsIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikgY29uc3QKIHsKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9u
YXJ5UmVmPiBwcm9wZXJ0aWVzID0gYWRvcHRDRihDR0ltYWdlU291cmNlQ29weVByb3BlcnRpZXNB
dEluZGV4KG1fZGVjb2RlciwgaW5kZXgsIGltYWdlU291cmNlT3B0aW9ucyhTa2lwTWV0YWRhdGEp
KSk7CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBJbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVB
dEluZGV4KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtCiAgICAgaWYg
KG51bSkKICAgICAgICAgQ0ZOdW1iZXJHZXRWYWx1ZShudW0sIGtDRk51bWJlckludFR5cGUsICZo
KTsKIAotICAgIGlmICgoc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKSAmJiBvcmllbnRhdGlvbkZyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMuZ2V0KCkp
LnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgaWYgKChkZXNjcmlwdGlvbi5yZXNwZWN0T3JpZW50
YXRpb24oKSA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgb3JpZW50YXRpb25Gcm9tUHJv
cGVydGllcyhwcm9wZXJ0aWVzLmdldCgpKS51c2VzV2lkdGhBc0hlaWdodCgpKQogICAgICAgICBy
ZXR1cm4gSW50U2l6ZShoLCB3KTsKIAogICAgIHJldHVybiBJbnRTaXplKHcsIGgpOwpAQCAtMjI1
LDkgKzIyNSw5IEBAIEltYWdlT3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJ
bmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG9yaWVudGF0aW9uRnJvbVByb3Bl
cnRpZXMocHJvcGVydGllcy5nZXQoKSk7CiB9CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUo
UmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29u
c3QKK0ludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
IGRlc2NyaXB0aW9uKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZVNpemVBdEluZGV4KDAsIHNo
b3VsZFJlc3BlY3RPcmllbnRhdGlvbik7CisgICAgcmV0dXJuIGZyYW1lU2l6ZUF0SW5kZXgoMCwg
ZGVzY3JpcHRpb24pOwogfQogCiBib29sIEltYWdlU291cmNlOjpnZXRIb3RTcG90KEludFBvaW50
JiBob3RTcG90KSBjb25zdApAQCAtMzg0LDcgKzM4NCw3IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmZy
YW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKIAogdW5zaWduZWQgSW1hZ2VTb3VyY2U6
OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBJbnRTaXplIGZy
YW1lU2l6ZSA9IGZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KTsKKyAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IGZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIEltYWdl
RGVzY3JpcHRpb24oUmVzcGVjdEltYWdlT3JpZW50YXRpb24pKTsKICAgICByZXR1cm4gZnJhbWVT
aXplLndpZHRoKCkgKiBmcmFtZVNpemUuaGVpZ2h0KCkgKiA0OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggMmEwMmFm
YmFiM2ZjZWQwYzIwZjM4OTlmODM1YzUxNDZjODRiN2Q3OS4uYzU1MWE1MmUwYjc4OTlhMDIxNjc2
NmE1YjhmMDg4YjZmMGI1YzBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBJbnRSCiAgICAgfQogCiAgICAgY29udGV4dC0+ZHJhd0ltYWdlKHJlaW50ZXJwcmV0
X2Nhc3Q8SW1hZ2UqPihnc3RJbWFnZS0+aW1hZ2UoKS5nZXQoKSksIENvbG9yU3BhY2VTUkdCLAot
ICAgICAgICByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCBDb21wb3NpdGVDb3B5LCBEb05vdFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uLCBmYWxzZSk7CisgICAgICAgIHJlY3QsIGdzdEltYWdlLT5yZWN0
KCksIENvbXBvc2l0ZUNvcHksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBmYWxzZSk7
CiAgICAgZ19tdXRleF91bmxvY2sobV9idWZmZXJNdXRleCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXgg
MWJjZGVlOTQ1ZDUxNGQ0MzNjZThjOTNlZGI3Y2Y1MWJjN2M3ODQ5Ny4uMTgwODA4MmY1ZjRiZWIw
OWQ4YzBkOTI2YTU2Njg5NmQ2NDAyMjU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAKQEAgLTEzNiw5ICsxMzYsOSBA
QCB2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLAogICAgIGlmIChkZXN0Q29udGV4dCA9PSBjb250ZXh0
KCkpIHsKICAgICAgICAgLy8gV2UncmUgZHJhd2luZyBpbnRvIG91ciBvd24gYnVmZmVyLiAgSW4g
b3JkZXIgZm9yIHRoaXMgdG8gd29yaywgd2UgbmVlZCB0byBjb3B5IHRoZSBzb3VyY2UgYnVmZmVy
IGZpcnN0LgogICAgICAgICBSZWZQdHI8SW1hZ2U+IGNvcHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tp
bmdTdG9yZSk7Ci0gICAgICAgIGRlc3RDb250ZXh0LT5kcmF3SW1hZ2UoY29weS5nZXQoKSwgQ29s
b3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBEb05vdFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBkZXN0Q29udGV4dC0+
ZHJhd0ltYWdlKGNvcHkuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2Fs
ZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGRlc3RDb250ZXh0LT5kcmF3SW1hZ2UobV9kYXRhLm1f
aW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBEb05v
dFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBk
ZXN0Q29udGV4dC0+ZHJhd0ltYWdlKG1fZGF0YS5tX2ltYWdlLmdldCgpLCBzdHlsZUNvbG9yU3Bh
Y2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCks
IHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNF
LmNwcAppbmRleCBhMTM5YmM5N2JjM2IxYTU1YWNjOTNhZDAwMDZhYzdhYTJiNTBjOTUwLi5jY2Fi
M2ViYmQ0NzFjM2ZhZDJmYmUyOTAyNDg0ZDU4ZjI4NDg5OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNF
LmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uCiAgICAgICAg
ICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
LCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlQ29w
eSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKTsKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2Uo
aW1hZ2VDb3B5LmdldCgpLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwg
YmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2Nh
bGUpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZUNvcHkuZ2V0KCksIHN0eWxlQ29sb3JT
cGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEltYWdlQnVmZmVy
OjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcAppbmRleCBkMzg4YjViNmMx
NzBmN2NkMzVlYzQwN2VmMWFhZWFmNGM0ZjZiMjc5Li5kZmQyMTRjNDUwNjI2NjI3YWIyNDEzMjZm
Y2FkMmM2MDE0MzNjNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
Q2xpcGJvYXJkR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJv
YXJkR3RrLmNwcApAQCAtMzEsNyArMzEsNyBAQCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVh
dGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogICAgIGxvY2F0aW9uID0gbV9k
cmFnTG9jOwogCiAgICAgaWYgKG1fZHJhZ0ltYWdlKQotICAgICAgICByZXR1cm4gY3JlYXRlRHJh
Z0ltYWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpKTsKKyAgICAgICAgcmV0dXJuIGNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZShtX2RyYWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKCkpOwogCiAgICAgaWYgKG1fZHJhZ0ltYWdlRWxlbWVudCkgewogICAg
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2RyYWdJbWFnZUVsZW1lbnQtPmRvY3VtZW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCmluZGV4IDk4
MDFiMTkwNDJiYzBjZGI1NWM3NDM2M2VhZWQ2OWQwMWQyOTMwOGEuLmRmMjEzODk4Y2ZkNzMwOTcx
ZWUyYzlhNTU1MGZhMmJkMWQ5YTVkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9EcmFnSW1hZ2VHdGsuY3BwCkBAIC03Niw3ICs3Niw3IEBAIERyYWdJbWFnZVJlZiBkaXNzb2x2
ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCBmcmFjdGlvbikK
ICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9t
SW1hZ2UoSW1hZ2UqIGltYWdlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCitEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKQogewogICAgIHJldHVybiBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKS5sZWFrUmVmKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0Ry
YWdJbWFnZU1hYy5tbQppbmRleCAxZTE1ODNkNTFjY2NjNGQyNjU3ODVhMzM4ZmUyMzU1MTNiYjFm
MzdmLi4xMmMxNGY0YWVlMDNjMjZiZjhiOTMzNzYwNzg5Y2MyMzllMzYxZWMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTc3LDE2ICs3NywxNiBA
QCBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0
cjxOU0ltYWdlPiBpbWFnZSwgZmxvYXQgZAogICAgIHJldHVybiBkaXNzb2x2ZWRJbWFnZTsKIH0K
ICAgICAgICAgCi1SZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKElt
YWdlKiBpbWFnZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKQorUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFn
ZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikK
IHsKICAgICBJbnRTaXplIHNpemUgPSBpbWFnZS0+c2l6ZSgpOwogCiAgICAgaWYgKGltYWdlLT5p
c0JpdG1hcEltYWdlKCkpIHsKLSAgICAgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9
IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOworICAgICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVu
dGF0aW9uOwogICAgICAgICBCaXRtYXBJbWFnZSogYml0bWFwSW1hZ2UgPSBzdGF0aWNfY2FzdDxC
aXRtYXBJbWFnZSAqPihpbWFnZSk7CiAgICAgICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmll
bnRhdGlvbiA9IGJpdG1hcEltYWdlLT5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAKLSAg
ICAgICAgaWYgKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKQorICAgICAgICBpZiAoZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRp
b24oKSA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKICAgICAgICAgICAgIG9yaWVudGF0aW9u
ID0gYml0bWFwSW1hZ2UtPmN1cnJlbnRGcmFtZU9yaWVudGF0aW9uKCk7CiAKICAgICAgICAgaWYg
KG9yaWVudGF0aW9uICE9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKaW5kZXggZjJlNjQxMzUyMzU3NzUwZDM1ZGMx
ZTgzYTlkODY4MjA5ZGZkYzQ0Ny4uOTdlY2RmMjEwN2NhN2JkMWI5YWIzOGQxMmQ1ZTZiMTg2YTU2
ZjkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcApAQCAt
NDUsNyArNDUsNyBAQCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50
UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jOwogCiAgICAg
aWYgKG1fZHJhZ0ltYWdlKQotICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KG1fZHJhZ0ltYWdlLT5pbWFnZSgpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShtX2RyYWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
KCkpOwogCiAgICAgaWYgKG1fZHJhZ0ltYWdlRWxlbWVudCkgewogICAgICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBtX2RyYWdJbWFnZUVsZW1lbnQtPmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAKaW5kZXggZDM4OGYzOWRjMjUzODY4N2NhZjMw
N2ZkZGNjNmM1MTY5M2E0MDk5OC4uODg5N2NmZjZkZDVjMGFlOGRkYzc3YjQ5YjBjNTE0MjM3ZGI3
YWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcApAQCAt
NjAsNyArNjAsNyBAQCBEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERy
YWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1EcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJ
bWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBpZiAoIWlt
YWdlIHx8ICFpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSkKICAgICAgICAgcmV0
dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCmlu
ZGV4IGVkZmUyMzc0ZTM3MDBkNDlkYWQwNGIyN2M0ZmU4MWY2MTUwNzUyMjcuLjBhOGFiMDc2YWI3
NTczN2I3ZmEwOWY0NjZiNTRlYzY1OGRkNmVkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCkBAIC00NSw3ICs0NSw3IEBAIERyYWdJbWFnZVJlZiBD
bGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgZHJhZ0xvY2F0aW9uKSBjb25zdAog
ICAgIEhCSVRNQVAgcmVzdWx0ID0gMDsKICAgICBpZiAobV9kcmFnSW1hZ2UpIHsKICNpZiBVU0Uo
Q0FJUk8pIHx8IFVTRShDRykKLSAgICAgICAgcmVzdWx0ID0gY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpKTsgICAgICAgIAorICAgICAgICByZXN1bHQgPSBjcmVh
dGVEcmFnSW1hZ2VGcm9tSW1hZ2UobV9kcmFnSW1hZ2UtPmltYWdlKCksIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbigpKTsgICAgICAgIAogICAgICAgICBkcmFnTG9jYXRpb24gPSBtX2RyYWdM
b2M7CiAjZWxzZQogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHAKaW5kZXggOTMwMjViN2Y5NTBjOTcwMjc3
MjdkMzIwMjcyMWQ3MTRhZDBmZjlhNi4uODYyNjZmOTAwYTFjOTAwZjFlODE0YzBiMTU2ZWY1YWVi
Yjg4NTQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFn
ZUNHV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dX
aW4uY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgZXhpdDoKICAgICByZXR1cm4gaGJtcDsKIH0KICAg
ICAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltZywgUmVz
cGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShJbWFnZSogaW1nLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7CiAgICAg
SEJJVE1BUCBoYm1wID0gMDsKICAgICBIV25kREMgZGMoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNhaXJvV2luLmNwcAppbmRleCA2ODFjY2ZlN2NjMTI2
MTMzYWZlZDJmM2NhZjgyNzMxNWRlYjQ2NjI4Li44MDM3NDg2YjU0MzViYTMxNWEyNzRlYWZmNDM2
MzVjYTllMGY1NTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJh
Z0ltYWdlQ2Fpcm9XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFn
SW1hZ2VDYWlyb1dpbi5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBleGl0OgogICAgIHJldHVybiBo
Ym1wOwogfQogICAgIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFn
ZSogaW1nLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWcsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlv
bikKIHsKICAgICBIQklUTUFQIGhibXAgPSAwOwogICAgIEhEQyBkYyA9IEdldERDKDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5k
ZXggZmE0NzUxMDg1MWNlNjAyMTEwYWI1MzE5MDJhNWQ0ZGMxODY1MjNlMC4uNGNjOTNiMzZjZTk1
OTY4ZDAwOWVkNjJhNjgwYzk5ZGI2NDdkNDZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9p
ZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRTbmFwc2hvdEltYWdlKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCB1c2VMb3dR
dWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBp
bWFnZSwgYWxpZ25lZFJlY3Quc2l6ZSgpKTsKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2Us
IHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIs
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsK
KyAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxp
Z25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlv
bihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcp
OwogfQogCiB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludENvbnRlbnRzKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCA2OTg4OTRiYjk4YzVjZjg1NWFmOTRh
NzhkNGViYjE4NzQ4ZWVjMDNhLi41ZmEyYzdmZDQ5NWU5NzNhNzRjMzU3YWU1MWM1YmVlYmI3NGI3
NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTM1Myw3
ICszNTMsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICAgICAgICAgIGlmIChj
ZW50ZXJZIDwgMCkKICAgICAgICAgICAgICAgICAgICAgY2VudGVyWSA9IDA7CiAgICAgICAgICAg
ICAgICAgaW1hZ2VPZmZzZXQgPSBMYXlvdXRTaXplKGxlZnRCb3JkZXIgKyBsZWZ0UGFkICsgY2Vu
dGVyWCArIGJvcmRlcldpZHRoLCB0b3BCb3JkZXIgKyB0b3BQYWQgKyBjZW50ZXJZICsgYm9yZGVy
V2lkdGgpOwotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwg
c3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KExheW91dFJlY3QocGFp
bnRPZmZzZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VTaXplKSksIENvbXBvc2l0ZVNvdXJjZU92ZXIs
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpOworICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBwaXhlbFNu
YXBwZWRJbnRSZWN0KExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VT
aXplKSksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihz
aG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgZXJyb3JQ
aWN0dXJlRHJhd24gPSB0cnVlOwogICAgICAgICAgICAgfQogCkBAIC00NzUsNyArNDc1LDcgQEAg
dm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IExheW91dFJlY3QmIHJlY3QKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVP
cGVyYXRvciA9IGltYWdlRWx0ID8gaW1hZ2VFbHQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21w
b3NpdGVTb3VyY2VPdmVyOwogICAgIEltYWdlKiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1h
Z2UoKS5nZXQoKTsKICAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRB
dExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwot
ICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX2ltYWdlUmVzb3VyY2UtPmltYWdlKGFsaWduZWRSZWN0
LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgpKS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFj
ZSgpLCBhbGlnbmVkUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIHNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKKyAgICBjb250ZXh0LT5kcmF3SW1h
Z2UobV9pbWFnZVJlc291cmNlLT5pbWFnZShhbGlnbmVkUmVjdC53aWR0aCgpLCBhbGlnbmVkUmVj
dC5oZWlnaHQoKSkuZ2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIGNv
bXBvc2l0ZU9wZXJhdG9yLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24oKSksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKIH0KIAogYm9vbCBS
ZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKEJhY2tncm91
bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCopIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmNwcAppbmRleCAwNzU5MTBhYmU5ZDAzNDY3MzlkNjk5ZTkxM2ZiMzNmMThkZGZhMTIzLi41Nzg5
MWZlNDAxYWY1OTRlYjc3YjdiZjVhMTQ1OGJkMjBiMmUxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTEzOSw3
ICsxMzksNyBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludFNuYXBzaG90KFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQbwogICAgICAgICByZXR1cm47CiAKICAg
ICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29u
dGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQtPmRy
YXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9z
aXRlU291cmNlT3Zlciwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVh
bGl0eVNjYWxpbmcpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29s
b3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpLCB1c2VMb3dR
dWFsaXR5U2NhbGluZyk7CiB9CiAKIEN1cnNvckRpcmVjdGl2ZSBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbjo6Z2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBvdmVycmlk
ZUN1cnNvcikgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208315</attachid>
            <date>2013-08-08 00:25:53 -0700</date>
            <delta_ts>2013-08-08 03:36:07 -0700</delta_ts>
            <desc>Patch for ews</desc>
            <filename>bug-119418-20130808162542.patch</filename>
            <type>text/plain</type>
            <size>46010</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBlNWQ3OTVmMTAzOWMx
MDQ3NGVmNDQzODYzZDg4OGM3ODAzYWM2Ny4uOGI2NTU4MzEyYmYwNzBkZjEyODQwYzZlOTc0NTRh
MmQzMzBjZGIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEzLTA4LTA3ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0NTU10gSW50
cm9kdWNlIG5ldyBzdHJ1Y3R1cmUgdG8gcGFzcyBpbWFnZSBvcmllbnRhdGlvbiB2YWx1ZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0MTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gc3RydWN0IGluIG9yZGVyIHRvIHJlZHVjZSBjb3VudCBv
ZiBhcmd1bWVudCBmb3IKKyAgICAgICAgaW1hZ2Ugb3JpZW50YXRpb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWlu
dCk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om5vZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFn
SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnVwZGF0ZVNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b246OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb246OnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbjo6aW1hZ2VPcmllbnRhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFn
ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1h
cEltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZy
YW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0Ry
YWdJbWFnZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6Y3JlYXRlRHJh
Z0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVh
dGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6
cGFpbnRTbmFwc2hvdEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdCk6CisKIDIwMTMtMDgtMDcgIEFuZHJl
aSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBSZWdpb25zXSBQcm9w
YWdhdGUgb3ZlcmZsb3cgZnJvbSB0aGUgZmxvdyB0aHJlYWQgdG8gdGhlIGZpcnN0IGFuZCBsYXN0
IHJlZ2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA3
Mjk5ZTE0ZDE0M2VhOGNjNGFjOTc4YjEyY2NhYTk0ZTFmMWIxYWIwLi43OTVhM2JhZWJlODJkNzg0
ZGE5MjNiN2Y2NDFhZGJjY2M1N2JlYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcApAQCAtNDA1LDcgKzQwNSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6
OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgciwgYm9v
CiAgICAgICAgIEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlciA9IGJ1ZmZlcigpOwogICAgICAgICBp
ZiAoaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIGlmIChtX3ByZXNlbnRlZEltYWdlKQotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNlbnRlZEltYWdlLmdldCgpLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHIpLCBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNlbnRlZEltYWdlLmdl
dCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHIpLCBDb21wb3Np
dGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0
eVNjYWxlKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3
SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25hcHBl
ZEludFJlY3QociksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZU5vcm1hbCwgdXNlTG93
UXVhbGl0eVNjYWxlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcAppbmRleCAyNTM3MDQwZDhjNTcwOWNkY2M1OWRjYzIwMjYxNGE4YmMyNGU1MWFmLi4xZTNk
ZmZmNDVkODVmY2ViZDNiNmQ5YmVjNWJiN2VlMzg0NTQ4MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcApAQCAtODc5LDcgKzg3OSw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xs
ZXI6OmRvSW1hZ2VEcmFnKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3Jp
Z2luLCBjCiAKICAgICBJbWFnZSogaW1hZ2UgPSBnZXRJbWFnZShlbGVtZW50KTsKICAgICBpZiAo
aW1hZ2UgJiYgaW1hZ2UtPnNpemUoKS5oZWlnaHQoKSAqIGltYWdlLT5zaXplKCkud2lkdGgoKSA8
PSBNYXhPcmlnaW5hbEltYWdlQXJlYQotICAgICAgICAmJiAoZHJhZ0ltYWdlID0gY3JlYXRlRHJh
Z0ltYWdlRnJvbUltYWdlKGltYWdlLCBlbGVtZW50LT5yZW5kZXJlcigpID8gZWxlbWVudC0+cmVu
ZGVyZXIoKS0+c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA6IERvTm90UmVzcGVjdElt
YWdlT3JpZW50YXRpb24pKSkgeworICAgICAgICAmJiAoZHJhZ0ltYWdlID0gY3JlYXRlRHJhZ0lt
YWdlRnJvbUltYWdlKGltYWdlLCBlbGVtZW50LT5yZW5kZXJlcigpID8gSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uKGVsZW1lbnQtPnJlbmRlcmVyKCktPnNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKCkpIDogSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpKSkgewogICAgICAgICBJ
bnRTaXplIG9yaWdpbmFsU2l6ZSA9IHJlY3Quc2l6ZSgpOwogICAgICAgICBvcmlnaW4gPSByZWN0
LmxvY2F0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggZjllMTA5MGVlMTMyN2Y4NjY3
ZjQwMzRmMWNkMjdlYmExZTgwOTI4Ni4uYWI1MWIyYmQ0N2RjZGQ0NThlNmViMWZkMTM3YjU4MTky
ZDQ5Yzg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTEwOTcsNyArMTA5Nyw3IEBAIERyYWdJ
bWFnZVJlZiBGcmFtZTo6bm9kZUltYWdlKE5vZGUqIG5vZGUpCiAgICAgbV92aWV3LT5wYWludENv
bnRlbnRzKGJ1ZmZlci0+Y29udGV4dCgpLCBwYWludGluZ1JlY3QpOwogCiAgICAgUmVmUHRyPElt
YWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKCk7Ci0gICAgcmV0dXJuIGNyZWF0ZURyYWdJ
bWFnZUZyb21JbWFnZShpbWFnZS5nZXQoKSwgcmVuZGVyZXItPnNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKCkpOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2Uu
Z2V0KCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihyZW5kZXJlci0+c2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24oKSkpOwogfQogCiBEcmFnSW1hZ2VSZWYgRnJhbWU6OmRyYWdJbWFn
ZUZvclNlbGVjdGlvbigpCkBAIC0xMTI2LDcgKzExMjYsNyBAQCBEcmFnSW1hZ2VSZWYgRnJhbWU6
OmRyYWdJbWFnZUZvclNlbGVjdGlvbigpCiAgICAgbV92aWV3LT5wYWludENvbnRlbnRzKGJ1ZmZl
ci0+Y29udGV4dCgpLCBwYWludGluZ1JlY3QpOwogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9
IGJ1ZmZlci0+Y29weUltYWdlKCk7Ci0gICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFn
ZShpbWFnZS5nZXQoKSk7CisgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShpbWFn
ZS5nZXQoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKaW5kZXggZGY5NDIyYTQ5ZGM4NzY0NGM0ZmVmNTIz
ZWY2NDdmYmY5ZDQ3YWM4Mi4uNDI2NWM4YmQ5NjkwOGVhZmM5MDkwZWVhYTg3MjgwNWYwZGJiNTFk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIERyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1h
Z2VSZWYsIEZsb2F0U2l6ZSBzY2FsZSk7CiAgICAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0lt
YWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0IGRlbHRhKTsKICAgICAKLSAg
ICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwgUmVzcGVjdElt
YWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAg
RHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbik7CiAgICAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25G
b3JDYWNoZWRJbWFnZUZpbGVuYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIERyYWdJbWFnZVJlZiBj
cmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEtVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBGb250UmVu
ZGVyaW5nTW9kZSk7CiAgICAgdm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvRHJhZ0ltYWdlQmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFn
ZUJsYWNrQmVycnkuY3BwCmluZGV4IDZmNjBjMDdlYjc1MDQ4ZWMyN2Q4NDFiYjgwYzFkNmUwMGNh
ZTlkNjAuLmMwMjhjNGJmNmRjNzU5MjJkOGIxODg3NmEyZGI0MDMwMzQ2ODBhNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvRHJhZ0ltYWdlQmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9EcmFnSW1hZ2VC
bGFja0JlcnJ5LmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXZvaWQqIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSkKK3ZvaWQqIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdl
T3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdJbWFn
ZUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcApp
bmRleCBmOTI5OTcwMjEyMjRlMjE0YzZhZjU1MWU5Y2VjZjlkY2E2MDljOGU3Li5iMWE2YjEyYTYy
MWQwNjIzYWQwY2VhNThlMzQzMzFkNWYxNzQzZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcApAQCAtNDksNyArNDksNyBAQCBEcmFnSW1hZ2VSZWYg
ZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCiAg
ICAgcmV0dXJuIGltYWdlOwogfQogCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlKiwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQorRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlv
bikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDJlNWI3NzA1
ZmU1YzYwNjcxYzZhMWVjNjAxMmFiZjI3ZTQ4OTY0ZDYuLjE2ZDVhMzFjMTA3MTI5OGNhN2U5ZGI5
MGMxMjMxZGRlNTExMzZhYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIEJpdG1hcEltYWdl
Ojp1cGRhdGVTaXplKCkgY29uc3QKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zaXplID0gbV9z
b3VyY2Uuc2l6ZSgpOwotICAgIG1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9IG1fc291cmNl
LnNpemUoUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIG1fc2l6ZVJlc3BlY3RpbmdPcmll
bnRhdGlvbiA9IG1fc291cmNlLnNpemUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKSk7CiAgICAgbV9oYXZlU2l6ZSA9IHRydWU7CiAgICAgZGlkRGVj
b2RlUHJvcGVydGllcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmgKaW5kZXggOTYzM2FjZWM5OTU0NDlhNzlkYTUyNWE0NGFkNWE5MjM5ZWJi
MWFkOC4uNzQxMzQ4NGY1YmQxYzQyZDNjMWM2MmYwYjFiNzVlNzNiZjE4NWJjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0xOTAsNyAr
MTkwLDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlKTsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgUExBVEZPUk0oQkxBQ0tCRVJS
WSkKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIE9WRVJSSURFOwogI2VuZGlmCiAKICNpZiBV
U0UoV0lOR0RJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dC5jcHAKaW5kZXggMjZlMmRiYjRhZWU0MDFmMDRhYTI3YzI5NTUyNGU5YzZl
NTMwN2Q2Ny4uMjllOTdhODUxN2Y5MzJhODM5NzRmNWRmMjgxNjQxOWRkOTljZGYwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwCkBAIC00NjksMjggKzQ2OSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0hpZ2hs
aWdodEZvclRleHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLAogICAgIGZp
bGxSZWN0KGZvbnQuc2VsZWN0aW9uUmVjdEZvclRleHQocnVuLCBwb2ludCwgaCwgZnJvbSwgdG8p
LCBiYWNrZ3JvdW5kQ29sb3IsIGNvbG9yU3BhY2UpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNv
bnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQordm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKICAgICBpZiAoIWltYWdlKQogICAgICAgICBy
ZXR1cm47Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChJ
bnRSZWN0KHAsIGltYWdlLT5zaXplKCkpKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgRmxvYXRT
aXplKGltYWdlLT5zaXplKCkpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsK
KyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KEludFJlY3Qo
cCwgaW1hZ2UtPnNpemUoKSkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1h
Z2UtPnNpemUoKSkpLCBvcCwgZGVzY3JpcHRpb24pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNv
bnN0IEludFJlY3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0
eVNjYWxlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiByLCBDb21wb3NpdGVPcGVy
YXRvciBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBib29sIHVz
ZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47Ci0g
ICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChyKSwgRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgRmxvYXRTaXplKGltYWdlLT5zaXplKCkpKSwgb3AsIHNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIGRyYXdJbWFn
ZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QociksIEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIEZsb2F0U2l6ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBkZXNjcmlwdGlvbiwgdXNlTG93
UXVhbGl0eVNjYWxlKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFn
ZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVz
dCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb24pCiB7Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVj
dChJbnRSZWN0KGRlc3QsIHNyY1JlY3Quc2l6ZSgpKSksIEZsb2F0UmVjdChzcmNSZWN0KSwgb3As
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0
eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KEludFJlY3QoZGVzdCwgc3JjUmVjdC5zaXplKCkpKSwg
RmxvYXRSZWN0KHNyY1JlY3QpLCBvcCwgZGVzY3JpcHRpb24pOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0
ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQordm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVP
cGVyYXRvciBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBib29s
IHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JT
cGFjZSwgZGVzdCwgc3JjLCBvcCwgQmxlbmRNb2RlTm9ybWFsLCBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0
eWxlQ29sb3JTcGFjZSwgZGVzdCwgc3JjLCBvcCwgQmxlbmRNb2RlTm9ybWFsLCBkZXNjcmlwdGlv
biwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3QpCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAog
ICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50
UmVjdChJbnRQb2ludCgpLCBpbWFnZS0+c2l6ZSgpKSkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9w
ZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxl
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VP
cmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2Fs
ZSkKIHsgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtNTEyLDcgKzUxMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2Uo
SW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QKICAgICAgICAg
c2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CiAgICAgfQog
Ci0gICAgaW1hZ2UtPmRyYXcodGhpcywgZGVzdCwgc3JjLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBi
bGVuZE1vZGUsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBpbWFnZS0+ZHJh
dyh0aGlzLCBkZXN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgZGVzY3Jp
cHRpb24pOwogCiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkKICAgICAgICAgc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5k
ZXggOWM1ZjRkYTE5NDc3ZmY0NTdjZmVlZWU0OWJmZmU3NDBjMDg0MTlmYy4uOGVjMmM1OTMwZTE3
MjE5YjhlYTRkNmViZTE0ODQ4ZGRlZDVhYTlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTI4NywxMiArMjg3LDEyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxv
YXRSZWN0JiwgZmxvYXQgbGluZVdpZHRoKTsKIAotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFn
ZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYsIENvbXBvc2l0
ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7Ci0gICAgICAgIHZvaWQgZHJhd0lt
YWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBJ
bnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIs
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRp
b24pOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdCBJbnRQb2ludCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291
cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uKCkpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21w
b3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24oKSwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Cisg
ICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogICAgICAgICB2b2lkIGRy
YXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0KTsKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24s
IGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFn
ZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOworICAgICAgICB2b2lk
IGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0g
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0g
ZmFsc2UpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxp
dHlTY2FsZSA9IGZhbHNlKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZHJhd1RpbGVkSW1hZ2Uo
SW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJl
Y3QsIGNvbnN0IEludFBvaW50JiBzcmNQb2ludCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsCiAg
ICAgICAgICAgICBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKaW5kZXggYjgzYmM0
YzUwOWMzZDk0Y2MzODc5MmFjMzNhNWI3NWQxMTc2YTNlYy4uZTk0MDcyYTM0ZjNkOWQxNGRjYzBm
M2U4NDA5NTVhODYwODM0YWYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEltYWdlOjpmaWxsV2l0aFNvbGlkQ29s
b3IoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsCiAgICAg
Y3R4dC0+c2V0Q29tcG9zaXRlT3BlcmF0aW9uKHByZXZpb3VzT3BlcmF0b3IpOwogfQogCi12b2lk
IEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0pCit2b2lkIEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4LCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxl
bmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7CiAgICAgZHJhdyhjdHgsIGRz
dFJlY3QsIHNyY1JlY3QsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBiNDQ2YmU3ZmFkY2RhZmE2
MjczMjkzOTA2ZTMxNTY2MmUwNGU0MWQ1Li5lNzA2YjVjOTk5YzdhNTc0NmI5MjhmNGM3NWU4NTEx
MTcxMjA5YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAg
LTE5Nyw3ICsxOTcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdGcmFtZU1h
dGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvcikgeyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uRW51bSk7CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pOwogICAgIHZvaWQgZHJhd1RpbGVkKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRQb2lu
dCYgc3JjUG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLAogICAgICAgICBDb21wb3NpdGVPcGVyYXRvciAsIEJsZW5kTW9kZSk7CiAgICAg
dm9pZCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFj
dG9yLCBUaWxlUnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKaW5kZXggYjE4NGRjMmY3MGE3YjYyZmNk
MTQxN2Q4Y2U2Yjk1NGU1YjYxNzcxMi4uMDQzNDRlMjc5Mzk2NDIzMjM2MTdiYTdiZTlmNjUyY2Ez
NWU1MGE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VPcmllbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlT3JpZW50YXRpb24uaApAQCAtNTIsNiArNTIsMzMgQEAgZW51bSBSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbkVudW0gewogICAgIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gMQogfTsKIAorc3Ry
dWN0IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiB7CisgICAgSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbiwKKyAgICAgICAgSW1hZ2VPcmllbnRhdGlvbkVudW0gb3JpZW50YXRpb24pCisg
ICAgICAgIDogbV9yZXNwZWN0T3JpZW50YXRpb24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24pCisgICAgICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKKyAgICB7CisgICAgfQor
CisgICAgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkKKyAgICAgICAgOiBtX3Jlc3BlY3RP
cmllbnRhdGlvbihEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgICAgICAsIG1fb3Jp
ZW50YXRpb24oRGVmYXVsdEltYWdlT3JpZW50YXRpb24pCisgICAgeworICAgIH0KKworICAgIElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgICAgIDogbV9yZXNwZWN0T3JpZW50YXRp
b24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgICAgICwgbV9vcmllbnRhdGlv
bihEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikKKyAgICB7CisgICAgfQorCisgICAgUmVzcGVjdElt
YWdlT3JpZW50YXRpb25FbnVtIHJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgeyByZXR1cm4gbV9y
ZXNwZWN0T3JpZW50YXRpb247IH0KKyAgICBJbWFnZU9yaWVudGF0aW9uRW51bSBpbWFnZU9yaWVu
dGF0aW9uKCkgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorCisgICAgUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb25FbnVtIG1fcmVzcGVjdE9yaWVudGF0aW9uOworICAgIEltYWdlT3JpZW50YXRpb25F
bnVtIG1fb3JpZW50YXRpb247Cit9OworCiBjbGFzcyBJbWFnZU9yaWVudGF0aW9uIHsKIHB1Ymxp
YzoKICAgICBJbWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb25FbnVtIG9yaWVudGF0aW9u
ID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggZjdiNDkwOTczNmEzMmVhMTMxNzUyZGRi
NWMyOGZiYjg3NzA5NDFjOS4uZjg2NTIwMDkxZTg1YWQzYmFlNDhkOTZmN2ZjOTRiODY0OTA2YWJl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcApAQCAtOTksMTggKzk5LDE4IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJs
ZSgpCiAgICAgcmV0dXJuIG1fZGVjb2RlciAmJiBtX2RlY29kZXItPmlzU2l6ZUF2YWlsYWJsZSgp
OwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpzaXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
RW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pIGNvbnN0CitJbnRTaXplIEltYWdlU291cmNl
OjpzaXplKEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikgY29uc3QKIHsK
LSAgICByZXR1cm4gZnJhbWVTaXplQXRJbmRleCgwLCBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24p
OworICAgIHJldHVybiBmcmFtZVNpemVBdEluZGV4KDAsIGRlc2NyaXB0aW9uKTsKIH0KIAotSW50
U2l6ZSBJbWFnZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5kZXgsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pIGNvbnN0CitJbnRT
aXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRleCwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKSBjb25zdAogewogICAgIGlmICghbV9kZWNv
ZGVyKQogICAgICAgICByZXR1cm4gSW50U2l6ZSgpOwogCiAgICAgSW50U2l6ZSBzaXplID0gbV9k
ZWNvZGVyLT5mcmFtZVNpemVBdEluZGV4KGluZGV4KTsKLSAgICBpZiAoKHNob3VsZFJlc3BlY3RP
cmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgbV9kZWNvZGVyLT5vcmll
bnRhdGlvbigpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgaWYgKChkZXNjcmlwdGlvbi5yZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSAmJiBtX2Rl
Y29kZXItPm9yaWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkKICAgICAgICAgcmV0dXJu
IEludFNpemUoc2l6ZS5oZWlnaHQoKSwgc2l6ZS53aWR0aCgpKTsKIAogICAgIHJldHVybiBzaXpl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5k
ZXggMzFhMmUxOWY5YzUyMGUwYzk0YmFjZDc4NGE5ZjI3ZjM1NGVkOTBhOC4uYTQ5NmY2ZWIyYWQ3
NjM4NWZiMjU5MDNjMzgxZTQ1ZjVhYjBlZWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC0xMzIsOCArMTMyLDggQEAgcHVibGljOgog
ICAgIFN0cmluZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0OwogCiAgICAgYm9vbCBpc1NpemVB
dmFpbGFibGUoKTsKLSAgICBJbnRTaXplIHNpemUoUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVt
ID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgY29uc3Q7Ci0gICAgSW50U2l6ZSBmcmFt
ZVNpemVBdEluZGV4KHNpemVfdCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgY29uc3Q7CisgICAgSW50U2l6ZSBzaXplKEltYWdlT3Jp
ZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKSBjb25z
dDsKKyAgICBJbnRTaXplIGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSkgY29uc3Q7CiAKICAg
ICBib29sIGdldEhvdFNwb3QoSW50UG9pbnQmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJsYWNrQmVycnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJsYWNr
QmVycnkuY3BwCmluZGV4IDBmNDU3ODY2YjIzYzBkNWVhZjgyNTFhYzNmZGYwYWU1NTViZGY5MGEu
LmQwOTY4NzgwMTk0YzhlMjY3YTQwOTYzMjJlNTJiODgxNmRhZTRmYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCbGFja0JlcnJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0lt
YWdlQmxhY2tCZXJyeS5jcHAKQEAgLTEyMSwxMCArMTIxLDkgQEAgdm9pZCBCaXRtYXBJbWFnZTo6
aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewotICAgIGRyYXcoY29udGV4dCwgZHN0UmVj
dCwgc3JjUmVjdCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKTsKLX0KKyAgICBkcmF3KGNvbnRleHQsIGRzdFJlY3QsIHNyY1JlY3Qs
IHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKCkpOwogCi12b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKK3ZvaWQgQml0bWFw
SW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3Bl
cmF0b3Igb3AsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uKQogewogICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAKQEAgLTE0Myw5ICsxNDIsOSBAQCB2b2lk
IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdAogI2VuZGlmCiAKICAgICAvLyB1c2Ugc2ltaWxhciBvcmllbnRh
dGlvbiBjb2RlIGFzIEltYWdlU2tpYQotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24g
PSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKLSAgICBpZiAoc2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24gPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCi0gICAgICAgIG9yaWVudGF0aW9u
ID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOworICAgIEltYWdlT3Jp
ZW50YXRpb24gb3JpZW50YXRpb247CisgICAgaWYgKGRlc2NyaXB0aW9uLnJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgICAgIG9yaWVudGF0
aW9uID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOyAgCiAKICAgICBH
cmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHNhdmVDb250ZXh0KCpjb250ZXh0LCBmYWxzZSk7CiAg
ICAgaWYgKG9yaWVudGF0aW9uICE9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcElt
YWdlQ2Fpcm8uY3BwCmluZGV4IDU2MDc3MzE4YjU2ZmNiMmMwMmY0MDA5ODhhN2EyNGU0YWVhYTg0
MjkuLjg3MDhkMTJlMGU5OWJhMDc0YjA3NTk1NjdkZWZkY2M3MGEzNTM1M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcElt
YWdlQ2Fpcm8uY3BwCkBAIC02NiwxMSArNjYsMTEgQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdl
KFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlcioK
IAogdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewot
ICAgIGRyYXcoY29udGV4dCwgZHN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9k
ZSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgZHJhdyhjb250ZXh0LCBkc3Qs
IHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24oKSk7CiB9CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwKLSAgICBCbGVu
ZE1vZGUgYmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24pCisgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAgIGlmICghZHN0LndpZHRoKCkgfHwg
IWRzdC5oZWlnaHQoKSB8fCAhc3JjLndpZHRoKCkgfHwgIXNyYy5oZWlnaHQoKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMTAxLDggKzEwMSw4IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3QgRmxvCiAgICAg
RmxvYXRSZWN0IGFkanVzdGVkU3JjUmVjdChzcmMpOwogI2VuZGlmCiAKLSAgICBJbWFnZU9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb247Ci0gICAgaWYgKHNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQor
ICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb247CisgICAgaWYgKGRlc2NyaXB0aW9uLnJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCiAgICAg
ICAgIG9yaWVudGF0aW9uID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUp
OwogCiAgICAgRmxvYXRSZWN0IGRzdFJlY3QgPSBkc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmlu
ZGV4IDNjZmMyZjRkMWFiYWFmMDNhMzgwN2FmYTNmNjMzM2IxZmQ2YTI5NjUuLjRmZDNjNTRkNzVl
MzRmYzA4MGM3YzIzNzI2MmFkOGM3OGU5NzNkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBA
IC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQq
IGRlc3RpbmF0aW9uQ29udGV4dCwgQ29sb3JTcGFjZSBzdHlsZUNvbG8KIHsKICAgICBCYWNraW5n
U3RvcmVDb3B5IGNvcHlNb2RlID0gZGVzdGluYXRpb25Db250ZXh0ID09IGNvbnRleHQoKSA/IENv
cHlCYWNraW5nU3RvcmUgOiBEb250Q29weUJhY2tpbmdTdG9yZTsKICAgICBSZWZQdHI8SW1hZ2U+
IGltYWdlID0gY29weUltYWdlKGNvcHlNb2RlKTsKLSAgICBkZXN0aW5hdGlvbkNvbnRleHQtPmRy
YXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwg
b3AsIGJsZW5kTW9kZSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0
eVNjYWxlKTsKKyAgICBkZXN0aW5hdGlvbkNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwg
c3R5bGVDb2xvclNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgSW1hZ2VP
cmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQg
SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9CaXRt
YXBJbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1h
cEltYWdlQ0cuY3BwCmluZGV4IGNkMDM3YTk4YTQzNDE3YWI2ZmNiYmNlYzg0ZThlOTRmZWU3MDc0
ZDkuLjljZGM2ZmEzOGE4NTFmOTE3Njg0MTkxNzBmZDI5OGFmNDU4MmNkMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1hcEltYWdlQ0cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1hcEltYWdlQ0cuY3Bw
CkBAIC0xNjMsMTAgKzE2MywxMCBAQCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gQml0bWFwSW1hZ2U6
OmdldENHSW1hZ2VBcnJheSgpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250
ZXh0KiBjdHgsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJs
ZW5kTW9kZSBibGVuZE1vZGUpCiB7Ci0gICAgZHJhdyhjdHgsIGRzdFJlY3QsIHNyY1JlY3QsIHN0
eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bik7CisgICAgZHJhdyhjdHgsIGRzdFJlY3QsIHNyY1JlY3QsIHN0eWxlQ29sb3JTcGFjZSwgb3As
IGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogfQogCi12b2lkIEJp
dG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUs
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bikKK3ZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2Rl
IGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewog
ICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAKQEAgLTE4MCw5ICsxODAsOSBAQCB2b2lkIEJpdG1hcElt
YWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVj
dCwgY29uc3QgRgogICAgIH0KIAogICAgIEZsb2F0U2l6ZSBzZWxmU2l6ZSA9IGN1cnJlbnRGcmFt
ZVNpemUoKTsKLSAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gRGVmYXVsdEltYWdl
T3JpZW50YXRpb247CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKIAotICAgIGlm
IChzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bikKKyAgICBpZiAoZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbikKICAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0
aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CiAKICAgICBjdHh0LT5kcmF3TmF0aXZlSW1hZ2Uo
aW1hZ2UsIHNlbGZTaXplLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21w
b3NpdGVPcCwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IGFhYTJmZGZj
ZGM3YzE3NmM1MDQ0YTBlNTI4YmNmNTE4MTkyN2ZlZmYuLmFhOTU1ODg1YTU3OTYwNGM2ZDI0OTYw
NGIyZmE0MzdiZTQxOTYxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgc3RhdGlj
IEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb25Gcm9tUHJvcGVydGllcyhDRkRpY3Rpb25hcnlS
ZWYgaW1hZ2VQcm9wZXJ0aWUKICAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6ZnJvbUVYSUZW
YWx1ZShleGlmVmFsdWUpOwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdElu
ZGV4KHNpemVfdCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3Bl
Y3RPcmllbnRhdGlvbikgY29uc3QKK0ludFNpemUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5k
ZXgoc2l6ZV90IGluZGV4LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24p
IGNvbnN0CiB7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gcHJvcGVydGllcyA9IGFk
b3B0Q0YoQ0dJbWFnZVNvdXJjZUNvcHlQcm9wZXJ0aWVzQXRJbmRleChtX2RlY29kZXIsIGluZGV4
LCBpbWFnZVNvdXJjZU9wdGlvbnMoU2tpcE1ldGFkYXRhKSkpOwogCkBAIC0yMTAsNyArMjEwLDcg
QEAgSW50U2l6ZSBJbWFnZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5kZXgsIFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bQogICAgIGlmIChudW0pCiAgICAgICAgIENGTnVtYmVy
R2V0VmFsdWUobnVtLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmaCk7CiAKLSAgICBpZiAoKHNob3VsZFJl
c3BlY3RPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgb3JpZW50YXRp
b25Gcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzLmdldCgpKS51c2VzV2lkdGhBc0hlaWdodCgpKQor
ICAgIGlmICgoZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbikgJiYgb3JpZW50YXRpb25Gcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVz
LmdldCgpKS51c2VzV2lkdGhBc0hlaWdodCgpKQogICAgICAgICByZXR1cm4gSW50U2l6ZShoLCB3
KTsKIAogICAgIHJldHVybiBJbnRTaXplKHcsIGgpOwpAQCAtMjI1LDkgKzIyNSw5IEBAIEltYWdl
T3JpZW50YXRpb24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgp
IGNvbnN0CiAgICAgcmV0dXJuIG9yaWVudGF0aW9uRnJvbVByb3BlcnRpZXMocHJvcGVydGllcy5n
ZXQoKSk7CiB9CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUoUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKK0ludFNpemUgSW1hZ2VT
b3VyY2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKSBjb25z
dAogewotICAgIHJldHVybiBmcmFtZVNpemVBdEluZGV4KDAsIHNob3VsZFJlc3BlY3RPcmllbnRh
dGlvbik7CisgICAgcmV0dXJuIGZyYW1lU2l6ZUF0SW5kZXgoMCwgZGVzY3JpcHRpb24pOwogfQog
CiBib29sIEltYWdlU291cmNlOjpnZXRIb3RTcG90KEludFBvaW50JiBob3RTcG90KSBjb25zdApA
QCAtMzg0LDcgKzM4NCw3IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4
KHNpemVfdCBpbmRleCkKIAogdW5zaWduZWQgSW1hZ2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4
KHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IGZyYW1lU2l6
ZUF0SW5kZXgoaW5kZXgsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBJbnRTaXplIGZy
YW1lU2l6ZSA9IGZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIEltYWdlT3JpZW50YXRpb25EZXNjcmlw
dGlvbihSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikpOwogICAgIHJldHVybiBmcmFtZVNpemUud2lk
dGgoKSAqIGZyYW1lU2l6ZS5oZWlnaHQoKSAqIDQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCA1NDJkY2ZlZDQ5YTkx
YjA0NjI2NjhhOTU5OWRlNTRhNTk0ZDg3MjY0Li5kOWQ0YmE2ZTMwOTkwNzE4ZjQ4NDkwYmYzM2Yw
OGNiOGJiOWZlMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEludFIKICAgICB9CiAKICAgICBjb250ZXh0LT5kcmF3SW1hZ2UocmVpbnRlcnByZXRfY2FzdDxJ
bWFnZSo+KGdzdEltYWdlLT5pbWFnZSgpLmdldCgpKSwgQ29sb3JTcGFjZVNSR0IsCi0gICAgICAg
IHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIENvbXBvc2l0ZUNvcHksIERvTm90UmVzcGVjdEltYWdl
T3JpZW50YXRpb24sIGZhbHNlKTsKKyAgICAgICAgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgQ29t
cG9zaXRlQ29weSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIGZhbHNlKTsKICAgICBn
X211dGV4X3VubG9jayhtX2J1ZmZlck11dGV4KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCAxYmNkZWU5
NDVkNTE0ZDQzM2NlOGM5M2VkYjdjZjUxYmM3Yzc4NDk3Li4xODA4MDgyZjVmNGJlYjA5ZDhjMGQ5
MjZhNTY2ODk2ZDY0MDIyNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcApAQCAtMTM2LDkgKzEzNiw5IEBAIHZvaWQg
SW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBkZXN0Q29udGV4dCwgQ29sb3JTcGFj
ZSBzdHlsZUNvbG9yU3BhY2UsCiAgICAgaWYgKGRlc3RDb250ZXh0ID09IGNvbnRleHQoKSkgewog
ICAgICAgICAvLyBXZSdyZSBkcmF3aW5nIGludG8gb3VyIG93biBidWZmZXIuICBJbiBvcmRlciBm
b3IgdGhpcyB0byB3b3JrLCB3ZSBuZWVkIHRvIGNvcHkgdGhlIHNvdXJjZSBidWZmZXIgZmlyc3Qu
CiAgICAgICAgIFJlZlB0cjxJbWFnZT4gY29weSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3Jl
KTsKLSAgICAgICAgZGVzdENvbnRleHQtPmRyYXdJbWFnZShjb3B5LmdldCgpLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIERvTm90UmVzcGVjdEltYWdlT3JpZW50
YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGRlc3RDb250ZXh0LT5kcmF3SW1h
Z2UoY29weS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1JlY3QsIG9w
LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgZGVzdENvbnRleHQtPmRyYXdJbWFnZShtX2RhdGEubV9pbWFnZS5n
ZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIERvTm90UmVzcGVj
dEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGRlc3RDb250
ZXh0LT5kcmF3SW1hZ2UobV9kYXRhLm1faW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVz
dFJlY3QsIHNyY1JlY3QsIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93
UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhp
Y3NDb250ZXh0KiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCmlu
ZGV4IGExMzliYzk3YmMzYjFhNTVhY2M5M2FkMDAwNmFjN2FhMmI1MGM5NTAuLmNjYWIzZWJiZDQ3
MWMzZmFkMmZiZTI5MDI0ODRkNThmMjg0ODk4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCkBA
IC0xMTQsNyArMTE0LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb24KICAgICAgICAgICAgICAg
ICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2VDb3B5ID0gY29w
eUltYWdlKENvcHlCYWNraW5nU3RvcmUpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZUNv
cHkuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1v
ZGUsIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7Cisg
ICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlQ29weS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBk
ZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCmluZGV4IGQzODhiNWI2YzE3MGY3Y2Qz
NWVjNDA3ZWYxYWFlYWY0YzRmNmIyNzkuLmRmZDIxNGM0NTA2MjY2MjdhYjI0MTMyNmZjYWQyYzYw
MTQzM2M2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9h
cmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsu
Y3BwCkBAIC0zMSw3ICszMSw3IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJ
bWFnZShJbnRQb2ludCYgbG9jYXRpb24pIGNvbnN0CiAgICAgbG9jYXRpb24gPSBtX2RyYWdMb2M7
CiAKICAgICBpZiAobV9kcmFnSW1hZ2UpCi0gICAgICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VG
cm9tSW1hZ2UobV9kcmFnSW1hZ2UtPmltYWdlKCkpOworICAgICAgICByZXR1cm4gY3JlYXRlRHJh
Z0ltYWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpLCBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24oKSk7CiAKICAgICBpZiAobV9kcmFnSW1hZ2VFbGVtZW50KSB7CiAgICAgICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IG1fZHJhZ0ltYWdlRWxlbWVudC0+ZG9jdW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAKaW5kZXggOTgwMWIxOTA0
MmJjMGNkYjU1Yzc0MzYzZWFlZDY5ZDAxZDI5MzA4YS4uZGYyMTM4OThjZmQ3MzA5NzFlZTJjOWE1
NTUwZmEyYmQxZDlhNWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0RyYWdJbWFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJ
bWFnZUd0ay5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0lt
YWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0IGZyYWN0aW9uKQogICAgIHJl
dHVybiBpbWFnZTsKIH0KIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJ
bWFnZSogaW1hZ2UsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK0RyYWdJbWFnZVJlZiBj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24pCiB7CiAgICAgcmV0dXJuIGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFt
ZSgpLmxlYWtSZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdl
TWFjLm1tCmluZGV4IGIzOTY2YTU0NDVjNDlhZTAzMGFkNmY1YzMwZjk4OTVhYWI5YzhlYmYuLjE0
OTNhZTYzODk2NDQwYzczNjYwNmUwNzdkYjZiMTcyNDZjZWQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtNzcsMTYgKzc3LDE2IEBAIFJldGFp
blB0cjxOU0ltYWdlPiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5TSW1h
Z2U+IGltYWdlLCBmbG9hdCBkCiAgICAgcmV0dXJuIGRpc3NvbHZlZEltYWdlOwogfQogICAgICAg
ICAKLVJldGFpblB0cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGlt
YWdlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24pCitSZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdl
KiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAg
IEludFNpemUgc2l6ZSA9IGltYWdlLT5zaXplKCk7CiAKICAgICBpZiAoaW1hZ2UtPmlzQml0bWFw
SW1hZ2UoKSkgewotICAgICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gRGVmYXVs
dEltYWdlT3JpZW50YXRpb247CisgICAgICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb247
CiAgICAgICAgIEJpdG1hcEltYWdlKiBiaXRtYXBJbWFnZSA9IHN0YXRpY19jYXN0PEJpdG1hcElt
YWdlICo+KGltYWdlKTsKICAgICAgICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9u
ID0gYml0bWFwSW1hZ2UtPnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKIAotICAgICAgICBp
ZiAoc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPT0gUmVzcGVjdEltYWdlT3JpZW50YXRp
b24pCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5yZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpID09
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQogICAgICAgICAgICAgb3JpZW50YXRpb24gPSBiaXRt
YXBJbWFnZS0+b3JpZW50YXRpb25Gb3JDdXJyZW50RnJhbWUoKTsKIAogICAgICAgICBpZiAob3Jp
ZW50YXRpb24gIT0gRGVmYXVsdEltYWdlT3JpZW50YXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAppbmRleCBmMmU2NDEzNTIzNTc3NTBkMzVkYzFlODNh
OWQ4NjgyMDlkZmRjNDQ3Li45N2VjZGYyMTA3Y2E3YmQxYjlhYjM4ZDEyZDVlNmIxODZhNTZmOTMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2lu
dCYgbG9jYXRpb24pIGNvbnN0CiAgICAgbG9jYXRpb24gPSBtX2RyYWdMb2M7CiAKICAgICBpZiAo
bV9kcmFnSW1hZ2UpCi0gICAgICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UobV9k
cmFnSW1hZ2UtPmltYWdlKCkpOworICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7
CiAKICAgICBpZiAobV9kcmFnSW1hZ2VFbGVtZW50KSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1fZHJhZ0ltYWdlRWxlbWVudC0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcAppbmRleCBkMzg4ZjM5ZGMyNTM4Njg3Y2FmMzA3ZmRk
Y2M2YzUxNjkzYTQwOTk4Li44ODk3Y2ZmNmRkNWMwYWU4ZGRjNzdiNDliMGM1MTQyMzdkYjdhY2Fi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwCkBAIC02MCw3
ICs2MCw3IEBAIERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0lt
YWdlUmVmIGltYWdlLCBmbG9hdCkKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKLURyYWdJbWFnZVJl
ZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdl
KiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIGlmICghaW1hZ2Ug
fHwgIWltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKQogICAgICAgICByZXR1cm4g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKaW5kZXgg
ZWRmZTIzNzRlMzcwMGQ0OWRhZDA0YjI3YzRmZTgxZjYxNTA3NTIyNy4uMGE4YWIwNzZhYjc1NzM3
YjdmYTA5ZjQ2NmI1NGVjNjU4ZGQ2ZWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFdpbi5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgRHJhZ0ltYWdlUmVmIENsaXBi
b2FyZDo6Y3JlYXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0CiAgICAg
SEJJVE1BUCByZXN1bHQgPSAwOwogICAgIGlmIChtX2RyYWdJbWFnZSkgewogI2lmIFVTRShDQUlS
TykgfHwgVVNFKENHKQotICAgICAgICByZXN1bHQgPSBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2Uo
bV9kcmFnSW1hZ2UtPmltYWdlKCkpOyAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IGNyZWF0ZURy
YWdJbWFnZUZyb21JbWFnZShtX2RyYWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uKCkpOyAgICAgICAgCiAgICAgICAgIGRyYWdMb2NhdGlvbiA9IG1fZHJhZ0xvYzsK
ICNlbHNlCiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0RyYWdJbWFnZUNHV2luLmNwcAppbmRleCA5MzAyNWI3Zjk1MGM5NzAyNzcyN2Qz
MjAyNzIxZDcxNGFkMGZmOWE2Li44NjI2NmY5MDBhMWM5MDBmMWU4MTRjMGIxNTZlZjVhZWJiODg1
NDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5j
cHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBleGl0OgogICAgIHJldHVybiBoYm1wOwogfQogICAgIAot
RHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nLCBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKEltYWdlKiBpbWcsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBIQklU
TUFQIGhibXAgPSAwOwogICAgIEhXbmREQyBkYygwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwCmluZGV4IDY4MWNjZmU3Y2MxMjYxMzNh
ZmVkMmYzY2FmODI3MzE1ZGViNDY2MjguLjgwMzc0ODZiNTQzNWJhMzE1YTI3NGVhZmY0MzYzNWNh
OWUwZjU1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1h
Z2VDYWlyb1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFn
ZUNhaXJvV2luLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIGV4aXQ6CiAgICAgcmV0dXJuIGhibXA7
CiB9CiAgICAgCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBp
bWcsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltZywgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQog
ewogICAgIEhCSVRNQVAgaGJtcCA9IDA7CiAgICAgSERDIGRjID0gR2V0REMoMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAw
MmExZmY3Mzg2NTM5YTJkMDBhMDg5MTZmMTc1YjllMmI0OTliYTYzLi4wNmMwMzNkYzMwZWM2MjNl
ODk4YzIzMDFkZjlhMDA2ZTEwNjQ4MjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFNuYXBzaG90SW1hZ2UoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dAogICAgICAgICByZXR1cm47CiAKICAgICBib29sIHVzZUxvd1F1YWxp
dHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdl
LCBhbGlnbmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZSwgc3R5
bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlciwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOworICAg
IGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVk
UmVjdCwgQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9
CiAKIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IDY5ODg5NGJiOThjNWNmODU1YWY5NGE3OGQ0
ZWJiMTg3NDhlZWMwM2EuLjVmYTJjN2ZkNDk1ZTk3M2E3NGMzNTdhZTUxYzViZWViYjc0Yjc2Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzUzLDcgKzM1
Myw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgICAgICAgICAgICAgaWYgKGNlbnRl
clkgPCAwKQogICAgICAgICAgICAgICAgICAgICBjZW50ZXJZID0gMDsKICAgICAgICAgICAgICAg
ICBpbWFnZU9mZnNldCA9IExheW91dFNpemUobGVmdEJvcmRlciArIGxlZnRQYWQgKyBjZW50ZXJY
ICsgYm9yZGVyV2lkdGgsIHRvcEJvcmRlciArIHRvcFBhZCArIGNlbnRlclkgKyBib3JkZXJXaWR0
aCk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHls
ZSgpLT5jb2xvclNwYWNlKCksIHBpeGVsU25hcHBlZEludFJlY3QoTGF5b3V0UmVjdChwYWludE9m
ZnNldCArIGltYWdlT2Zmc2V0LCBpbWFnZVNpemUpKSwgQ29tcG9zaXRlU291cmNlT3Zlciwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+
ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIHBpeGVsU25hcHBl
ZEludFJlY3QoTGF5b3V0UmVjdChwYWludE9mZnNldCArIGltYWdlT2Zmc2V0LCBpbWFnZVNpemUp
KSwgQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpKTsKICAgICAgICAgICAgICAgICBlcnJvclBpY3R1
cmVEcmF3biA9IHRydWU7CiAgICAgICAgICAgICB9CiAKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2b2lk
IFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgTGF5b3V0UmVjdCYgcmVjdAogICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJh
dG9yID0gaW1hZ2VFbHQgPyBpbWFnZUVsdC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0
ZVNvdXJjZU92ZXI7CiAgICAgSW1hZ2UqIGltYWdlID0gbV9pbWFnZVJlc291cmNlLT5pbWFnZSgp
LmdldCgpOwogICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93
UXVhbGl0eShjb250ZXh0LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7Ci0gICAg
Y29udGV4dC0+ZHJhd0ltYWdlKG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoYWxpZ25lZFJlY3Qud2lk
dGgoKSwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkpLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCks
IGFsaWduZWRSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZSht
X2ltYWdlUmVzb3VyY2UtPmltYWdlKGFsaWduZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0Lmhl
aWdodCgpKS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgY29tcG9z
aXRlT3BlcmF0b3IsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbigpKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCiBib29sIFJlbmRl
ckltYWdlOjpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
CmluZGV4IDA3NTkxMGFiZTlkMDM0NjczOWQ2OTllOTEzZmIzM2YxOGRkZmExMjMuLjU3ODkxZmU0
MDFhZjU5NGViNzdiN2JmNWExNDU4YmQyMGIyZTE1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMTM5LDcgKzEz
OSw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgICAgIHJldHVybjsKIAogICAgIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0
LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7Ci0gICAgY29udGV4dC0+ZHJhd0lt
YWdlKGltYWdlLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3NpdGVT
b3VyY2VPdmVyLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5
U2NhbGluZyk7CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgpLT5jb2xvclNw
YWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSksIHVzZUxvd1F1YWxp
dHlTY2FsaW5nKTsKIH0KIAogQ3Vyc29yRGlyZWN0aXZlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
OjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJzb3ImIG92ZXJyaWRlQ3Vy
c29yKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208323</attachid>
            <date>2013-08-08 03:36:15 -0700</date>
            <delta_ts>2013-08-11 18:30:01 -0700</delta_ts>
            <desc>Patch for ews</desc>
            <filename>bug-119418-20130808193612.patch</filename>
            <type>text/plain</type>
            <size>46970</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBlNWQ3OTVmMTAzOWMx
MDQ3NGVmNDQzODYzZDg4OGM3ODAzYWM2Ny4uOGI2NTU4MzEyYmYwNzBkZjEyODQwYzZlOTc0NTRh
MmQzMzBjZGIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEzLTA4LTA3ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0NTU10gSW50
cm9kdWNlIG5ldyBzdHJ1Y3R1cmUgdG8gcGFzcyBpbWFnZSBvcmllbnRhdGlvbiB2YWx1ZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0MTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gc3RydWN0IGluIG9yZGVyIHRvIHJlZHVjZSBjb3VudCBv
ZiBhcmd1bWVudCBmb3IKKyAgICAgICAgaW1hZ2Ugb3JpZW50YXRpb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWlu
dCk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om5vZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFn
SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnVwZGF0ZVNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b246OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb246OnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbjo6aW1hZ2VPcmllbnRhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFn
ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1h
cEltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZy
YW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0Ry
YWdJbWFnZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6Y3JlYXRlRHJh
Z0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVh
dGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6
cGFpbnRTbmFwc2hvdEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdCk6CisKIDIwMTMtMDgtMDcgIEFuZHJl
aSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBSZWdpb25zXSBQcm9w
YWdhdGUgb3ZlcmZsb3cgZnJvbSB0aGUgZmxvdyB0aHJlYWQgdG8gdGhlIGZpcnN0IGFuZCBsYXN0
IHJlZ2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiMWZmMjE2OTdkNjVmYTdkN2Q3NjE1MWQy
MjQ5M2U4ZDRiZWRlYjRlLi45NWM5OGYwZjc3YzM2NDA3NTlmZDlhNzdhOGVhZTZjYmM3NzQxNWEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDYzLDcgKzQ2Myw3IEBAIF9fWk43V2ViQ29yZTE1
R3JhcGhpY3NDb250ZXh0OGZpbGxQYXRoRVJLTlNfNFBhdGhFCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzQ29udGV4dDhmaWxsUmVjdEVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzQ29udGV4dDhmaWxsUmVjdEVSS05TXzlGbG9hdFJlY3RFUktOU181Q29sb3JFTlNfMTBDb2xv
clNwYWNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5Y2xlYXJSZWN0RVJLTlNfOUZs
b2F0UmVjdEUKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OWRyYXdJbWFnZUVQTlNfNUlt
YWdlRU5TXzEwQ29sb3JTcGFjZUVSS05TXzhJbnRQb2ludEVOU18xN0NvbXBvc2l0ZU9wZXJhdG9y
RU5TXzI3UmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtRQorX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0NvbnRleHQ5ZHJhd0ltYWdlRVBOU181SW1hZ2VFTlNfMTBDb2xvclNwYWNlRVJLTlNfOEludFBv
aW50RU5TXzE3Q29tcG9zaXRlT3BlcmF0b3JFTlNfMjdJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b25FCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDlzZXRTaGFkb3dFUktOU185RmxvYXRT
aXplRWZSS05TXzVDb2xvckVOU18xMENvbG9yU3BhY2VFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNz
Q29udGV4dDl0cmFuc2xhdGVFZmYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0RDFFdgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCA3Mjk5ZTE0ZDE0
M2VhOGNjNGFjOTc4YjEyY2NhYTk0ZTFmMWIxYWIwLi43OTVhM2JhZWJlODJkNzg0ZGE5MjNiN2Y2
NDFhZGJjY2M1N2JlYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcApAQCAtNDA1LDcgKzQwNSw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgciwgYm9vCiAgICAgICAg
IEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlciA9IGJ1ZmZlcigpOwogICAgICAgICBpZiAoaW1hZ2VC
dWZmZXIpIHsKICAgICAgICAgICAgIGlmIChtX3ByZXNlbnRlZEltYWdlKQotICAgICAgICAgICAg
ICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNlbnRlZEltYWdlLmdldCgpLCBDb2xvclNwYWNl
RGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHIpLCBDb21wb3NpdGVTb3VyY2VPdmVyLCBE
b05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNlbnRlZEltYWdlLmdldCgpLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHIpLCBDb21wb3NpdGVTb3VyY2VP
dmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxlKTsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2VCdWZmZXIsIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25hcHBlZEludFJlY3Qo
ciksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZU5vcm1hbCwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRl
eCAyNTM3MDQwZDhjNTcwOWNkY2M1OWRjYzIwMjYxNGE4YmMyNGU1MWFmLi4xZTNkZmZmNDVkODVm
Y2ViZDNiNmQ5YmVjNWJiN2VlMzg0NTQ4MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcApAQCAtODc5LDcgKzg3OSw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvSW1h
Z2VEcmFnKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEludFBvaW50JiBkcmFnT3JpZ2luLCBjCiAK
ICAgICBJbWFnZSogaW1hZ2UgPSBnZXRJbWFnZShlbGVtZW50KTsKICAgICBpZiAoaW1hZ2UgJiYg
aW1hZ2UtPnNpemUoKS5oZWlnaHQoKSAqIGltYWdlLT5zaXplKCkud2lkdGgoKSA8PSBNYXhPcmln
aW5hbEltYWdlQXJlYQotICAgICAgICAmJiAoZHJhZ0ltYWdlID0gY3JlYXRlRHJhZ0ltYWdlRnJv
bUltYWdlKGltYWdlLCBlbGVtZW50LT5yZW5kZXJlcigpID8gZWxlbWVudC0+cmVuZGVyZXIoKS0+
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA6IERvTm90UmVzcGVjdEltYWdlT3JpZW50
YXRpb24pKSkgeworICAgICAgICAmJiAoZHJhZ0ltYWdlID0gY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKGltYWdlLCBlbGVtZW50LT5yZW5kZXJlcigpID8gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKGVsZW1lbnQtPnJlbmRlcmVyKCktPnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkp
IDogSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpKSkgewogICAgICAgICBJbnRTaXplIG9y
aWdpbmFsU2l6ZSA9IHJlY3Quc2l6ZSgpOwogICAgICAgICBvcmlnaW4gPSByZWN0LmxvY2F0aW9u
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggZjllMTA5MGVlMTMyN2Y4NjY3ZjQwMzRmMWNk
MjdlYmExZTgwOTI4Ni4uYWI1MWIyYmQ0N2RjZGQ0NThlNmViMWZkMTM3YjU4MTkyZDQ5Yzg0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTEwOTcsNyArMTA5Nyw3IEBAIERyYWdJbWFnZVJlZiBG
cmFtZTo6bm9kZUltYWdlKE5vZGUqIG5vZGUpCiAgICAgbV92aWV3LT5wYWludENvbnRlbnRzKGJ1
ZmZlci0+Y29udGV4dCgpLCBwYWludGluZ1JlY3QpOwogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFn
ZSA9IGJ1ZmZlci0+Y29weUltYWdlKCk7Ci0gICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21J
bWFnZShpbWFnZS5nZXQoKSwgcmVuZGVyZXItPnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KCkpOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0KCksIElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihyZW5kZXJlci0+c2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24oKSkpOwogfQogCiBEcmFnSW1hZ2VSZWYgRnJhbWU6OmRyYWdJbWFnZUZvclNlbGVj
dGlvbigpCkBAIC0xMTI2LDcgKzExMjYsNyBAQCBEcmFnSW1hZ2VSZWYgRnJhbWU6OmRyYWdJbWFn
ZUZvclNlbGVjdGlvbigpCiAgICAgbV92aWV3LT5wYWludENvbnRlbnRzKGJ1ZmZlci0+Y29udGV4
dCgpLCBwYWludGluZ1JlY3QpOwogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+
Y29weUltYWdlKCk7Ci0gICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShpbWFnZS5n
ZXQoKSk7CisgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShpbWFnZS5nZXQoKSwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0ltYWdlLmgKaW5kZXggZGY5NDIyYTQ5ZGM4NzY0NGM0ZmVmNTIzZWY2NDdmYmY5
ZDQ3YWM4Mi4uNDI2NWM4YmQ5NjkwOGVhZmM5MDkwZWVhYTg3MjgwNWYwZGJiNTFkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIERyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIEZs
b2F0U2l6ZSBzY2FsZSk7CiAgICAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFj
dGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0IGRlbHRhKTsKICAgICAKLSAgICBEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwgUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbik7CiAgICAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJ
bWFnZUZpbGVuYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2VGb3JMaW5rKEtVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBGb250UmVuZGVyaW5nTW9k
ZSk7CiAgICAgdm9pZCBkZWxldGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvRHJhZ0ltYWdlQmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVy
cnkuY3BwCmluZGV4IDZmNjBjMDdlYjc1MDQ4ZWMyN2Q4NDFiYjgwYzFkNmUwMGNhZTlkNjAuLmMw
MjhjNGJmNmRjNzU5MjJkOGIxODg3NmEyZGI0MDMwMzQ2ODBhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvRHJhZ0ltYWdlQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9EcmFnSW1hZ2VCbGFja0JlcnJ5
LmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQqIGNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSkKK3ZvaWQqIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdJbWFnZUVmbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcAppbmRleCBmOTI5
OTcwMjEyMjRlMjE0YzZhZjU1MWU5Y2VjZjlkY2E2MDljOGU3Li5iMWE2YjEyYTYyMWQwNjIzYWQw
Y2VhNThlMzQzMzFkNWYxNzQzZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRHJhZ0ltYWdlRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
RHJhZ0ltYWdlRWZsLmNwcApAQCAtNDksNyArNDksNyBAQCBEcmFnSW1hZ2VSZWYgZGlzc29sdmVE
cmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCiAgICAgcmV0dXJu
IGltYWdlOwogfQogCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdl
KiwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDJlNWI3NzA1ZmU1YzYwNjcx
YzZhMWVjNjAxMmFiZjI3ZTQ4OTY0ZDYuLjE2ZDVhMzFjMTA3MTI5OGNhN2U5ZGI5MGMxMjMxZGRl
NTExMzZhYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjp1cGRhdGVT
aXplKCkgY29uc3QKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zaXplID0gbV9zb3VyY2Uuc2l6
ZSgpOwotICAgIG1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9IG1fc291cmNlLnNpemUoUmVz
cGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIG1fc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9
IG1fc291cmNlLnNpemUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKSk7CiAgICAgbV9oYXZlU2l6ZSA9IHRydWU7CiAgICAgZGlkRGVjb2RlUHJvcGVy
dGllcygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmgKaW5kZXggOTYzM2FjZWM5OTU0NDlhNzlkYTUyNWE0NGFkNWE5MjM5ZWJiMWFkOC4uNzQx
MzQ4NGY1YmQxYzQyZDNjMWM2MmYwYjFiNzVlNzNiZjE4NWJjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0xOTAsNyArMTkwLDcgQEAg
cHJvdGVjdGVkOgogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKTsK
ICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgUExBVEZPUk0oQkxBQ0tCRVJSWSkKLSAgICB2
aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24pIE9WRVJSSURFOwogI2VuZGlmCiAKICNpZiBVU0UoV0lOR0RJ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKaW5kZXggMjZlMmRiYjRhZWU0MDFmMDRhYTI3YzI5NTUyNGU5YzZlNTMwN2Q2Ny4u
MjllOTdhODUxN2Y5MzJhODM5NzRmNWRmMjgxNjQxOWRkOTljZGYwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC00
NjksMjggKzQ2OSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0hpZ2hsaWdodEZvclRl
eHQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgVGV4dFJ1biYgcnVuLAogICAgIGZpbGxSZWN0KGZv
bnQuc2VsZWN0aW9uUmVjdEZvclRleHQocnVuLCBwb2ludCwgaCwgZnJvbSwgdG8pLCBiYWNrZ3Jv
dW5kQ29sb3IsIGNvbG9yU3BhY2UpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0lt
YWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBv
aW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVt
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJ
bnRQb2ludCYgcCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlw
dGlvbiBkZXNjcmlwdGlvbikKIHsKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47Ci0g
ICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChJbnRSZWN0KHAs
IGltYWdlLT5zaXplKCkpKSwgRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgRmxvYXRTaXplKGltYWdl
LT5zaXplKCkpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBkcmF3
SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KEludFJlY3QocCwgaW1hZ2Ut
PnNpemUoKSkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2UtPnNpemUo
KSkpLCBvcCwgZGVzY3JpcHRpb24pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0lt
YWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJl
Y3QmIHIsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0g
c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiByLCBDb21wb3NpdGVPcGVyYXRvciBvcCwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBib29sIHVzZUxvd1F1YWxp
dHlTY2FsZSkKIHsKICAgICBpZiAoIWltYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgZHJhd0lt
YWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChyKSwgRmxvYXRSZWN0KEZsb2F0
UG9pbnQoKSwgRmxvYXRTaXplKGltYWdlLT5zaXplKCkpKSwgb3AsIHNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIGRyYXdJbWFnZShpbWFnZSwg
c3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QociksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZs
b2F0U2l6ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBkZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3Qg
SW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0
ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pCiB7
Ci0gICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChJbnRSZWN0
KGRlc3QsIHNyY1JlY3Quc2l6ZSgpKSksIEZsb2F0UmVjdChzcmNSZWN0KSwgb3AsIHNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JT
cGFjZSwgRmxvYXRSZWN0KEludFJlY3QoZGVzdCwgc3JjUmVjdC5zaXplKCkpKSwgRmxvYXRSZWN0
KHNyY1JlY3QpLCBvcCwgZGVzY3JpcHRpb24pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBv
cCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBib29sIHVzZUxvd1F1
YWxpdHlTY2FsZSkKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgZGVz
dCwgc3JjLCBvcCwgQmxlbmRNb2RlTm9ybWFsLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JT
cGFjZSwgZGVzdCwgc3JjLCBvcCwgQmxlbmRNb2RlTm9ybWFsLCBkZXNjcmlwdGlvbiwgdXNlTG93
UXVhbGl0eVNjYWxlKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFn
ZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3QpCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJ
bWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAogICAgIGRyYXdJ
bWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBGbG9hdFJlY3QoSW50UmVjdChJbnRQ
b2ludCgpLCBpbWFnZS0+c2l6ZSgpKSkpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
LCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxk
UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQordm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBD
b21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsgICAg
aWYgKHBhaW50aW5nRGlzYWJsZWQoKSB8fCAhaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NTEyLDcgKzUxMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGlt
YWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QKICAgICAgICAgc2V0SW1hZ2VJ
bnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTm9uZSk7CiAgICAgfQogCi0gICAgaW1h
Z2UtPmRyYXcodGhpcywgZGVzdCwgc3JjLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVuZE1vZGUs
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBpbWFnZS0+ZHJhdyh0aGlzLCBk
ZXN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgZGVzY3JpcHRpb24pOwog
CiAgICAgaWYgKHVzZUxvd1F1YWxpdHlTY2FsZSkKICAgICAgICAgc2V0SW1hZ2VJbnRlcnBvbGF0
aW9uUXVhbGl0eShwcmV2aW91c0ludGVycG9sYXRpb25RdWFsaXR5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggOWM1ZjRk
YTE5NDc3ZmY0NTdjZmVlZWU0OWJmZmU3NDBjMDg0MTlmYy4uOGVjMmM1OTMwZTE3MjE5YjhlYTRk
NmViZTE0ODQ4ZGRlZDVhYTlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTI4NywxMiArMjg3LDEyIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0Jiwg
ZmxvYXQgbGluZVdpZHRoKTsKIAotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYsIENvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9O
b3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdl
KiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBDb21wb3NpdGVP
cGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxl
ID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50LCBjb25zdCBJbnRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAg
ICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBj
b25zdCBJbnRQb2ludCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlciwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
KCkpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBjb25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24oKSwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgICAgIHZv
aWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IElu
dFBvaW50JiBkZXN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJh
dG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0g
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogICAgICAgICB2b2lkIGRyYXdJbWFnZShJ
bWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RS
ZWN0KTsKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIGJvb2wgdXNl
TG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSos
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24s
IGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOworICAgICAgICB2b2lkIGRyYXdJbWFn
ZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uKCksIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOwor
ICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9
IGZhbHNlKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZHJhd1RpbGVkSW1hZ2UoSW1hZ2UqLCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEludFBvaW50JiBzcmNQb2ludCwgY29uc3QgSW50U2l6ZSYgdGlsZVNpemUsCiAgICAgICAgICAg
ICBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlID0gZmFsc2UsIEJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKaW5kZXggYjgzYmM0YzUwOWMzZDk0
Y2MzODc5MmFjMzNhNWI3NWQxMTc2YTNlYy4uZTk0MDcyYTM0ZjNkOWQxNGRjYzBmM2U4NDA5NTVh
ODYwODM0YWYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNw
cApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEltYWdlOjpmaWxsV2l0aFNvbGlkQ29sb3IoR3JhcGhp
Y3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsCiAgICAgY3R4dC0+c2V0
Q29tcG9zaXRlT3BlcmF0aW9uKHByZXZpb3VzT3BlcmF0b3IpOwogfQogCi12b2lkIEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCogY3R4LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0
ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0pCit2b2lkIEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4LCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7CiAgICAgZHJhdyhjdHgsIGRzdFJlY3QsIHNy
Y1JlY3QsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAppbmRleCBiNDQ2YmU3ZmFkY2RhZmE2MjczMjkzOTA2
ZTMxNTY2MmUwNGU0MWQ1Li5lNzA2YjVjOTk5YzdhNTc0NmI5MjhmNGM3NWU4NTExMTcxMjA5YWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKQEAgLTE5Nyw3ICsx
OTcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdGcmFtZU1hdGNoaW5nU291
cmNlU2l6ZShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEludFNpemUmIHNyY1NpemUsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvcikgeyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uRW51bSk7CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pOwogICAgIHZvaWQgZHJhd1RpbGVkKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc3JjUG9p
bnQsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNl
LAogICAgICAgICBDb21wb3NpdGVPcGVyYXRvciAsIEJsZW5kTW9kZSk7CiAgICAgdm9pZCBkcmF3
VGlsZWQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNjYWxlRmFjdG9yLCBUaWxl
UnVsZSBoUnVsZSwgVGlsZVJ1bGUgdlJ1bGUsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZU9yaWVudGF0aW9uLmgKaW5kZXggYjE4NGRjMmY3MGE3YjYyZmNkMTQxN2Q4Y2U2
Yjk1NGU1YjYxNzcxMi4uMDQzNDRlMjc5Mzk2NDIzMjM2MTdiYTdiZTlmNjUyY2EzNWU1MGE5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50
YXRpb24uaApAQCAtNTIsNiArNTIsMzMgQEAgZW51bSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gewogICAgIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gMQogfTsKIAorc3RydWN0IEltYWdl
T3JpZW50YXRpb25EZXNjcmlwdGlvbiB7CisgICAgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
KFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biwKKyAgICAgICAgSW1hZ2VPcmllbnRhdGlvbkVudW0gb3JpZW50YXRpb24pCisgICAgICAgIDog
bV9yZXNwZWN0T3JpZW50YXRpb24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAg
ICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKKyAgICB7CisgICAgfQorCisgICAgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkKKyAgICAgICAgOiBtX3Jlc3BlY3RPcmllbnRhdGlv
bihEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgICAgICAsIG1fb3JpZW50YXRpb24o
RGVmYXVsdEltYWdlT3JpZW50YXRpb24pCisgICAgeworICAgIH0KKworICAgIEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbihSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24pCisgICAgICAgIDogbV9yZXNwZWN0T3JpZW50YXRpb24oc2hvdWxk
UmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgICAgICwgbV9vcmllbnRhdGlvbihEZWZhdWx0
SW1hZ2VPcmllbnRhdGlvbikKKyAgICB7CisgICAgfQorCisgICAgUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtIHJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgeyByZXR1cm4gbV9yZXNwZWN0T3Jp
ZW50YXRpb247IH0KKyAgICBJbWFnZU9yaWVudGF0aW9uRW51bSBpbWFnZU9yaWVudGF0aW9uKCkg
eyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorCisgICAgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtIG1fcmVzcGVjdE9yaWVudGF0aW9uOworICAgIEltYWdlT3JpZW50YXRpb25FbnVtIG1fb3Jp
ZW50YXRpb247Cit9OworCiBjbGFzcyBJbWFnZU9yaWVudGF0aW9uIHsKIHB1YmxpYzoKICAgICBJ
bWFnZU9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb25FbnVtIG9yaWVudGF0aW9uID0gRGVmYXVs
dEltYWdlT3JpZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggZjdiNDkwOTczNmEzMmVhMTMxNzUyZGRiNWMyOGZiYjg3
NzA5NDFjOS4uZjg2NTIwMDkxZTg1YWQzYmFlNDhkOTZmN2ZjOTRiODY0OTA2YWJlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApAQCAt
OTksMTggKzk5LDE4IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmlzU2l6ZUF2YWlsYWJsZSgpCiAgICAg
cmV0dXJuIG1fZGVjb2RlciAmJiBtX2RlY29kZXItPmlzU2l6ZUF2YWlsYWJsZSgpOwogfQogCi1J
bnRTaXplIEltYWdlU291cmNlOjpzaXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91
bGRSZXNwZWN0T3JpZW50YXRpb24pIGNvbnN0CitJbnRTaXplIEltYWdlU291cmNlOjpzaXplKElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikgY29uc3QKIHsKLSAgICByZXR1
cm4gZnJhbWVTaXplQXRJbmRleCgwLCBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pOworICAgIHJl
dHVybiBmcmFtZVNpemVBdEluZGV4KDAsIGRlc2NyaXB0aW9uKTsKIH0KIAotSW50U2l6ZSBJbWFn
ZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5kZXgsIFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pIGNvbnN0CitJbnRTaXplIEltYWdl
U291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRleCwgSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uIGRlc2NyaXB0aW9uKSBjb25zdAogewogICAgIGlmICghbV9kZWNvZGVyKQogICAg
ICAgICByZXR1cm4gSW50U2l6ZSgpOwogCiAgICAgSW50U2l6ZSBzaXplID0gbV9kZWNvZGVyLT5m
cmFtZVNpemVBdEluZGV4KGluZGV4KTsKLSAgICBpZiAoKHNob3VsZFJlc3BlY3RPcmllbnRhdGlv
biA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgbV9kZWNvZGVyLT5vcmllbnRhdGlvbigp
LnVzZXNXaWR0aEFzSGVpZ2h0KCkpCisgICAgaWYgKChkZXNjcmlwdGlvbi5yZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbigpID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSAmJiBtX2RlY29kZXItPm9y
aWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkKICAgICAgICAgcmV0dXJuIEludFNpemUo
c2l6ZS5oZWlnaHQoKSwgc2l6ZS53aWR0aCgpKTsKIAogICAgIHJldHVybiBzaXplOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5kZXggMzFhMmUx
OWY5YzUyMGUwYzk0YmFjZDc4NGE5ZjI3ZjM1NGVkOTBhOC4uYTQ5NmY2ZWIyYWQ3NjM4NWZiMjU5
MDNjMzgxZTQ1ZjVhYjBlZWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5oCkBAIC0xMzIsOCArMTMyLDggQEAgcHVibGljOgogICAgIFN0cmlu
ZyBmaWxlbmFtZUV4dGVuc2lvbigpIGNvbnN0OwogCiAgICAgYm9vbCBpc1NpemVBdmFpbGFibGUo
KTsKLSAgICBJbnRTaXplIHNpemUoUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgY29uc3Q7Ci0gICAgSW50U2l6ZSBmcmFtZVNpemVBdElu
ZGV4KHNpemVfdCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbikgY29uc3Q7CisgICAgSW50U2l6ZSBzaXplKEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKSBjb25zdDsKKyAgICBJ
bnRTaXplIGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSkgY29uc3Q7CiAKICAgICBib29sIGdl
dEhvdFNwb3QoSW50UG9pbnQmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJsYWNrQmVycnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJsYWNrQmVycnkuY3Bw
CmluZGV4IDBmNDU3ODY2YjIzYzBkNWVhZjgyNTFhYzNmZGYwYWU1NTViZGY5MGEuLmQwOTY4Nzgw
MTk0YzhlMjY3YTQwOTYzMjJlNTJiODgxNmRhZTRmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCbGFja0JlcnJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQmxhY2tC
ZXJyeS5jcHAKQEAgLTEyMSwxMCArMTIxLDkgQEAgdm9pZCBCaXRtYXBJbWFnZTo6aW52YWxpZGF0
ZVBsYXRmb3JtRGF0YSgpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBC
bGVuZE1vZGUgYmxlbmRNb2RlKQogewotICAgIGRyYXcoY29udGV4dCwgZHN0UmVjdCwgc3JjUmVj
dCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKTsKLX0KKyAgICBkcmF3KGNvbnRleHQsIGRzdFJlY3QsIHNyY1JlY3QsIHN0eWxlQ29s
b3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwog
Ci12b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
RW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKK3ZvaWQgQml0bWFwSW1hZ2U6OmRy
YXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3As
IEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewog
ICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAKQEAgLTE0Myw5ICsxNDIsOSBAQCB2b2lkIEJpdG1hcElt
YWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBjb25zdAogI2VuZGlmCiAKICAgICAvLyB1c2Ugc2ltaWxhciBvcmllbnRhdGlvbiBjb2Rl
IGFzIEltYWdlU2tpYQotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBEZWZhdWx0
SW1hZ2VPcmllbnRhdGlvbjsKLSAgICBpZiAoc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24g
PT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCi0gICAgICAgIG9yaWVudGF0aW9uID0gZnJhbWVP
cmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOworICAgIEltYWdlT3JpZW50YXRpb24g
b3JpZW50YXRpb247CisgICAgaWYgKGRlc2NyaXB0aW9uLnJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgICAgIG9yaWVudGF0aW9uID0gZnJh
bWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOyAgCiAKICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHNhdmVDb250ZXh0KCpjb250ZXh0LCBmYWxzZSk7CiAgICAgaWYgKG9y
aWVudGF0aW9uICE9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8u
Y3BwCmluZGV4IDU2MDc3MzE4YjU2ZmNiMmMwMmY0MDA5ODhhN2EyNGU0YWVhYTg0MjkuLjg3MDhk
MTJlMGU5OWJhMDc0YjA3NTk1NjdkZWZkY2M3MGEzNTM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8u
Y3BwCkBAIC02NiwxMSArNjYsMTEgQEAgQml0bWFwSW1hZ2U6OkJpdG1hcEltYWdlKFBhc3NSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiBuYXRpdmVJbWFnZSwgSW1hZ2VPYnNlcnZlcioKIAogdm9pZCBC
aXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2Us
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewotICAgIGRyYXco
Y29udGV4dCwgZHN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9kZSwgRG9Ob3RS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgZHJhdyhjb250ZXh0LCBkc3QsIHNyYywgc3R5
bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
KSk7CiB9CiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwKLSAgICBCbGVuZE1vZGUgYmxl
bmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24pCisgICAgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAgIGlmICghZHN0LndpZHRoKCkgfHwgIWRzdC5oZWln
aHQoKSB8fCAhc3JjLndpZHRoKCkgfHwgIXNyYy5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMTAxLDggKzEwMSw4IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3QgRmxvCiAgICAgRmxvYXRSZWN0
IGFkanVzdGVkU3JjUmVjdChzcmMpOwogI2VuZGlmCiAKLSAgICBJbWFnZU9yaWVudGF0aW9uIG9y
aWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb247Ci0gICAgaWYgKHNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb247CisgICAgaWYgKGRlc2NyaXB0aW9uLnJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCiAgICAgICAgIG9yaWVu
dGF0aW9uID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogCiAgICAg
RmxvYXRSZWN0IGRzdFJlY3QgPSBkc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDNjZmMy
ZjRkMWFiYWFmMDNhMzgwN2FmYTNmNjMzM2IxZmQ2YTI5NjUuLjRmZDNjNTRkNzVlMzRmYzA4MGM3
YzIzNzI2MmFkOGM3OGU5NzNkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC0xNDcsNyAr
MTQ3LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGRlc3RpbmF0
aW9uQ29udGV4dCwgQ29sb3JTcGFjZSBzdHlsZUNvbG8KIHsKICAgICBCYWNraW5nU3RvcmVDb3B5
IGNvcHlNb2RlID0gZGVzdGluYXRpb25Db250ZXh0ID09IGNvbnRleHQoKSA/IENvcHlCYWNraW5n
U3RvcmUgOiBEb250Q29weUJhY2tpbmdTdG9yZTsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0g
Y29weUltYWdlKGNvcHlNb2RlKTsKLSAgICBkZXN0aW5hdGlvbkNvbnRleHQtPmRyYXdJbWFnZShp
bWFnZS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5k
TW9kZSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsK
KyAgICBkZXN0aW5hdGlvbkNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGVDb2xv
clNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZm
ZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9CaXRtYXBJbWFnZUNH
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1hcEltYWdlQ0cu
Y3BwCmluZGV4IGNkMDM3YTk4YTQzNDE3YWI2ZmNiYmNlYzg0ZThlOTRmZWU3MDc0ZDkuLjljZGM2
ZmEzOGE4NTFmOTE3Njg0MTkxNzBmZDI5OGFmNDU4MmNkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1hcEltYWdlQ0cuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1hcEltYWdlQ0cuY3BwCkBAIC0xNjMs
MTAgKzE2MywxMCBAQCBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gQml0bWFwSW1hZ2U6OmdldENHSW1h
Z2VBcnJheSgpCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHgs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBi
bGVuZE1vZGUpCiB7Ci0gICAgZHJhdyhjdHgsIGRzdFJlY3QsIHNyY1JlY3QsIHN0eWxlQ29sb3JT
cGFjZSwgb3AsIGJsZW5kTW9kZSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAg
ZHJhdyhjdHgsIGRzdFJlY3QsIHNyY1JlY3QsIHN0eWxlQ29sb3JTcGFjZSwgb3AsIGJsZW5kTW9k
ZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogfQogCi12b2lkIEJpdG1hcEltYWdl
OjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29t
cG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKK3ZvaWQg
Qml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3Qm
IGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xv
clNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAgIHN0YXJ0
QW5pbWF0aW9uKCk7CiAKQEAgLTE4MCw5ICsxODAsOSBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RgogICAgIH0KIAogICAgIEZsb2F0U2l6ZSBzZWxmU2l6ZSA9IGN1cnJlbnRGcmFtZVNpemUoKTsK
LSAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRp
b247CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKIAotICAgIGlmIChzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICBp
ZiAoZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbikKICAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRl
eChtX2N1cnJlbnRGcmFtZSk7CiAKICAgICBjdHh0LT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHNl
bGZTaXplLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcCwg
YmxlbmRNb2RlLCBvcmllbnRhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwCmluZGV4IGFhYTJmZGZjZGM3YzE3NmM1
MDQ0YTBlNTI4YmNmNTE4MTkyN2ZlZmYuLmFhOTU1ODg1YTU3OTYwNGM2ZDI0OTYwNGIyZmE0Mzdi
ZTQxOTYxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlU291cmNlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0ltYWdlU291cmNlQ0cuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgc3RhdGljIEltYWdlT3Jp
ZW50YXRpb24gb3JpZW50YXRpb25Gcm9tUHJvcGVydGllcyhDRkRpY3Rpb25hcnlSZWYgaW1hZ2VQ
cm9wZXJ0aWUKICAgICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6ZnJvbUVYSUZWYWx1ZShleGlm
VmFsdWUpOwogfQogCi1JbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpemVf
dCBpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRh
dGlvbikgY29uc3QKK0ludFNpemUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90
IGluZGV4LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pIGNvbnN0CiB7
CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gcHJvcGVydGllcyA9IGFkb3B0Q0YoQ0dJ
bWFnZVNvdXJjZUNvcHlQcm9wZXJ0aWVzQXRJbmRleChtX2RlY29kZXIsIGluZGV4LCBpbWFnZVNv
dXJjZU9wdGlvbnMoU2tpcE1ldGFkYXRhKSkpOwogCkBAIC0yMTAsNyArMjEwLDcgQEAgSW50U2l6
ZSBJbWFnZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5kZXgsIFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uRW51bQogICAgIGlmIChudW0pCiAgICAgICAgIENGTnVtYmVyR2V0VmFsdWUo
bnVtLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmaCk7CiAKLSAgICBpZiAoKHNob3VsZFJlc3BlY3RPcmll
bnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgb3JpZW50YXRpb25Gcm9tUHJv
cGVydGllcyhwcm9wZXJ0aWVzLmdldCgpKS51c2VzV2lkdGhBc0hlaWdodCgpKQorICAgIGlmICgo
ZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbikgJiYgb3JpZW50YXRpb25Gcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzLmdldCgpKS51
c2VzV2lkdGhBc0hlaWdodCgpKQogICAgICAgICByZXR1cm4gSW50U2l6ZShoLCB3KTsKIAogICAg
IHJldHVybiBJbnRTaXplKHcsIGgpOwpAQCAtMjI1LDkgKzIyNSw5IEBAIEltYWdlT3JpZW50YXRp
b24gSW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAg
ICAgcmV0dXJuIG9yaWVudGF0aW9uRnJvbVByb3BlcnRpZXMocHJvcGVydGllcy5nZXQoKSk7CiB9
CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUoUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVt
IHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKK0ludFNpemUgSW1hZ2VTb3VyY2U6OnNp
emUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKSBjb25zdAogewotICAg
IHJldHVybiBmcmFtZVNpemVBdEluZGV4KDAsIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbik7Cisg
ICAgcmV0dXJuIGZyYW1lU2l6ZUF0SW5kZXgoMCwgZGVzY3JpcHRpb24pOwogfQogCiBib29sIElt
YWdlU291cmNlOjpnZXRIb3RTcG90KEludFBvaW50JiBob3RTcG90KSBjb25zdApAQCAtMzg0LDcg
KzM4NCw3IEBAIGJvb2wgSW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBp
bmRleCkKIAogdW5zaWduZWQgSW1hZ2VTb3VyY2U6OmZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCBp
bmRleCkgY29uc3QKIHsKLSAgICBJbnRTaXplIGZyYW1lU2l6ZSA9IGZyYW1lU2l6ZUF0SW5kZXgo
aW5kZXgsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBJbnRTaXplIGZyYW1lU2l6ZSA9
IGZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbikpOwogICAgIHJldHVybiBmcmFtZVNpemUud2lkdGgoKSAqIGZy
YW1lU2l6ZS5oZWlnaHQoKSAqIDQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCA1NDJkY2ZlZDQ5YTkxYjA0NjI2Njhh
OTU5OWRlNTRhNTk0ZDg3MjY0Li5kOWQ0YmE2ZTMwOTkwNzE4ZjQ4NDkwYmYzM2YwOGNiOGJiOWZl
MjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFIKICAg
ICB9CiAKICAgICBjb250ZXh0LT5kcmF3SW1hZ2UocmVpbnRlcnByZXRfY2FzdDxJbWFnZSo+KGdz
dEltYWdlLT5pbWFnZSgpLmdldCgpKSwgQ29sb3JTcGFjZVNSR0IsCi0gICAgICAgIHJlY3QsIGdz
dEltYWdlLT5yZWN0KCksIENvbXBvc2l0ZUNvcHksIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRp
b24sIGZhbHNlKTsKKyAgICAgICAgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgQ29tcG9zaXRlQ29w
eSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIGZhbHNlKTsKICAgICBnX211dGV4X3Vu
bG9jayhtX2J1ZmZlck11dGV4KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcAppbmRleCAxYmNkZWU5NDVkNTE0ZDQz
M2NlOGM5M2VkYjdjZjUxYmM3Yzc4NDk3Li4xODA4MDgyZjVmNGJlYjA5ZDhjMGQ5MjZhNTY2ODk2
ZDY0MDIyNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9JbWFnZUJ1ZmZlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9JbWFnZUJ1ZmZlclF0LmNwcApAQCAtMTM2LDkgKzEzNiw5IEBAIHZvaWQgSW1hZ2VCdWZm
ZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBkZXN0Q29udGV4dCwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsCiAgICAgaWYgKGRlc3RDb250ZXh0ID09IGNvbnRleHQoKSkgewogICAgICAgICAv
LyBXZSdyZSBkcmF3aW5nIGludG8gb3VyIG93biBidWZmZXIuICBJbiBvcmRlciBmb3IgdGhpcyB0
byB3b3JrLCB3ZSBuZWVkIHRvIGNvcHkgdGhlIHNvdXJjZSBidWZmZXIgZmlyc3QuCiAgICAgICAg
IFJlZlB0cjxJbWFnZT4gY29weSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKTsKLSAgICAg
ICAgZGVzdENvbnRleHQtPmRyYXdJbWFnZShjb3B5LmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdC
LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVz
ZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGRlc3RDb250ZXh0LT5kcmF3SW1hZ2UoY29weS5n
ZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICB9IGVsc2UK
LSAgICAgICAgZGVzdENvbnRleHQtPmRyYXdJbWFnZShtX2RhdGEubV9pbWFnZS5nZXQoKSwgc3R5
bGVDb2xvclNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIERvTm90UmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgIGRlc3RDb250ZXh0LT5kcmF3
SW1hZ2UobV9kYXRhLm1faW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3QsIHNy
Y1JlY3QsIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0
KiBkZXN0Q29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCmluZGV4IGExMzli
Yzk3YmMzYjFhNTVhY2M5M2FkMDAwNmFjN2FhMmI1MGM5NTAuLmNjYWIzZWJiZDQ3MWMzZmFkMmZi
ZTI5MDI0ODRkNThmMjg0ODk4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0ltYWdlQnVmZmVyV2luQ0UuY3BwCkBAIC0xMTQsNyAr
MTE0LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb24KICAgICAgICAgICAgICAgICAgICAgICAg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxlKQogewogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2VDb3B5ID0gY29weUltYWdlKENv
cHlCYWNraW5nU3RvcmUpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZUNvcHkuZ2V0KCks
IHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIERvTm90
UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgY29udGV4
dC0+ZHJhd0ltYWdlKGltYWdlQ29weS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0UmVjdCwg
c3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIHVz
ZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCmluZGV4IGQzODhiNWI2YzE3MGY3Y2QzNWVjNDA3ZWYx
YWFlYWY0YzRmNmIyNzkuLmRmZDIxNGM0NTA2MjY2MjdhYjI0MTMyNmZjYWQyYzYwMTQzM2M2MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCkBAIC0z
MSw3ICszMSw3IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQ
b2ludCYgbG9jYXRpb24pIGNvbnN0CiAgICAgbG9jYXRpb24gPSBtX2RyYWdMb2M7CiAKICAgICBp
ZiAobV9kcmFnSW1hZ2UpCi0gICAgICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2Uo
bV9kcmFnSW1hZ2UtPmltYWdlKCkpOworICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJv
bUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
KSk7CiAKICAgICBpZiAobV9kcmFnSW1hZ2VFbGVtZW50KSB7CiAgICAgICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1fZHJhZ0ltYWdlRWxlbWVudC0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAKaW5kZXggOTgwMWIxOTA0MmJjMGNkYjU1
Yzc0MzYzZWFlZDY5ZDAxZDI5MzA4YS4uZGYyMTM4OThjZmQ3MzA5NzFlZTJjOWE1NTUwZmEyYmQx
ZDlhNWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFn
ZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5j
cHAKQEAgLTc2LDcgKzc2LDcgQEAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFj
dGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0IGZyYWN0aW9uKQogICAgIHJldHVybiBpbWFn
ZTsKIH0KIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1h
Z2UsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24p
CiB7CiAgICAgcmV0dXJuIGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpLmxlYWtS
ZWYoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1h
Z2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmlu
ZGV4IGIzOTY2YTU0NDVjNDlhZTAzMGFkNmY1YzMwZjk4OTVhYWI5YzhlYmYuLjE0OTNhZTYzODk2
NDQwYzczNjYwNmUwNzdkYjZiMTcyNDZjZWQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtNzcsMTYgKzc3LDE2IEBAIFJldGFpblB0cjxOU0lt
YWdlPiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oUmV0YWluUHRyPE5TSW1hZ2U+IGltYWdl
LCBmbG9hdCBkCiAgICAgcmV0dXJuIGRpc3NvbHZlZEltYWdlOwogfQogICAgICAgICAKLVJldGFp
blB0cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCitS
ZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAgIEludFNpemUg
c2l6ZSA9IGltYWdlLT5zaXplKCk7CiAKICAgICBpZiAoaW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSkg
ewotICAgICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3Jp
ZW50YXRpb247CisgICAgICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb247CiAgICAgICAg
IEJpdG1hcEltYWdlKiBiaXRtYXBJbWFnZSA9IHN0YXRpY19jYXN0PEJpdG1hcEltYWdlICo+KGlt
YWdlKTsKICAgICAgICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gYml0bWFw
SW1hZ2UtPnNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKIAotICAgICAgICBpZiAoc2hvdWxk
UmVzcGVjdEltYWdlT3JpZW50YXRpb24gPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAg
ICAgIGlmIChkZXNjcmlwdGlvbi5yZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpID09IFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKQogICAgICAgICAgICAgb3JpZW50YXRpb24gPSBiaXRtYXBJbWFnZS0+
b3JpZW50YXRpb25Gb3JDdXJyZW50RnJhbWUoKTsKIAogICAgICAgICBpZiAob3JpZW50YXRpb24g
IT0gRGVmYXVsdEltYWdlT3JpZW50YXRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcAppbmRleCBmMmU2NDEzNTIzNTc3NTBkMzVkYzFlODNhOWQ4NjgyMDlk
ZmRjNDQ3Li45N2VjZGYyMTA3Y2E3YmQxYjlhYjM4ZDEyZDVlNmIxODZhNTZmOTMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCkBAIC00NSw3ICs0NSw3IEBA
IERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgbG9jYXRp
b24pIGNvbnN0CiAgICAgbG9jYXRpb24gPSBtX2RyYWdMb2M7CiAKICAgICBpZiAobV9kcmFnSW1h
Z2UpCi0gICAgICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UobV9kcmFnSW1hZ2Ut
PmltYWdlKCkpOworICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJh
Z0ltYWdlLT5pbWFnZSgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAKICAgICBp
ZiAobV9kcmFnSW1hZ2VFbGVtZW50KSB7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1f
ZHJhZ0ltYWdlRWxlbWVudC0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RyYWdJbWFnZVF0LmNwcAppbmRleCBkMzg4ZjM5ZGMyNTM4Njg3Y2FmMzA3ZmRkY2M2YzUxNjkz
YTQwOTk4Li44ODk3Y2ZmNmRkNWMwYWU4ZGRjNzdiNDliMGM1MTQyMzdkYjdhY2FiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwCkBAIC02MCw3ICs2MCw3IEBA
IERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGlt
YWdlLCBmbG9hdCkKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKLURyYWdJbWFnZVJlZiBjcmVhdGVE
cmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIGlmICghaW1hZ2UgfHwgIWltYWdl
LT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKaW5kZXggZWRmZTIzNzRl
MzcwMGQ0OWRhZDA0YjI3YzRmZTgxZjYxNTA3NTIyNy4uMGE4YWIwNzZhYjc1NzM3YjdmYTA5ZjQ2
NmI1NGVjNjU4ZGQ2ZWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0NsaXBib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFdpbi5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgRHJhZ0ltYWdlUmVmIENsaXBib2FyZDo6Y3Jl
YXRlRHJhZ0ltYWdlKEludFBvaW50JiBkcmFnTG9jYXRpb24pIGNvbnN0CiAgICAgSEJJVE1BUCBy
ZXN1bHQgPSAwOwogICAgIGlmIChtX2RyYWdJbWFnZSkgewogI2lmIFVTRShDQUlSTykgfHwgVVNF
KENHKQotICAgICAgICByZXN1bHQgPSBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UobV9kcmFnSW1h
Z2UtPmltYWdlKCkpOyAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShtX2RyYWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
KCkpOyAgICAgICAgCiAgICAgICAgIGRyYWdMb2NhdGlvbiA9IG1fZHJhZ0xvYzsKICNlbHNlCiAg
ICAgICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0RyYWdJbWFnZUNHV2luLmNwcAppbmRleCA5MzAyNWI3Zjk1MGM5NzAyNzcyN2QzMjAyNzIxZDcx
NGFkMGZmOWE2Li44NjI2NmY5MDBhMWM5MDBmMWU4MTRjMGIxNTZlZjVhZWJiODg1NDE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHAKQEAgLTEy
MCw3ICsxMjAsNyBAQCBleGl0OgogICAgIHJldHVybiBoYm1wOwogfQogICAgIAotRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nLCBSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdl
KiBpbWcsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBIQklUTUFQIGhibXAg
PSAwOwogICAgIEhXbmREQyBkYygwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwCmluZGV4IDY4MWNjZmU3Y2MxMjYxMzNhZmVkMmYzY2Fm
ODI3MzE1ZGViNDY2MjguLjgwMzc0ODZiNTQzNWJhMzE1YTI3NGVhZmY0MzYzNWNhOWUwZjU1N2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNhaXJvV2lu
LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIGV4aXQ6CiAgICAgcmV0dXJuIGhibXA7CiB9CiAgICAg
Ci1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWcsIFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uRW51bSkKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9t
SW1hZ2UoSW1hZ2UqIGltZywgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIEhC
SVRNQVAgaGJtcCA9IDA7CiAgICAgSERDIGRjID0gR2V0REMoMCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAwMmExZmY3Mzg2
NTM5YTJkMDBhMDg5MTZmMTc1YjllMmI0OTliYTYzLi4wNmMwMzNkYzMwZWM2MjNlODk4YzIzMDFk
ZjlhMDA2ZTEwNjQ4MjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpwYWludFNuYXBzaG90SW1hZ2UoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dAogICAgICAgICByZXR1cm47CiAKICAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5n
ID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVk
UmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29s
b3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlciwgc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOworICAgIGNvbnRleHQt
PmRyYXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29t
cG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKCkpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKIHZvaWQg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuY3BwCmluZGV4IDY5ODg5NGJiOThjNWNmODU1YWY5NGE3OGQ0ZWJiMTg3NDhl
ZWMwM2EuLjVmYTJjN2ZkNDk1ZTk3M2E3NGMzNTdhZTUxYzViZWViYjc0Yjc2NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMzUzLDcgKzM1Myw3IEBAIHZv
aWQgUmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mCiAgICAgICAgICAgICAgICAgaWYgKGNlbnRlclkgPCAwKQog
ICAgICAgICAgICAgICAgICAgICBjZW50ZXJZID0gMDsKICAgICAgICAgICAgICAgICBpbWFnZU9m
ZnNldCA9IExheW91dFNpemUobGVmdEJvcmRlciArIGxlZnRQYWQgKyBjZW50ZXJYICsgYm9yZGVy
V2lkdGgsIHRvcEJvcmRlciArIHRvcFBhZCArIGNlbnRlclkgKyBib3JkZXJXaWR0aCk7Ci0gICAg
ICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xv
clNwYWNlKCksIHBpeGVsU25hcHBlZEludFJlY3QoTGF5b3V0UmVjdChwYWludE9mZnNldCArIGlt
YWdlT2Zmc2V0LCBpbWFnZVNpemUpKSwgQ29tcG9zaXRlU291cmNlT3Zlciwgc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24oKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdl
KGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIHBpeGVsU25hcHBlZEludFJlY3Qo
TGF5b3V0UmVjdChwYWludE9mZnNldCArIGltYWdlT2Zmc2V0LCBpbWFnZVNpemUpKSwgQ29tcG9z
aXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCkpKTsKICAgICAgICAgICAgICAgICBlcnJvclBpY3R1cmVEcmF3biA9
IHRydWU7CiAgICAgICAgICAgICB9CiAKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2b2lkIFJlbmRlcklt
YWdlOjpwYWludEludG9SZWN0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0
UmVjdCYgcmVjdAogICAgIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gaW1h
Z2VFbHQgPyBpbWFnZUVsdC0+Y29tcG9zaXRlT3BlcmF0b3IoKSA6IENvbXBvc2l0ZVNvdXJjZU92
ZXI7CiAgICAgSW1hZ2UqIGltYWdlID0gbV9pbWFnZVJlc291cmNlLT5pbWFnZSgpLmdldCgpOwog
ICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShj
b250ZXh0LCBpbWFnZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7Ci0gICAgY29udGV4dC0+
ZHJhd0ltYWdlKG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoYWxpZ25lZFJlY3Qud2lkdGgoKSwgYWxp
Z25lZFJlY3QuaGVpZ2h0KCkpLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWduZWRS
ZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSwg
dXNlTG93UXVhbGl0eVNjYWxpbmcpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX2ltYWdlUmVz
b3VyY2UtPmltYWdlKGFsaWduZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgpKS5n
ZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgY29tcG9zaXRlT3BlcmF0
b3IsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbigpKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCiBib29sIFJlbmRlckltYWdlOjpi
b3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoQmFja2dyb3VuZEJsZWVkQXZvaWRh
bmNlIGJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KikgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IDA3
NTkxMGFiZTlkMDM0NjczOWQ2OTllOTEzZmIzM2YxOGRkZmExMjMuLjU3ODkxZmU0MDFhZjU5NGVi
NzdiN2JmNWExNDU4YmQyMGIyZTE1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIHZv
aWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0LCBpbWFnZSwg
aW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7Ci0gICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdl
LCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFsaWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVy
LCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7
CisgICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGFs
aWduZWRSZWN0LCBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSksIHVzZUxvd1F1YWxpdHlTY2FsaW5n
KTsKIH0KIAogQ3Vyc29yRGlyZWN0aXZlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpnZXRDdXJz
b3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJzb3ImIG92ZXJyaWRlQ3Vyc29yKSBjb25z
dAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208506</attachid>
            <date>2013-08-11 18:30:11 -0700</date>
            <delta_ts>2013-08-13 22:40:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119418-20130812103008.patch</filename>
            <type>text/plain</type>
            <size>46953</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzOTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFiNWM1ZmE0MmMzMmE4
MWViZjgxYTk2ZWI5NjU4NDU1YzIxNmEzMC4uZTIyMmFhYjQ2Y2EwNjJhNDljMDkyNDY2NzAyM2Q3
OTNmNTEyZTdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEzLTA4LTExICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0NTU10gSW50
cm9kdWNlIG5ldyBzdHJ1Y3R1cmUgdG8gcGFzcyBpbWFnZSBvcmllbnRhdGlvbiB2YWx1ZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0MTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gc3RydWN0IGluIG9yZGVyIHRvIHJlZHVjZSBjb3VudCBv
ZiBhcmd1bWVudCBmb3IKKyAgICAgICAgaW1hZ2Ugb3JpZW50YXRpb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWlu
dCk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om5vZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFn
SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnVwZGF0ZVNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b246OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb246OnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbjo6aW1hZ2VPcmllbnRhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFn
ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1h
cEltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZy
YW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0Ry
YWdJbWFnZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6Y3JlYXRlRHJh
Z0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVh
dGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6
cGFpbnRTbmFwc2hvdEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdCk6CisKIDIwMTMtMDgtMTEgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIFJlbmRlck1hdGhNTFNwYWNl
LmgvY3BwIHRvIHRoZSByaWdodCBncm91cCBpbiB0aGUgWGNvZGUgcHJvamVjdC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggNDJlZGZkOGE1NTZlODZlOTM5MzQzZDM0OTkyMjExOTNkYjk5OGUwYy4u
ZGVkYWFhOGI5ZDI2M2MxNDVjYTFiZDNkZWIzZjBiZjg0NzkxNzFlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTQ2Myw3ICs0NjMsNyBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDhm
aWxsUGF0aEVSS05TXzRQYXRoRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ4ZmlsbFJl
Y3RFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ4ZmlsbFJl
Y3RFUktOU185RmxvYXRSZWN0RVJLTlNfNUNvbG9yRU5TXzEwQ29sb3JTcGFjZUUKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NDb250ZXh0OWNsZWFyUmVjdEVSS05TXzlGbG9hdFJlY3RFCi1fX1pON1dl
YkNvcmUxNUdyYXBoaWNzQ29udGV4dDlkcmF3SW1hZ2VFUE5TXzVJbWFnZUVOU18xMENvbG9yU3Bh
Y2VFUktOU184SW50UG9pbnRFTlNfMTdDb21wb3NpdGVPcGVyYXRvckVOU18yN1Jlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uRW51bUUKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OWRyYXdJbWFn
ZUVQTlNfNUltYWdlRU5TXzEwQ29sb3JTcGFjZUVSS05TXzhJbnRQb2ludEVOU18xN0NvbXBvc2l0
ZU9wZXJhdG9yRU5TXzI3SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uRQogX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0NvbnRleHQ5c2V0U2hhZG93RVJLTlNfOUZsb2F0U2l6ZUVmUktOU181Q29sb3JF
TlNfMTBDb2xvclNwYWNlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5dHJhbnNsYXRl
RWZmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dEQxRXYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggNzI5OWUxNGQxNDNlYThjYzRhYzk3OGIxMmNj
YWE5NGUxZjFiMWFiMC4uNzk1YTNiYWViZTgyZDc4NGRhOTIzYjdmNjQxYWRiY2NjNTdiZWE5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQwNSw3ICs0
MDUsNyBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IExheW91dFJlY3QmIHIsIGJvbwogICAgICAgICBJbWFnZUJ1ZmZlciogaW1h
Z2VCdWZmZXIgPSBidWZmZXIoKTsKICAgICAgICAgaWYgKGltYWdlQnVmZmVyKSB7CiAgICAgICAg
ICAgICBpZiAobV9wcmVzZW50ZWRJbWFnZSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3
SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgcGl4ZWxT
bmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3ZlciwgRG9Ob3RSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3SW1hZ2UobV9wcmVzZW50ZWRJbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwg
cGl4ZWxTbmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBD
b2xvclNwYWNlRGV2aWNlUkdCLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHIpLCBDb21wb3NpdGVTb3Vy
Y2VPdmVyLCBCbGVuZE1vZGVOb3JtYWwsIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMjUzNzA0MGQ4YzU3MDlj
ZGNjNTlkY2MyMDI2MTRhOGJjMjRlNTFhZi4uMWUzZGZmZjQ1ZDg1ZmNlYmQzYjZkOWJlYzViYjdl
ZTM4NDU0ODAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTg3
OSw3ICs4NzksNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkb0ltYWdlRHJhZyhFbGVtZW50KiBl
bGVtZW50LCBjb25zdCBJbnRQb2ludCYgZHJhZ09yaWdpbiwgYwogCiAgICAgSW1hZ2UqIGltYWdl
ID0gZ2V0SW1hZ2UoZWxlbWVudCk7CiAgICAgaWYgKGltYWdlICYmIGltYWdlLT5zaXplKCkuaGVp
Z2h0KCkgKiBpbWFnZS0+c2l6ZSgpLndpZHRoKCkgPD0gTWF4T3JpZ2luYWxJbWFnZUFyZWEKLSAg
ICAgICAgJiYgKGRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShpbWFnZSwgZWxl
bWVudC0+cmVuZGVyZXIoKSA/IGVsZW1lbnQtPnJlbmRlcmVyKCktPnNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKCkgOiBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSkpIHsKKyAgICAg
ICAgJiYgKGRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShpbWFnZSwgZWxlbWVu
dC0+cmVuZGVyZXIoKSA/IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihlbGVtZW50LT5yZW5k
ZXJlcigpLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKSA6IEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbigpKSkpIHsKICAgICAgICAgSW50U2l6ZSBvcmlnaW5hbFNpemUgPSByZWN0
LnNpemUoKTsKICAgICAgICAgb3JpZ2luID0gcmVjdC5sb2NhdGlvbigpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCmluZGV4IGE2YTVkOTJiMGIxZmEwMDMyNDNlYzI2OTA2YjAwNTNkYzlmNzNmYjEuLmZm
NzRhOGY5ZDhhYmExNzY5MTcyOGYyMGFmMDczNmEzNTIxMmQ0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBEcmFnSW1hZ2VSZWYgRnJhbWU6Om5vZGVJbWFnZShO
b2RlKiBub2RlKQogICAgIG1fdmlldy0+cGFpbnRDb250ZW50cyhidWZmZXItPmNvbnRleHQoKSwg
cGFpbnRpbmdSZWN0KTsKIAogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXItPmNvcHlJ
bWFnZSgpOwotICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0KCks
IHJlbmRlcmVyLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKTsKKyAgICByZXR1cm4g
Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKGltYWdlLmdldCgpLCBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24ocmVuZGVyZXItPnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpKTsKIH0K
IAogRHJhZ0ltYWdlUmVmIEZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24oKQpAQCAtMTEyNiw3
ICsxMTI2LDcgQEAgRHJhZ0ltYWdlUmVmIEZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24oKQog
ICAgIG1fdmlldy0+cGFpbnRDb250ZW50cyhidWZmZXItPmNvbnRleHQoKSwgcGFpbnRpbmdSZWN0
KTsKIAogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXItPmNvcHlJbWFnZSgpOwotICAg
IHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0KCkpOworICAgIHJldHVy
biBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0KCksIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbigpKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5o
CmluZGV4IGRmOTQyMmE0OWRjODc2NDRjNGZlZjUyM2VmNjQ3ZmJmOWQ0N2FjODIuLjQyNjVjOGJk
OTY5MDhlYWZjOTA5MGVlYWE4NzI4MDVmMGRiYjUxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Ry
YWdJbWFnZS5oCkBAIC03NCw3ICs3NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBEcmFn
SW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmLCBGbG9hdFNpemUgc2NhbGUpOwog
ICAgIERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVm
IGltYWdlLCBmbG9hdCBkZWx0YSk7CiAgICAgCi0gICAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZUZyb21JbWFnZShJbWFnZSosIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90
UmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1h
Z2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pOwogICAgIERy
YWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2VGaWxlbmFtZShjb25z
dCBTdHJpbmcmKTsKICAgICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhLVVJM
JiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgRm9udFJlbmRlcmluZ01vZGUpOwogICAgIHZvaWQgZGVs
ZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9EcmFnSW1hZ2VCbGFja0JlcnJ5LmNwcAppbmRleCA2ZjYw
YzA3ZWI3NTA0OGVjMjdkODQxYmI4MGMxZDZlMDBjYWU5ZDYwLi5jMDI4YzRiZjZkYzc1OTIyZDhi
MTg4NzZhMmRiNDAzMDM0NjgwYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JsYWNrYmVycnkvRHJhZ0ltYWdlQmxhY2tCZXJyeS5jcHAKQEAgLTI1LDcgKzI1
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkKiBjcmVhdGVEcmFnSW1hZ2VGcm9t
SW1hZ2UoSW1hZ2UqLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCit2b2lkKiBjcmVhdGVE
cmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnSW1hZ2VFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0RyYWdJbWFnZUVmbC5jcHAKaW5kZXggZjkyOTk3MDIxMjI0ZTIxNGM2YWY1
NTFlOWNlY2Y5ZGNhNjA5YzhlNy4uYjFhNmIxMmE2MjFkMDYyM2FkMGNlYTU4ZTM0MzMxZDVmMTc0
M2U2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdJbWFnZUVm
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdJbWFnZUVmbC5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlv
bihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQogICAgIHJldHVybiBpbWFnZTsKIH0KIAotRHJh
Z0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uRW51bSkKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1h
Z2UqLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmNwcAppbmRleCAyZTViNzcwNWZlNWM2MDY3MWM2YTFlYzYwMTJhYmYyN2U0
ODk2NGQ2Li4xNmQ1YTMxYzEwNzEyOThjYTdlOWRiOTBjMTIzMWRkZTUxMTM2YWJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0x
ODUsNyArMTg1LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6dXBkYXRlU2l6ZSgpIGNvbnN0CiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fc2l6ZSA9IG1fc291cmNlLnNpemUoKTsKLSAgICBtX3NpemVS
ZXNwZWN0aW5nT3JpZW50YXRpb24gPSBtX3NvdXJjZS5zaXplKFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uKTsKKyAgICBtX3NpemVSZXNwZWN0aW5nT3JpZW50YXRpb24gPSBtX3NvdXJjZS5zaXplKElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikpOwogICAg
IG1faGF2ZVNpemUgPSB0cnVlOwogICAgIGRpZERlY29kZVByb3BlcnRpZXMoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDk2MzNh
Y2VjOTk1NDQ5YTc5ZGE1MjVhNDRhZDVhOTIzOWViYjFhZDguLjc0MTM0ODRmNWJkMWM0MmQzYzFj
NjJmMGIxYjc1ZTczYmYxODViYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHByb3RlY3RlZDoKICNlbmRp
ZgogICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSk7CiAjaWYgVVNFKENHKSB8fCBV
U0UoQ0FJUk8pIHx8IFBMQVRGT1JNKEJMQUNLQkVSUlkpCi0gICAgdmlydHVhbCB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRv
ciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKSBPVkVSUklERTsKICNlbmRpZgogCiAjaWYgVVNFKFdJTkdESSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IGM5
M2RkM2YyMjI1Y2FkNmE5MGUxM2RmOTA2OTI5Y2IzMmJhZTI3M2QuLjJkNTcyZDNmNGZiNWQ5NTk2
ODY2ZjlhYWI4ZTUzNTA3NTY4MjJjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNDY5LDI4ICs0NjksMjggQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdIaWdobGlnaHRGb3JUZXh0KGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBmaWxsUmVjdChmb250LnNlbGVjdGlvblJlY3RG
b3JUZXh0KHJ1biwgcG9pbnQsIGgsIGZyb20sIHRvKSwgYmFja2dyb3VuZENvbG9yLCBjb2xvclNw
YWNlKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgcCwgQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGlt
YWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24p
CiB7CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIGRyYXdJbWFnZShpbWFn
ZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoSW50UmVjdChwLCBpbWFnZS0+c2l6ZSgpKSks
IEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZsb2F0U2l6ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBz
aG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHls
ZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChJbnRSZWN0KHAsIGltYWdlLT5zaXplKCkpKSwgRmxvYXRS
ZWN0KEZsb2F0UG9pbnQoKSwgRmxvYXRTaXplKGltYWdlLT5zaXplKCkpKSwgb3AsIGRlc2NyaXB0
aW9uKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2Us
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiByLCBDb21wb3NpdGVP
cGVyYXRvciBvcCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKK3ZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Y29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAg
aWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVD
b2xvclNwYWNlLCBGbG9hdFJlY3QociksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZsb2F0U2l6
ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgdXNl
TG93UXVhbGl0eVNjYWxlKTsKKyAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwg
RmxvYXRSZWN0KHIpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2UtPnNp
emUoKSkpLCBvcCwgZGVzY3JpcHRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3QsIGNvbnN0IEludFJlY3QmIHNyY1JlY3Qs
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxk
UmVzcGVjdEltYWdlT3JpZW50YXRpb24pCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
KEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50
JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewotICAgIGRyYXdJbWFnZShp
bWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoSW50UmVjdChkZXN0LCBzcmNSZWN0LnNp
emUoKSkpLCBGbG9hdFJlY3Qoc3JjUmVjdCksIG9wLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbik7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChJ
bnRSZWN0KGRlc3QsIHNyY1JlY3Quc2l6ZSgpKSksIEZsb2F0UmVjdChzcmNSZWN0KSwgb3AsIGRl
c2NyaXB0aW9uKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSog
aW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxv
d1F1YWxpdHlTY2FsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGlt
YWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0g
ICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywgb3AsIEJsZW5k
TW9kZU5vcm1hbCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlT
Y2FsZSk7CisgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIHNyYywg
b3AsIEJsZW5kTW9kZU5vcm1hbCwgZGVzY3JpcHRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0KQpAQCAtNTAwLDcgKzUw
MCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QKICAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxl
Q29sb3JTcGFjZSwgZGVzdCwgRmxvYXRSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgaW1hZ2UtPnNp
emUoKSkpKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1h
Z2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5k
TW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3Qg
RmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNj
cmlwdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7ICAgIGlmIChwYWludGluZ0Rpc2Fi
bGVkKCkgfHwgIWltYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTUxMiw3ICs1MTIsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0CiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxp
dHkoSW50ZXJwb2xhdGlvbk5vbmUpOwogICAgIH0KIAotICAgIGltYWdlLT5kcmF3KHRoaXMsIGRl
c3QsIHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbik7CisgICAgaW1hZ2UtPmRyYXcodGhpcywgZGVzdCwgc3JjLCBzdHlsZUNv
bG9yU3BhY2UsIG9wLCBibGVuZE1vZGUsIGRlc2NyaXB0aW9uKTsKIAogICAgIGlmICh1c2VMb3dR
dWFsaXR5U2NhbGUpCiAgICAgICAgIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkocHJldmlv
dXNJbnRlcnBvbGF0aW9uUXVhbGl0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDljNWY0ZGExOTQ3N2ZmNDU3Y2ZlZWVl
NDliZmZlNzQwYzA4NDE5ZmMuLjhlYzJjNTkzMGUxNzIxOWI4ZWE0ZDZlYmUxNDg0OGRkZWQ1YWE5
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCkBAIC0yODcsMTIgKzI4NywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdm9pZCBzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0IGxpbmVXaWR0aCk7
CiAKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UG9pbnQmLCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJj
ZU92ZXIsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3Jp
ZW50YXRpb24pOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5
bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKLSAgICAg
ICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29u
c3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICAgICAgdm9pZCBkcmF3SW1h
Z2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UG9pbnQmLCBD
b21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKKyAgICAgICAgdm9p
ZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50
UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIGJvb2wg
dXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOworICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFn
ZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvaW50
LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNv
dXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbigpKTsKICAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNl
IHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCk7Ci0gICAgICAgIHZv
aWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0g
PSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9
IGZhbHNlKTsKLSAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBib29sIHVzZUxvd1F1YWxp
dHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNw
YWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIs
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlv
bigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBkcmF3
SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciwg
QmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24oKSwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CiAgICAgICAg
IAogICAgICAgICB2b2lkIGRyYXdUaWxlZEltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0LCBjb25zdCBJbnRQb2ludCYgc3JjUG9p
bnQsIGNvbnN0IEludFNpemUmIHRpbGVTaXplLAogICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0
b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNl
LCBCbGVuZE1vZGUgPSBCbGVuZE1vZGVOb3JtYWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2UuY3BwCmluZGV4IGI4M2JjNGM1MDljM2Q5NGNjMzg3OTJhYzMzYTViNzVk
MTE3NmEzZWMuLmU5NDA3MmEzNGYzZDlkMTRkY2MwZjNlODQwOTU1YTg2MDgzNGFmM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKQEAgLTkwLDcgKzkwLDcg
QEAgdm9pZCBJbWFnZTo6ZmlsbFdpdGhTb2xpZENvbG9yKEdyYXBoaWNzQ29udGV4dCogY3R4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LAogICAgIGN0eHQtPnNldENvbXBvc2l0ZU9wZXJhdGlv
bihwcmV2aW91c09wZXJhdG9yKTsKIH0KIAotdm9pZCBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRl
eHQqIGN0eCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxl
bmRNb2RlIGJsZW5kTW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQordm9pZCBJbWFn
ZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uKQogewogICAgIGRyYXcoY3R4LCBkc3RSZWN0LCBzcmNSZWN0LCBzdHlsZUNvbG9y
U3BhY2UsIG9wLCBibGVuZE1vZGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlLmgKaW5kZXggYjQ0NmJlN2ZhZGNkYWZhNjI3MzI5MzkwNmUzMTU2NjJlMDRlNDFkNS4u
ZTcwNmI1Yzk5OWM3YTU3NDZiOTI4ZjRjNzVlODUxMTE3MTIwOWFkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCkBAIC0xOTcsNyArMTk3LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgdm9pZCBkcmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXpl
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpIHsgfQogI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pOwor
ICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uKTsKICAgICB2b2lkIGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50LCBjb25zdCBGbG9hdFNp
emUmIHRpbGVTaXplLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwKICAgICAgICAgQ29tcG9z
aXRlT3BlcmF0b3IgLCBCbGVuZE1vZGUpOwogICAgIHZvaWQgZHJhd1RpbGVkKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTY2FsZUZhY3RvciwgVGlsZVJ1bGUgaFJ1bGUsIFRpbGVS
dWxlIHZSdWxlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Ip
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmll
bnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VPcmllbnRh
dGlvbi5oCmluZGV4IGIxODRkYzJmNzBhN2I2MmZjZDE0MTdkOGNlNmI5NTRlNWI2MTc3MTIuLjA0
MzQ0ZTI3OTM5NjQyMzIzNjE3YmE3YmU5ZjY1MmNhMzVlNTBhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9yaWVudGF0aW9uLmgKQEAgLTUyLDYg
KzUyLDMzIEBAIGVudW0gUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHsKICAgICBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiA9IDEKIH07CiAKK3N0cnVjdCBJbWFnZU9yaWVudGF0aW9uRGVzY3Jp
cHRpb24geworICAgIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sCisgICAgICAgIEltYWdl
T3JpZW50YXRpb25FbnVtIG9yaWVudGF0aW9uKQorICAgICAgICA6IG1fcmVzcGVjdE9yaWVudGF0
aW9uKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgICAgICAsIG1fb3JpZW50YXRp
b24ob3JpZW50YXRpb24pCisgICAgeworICAgIH0KKworICAgIEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbigpCisgICAgICAgIDogbV9yZXNwZWN0T3JpZW50YXRpb24oRG9Ob3RSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbikKKyAgICAgICAgLCBtX29yaWVudGF0aW9uKERlZmF1bHRJbWFnZU9yaWVu
dGF0aW9uKQorICAgIHsKKyAgICB9CisKKyAgICBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
UmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KQorICAgICAgICA6IG1fcmVzcGVjdE9yaWVudGF0aW9uKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKQorICAgICAgICAsIG1fb3JpZW50YXRpb24oRGVmYXVsdEltYWdlT3JpZW50YXRpb24p
CisgICAgeworICAgIH0KKworICAgIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSByZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbigpIHsgcmV0dXJuIG1fcmVzcGVjdE9yaWVudGF0aW9uOyB9CisgICAg
SW1hZ2VPcmllbnRhdGlvbkVudW0gaW1hZ2VPcmllbnRhdGlvbigpIHsgcmV0dXJuIG1fb3JpZW50
YXRpb247IH0KKworICAgIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBtX3Jlc3BlY3RPcmll
bnRhdGlvbjsKKyAgICBJbWFnZU9yaWVudGF0aW9uRW51bSBtX29yaWVudGF0aW9uOworfTsKKwog
Y2xhc3MgSW1hZ2VPcmllbnRhdGlvbiB7CiBwdWJsaWM6CiAgICAgSW1hZ2VPcmllbnRhdGlvbihJ
bWFnZU9yaWVudGF0aW9uRW51bSBvcmllbnRhdGlvbiA9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3Bw
CmluZGV4IGY3YjQ5MDk3MzZhMzJlYTEzMTc1MmRkYjVjMjhmYmI4NzcwOTQxYzkuLmY4NjUyMDA5
MWU4NWFkM2JhZTQ4ZDk2ZjdmYzk0Yjg2NDkwNmFiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAgLTk5LDE4ICs5OSwxOCBAQCBi
b29sIEltYWdlU291cmNlOjppc1NpemVBdmFpbGFibGUoKQogICAgIHJldHVybiBtX2RlY29kZXIg
JiYgbV9kZWNvZGVyLT5pc1NpemVBdmFpbGFibGUoKTsKIH0KIAotSW50U2l6ZSBJbWFnZVNvdXJj
ZTo6c2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdE9yaWVudGF0
aW9uKSBjb25zdAorSW50U2l6ZSBJbWFnZVNvdXJjZTo6c2l6ZShJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24gZGVzY3JpcHRpb24pIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lU2l6ZUF0SW5k
ZXgoMCwgc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uKTsKKyAgICByZXR1cm4gZnJhbWVTaXplQXRJ
bmRleCgwLCBkZXNjcmlwdGlvbik7CiB9CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6
ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxk
UmVzcGVjdE9yaWVudGF0aW9uKSBjb25zdAorSW50U2l6ZSBJbWFnZVNvdXJjZTo6ZnJhbWVTaXpl
QXRJbmRleChzaXplX3QgaW5kZXgsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlw
dGlvbikgY29uc3QKIHsKICAgICBpZiAoIW1fZGVjb2RlcikKICAgICAgICAgcmV0dXJuIEludFNp
emUoKTsKIAogICAgIEludFNpemUgc2l6ZSA9IG1fZGVjb2Rlci0+ZnJhbWVTaXplQXRJbmRleChp
bmRleCk7Ci0gICAgaWYgKChzaG91bGRSZXNwZWN0T3JpZW50YXRpb24gPT0gUmVzcGVjdEltYWdl
T3JpZW50YXRpb24pICYmIG1fZGVjb2Rlci0+b3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hlaWdo
dCgpKQorICAgIGlmICgoZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikgJiYgbV9kZWNvZGVyLT5vcmllbnRhdGlvbigpLnVzZXNX
aWR0aEFzSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiBJbnRTaXplKHNpemUuaGVpZ2h0KCksIHNp
emUud2lkdGgoKSk7CiAKICAgICByZXR1cm4gc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IDMxYTJlMTlmOWM1MjBlMGM5NGJhY2Q3
ODRhOWYyN2YzNTRlZDkwYTguLmE0OTZmNmViMmFkNzYzODVmYjI1OTAzYzM4MWU0NWY1YWIwZWVh
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2Uu
aApAQCAtMTMyLDggKzEzMiw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNp
b24oKSBjb25zdDsKIAogICAgIGJvb2wgaXNTaXplQXZhaWxhYmxlKCk7Ci0gICAgSW50U2l6ZSBz
aXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50
YXRpb24pIGNvbnN0OwotICAgIEludFNpemUgZnJhbWVTaXplQXRJbmRleChzaXplX3QsIFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uRW51bSA9IERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24pIGNv
bnN0OworICAgIEludFNpemUgc2l6ZShJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSkgY29uc3Q7CisgICAgSW50U2l6ZSBmcmFtZVNpemVB
dEluZGV4KHNpemVfdCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKCkpIGNvbnN0OwogCiAgICAgYm9vbCBnZXRIb3RTcG90KEludFBvaW50
JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2JsYWNrYmVycnkvSW1hZ2VCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvSW1hZ2VCbGFja0JlcnJ5LmNwcAppbmRleCAwZjQ1Nzg2NmIy
M2MwZDVlYWY4MjUxYWMzZmRmMGFlNTU1YmRmOTBhLi5kMDk2ODc4MDE5NGM4ZTI2N2E0MDk2MzIy
ZTUyYjg4MTZkYWU0ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0ltYWdlQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJsYWNrQmVycnkuY3BwCkBAIC0xMjEs
MTAgKzEyMSw5IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQog
CiB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9k
ZSkKIHsKLSAgICBkcmF3KGNvbnRleHQsIGRzdFJlY3QsIHNyY1JlY3QsIHN0eWxlQ29sb3JTcGFj
ZSwgb3AsIGJsZW5kTW9kZSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7Ci19CisgICAg
ZHJhdyhjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVu
ZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKIAotdm9pZCBCaXRtYXBJbWFn
ZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRv
ciBvcCwgQmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVj
dEltYWdlT3JpZW50YXRpb24pCit2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
Y1JlY3QsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUsIEltYWdl
T3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKICAgICBzdGFydEFuaW1hdGlv
bigpOwogCkBAIC0xNDMsOSArMTQyLDkgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QKICNlbmRp
ZgogCiAgICAgLy8gdXNlIHNpbWlsYXIgb3JpZW50YXRpb24gY29kZSBhcyBJbWFnZVNraWEKLSAg
ICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gRGVmYXVsdEltYWdlT3JpZW50YXRpb247
Ci0gICAgaWYgKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uKQotICAgICAgICBvcmllbnRhdGlvbiA9IGZyYW1lT3JpZW50YXRpb25BdEluZGV4
KG1fY3VycmVudEZyYW1lKTsKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uOworICAg
IGlmIChkZXNjcmlwdGlvbi5yZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpID09IFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKQorICAgICAgICBvcmllbnRhdGlvbiA9IGZyYW1lT3JpZW50YXRpb25BdElu
ZGV4KG1fY3VycmVudEZyYW1lKTsgIAogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBz
YXZlQ29udGV4dCgqY29udGV4dCwgZmFsc2UpOwogICAgIGlmIChvcmllbnRhdGlvbiAhPSBEZWZh
dWx0SW1hZ2VPcmllbnRhdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAppbmRleCA1NjA3NzMx
OGI1NmZjYjJjMDJmNDAwOTg4YTdhMjRlNGFlYWE4NDI5Li44NzA4ZDEyZTBlOTliYTA3NGIwNzU5
NTY3ZGVmZGNjNzBhMzUzNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9CaXRtYXBJbWFnZUNhaXJvLmNwcApAQCAtNjYsMTEgKzY2
LDExIEBAIEJpdG1hcEltYWdlOjpCaXRtYXBJbWFnZShQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2Vf
dD4gbmF0aXZlSW1hZ2UsIEltYWdlT2JzZXJ2ZXIqCiAKIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXco
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmMsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRv
ciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKLSAgICBkcmF3KGNvbnRleHQsIGRzdCwgc3Jj
LCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVuZE1vZGUsIERvTm90UmVzcGVjdEltYWdlT3JpZW50
YXRpb24pOworICAgIGRyYXcoY29udGV4dCwgZHN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwgb3As
IGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogfQogCiB2b2lkIEJp
dG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiBkc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwg
Q29tcG9zaXRlT3BlcmF0b3Igb3AsCi0gICAgQmxlbmRNb2RlIGJsZW5kTW9kZSwgUmVzcGVjdElt
YWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgIEJs
ZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlv
bikKIHsKICAgICBpZiAoIWRzdC53aWR0aCgpIHx8ICFkc3QuaGVpZ2h0KCkgfHwgIXNyYy53aWR0
aCgpIHx8ICFzcmMuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMSw4ICsxMDEsOCBA
QCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3QsIGNvbnN0IEZsbwogICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNyY1JlY3Qo
c3JjKTsKICNlbmRpZgogCi0gICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IERlZmF1
bHRJbWFnZU9yaWVudGF0aW9uOwotICAgIGlmIChzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVu
dGF0aW9uOworICAgIGlmIChkZXNjcmlwdGlvbi5yZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpID09
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQogICAgICAgICBvcmllbnRhdGlvbiA9IGZyYW1lT3Jp
ZW50YXRpb25BdEluZGV4KG1fY3VycmVudEZyYW1lKTsKIAogICAgIEZsb2F0UmVjdCBkc3RSZWN0
ID0gZHN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAppbmRleCAzY2ZjMmY0ZDFhYmFhZjAzYTM4MDdh
ZmEzZjYzMzNiMWZkNmEyOTY1Li40ZmQzYzU0ZDc1ZTM0ZmMwODBjN2MyMzcyNjJhZDhjNzhlOTcz
ZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUJ1ZmZlckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgSW1h
Z2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBkZXN0aW5hdGlvbkNvbnRleHQsIENvbG9y
U3BhY2Ugc3R5bGVDb2xvCiB7CiAgICAgQmFja2luZ1N0b3JlQ29weSBjb3B5TW9kZSA9IGRlc3Rp
bmF0aW9uQ29udGV4dCA9PSBjb250ZXh0KCkgPyBDb3B5QmFja2luZ1N0b3JlIDogRG9udENvcHlC
YWNraW5nU3RvcmU7CiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGNvcHlJbWFnZShjb3B5TW9k
ZSk7Ci0gICAgZGVzdGluYXRpb25Db250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxl
Q29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIERvTm90UmVzcGVj
dEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgZGVzdGluYXRpb25D
b250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9CaXRtYXBJbWFnZUNHLmNwcAppbmRleCBjZDAzN2E5
OGE0MzQxN2FiNmZjYmJjZWM4NGU4ZTk0ZmVlNzA3NGQ5Li45Y2RjNmZhMzhhODUxZjkxNzY4NDE5
MTcwZmQyOThhZjQ1ODJjZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9CaXRtYXBJbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9CaXRtYXBJbWFnZUNHLmNwcApAQCAtMTYzLDEwICsxNjMsMTAgQEAgUmV0
YWluUHRyPENGQXJyYXlSZWY+IEJpdG1hcEltYWdlOjpnZXRDR0ltYWdlQXJyYXkoKQogCiB2b2lk
IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4LCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewotICAg
IGRyYXcoY3R4LCBkc3RSZWN0LCBzcmNSZWN0LCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVuZE1v
ZGUsIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGRyYXcoY3R4LCBkc3RSZWN0
LCBzcmNSZWN0LCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbigpKTsKIH0KIAotdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0Nv
bnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVu
dW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCit2b2lkIEJpdG1hcEltYWdlOjpkcmF3
KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKICAgICBzdGFydEFuaW1hdGlvbigpOwogCkBA
IC0xODAsOSArMTgwLDkgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQq
IGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEYKICAgICB9CiAKICAgICBG
bG9hdFNpemUgc2VsZlNpemUgPSBjdXJyZW50RnJhbWVTaXplKCk7Ci0gICAgSW1hZ2VPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiA9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOworICAgIEltYWdlT3Jp
ZW50YXRpb24gb3JpZW50YXRpb247CiAKLSAgICBpZiAoc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24gPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgaWYgKGRlc2NyaXB0aW9uLnJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCiAgICAg
ICAgIG9yaWVudGF0aW9uID0gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgobV9jdXJyZW50RnJhbWUp
OwogCiAgICAgY3R4dC0+ZHJhd05hdGl2ZUltYWdlKGltYWdlLCBzZWxmU2l6ZSwgc3R5bGVDb2xv
clNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3AsIGJsZW5kTW9kZSwgb3JpZW50
YXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VTb3VyY2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZVNvdXJjZUNHLmNwcAppbmRleCBhYWEyZmRmY2RjN2MxNzZjNTA0NGEwZTUyOGJjZjUxODE5
MjdmZWZmLi5hYTk1NTg4NWE1Nzk2MDRjNmQyNDk2MDRiMmZhNDM3YmU0MTk2MTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNH
LmNwcApAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0
aW9uRnJvbVByb3BlcnRpZXMoQ0ZEaWN0aW9uYXJ5UmVmIGltYWdlUHJvcGVydGllCiAgICAgcmV0
dXJuIEltYWdlT3JpZW50YXRpb246OmZyb21FWElGVmFsdWUoZXhpZlZhbHVlKTsKIH0KIAotSW50
U2l6ZSBJbWFnZVNvdXJjZTo6ZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5kZXgsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pIGNvbnN0CitJbnRT
aXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRleCwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKSBjb25zdAogewogICAgIFJldGFpblB0cjxD
RkRpY3Rpb25hcnlSZWY+IHByb3BlcnRpZXMgPSBhZG9wdENGKENHSW1hZ2VTb3VyY2VDb3B5UHJv
cGVydGllc0F0SW5kZXgobV9kZWNvZGVyLCBpbmRleCwgaW1hZ2VTb3VyY2VPcHRpb25zKFNraXBN
ZXRhZGF0YSkpKTsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIEludFNpemUgSW1hZ2VTb3VyY2U6OmZy
YW1lU2l6ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0K
ICAgICBpZiAobnVtKQogICAgICAgICBDRk51bWJlckdldFZhbHVlKG51bSwga0NGTnVtYmVySW50
VHlwZSwgJmgpOwogCi0gICAgaWYgKChzaG91bGRSZXNwZWN0T3JpZW50YXRpb24gPT0gUmVzcGVj
dEltYWdlT3JpZW50YXRpb24pICYmIG9yaWVudGF0aW9uRnJvbVByb3BlcnRpZXMocHJvcGVydGll
cy5nZXQoKSkudXNlc1dpZHRoQXNIZWlnaHQoKSkKKyAgICBpZiAoKGRlc2NyaXB0aW9uLnJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pICYmIG9yaWVu
dGF0aW9uRnJvbVByb3BlcnRpZXMocHJvcGVydGllcy5nZXQoKSkudXNlc1dpZHRoQXNIZWlnaHQo
KSkKICAgICAgICAgcmV0dXJuIEludFNpemUoaCwgdyk7CiAKICAgICByZXR1cm4gSW50U2l6ZSh3
LCBoKTsKQEAgLTIyNSw5ICsyMjUsOSBAQCBJbWFnZU9yaWVudGF0aW9uIEltYWdlU291cmNlOjpv
cmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogICAgIHJldHVybiBvcmllbnRh
dGlvbkZyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMuZ2V0KCkpOwogfQogCi1JbnRTaXplIEltYWdl
U291cmNlOjpzaXplKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0T3Jp
ZW50YXRpb24pIGNvbnN0CitJbnRTaXplIEltYWdlU291cmNlOjpzaXplKEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikgY29uc3QKIHsKLSAgICByZXR1cm4gZnJhbWVTaXpl
QXRJbmRleCgwLCBzaG91bGRSZXNwZWN0T3JpZW50YXRpb24pOworICAgIHJldHVybiBmcmFtZVNp
emVBdEluZGV4KDAsIGRlc2NyaXB0aW9uKTsKIH0KIAogYm9vbCBJbWFnZVNvdXJjZTo6Z2V0SG90
U3BvdChJbnRQb2ludCYgaG90U3BvdCkgY29uc3QKQEAgLTM4NCw3ICszODQsNyBAQCBib29sIElt
YWdlU291cmNlOjpmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QgaW5kZXgpCiAKIHVuc2lnbmVk
IEltYWdlU291cmNlOjpmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiB7Ci0g
ICAgSW50U2l6ZSBmcmFtZVNpemUgPSBmcmFtZVNpemVBdEluZGV4KGluZGV4LCBSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbik7CisgICAgSW50U2l6ZSBmcmFtZVNpemUgPSBmcmFtZVNpemVBdEluZGV4
KGluZGV4LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oUmVzcGVjdEltYWdlT3JpZW50YXRp
b24pKTsKICAgICByZXR1cm4gZnJhbWVTaXplLndpZHRoKCkgKiBmcmFtZVNpemUuaGVpZ2h0KCkg
KiA0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAKaW5kZXggNTQyZGNmZWQ0OWE5MWIwNDYyNjY4YTk1OTlkZTU0YTU5NGQ4NzI2
NC4uZDlkNGJhNmUzMDk5MDcxOGY0ODQ5MGJmMzNmMDhjYjhiYjlmZTI0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNDQ0
LDcgKzQ0NCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6cGFpbnQo
R3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSCiAgICAgfQogCiAgICAgY29udGV4
dC0+ZHJhd0ltYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8SW1hZ2UqPihnc3RJbWFnZS0+aW1hZ2UoKS5n
ZXQoKSksIENvbG9yU3BhY2VTUkdCLAotICAgICAgICByZWN0LCBnc3RJbWFnZS0+cmVjdCgpLCBD
b21wb3NpdGVDb3B5LCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBmYWxzZSk7CisgICAg
ICAgIHJlY3QsIGdzdEltYWdlLT5yZWN0KCksIENvbXBvc2l0ZUNvcHksIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbigpLCBmYWxzZSk7CiAgICAgZ19tdXRleF91bmxvY2sobV9idWZmZXJNdXRl
eCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0ltYWdlQnVmZmVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
SW1hZ2VCdWZmZXJRdC5jcHAKaW5kZXggMWJjZGVlOTQ1ZDUxNGQ0MzNjZThjOTNlZGI3Y2Y1MWJj
N2M3ODQ5Ny4uMTgwODA4MmY1ZjRiZWIwOWQ4YzBkOTI2YTU2Njg5NmQ2NDAyMjU4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJR
dC5jcHAKQEAgLTEzNiw5ICsxMzYsOSBAQCB2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNz
Q29udGV4dCogZGVzdENvbnRleHQsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLAogICAgIGlm
IChkZXN0Q29udGV4dCA9PSBjb250ZXh0KCkpIHsKICAgICAgICAgLy8gV2UncmUgZHJhd2luZyBp
bnRvIG91ciBvd24gYnVmZmVyLiAgSW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yaywgd2UgbmVlZCB0
byBjb3B5IHRoZSBzb3VyY2UgYnVmZmVyIGZpcnN0LgogICAgICAgICBSZWZQdHI8SW1hZ2U+IGNv
cHkgPSBjb3B5SW1hZ2UoQ29weUJhY2tpbmdTdG9yZSk7Ci0gICAgICAgIGRlc3RDb250ZXh0LT5k
cmF3SW1hZ2UoY29weS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIG9wLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OworICAgICAgICBkZXN0Q29udGV4dC0+ZHJhd0ltYWdlKGNvcHkuZ2V0KCksIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGRlc3RDb250
ZXh0LT5kcmF3SW1hZ2UobV9kYXRhLm1faW1hZ2UuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVz
dFJlY3QsIHNyY1JlY3QsIG9wLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOworICAgICAgICBkZXN0Q29udGV4dC0+ZHJhd0ltYWdlKG1fZGF0YS5tX2lt
YWdlLmdldCgpLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgSW1hZ2VP
cmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsZSk7CiB9CiAKIHZvaWQg
SW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAppbmRleCBhMTM5YmM5N2JjM2IxYTU1YWNjOTNh
ZDAwMDZhYzdhYTJiNTBjOTUwLi5jY2FiM2ViYmQ0NzFjM2ZhZDJmYmUyOTAyNDg0ZDU4ZjI4NDg5
OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9J
bWFnZUJ1ZmZlcldpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgSW1h
Z2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgY29uCiAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9y
IG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKIHsKICAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlQ29weSA9IGNvcHlJbWFnZShDb3B5QmFja2luZ1N0b3JlKTsK
LSAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2VDb3B5LmdldCgpLCBzdHlsZUNvbG9yU3BhY2Us
IGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFn
ZUNvcHkuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3QsIG9wLCBibGVu
ZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1c2VMb3dRdWFsaXR5U2NhbGUp
OwogfQogCiB2b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBw
YXR0ZXJuVHJhbnNmb3JtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0NsaXBib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJk
R3RrLmNwcAppbmRleCBkMzg4YjViNmMxNzBmN2NkMzVlYzQwN2VmMWFhZWFmNGM0ZjZiMjc5Li5k
ZmQyMTRjNDUwNjI2NjI3YWIyNDEzMjZmY2FkMmM2MDE0MzNjNjMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcApAQCAtMzEsNyArMzEsNyBAQCBEcmFn
SW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBj
b25zdAogICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jOwogCiAgICAgaWYgKG1fZHJhZ0ltYWdlKQot
ICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFn
ZSgpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShtX2RyYWdJbWFn
ZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogCiAgICAgaWYgKG1f
ZHJhZ0ltYWdlRWxlbWVudCkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2RyYWdJ
bWFnZUVsZW1lbnQtPmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9E
cmFnSW1hZ2VHdGsuY3BwCmluZGV4IDk4MDFiMTkwNDJiYzBjZGI1NWM3NDM2M2VhZWQ2OWQwMWQy
OTMwOGEuLmRmMjEzODk4Y2ZkNzMwOTcxZWUyYzlhNTU1MGZhMmJkMWQ5YTVkMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCkBAIC03Niw3ICs3Niw3
IEBAIERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVm
IGltYWdlLCBmbG9hdCBmcmFjdGlvbikKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKLURyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKElt
YWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIHJldHVybiBp
bWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKS5sZWFrUmVmKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCBiMzk2NmE1NDQ1YzQ5
YWUwMzBhZDZmNWMzMGY5ODk1YWFiOWM4ZWJmLi4xNDkzYWU2Mzg5NjQ0MGM3MzY2MDZlMDc3ZGI2
YjE3MjQ2Y2VkN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJh
Z0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VN
YWMubW0KQEAgLTc3LDE2ICs3NywxNiBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29sdmVEcmFn
SW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgZmxvYXQgZAogICAgIHJl
dHVybiBkaXNzb2x2ZWRJbWFnZTsKIH0KICAgICAgICAgCi1SZXRhaW5QdHI8TlNJbWFnZT4gY3Jl
YXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgUmVzcGVjdEltYWdlT3JpZW50YXRp
b25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorUmV0YWluUHRyPE5TSW1hZ2U+
IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKICAgICBJbnRTaXplIHNpemUgPSBpbWFnZS0+c2l6
ZSgpOwogCiAgICAgaWYgKGltYWdlLT5pc0JpdG1hcEltYWdlKCkpIHsKLSAgICAgICAgSW1hZ2VP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOworICAgICAg
ICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uOwogICAgICAgICBCaXRtYXBJbWFnZSogYml0
bWFwSW1hZ2UgPSBzdGF0aWNfY2FzdDxCaXRtYXBJbWFnZSAqPihpbWFnZSk7CiAgICAgICAgIElu
dFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9IGJpdG1hcEltYWdlLT5zaXplUmVzcGVj
dGluZ09yaWVudGF0aW9uKCk7CiAKLSAgICAgICAgaWYgKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAgICAgICBpZiAoZGVzY3JpcHRp
b24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikK
ICAgICAgICAgICAgIG9yaWVudGF0aW9uID0gYml0bWFwSW1hZ2UtPm9yaWVudGF0aW9uRm9yQ3Vy
cmVudEZyYW1lKCk7CiAKICAgICAgICAgaWYgKG9yaWVudGF0aW9uICE9IERlZmF1bHRJbWFnZU9y
aWVudGF0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlw
Ym9hcmRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAK
aW5kZXggZjJlNjQxMzUyMzU3NzUwZDM1ZGMxZTgzYTlkODY4MjA5ZGZkYzQ0Ny4uOTdlY2RmMjEw
N2NhN2JkMWI5YWIzOGQxMmQ1ZTZiMTg2YTU2ZjkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0NsaXBib2FyZFF0LmNwcApAQCAtNDUsNyArNDUsNyBAQCBEcmFnSW1hZ2VSZWYgQ2xp
cGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogICAgIGxv
Y2F0aW9uID0gbV9kcmFnTG9jOwogCiAgICAgaWYgKG1fZHJhZ0ltYWdlKQotICAgICAgICByZXR1
cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpKTsKKyAgICAg
ICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShtX2RyYWdJbWFnZS0+aW1hZ2UoKSwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogCiAgICAgaWYgKG1fZHJhZ0ltYWdlRWxl
bWVudCkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2RyYWdJbWFnZUVsZW1lbnQt
PmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFn
SW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAK
aW5kZXggZDM4OGYzOWRjMjUzODY4N2NhZjMwN2ZkZGNjNmM1MTY5M2E0MDk5OC4uODg5N2NmZjZk
ZDVjMGFlOGRkYzc3YjQ5YjBjNTE0MjM3ZGI3YWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0RyYWdJbWFnZVF0LmNwcApAQCAtNjAsNyArNjAsNyBAQCBEcmFnSW1hZ2VSZWYgZGlz
c29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQpCiAgICAg
cmV0dXJuIGltYWdlOwogfQogCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KEltYWdlKiBpbWFnZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQorRHJhZ0ltYWdlUmVm
IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb25E
ZXNjcmlwdGlvbikKIHsKICAgICBpZiAoIWltYWdlIHx8ICFpbWFnZS0+bmF0aXZlSW1hZ2VGb3JD
dXJyZW50RnJhbWUoKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCmluZGV4IGVkZmUyMzc0ZTM3MDBkNDlkYWQwNGIyN2M0
ZmU4MWY2MTUwNzUyMjcuLjBhOGFiMDc2YWI3NTczN2I3ZmEwOWY0NjZiNTRlYzY1OGRkNmVkMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCkBAIC00
NSw3ICs0NSw3IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZShJbnRQ
b2ludCYgZHJhZ0xvY2F0aW9uKSBjb25zdAogICAgIEhCSVRNQVAgcmVzdWx0ID0gMDsKICAgICBp
ZiAobV9kcmFnSW1hZ2UpIHsKICNpZiBVU0UoQ0FJUk8pIHx8IFVTRShDRykKLSAgICAgICAgcmVz
dWx0ID0gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpKTsgICAg
ICAgIAorICAgICAgICByZXN1bHQgPSBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UobV9kcmFnSW1h
Z2UtPmltYWdlKCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsgICAgICAgIAogICAg
ICAgICBkcmFnTG9jYXRpb24gPSBtX2RyYWdMb2M7CiAjZWxzZQogICAgICAgICBub3RJbXBsZW1l
bnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFn
ZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5j
cHAKaW5kZXggOTMwMjViN2Y5NTBjOTcwMjc3MjdkMzIwMjcyMWQ3MTRhZDBmZjlhNi4uODYyNjZm
OTAwYTFjOTAwZjFlODE0YzBiMTU2ZWY1YWViYjg4NTQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNHV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgZXhp
dDoKICAgICByZXR1cm4gaGJtcDsKIH0KICAgICAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1h
Z2VGcm9tSW1hZ2UoSW1hZ2UqIGltZywgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKQorRHJh
Z0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24pCiB7CiAgICAgSEJJVE1BUCBoYm1wID0gMDsKICAgICBIV25kREMg
ZGMoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdl
Q2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNhaXJv
V2luLmNwcAppbmRleCA2ODFjY2ZlN2NjMTI2MTMzYWZlZDJmM2NhZjgyNzMxNWRlYjQ2NjI4Li44
MDM3NDg2YjU0MzViYTMxNWEyNzRlYWZmNDM2MzVjYTllMGY1NTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHAKQEAgLTE1MCw3ICsx
NTAsNyBAQCBleGl0OgogICAgIHJldHVybiBoYm1wOwogfQogICAgIAotRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWcs
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBIQklUTUFQIGhibXAgPSAwOwog
ICAgIEhEQyBkYyA9IEdldERDKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggMDJhMWZmNzM4NjUzOWEyZDAwYTA4OTE2ZjE3
NWI5ZTJiNDk5YmE2My4uMDZjMDMzZGMzMGVjNjIzZTg5OGMyMzAxZGY5YTAwNmUxMDY0ODI4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRT
bmFwc2hvdEltYWdlKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXQKICAgICAgICAg
cmV0dXJuOwogCiAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRM
b3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgYWxpZ25lZFJlY3Quc2l6ZSgpKTsKLSAg
ICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25l
ZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2Us
IHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIs
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bigpKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCiB2b2lkIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpwYWludENvbnRlbnRzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApp
bmRleCA2OTg4OTRiYjk4YzVjZjg1NWFmOTRhNzhkNGViYjE4NzQ4ZWVjMDNhLi41ZmEyYzdmZDQ5
NWU5NzNhNzRjMzU3YWU1MWM1YmVlYmI3NGI3NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHAKQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpw
YWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZgogICAgICAgICAgICAgICAgIGlmIChjZW50ZXJZIDwgMCkKICAgICAgICAgICAgICAgICAg
ICAgY2VudGVyWSA9IDA7CiAgICAgICAgICAgICAgICAgaW1hZ2VPZmZzZXQgPSBMYXlvdXRTaXpl
KGxlZnRCb3JkZXIgKyBsZWZ0UGFkICsgY2VudGVyWCArIGJvcmRlcldpZHRoLCB0b3BCb3JkZXIg
KyB0b3BQYWQgKyBjZW50ZXJZICsgYm9yZGVyV2lkdGgpOwotICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBwaXhlbFNu
YXBwZWRJbnRSZWN0KExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VT
aXplKSksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9u
KCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5
bGUoKS0+Y29sb3JTcGFjZSgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KExheW91dFJlY3QocGFpbnRP
ZmZzZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VTaXplKSksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigp
KSk7CiAgICAgICAgICAgICAgICAgZXJyb3JQaWN0dXJlRHJhd24gPSB0cnVlOwogICAgICAgICAg
ICAgfQogCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVj
dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QKICAgICBD
b21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IGltYWdlRWx0ID8gaW1hZ2VFbHQt
PmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVTb3VyY2VPdmVyOwogICAgIEltYWdlKiBp
bWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoKS5nZXQoKTsKICAgICBib29sIHVzZUxvd1F1
YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2UsIGlt
YWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX2ltYWdl
UmVzb3VyY2UtPmltYWdlKGFsaWduZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgp
KS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgY29tcG9zaXRlT3Bl
cmF0b3IsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2Fs
aW5nKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9pbWFnZVJlc291cmNlLT5pbWFnZShhbGln
bmVkUmVjdC53aWR0aCgpLCBhbGlnbmVkUmVjdC5oZWlnaHQoKSkuZ2V0KCksIHN0eWxlKCktPmNv
bG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCBJbWFnZU9yaWVudGF0
aW9uRGVzY3JpcHRpb24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSksIHVzZUxvd1F1
YWxpdHlTY2FsaW5nKTsKIH0KIAogYm9vbCBSZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxkQmVB
cHBsaWVkVG9CYWNrZ3JvdW5kKEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5j
ZSwgSW5saW5lRmxvd0JveCopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCAwNzU5MTBhYmU5ZDAzNDY3Mzlk
Njk5ZTkxM2ZiMzNmMThkZGZhMTIzLi41Nzg5MWZlNDAxYWY1OTRlYjc3YjdiZjVhMTQ1OGJkMjBi
MmUxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCB2b2lkIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luOjpwYWludFNuYXBzaG90KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQbwogICAgICAgICByZXR1cm47CiAKICAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0g
c2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVj
dC5zaXplKCkpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JT
cGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zlciwgc2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOworICAgIGNvbnRleHQtPmRy
YXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9z
aXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCkpLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiB9CiAKIEN1cnNvckRp
cmVjdGl2ZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6Z2V0Q3Vyc29yKGNvbnN0IExheW91dFBv
aW50JiBwb2ludCwgQ3Vyc29yJiBvdmVycmlkZUN1cnNvcikgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208699</attachid>
            <date>2013-08-13 22:41:00 -0700</date>
            <delta_ts>2013-08-14 21:45:24 -0700</delta_ts>
            <desc>Rebased Patch</desc>
            <filename>bug-119418-20130814144057.patch</filename>
            <type>text/plain</type>
            <size>47085</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU5NGQ3YjYzMWRlNmMw
ZTk5NGMzNjA4N2E3Yzk1YWZjNmM4MDZhMC4uNWYxOTQ4NjZmZTNmNDk2NjQ1Y2ViNDFhY2I1YTJh
Y2FlN2I0MzhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg4IEBACiAyMDEzLTA4LTEzICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKKyAgICAgICAgW0NTU10gSW50
cm9kdWNlIG5ldyBzdHJ1Y3R1cmUgdG8gcGFzcyBpbWFnZSBvcmllbnRhdGlvbiB2YWx1ZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0MTgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gc3RydWN0IGluIG9yZGVyIHRvIHJlZHVjZSBjb3VudCBv
ZiBhcmd1bWVudCBmb3IKKyAgICAgICAgaW1hZ2Ugb3JpZW50YXRpb24uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpwYWlu
dCk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcpOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om5vZGVJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFn
SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJbWFnZUJsYWNrQmVy
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvRHJhZ0ltYWdlRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnVwZGF0ZVNp
emUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZU9y
aWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b246OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb246OnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbjo6aW1hZ2VPcmllbnRhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFn
ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcEltYWdlQ2Fpcm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VCdWZmZXI6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0JpdG1h
cEltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VTb3VyY2U6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZy
YW1lQnl0ZXNBdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpwYWludCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvSW1hZ2VCdWZmZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUJ1ZmZlcjo6ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VC
dWZmZXJXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmQ6OmNyZWF0ZURyYWdJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0Ry
YWdJbWFnZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZDo6Y3JlYXRlRHJh
Z0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkOjpjcmVh
dGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6
cGFpbnRTbmFwc2hvdEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hvdCk6CisKKzIwMTMtMDgtMTMgIEd5dXlv
dW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKwogICAgICAgICBUaGUgbGVuZ3Ro
IG9mIHNjaGVtZSBpcyBhdCBsZWFzdCBmaXZlIGNoYXJhY3RlcnMgZXZlbiB3aGVuIHRoZSBzY2hl
bWUgaGFzICd3ZWIrJyBwcmVmaXgKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExOTc3OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQyZWRmZDhhNTU2
ZTg2ZTkzOTM0M2QzNDk5MjIxMTkzZGI5OThlMGMuLmRlZGFhYThiOWQyNjNjMTQ1Y2ExYmQzZGVi
M2YwYmY4NDc5MTcxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00NjMsNyArNDYzLDcgQEAg
X19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ4ZmlsbFBhdGhFUktOU180UGF0aEUKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OGZpbGxSZWN0RVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OGZpbGxSZWN0RVJLTlNfOUZsb2F0UmVjdEVSS05TXzVD
b2xvckVOU18xMENvbG9yU3BhY2VFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzQ29udGV4dDljbGVh
clJlY3RFUktOU185RmxvYXRSZWN0RQotX19aTjdXZWJDb3JlMTVHcmFwaGljc0NvbnRleHQ5ZHJh
d0ltYWdlRVBOU181SW1hZ2VFTlNfMTBDb2xvclNwYWNlRVJLTlNfOEludFBvaW50RU5TXzE3Q29t
cG9zaXRlT3BlcmF0b3JFTlNfMjdSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW1FCitfX1pON1dl
YkNvcmUxNUdyYXBoaWNzQ29udGV4dDlkcmF3SW1hZ2VFUE5TXzVJbWFnZUVOU18xMENvbG9yU3Bh
Y2VFUktOU184SW50UG9pbnRFTlNfMTdDb21wb3NpdGVPcGVyYXRvckVOU18yN0ltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbkUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NDb250ZXh0OXNldFNoYWRv
d0VSS05TXzlGbG9hdFNpemVFZlJLTlNfNUNvbG9yRU5TXzEwQ29sb3JTcGFjZUUKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NDb250ZXh0OXRyYW5zbGF0ZUVmZgogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0NvbnRleHREMUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmlu
ZGV4IDcyOTllMTRkMTQzZWE4Y2M0YWM5NzhiMTJjY2FhOTRlMWYxYjFhYjAuLjc5NWEzYmFlYmU4
MmQ3ODRkYTkyM2I3ZjY0MWFkYmNjYzU3YmVhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCkBAIC00MDUsNyArNDA1LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBy
LCBib28KICAgICAgICAgSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyID0gYnVmZmVyKCk7CiAgICAg
ICAgIGlmIChpbWFnZUJ1ZmZlcikgewogICAgICAgICAgICAgaWYgKG1fcHJlc2VudGVkSW1hZ2Up
Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0
KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25hcHBlZEludFJlY3QociksIENvbXBvc2l0
ZVNvdXJjZU92ZXIsIERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlT
Y2FsZSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1h
Z2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHBpeGVsU25hcHBlZEludFJlY3QociksIENv
bXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNvbnRleHQt
PmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgcGl4ZWxT
bmFwcGVkSW50UmVjdChyKSwgQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlTm9ybWFsLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCmluZGV4IGI5ODNiNjAxNzUxM2Q2ZmZkZjA3ODRmODMzNDM4NWQ1MDdhM2FiZTEu
LmU2MGU4MmY4NjdhYjQ5NzAwNjdlMTBmYjczNGQxZDlhZDk3MjBlNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC04NzcsNyArODc3LDcgQEAgdm9pZCBEcmFnQ29u
dHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudCogZWxlbWVudCwgY29uc3QgSW50UG9pbnQmIGRy
YWdPcmlnaW4sIGMKIAogICAgIEltYWdlKiBpbWFnZSA9IGdldEltYWdlKGVsZW1lbnQpOwogICAg
IGlmIChpbWFnZSAmJiBpbWFnZS0+c2l6ZSgpLmhlaWdodCgpICogaW1hZ2UtPnNpemUoKS53aWR0
aCgpIDw9IE1heE9yaWdpbmFsSW1hZ2VBcmVhCi0gICAgICAgICYmIChkcmFnSW1hZ2UgPSBjcmVh
dGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UsIGVsZW1lbnQtPnJlbmRlcmVyKCkgPyBlbGVtZW50
LT5yZW5kZXJlcigpLT5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIDogRG9Ob3RSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbikpKSB7CisgICAgICAgICYmIChkcmFnSW1hZ2UgPSBjcmVhdGVE
cmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UsIGVsZW1lbnQtPnJlbmRlcmVyKCkgPyBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24oZWxlbWVudC0+cmVuZGVyZXIoKS0+c2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24oKSkgOiBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSkpKSB7CiAgICAg
ICAgIEludFNpemUgb3JpZ2luYWxTaXplID0gcmVjdC5zaXplKCk7CiAgICAgICAgIG9yaWdpbiA9
IHJlY3QubG9jYXRpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBhNmE1ZDkyYjBiMWZh
MDAzMjQzZWMyNjkwNmIwMDUzZGM5ZjczZmIxLi5mZjc0YThmOWQ4YWJhMTc2OTE3MjhmMjBhZjA3
MzZhMzUyMTJkNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTA5Nyw3ICsxMDk3LDcgQEAg
RHJhZ0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9kZSogbm9kZSkKICAgICBtX3ZpZXctPnBh
aW50Q29udGVudHMoYnVmZmVyLT5jb250ZXh0KCksIHBhaW50aW5nUmVjdCk7CiAKICAgICBSZWZQ
dHI8SW1hZ2U+IGltYWdlID0gYnVmZmVyLT5jb3B5SW1hZ2UoKTsKLSAgICByZXR1cm4gY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKGltYWdlLmdldCgpLCByZW5kZXJlci0+c2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24oKSk7CisgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShp
bWFnZS5nZXQoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKHJlbmRlcmVyLT5zaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpKSk7CiB9CiAKIERyYWdJbWFnZVJlZiBGcmFtZTo6ZHJh
Z0ltYWdlRm9yU2VsZWN0aW9uKCkKQEAgLTExMjYsNyArMTEyNiw3IEBAIERyYWdJbWFnZVJlZiBG
cmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkKICAgICBtX3ZpZXctPnBhaW50Q29udGVudHMo
YnVmZmVyLT5jb250ZXh0KCksIHBhaW50aW5nUmVjdCk7CiAKICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gYnVmZmVyLT5jb3B5SW1hZ2UoKTsKLSAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJv
bUltYWdlKGltYWdlLmdldCgpKTsKKyAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KGltYWdlLmdldCgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAppbmRleCBkZjk0MjJhNDlkYzg3NjQ0YzRm
ZWY1MjNlZjY0N2ZiZjlkNDdhYzgyLi40MjY1YzhiZDk2OTA4ZWFmYzkwOTBlZWFhODcyODA1ZjBk
YmI1MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaApAQCAtNzQsNyArNzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiwgRmxvYXRTaXplIHNjYWxlKTsKICAgICBEcmFnSW1hZ2VSZWYgZGlzc29sdmVE
cmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQgZGVsdGEpOwogICAg
IAotICAgIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsK
KyAgICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwgSW1hZ2VP
cmllbnRhdGlvbkRlc2NyaXB0aW9uKTsKICAgICBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdl
SWNvbkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoS1VSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZv
bnRSZW5kZXJpbmdNb2RlKTsKICAgICB2b2lkIGRlbGV0ZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9EcmFnSW1h
Z2VCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvRHJh
Z0ltYWdlQmxhY2tCZXJyeS5jcHAKaW5kZXggNmY2MGMwN2ViNzUwNDhlYzI3ZDg0MWJiODBjMWQ2
ZTAwY2FlOWQ2MC4uYzAyOGM0YmY2ZGM3NTkyMmQ4YjE4ODc2YTJkYjQwMzAzNDY4MGE0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9EcmFnSW1hZ2VCbGFj
a0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0RyYWdJ
bWFnZUJsYWNrQmVycnkuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCogY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtKQordm9pZCogY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwg
SW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAg
ICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJh
Z0ltYWdlRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnSW1hZ2VFZmwu
Y3BwCmluZGV4IGY5Mjk5NzAyMTIyNGUyMTRjNmFmNTUxZTljZWNmOWRjYTYwOWM4ZTcuLmIxYTZi
MTJhNjIxZDA2MjNhZDBjZWE1OGUzNDMzMWQ1ZjE3NDNlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnSW1hZ2VFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9EcmFnSW1hZ2VFZmwuY3BwCkBAIC00OSw3ICs0OSw3IEBAIERyYWdJbWFn
ZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9h
dCkKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VG
cm9tSW1hZ2UoSW1hZ2UqLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCitEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggMmU1
Yjc3MDVmZTVjNjA2NzFjNmExZWM2MDEyYWJmMjdlNDg5NjRkNi4uMTZkNWEzMWMxMDcxMjk4Y2E3
ZTlkYjkwYzEyMzFkZGU1MTEzNmFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgQml0bWFw
SW1hZ2U6OnVwZGF0ZVNpemUoKSBjb25zdAogICAgICAgICByZXR1cm47CiAKICAgICBtX3NpemUg
PSBtX3NvdXJjZS5zaXplKCk7Ci0gICAgbV9zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uID0gbV9z
b3VyY2Uuc2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CisgICAgbV9zaXplUmVzcGVjdGlu
Z09yaWVudGF0aW9uID0gbV9zb3VyY2Uuc2l6ZShJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
UmVzcGVjdEltYWdlT3JpZW50YXRpb24pKTsKICAgICBtX2hhdmVTaXplID0gdHJ1ZTsKICAgICBk
aWREZWNvZGVQcm9wZXJ0aWVzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaAppbmRleCA5NjMzYWNlYzk5NTQ0OWE3OWRhNTI1YTQ0YWQ1YTky
MzllYmIxYWQ4Li43NDEzNDg0ZjViZDFjNDJkM2MxYzYyZjBiMWI3NWU3M2JmMTg1YmMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKQEAgLTE5
MCw3ICsxOTAsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHJhdyhH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
LCBCbGVuZE1vZGUpOwogI2lmIFVTRShDRykgfHwgVVNFKENBSVJPKSB8fCBQTEFURk9STShCTEFD
S0JFUlJZKQotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikgT1ZFUlJJREU7CiAjZW5kaWYKIAog
I2lmIFVTRShXSU5HREkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBjOTNkZDNmMjIyNWNhZDZhOTBlMTNkZjkwNjky
OWNiMzJiYWUyNzNkLi4yZDU3MmQzZjRmYjVkOTU5Njg2NmY5YWFiOGU1MzUwNzU2ODIyYzI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5jcHAKQEAgLTQ2OSwyOCArNDY5LDI4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
SGlnaGxpZ2h0Rm9yVGV4dChjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sCiAg
ICAgZmlsbFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIHBvaW50LCBoLCBmcm9t
LCB0byksIGJhY2tncm91bmRDb2xvciwgY29sb3JTcGFjZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgSW50UG9pbnQmIHAsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIGNvbnN0IEludFBvaW50JiBwLCBDb21wb3NpdGVPcGVyYXRvciBvcCwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKQogewogICAgIGlmICghaW1hZ2UpCiAgICAg
ICAgIHJldHVybjsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRS
ZWN0KEludFJlY3QocCwgaW1hZ2UtPnNpemUoKSkpLCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBG
bG9hdFNpemUoaW1hZ2UtPnNpemUoKSkpLCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24pOworICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoSW50
UmVjdChwLCBpbWFnZS0+c2l6ZSgpKSksIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIEZsb2F0U2l6
ZShpbWFnZS0+c2l6ZSgpKSksIG9wLCBkZXNjcmlwdGlvbik7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgY29uc3QgSW50UmVjdCYgciwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dR
dWFsaXR5U2NhbGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFn
ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmIHIsIENvbXBvc2l0
ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIGJv
b2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVy
bjsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxvYXRSZWN0KHIpLCBG
bG9hdFJlY3QoRmxvYXRQb2ludCgpLCBGbG9hdFNpemUoaW1hZ2UtPnNpemUoKSkpLCBvcCwgc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgZHJh
d0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIEZsb2F0UmVjdChyKSwgRmxvYXRSZWN0KEZs
b2F0UG9pbnQoKSwgRmxvYXRTaXplKGltYWdlLT5zaXplKCkpKSwgb3AsIGRlc2NyaXB0aW9uLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdl
KEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50
JiBkZXN0LCBjb25zdCBJbnRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCwgUmVz
cGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJbWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ug
c3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRQb2ludCYgZGVzdCwgY29uc3QgSW50UmVjdCYgc3Jj
UmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBk
ZXNjcmlwdGlvbikKIHsKLSAgICBkcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlQ29sb3JTcGFjZSwgRmxv
YXRSZWN0KEludFJlY3QoZGVzdCwgc3JjUmVjdC5zaXplKCkpKSwgRmxvYXRSZWN0KHNyY1JlY3Qp
LCBvcCwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGRyYXdJbWFnZShpbWFn
ZSwgc3R5bGVDb2xvclNwYWNlLCBGbG9hdFJlY3QoSW50UmVjdChkZXN0LCBzcmNSZWN0LnNpemUo
KSkpLCBGbG9hdFJlY3Qoc3JjUmVjdCksIG9wLCBkZXNjcmlwdGlvbik7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29t
cG9zaXRlT3BlcmF0b3Igb3AsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCit2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBv
c2l0ZU9wZXJhdG9yIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24s
IGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlKQogewotICAgIGRyYXdJbWFnZShpbWFnZSwgc3R5bGVD
b2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCBCbGVuZE1vZGVOb3JtYWwsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIGRyYXdJbWFnZShpbWFn
ZSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0LCBzcmMsIG9wLCBCbGVuZE1vZGVOb3JtYWwsIGRlc2Ny
aXB0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdCkKQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNv
bnN0CiAgICAgZHJhd0ltYWdlKGltYWdlLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3QsIEZsb2F0UmVj
dChJbnRSZWN0KEludFBvaW50KCksIGltYWdlLT5zaXplKCkpKSk7CiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpkcmF3SW1hZ2UoSW1hZ2UqIGltYWdlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9z
aXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVudGF0
aW9uRW51bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5
U2NhbGUpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24sIGJvb2wgdXNlTG93UXVhbGl0
eVNjYWxlKQogeyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFpbWFnZSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC01MTIsNyArNTEyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZShJbWFnZSogaW1hZ2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdAogICAg
ICAgICBzZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Ob25lKTsKICAg
ICB9CiAKLSAgICBpbWFnZS0+ZHJhdyh0aGlzLCBkZXN0LCBzcmMsIHN0eWxlQ29sb3JTcGFjZSwg
b3AsIGJsZW5kTW9kZSwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIGltYWdl
LT5kcmF3KHRoaXMsIGRlc3QsIHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBk
ZXNjcmlwdGlvbik7CiAKICAgICBpZiAodXNlTG93UXVhbGl0eVNjYWxlKQogICAgICAgICBzZXRJ
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KHByZXZpb3VzSW50ZXJwb2xhdGlvblF1YWxpdHkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAppbmRleCA5YzVmNGRhMTk0NzdmZjQ1N2NmZWVlZTQ5YmZmZTc0MGMwODQxOWZjLi44ZWMyYzU5
MzBlMTcyMTliOGVhNGQ2ZWJlMTQ4NDhkZGVkNWFhOWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMjg3LDEyICsyODcs
MTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgc3Ryb2tlUmVjdChjb25z
dCBGbG9hdFJlY3QmLCBmbG9hdCBsaW5lV2lkdGgpOwogCi0gICAgICAgIHZvaWQgZHJhd0ltYWdl
KEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiwgQ29t
cG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKLSAgICAgICAgdm9pZCBk
cmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgSW50UmVj
dCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgUmVzcGVjdEltYWdl
T3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgYm9vbCB1c2VM
b3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQsIGNv
bnN0IEludFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNl
T3ZlciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbik7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIGNvbnN0IEludFBvaW50JiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0
aW9uRGVzY3JpcHRpb24oKSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEludFJlY3QmLCBDb21wb3NpdGVPcGVyYXRvciA9
IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdl
T3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNl
KTsKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoSW1hZ2UqLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgY29uc3QgSW50UG9pbnQmIGRlc3RQb2ludCwgY29uc3QgSW50UmVjdCYgc3JjUmVjdCwg
Q29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAgICAgICAgIHZv
aWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QpOwotICAgICAgICB2b2lkIGRyYXdJbWFnZShJbWFnZSosIENvbG9y
U3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zl
ciwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7Ci0gICAgICAgIHZvaWQgZHJh
d0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVj
dCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtID0gRG9Ob3RSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSk7CisgICAgICAg
IHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24gPSBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUgPSBmYWxzZSk7CisgICAgICAgIHZvaWQgZHJhd0ltYWdlKEltYWdlKiwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIGJvb2wgdXNlTG93
UXVhbGl0eVNjYWxlID0gZmFsc2UpOwogICAgICAgICAKICAgICAgICAgdm9pZCBkcmF3VGlsZWRJ
bWFnZShJbWFnZSosIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBJbnRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNyY1BvaW50LCBjb25zdCBJbnRTaXplJiB0aWxlU2l6
ZSwKICAgICAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlciwg
Ym9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxzZSwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9y
bWFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAppbmRleCA4
NDg0MTQ3ZjZhMzk2MWZjY2Y3ZmRlNTEyZTViNzRmNWZmMzlkZGM4Li4yYmUwZWJhM2FkZTc3ZWZk
YWRkY2I0MGUwOTUwZjNkMjZjOTQ4YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2UuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgSW1hZ2U6OmZpbGxXaXRoU29s
aWRDb2xvcihHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwK
ICAgICBjdHh0LT5zZXRDb21wb3NpdGVPcGVyYXRpb24ocHJldmlvdXNPcGVyYXRvcik7CiB9CiAK
LXZvaWQgSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHgsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uRW51bSkKK3ZvaWQgSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBj
dHgsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9k
ZSBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBkcmF3KGN0
eCwgZHN0UmVjdCwgc3JjUmVjdCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCmluZGV4IGI0NDZiZTdmYWRj
ZGFmYTYyNzMyOTM5MDZlMzE1NjYyZTA0ZTQxZDUuLmU3MDZiNWM5OTljN2E1NzQ2YjkyOGY0Yzc1
ZTg1MTExNzEyMDlhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2Uu
aApAQCAtMTk3LDcgKzE5Nyw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0Zy
YW1lTWF0Y2hpbmdTb3VyY2VTaXplKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgSW50U2l6ZSYgc3JjU2l6ZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3Bh
Y2UsIENvbXBvc2l0ZU9wZXJhdG9yKSB7IH0KICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkcmF3
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0
b3IsIEJsZW5kTW9kZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwg
UmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtKTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBC
bGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik7CiAgICAgdm9pZCBkcmF3VGls
ZWQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFBvaW50JiBzcmNQb2ludCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2l6ZSwgQ29sb3JTcGFjZSBz
dHlsZUNvbG9yU3BhY2UsCiAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9yICwgQmxlbmRNb2RlKTsK
ICAgICB2b2lkIGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRTaXplJiB0aWxlU2Nh
bGVGYWN0b3IsIFRpbGVSdWxlIGhSdWxlLCBUaWxlUnVsZSB2UnVsZSwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlT3JpZW50YXRpb24uaAppbmRleCBiMTg0ZGMyZjcwYTdi
NjJmY2QxNDE3ZDhjZTZiOTU0ZTViNjE3NzEyLi4wNDM0NGUyNzkzOTY0MjMyMzYxN2JhN2JlOWY2
NTJjYTM1ZTUwYTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZU9yaWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VPcmllbnRhdGlvbi5oCkBAIC01Miw2ICs1MiwzMyBAQCBlbnVtIFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uRW51bSB7CiAgICAgUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSAxCiB9Owog
CitzdHJ1Y3QgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIHsKKyAgICBJbWFnZU9yaWVudGF0
aW9uRGVzY3JpcHRpb24oUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uLAorICAgICAgICBJbWFnZU9yaWVudGF0aW9uRW51bSBvcmllbnRhdGlv
bikKKyAgICAgICAgOiBtX3Jlc3BlY3RPcmllbnRhdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbikKKyAgICAgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQorICAgIHsKKyAg
ICB9CisKKyAgICBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKQorICAgICAgICA6IG1fcmVz
cGVjdE9yaWVudGF0aW9uKERvTm90UmVzcGVjdEltYWdlT3JpZW50YXRpb24pCisgICAgICAgICwg
bV9vcmllbnRhdGlvbihEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikKKyAgICB7CisgICAgfQorCisg
ICAgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51
bSBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICAgICAgOiBtX3Jlc3BlY3RPcmll
bnRhdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICAgICAgLCBtX29yaWVu
dGF0aW9uKERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKQorICAgIHsKKyAgICB9CisKKyAgICBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gcmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSB7IHJldHVy
biBtX3Jlc3BlY3RPcmllbnRhdGlvbjsgfQorICAgIEltYWdlT3JpZW50YXRpb25FbnVtIGltYWdl
T3JpZW50YXRpb24oKSB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CisKKyAgICBSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbkVudW0gbV9yZXNwZWN0T3JpZW50YXRpb247CisgICAgSW1hZ2VPcmllbnRh
dGlvbkVudW0gbV9vcmllbnRhdGlvbjsKK307CisKIGNsYXNzIEltYWdlT3JpZW50YXRpb24gewog
cHVibGljOgogICAgIEltYWdlT3JpZW50YXRpb24oSW1hZ2VPcmllbnRhdGlvbkVudW0gb3JpZW50
YXRpb24gPSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCBmN2I0OTA5NzM2YTMyZWExMzE3
NTJkZGI1YzI4ZmJiODc3MDk0MWM5Li5mODY1MjAwOTFlODVhZDNiYWU0OGQ5NmY3ZmM5NGI4NjQ5
MDZhYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuY3BwCkBAIC05OSwxOCArOTksMTggQEAgYm9vbCBJbWFnZVNvdXJjZTo6aXNTaXplQXZh
aWxhYmxlKCkKICAgICByZXR1cm4gbV9kZWNvZGVyICYmIG1fZGVjb2Rlci0+aXNTaXplQXZhaWxh
YmxlKCk7CiB9CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OnNpemUoUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QKK0ludFNpemUgSW1hZ2VT
b3VyY2U6OnNpemUoSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKSBjb25z
dAogewotICAgIHJldHVybiBmcmFtZVNpemVBdEluZGV4KDAsIHNob3VsZFJlc3BlY3RPcmllbnRh
dGlvbik7CisgICAgcmV0dXJuIGZyYW1lU2l6ZUF0SW5kZXgoMCwgZGVzY3JpcHRpb24pOwogfQog
Ci1JbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRleCwgUmVz
cGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RPcmllbnRhdGlvbikgY29uc3QK
K0ludFNpemUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBJbWFn
ZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pIGNvbnN0CiB7CiAgICAgaWYgKCFt
X2RlY29kZXIpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAKICAgICBJbnRTaXplIHNpemUg
PSBtX2RlY29kZXItPmZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgpOwotICAgIGlmICgoc2hvdWxkUmVz
cGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSAmJiBtX2RlY29kZXIt
Pm9yaWVudGF0aW9uKCkudXNlc1dpZHRoQXNIZWlnaHQoKSkKKyAgICBpZiAoKGRlc2NyaXB0aW9u
LnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgPT0gUmVzcGVjdEltYWdlT3JpZW50YXRpb24pICYm
IG1fZGVjb2Rlci0+b3JpZW50YXRpb24oKS51c2VzV2lkdGhBc0hlaWdodCgpKQogICAgICAgICBy
ZXR1cm4gSW50U2l6ZShzaXplLmhlaWdodCgpLCBzaXplLndpZHRoKCkpOwogCiAgICAgcmV0dXJu
IHNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2Uu
aAppbmRleCAzMWEyZTE5ZjljNTIwZTBjOTRiYWNkNzg0YTlmMjdmMzU0ZWQ5MGE4Li5hNDk2ZjZl
YjJhZDc2Mzg1ZmIyNTkwM2MzODFlNDVmNWFiMGVlYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTEzMiw4ICsxMzIsOCBAQCBwdWJs
aWM6CiAgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Q7CiAKICAgICBib29sIGlz
U2l6ZUF2YWlsYWJsZSgpOwotICAgIEludFNpemUgc2l6ZShSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW0gPSBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSBjb25zdDsKLSAgICBJbnRTaXpl
IGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gPSBE
b05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSBjb25zdDsKKyAgICBJbnRTaXplIHNpemUoSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkp
IGNvbnN0OworICAgIEludFNpemUgZnJhbWVTaXplQXRJbmRleChzaXplX3QsIEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKSBjb25zdDsK
IAogICAgIGJvb2wgZ2V0SG90U3BvdChJbnRQb2ludCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdlQmxhY2tCZXJy
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0ltYWdl
QmxhY2tCZXJyeS5jcHAKaW5kZXggMGY0NTc4NjZiMjNjMGQ1ZWFmODI1MWFjM2ZkZjBhZTU1NWJk
ZjkwYS4uZDA5Njg3ODAxOTRjOGUyNjdhNDA5NjMyMmU1MmI4ODE2ZGFlNGZjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9JbWFnZUJsYWNr
QmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvSW1hZ2VCbGFja0JlcnJ5LmNwcApAQCAtMTIxLDEwICsxMjEsOSBAQCB2b2lkIEJpdG1hcElt
YWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkKIAogdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCiB7Ci0gICAgZHJhdyhjb250ZXh0LCBk
c3RSZWN0LCBzcmNSZWN0LCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVuZE1vZGUsIERvTm90UmVz
cGVjdEltYWdlT3JpZW50YXRpb24pOwotfQorICAgIGRyYXcoY29udGV4dCwgZHN0UmVjdCwgc3Jj
UmVjdCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24oKSk7CiAKLXZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSwgUmVzcGVjdElt
YWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQordm9pZCBC
aXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVz
Y3JpcHRpb24pCiB7CiAgICAgc3RhcnRBbmltYXRpb24oKTsKIApAQCAtMTQzLDkgKzE0Miw5IEBA
IHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0CiAjZW5kaWYKIAogICAgIC8vIHVzZSBzaW1pbGFyIG9y
aWVudGF0aW9uIGNvZGUgYXMgSW1hZ2VTa2lhCi0gICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRh
dGlvbiA9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOwotICAgIGlmIChzaG91bGRSZXNwZWN0SW1h
Z2VPcmllbnRhdGlvbiA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKLSAgICAgICAgb3JpZW50
YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CisgICAgSW1h
Z2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKKyAgICBpZiAoZGVzY3JpcHRpb24ucmVzcGVjdElt
YWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICAgICAgb3Jp
ZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7ICAKIAog
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc2F2ZUNvbnRleHQoKmNvbnRleHQsIGZhbHNl
KTsKICAgICBpZiAob3JpZW50YXRpb24gIT0gRGVmYXVsdEltYWdlT3JpZW50YXRpb24pIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0JpdG1hcElt
YWdlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0
bWFwSW1hZ2VDYWlyby5jcHAKaW5kZXggNTYwNzczMThiNTZmY2IyYzAyZjQwMDk4OGE3YTI0ZTRh
ZWFhODQyOS4uODcwOGQxMmUwZTk5YmEwNzRiMDc1OTU2N2RlZmRjYzcwYTM1MzUzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0bWFwSW1hZ2VD
YWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQml0
bWFwSW1hZ2VDYWlyby5jcHAKQEAgLTY2LDExICs2NiwxMSBAQCBCaXRtYXBJbWFnZTo6Qml0bWFw
SW1hZ2UoUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG5hdGl2ZUltYWdlLCBJbWFnZU9ic2Vy
dmVyKgogCiB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUp
CiB7Ci0gICAgZHJhdyhjb250ZXh0LCBkc3QsIHNyYywgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxl
bmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKKyAgICBkcmF3KGNvbnRleHQs
IGRzdCwgc3JjLCBzdHlsZUNvbG9yU3BhY2UsIG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbigpKTsKIH0KIAogdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0LCBjb25zdCBGbG9hdFJlY3QmIHNy
YywgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLAotICAg
IEJsZW5kTW9kZSBibGVuZE1vZGUsIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRS
ZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikKKyAgICBCbGVuZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24pCiB7CiAgICAgaWYgKCFkc3Qud2lkdGgo
KSB8fCAhZHN0LmhlaWdodCgpIHx8ICFzcmMud2lkdGgoKSB8fCAhc3JjLmhlaWdodCgpKQogICAg
ICAgICByZXR1cm47CkBAIC0xMDEsOCArMTAxLDggQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0LCBjb25zdCBGbG8K
ICAgICBGbG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0KHNyYyk7CiAjZW5kaWYKIAotICAgIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKLSAgICBp
ZiAoc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPT0gUmVzcGVjdEltYWdlT3JpZW50YXRp
b24pCisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKKyAgICBpZiAoZGVzY3JpcHRp
b24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbikK
ICAgICAgICAgb3JpZW50YXRpb24gPSBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChtX2N1cnJlbnRG
cmFtZSk7CiAKICAgICBGbG9hdFJlY3QgZHN0UmVjdCA9IGRzdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5j
cHAKaW5kZXggZDY0ZGZkMzM1ZDBhZmE4YWEwNDYwN2JkMmRkNWM4MTMwYjFlNTRhNC4uYTIxZDRh
MDY4ZjQxNmFiODA2ZWZlYjkwNjlkOTA5MzU5MzQ5ZmQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5j
cHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29u
dGV4dCogZGVzdGluYXRpb25Db250ZXh0LCBDb2xvclNwYWNlIHN0eWxlQ29sbwogewogICAgIEJh
Y2tpbmdTdG9yZUNvcHkgY29weU1vZGUgPSBkZXN0aW5hdGlvbkNvbnRleHQgPT0gY29udGV4dCgp
ID8gQ29weUJhY2tpbmdTdG9yZSA6IERvbnRDb3B5QmFja2luZ1N0b3JlOwogICAgIFJlZlB0cjxJ
bWFnZT4gaW1hZ2UgPSBjb3B5SW1hZ2UoY29weU1vZGUpOwotICAgIGRlc3RpbmF0aW9uQ29udGV4
dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNS
ZWN0LCBvcCwgYmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dR
dWFsaXR5U2NhbGUpOworICAgIGRlc3RpbmF0aW9uQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdl
dCgpLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KIAog
dm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRy
YW5zZm9ybSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0JpdG1hcEltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
Qml0bWFwSW1hZ2VDRy5jcHAKaW5kZXggY2QwMzdhOThhNDM0MTdhYjZmY2JiY2VjODRlOGU5NGZl
ZTcwNzRkOS4uOWNkYzZmYTM4YTg1MWY5MTc2ODQxOTE3MGZkMjk4YWY0NTgyY2QwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VDRy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQml0bWFwSW1hZ2VD
Ry5jcHAKQEAgLTE2MywxMCArMTYzLDEwIEBAIFJldGFpblB0cjxDRkFycmF5UmVmPiBCaXRtYXBJ
bWFnZTo6Z2V0Q0dJbWFnZUFycmF5KCkKIAogdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQqIGN0eCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBv
cCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKLSAgICBkcmF3KGN0eCwgZHN0UmVjdCwgc3JjUmVj
dCwgc3R5bGVDb2xvclNwYWNlLCBvcCwgYmxlbmRNb2RlLCBEb05vdFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKTsKKyAgICBkcmF3KGN0eCwgZHN0UmVjdCwgc3JjUmVjdCwgc3R5bGVDb2xvclNwYWNl
LCBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiB9CiAKLXZv
aWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5k
TW9kZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKQordm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29sb3JT
cGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVu
ZE1vZGUgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24p
CiB7CiAgICAgc3RhcnRBbmltYXRpb24oKTsKIApAQCAtMTgwLDkgKzE4MCw5IEBAIHZvaWQgQml0
bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGCiAgICAgfQogCiAgICAgRmxvYXRTaXplIHNlbGZTaXplID0gY3VycmVu
dEZyYW1lU2l6ZSgpOwotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBEZWZhdWx0
SW1hZ2VPcmllbnRhdGlvbjsKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uOwogCi0g
ICAgaWYgKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKQorICAgIGlmIChkZXNjcmlwdGlvbi5yZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpID09
IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQogICAgICAgICBvcmllbnRhdGlvbiA9IGZyYW1lT3Jp
ZW50YXRpb25BdEluZGV4KG1fY3VycmVudEZyYW1lKTsKIAogICAgIGN0eHQtPmRyYXdOYXRpdmVJ
bWFnZShpbWFnZSwgc2VsZlNpemUsIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3QsIHNyY1JlY3Qs
IGNvbXBvc2l0ZU9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKaW5kZXggYWFh
MmZkZmNkYzdjMTc2YzUwNDRhMGU1MjhiY2Y1MTgxOTI3ZmVmZi4uYWE5NTU4ODVhNTc5NjA0YzZk
MjQ5NjA0YjJmYTQzN2JlNDE5NjE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VTb3VyY2VDRy5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCBz
dGF0aWMgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbkZyb21Qcm9wZXJ0aWVzKENGRGljdGlv
bmFyeVJlZiBpbWFnZVByb3BlcnRpZQogICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpmcm9t
RVhJRlZhbHVlKGV4aWZWYWx1ZSk7CiB9CiAKLUludFNpemUgSW1hZ2VTb3VyY2U6OmZyYW1lU2l6
ZUF0SW5kZXgoc2l6ZV90IGluZGV4LCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxk
UmVzcGVjdE9yaWVudGF0aW9uKSBjb25zdAorSW50U2l6ZSBJbWFnZVNvdXJjZTo6ZnJhbWVTaXpl
QXRJbmRleChzaXplX3QgaW5kZXgsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlw
dGlvbikgY29uc3QKIHsKICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBwcm9wZXJ0aWVz
ID0gYWRvcHRDRihDR0ltYWdlU291cmNlQ29weVByb3BlcnRpZXNBdEluZGV4KG1fZGVjb2Rlciwg
aW5kZXgsIGltYWdlU291cmNlT3B0aW9ucyhTa2lwTWV0YWRhdGEpKSk7CiAKQEAgLTIxMCw3ICsy
MTAsNyBAQCBJbnRTaXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpemVfdCBpbmRl
eCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25FbnVtCiAgICAgaWYgKG51bSkKICAgICAgICAgQ0ZO
dW1iZXJHZXRWYWx1ZShudW0sIGtDRk51bWJlckludFR5cGUsICZoKTsKIAotICAgIGlmICgoc2hv
dWxkUmVzcGVjdE9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSAmJiBvcmll
bnRhdGlvbkZyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMuZ2V0KCkpLnVzZXNXaWR0aEFzSGVpZ2h0
KCkpCisgICAgaWYgKChkZXNjcmlwdGlvbi5yZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpID09IFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKSAmJiBvcmllbnRhdGlvbkZyb21Qcm9wZXJ0aWVzKHByb3Bl
cnRpZXMuZ2V0KCkpLnVzZXNXaWR0aEFzSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiBJbnRTaXpl
KGgsIHcpOwogCiAgICAgcmV0dXJuIEludFNpemUodywgaCk7CkBAIC0yMjUsOSArMjI1LDkgQEAg
SW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBp
bmRleCkgY29uc3QKICAgICByZXR1cm4gb3JpZW50YXRpb25Gcm9tUHJvcGVydGllcyhwcm9wZXJ0
aWVzLmdldCgpKTsKIH0KIAotSW50U2l6ZSBJbWFnZVNvdXJjZTo6c2l6ZShSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdE9yaWVudGF0aW9uKSBjb25zdAorSW50U2l6ZSBJ
bWFnZVNvdXJjZTo6c2l6ZShJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gZGVzY3JpcHRpb24p
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lU2l6ZUF0SW5kZXgoMCwgc2hvdWxkUmVzcGVjdE9y
aWVudGF0aW9uKTsKKyAgICByZXR1cm4gZnJhbWVTaXplQXRJbmRleCgwLCBkZXNjcmlwdGlvbik7
CiB9CiAKIGJvb2wgSW1hZ2VTb3VyY2U6OmdldEhvdFNwb3QoSW50UG9pbnQmIGhvdFNwb3QpIGNv
bnN0CkBAIC0zODQsNyArMzg0LDcgQEAgYm9vbCBJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0
SW5kZXgoc2l6ZV90IGluZGV4KQogCiB1bnNpZ25lZCBJbWFnZVNvdXJjZTo6ZnJhbWVCeXRlc0F0
SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIEludFNpemUgZnJhbWVTaXplID0gZnJh
bWVTaXplQXRJbmRleChpbmRleCwgUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOworICAgIEludFNp
emUgZnJhbWVTaXplID0gZnJhbWVTaXplQXRJbmRleChpbmRleCwgSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uKFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKSk7CiAgICAgcmV0dXJuIGZyYW1lU2l6
ZS53aWR0aCgpICogZnJhbWVTaXplLmhlaWdodCgpICogNDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDU0MmRjZmVk
NDlhOTFiMDQ2MjY2OGE5NTk5ZGU1NGE1OTRkODcyNjQuLmQ5ZDRiYTZlMzA5OTA3MThmNDg0OTBi
ZjMzZjA4Y2I4YmI5ZmUyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgSW50UgogICAgIH0KIAogICAgIGNvbnRleHQtPmRyYXdJbWFnZShyZWludGVycHJldF9j
YXN0PEltYWdlKj4oZ3N0SW1hZ2UtPmltYWdlKCkuZ2V0KCkpLCBDb2xvclNwYWNlU1JHQiwKLSAg
ICAgICAgcmVjdCwgZ3N0SW1hZ2UtPnJlY3QoKSwgQ29tcG9zaXRlQ29weSwgRG9Ob3RSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbiwgZmFsc2UpOworICAgICAgICByZWN0LCBnc3RJbWFnZS0+cmVjdCgp
LCBDb21wb3NpdGVDb3B5LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgZmFsc2UpOwog
ICAgIGdfbXV0ZXhfdW5sb2NrKG1fYnVmZmVyTXV0ZXgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZUJ1ZmZlclF0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCmluZGV4IDVh
NjEzNmNjMDI5YTI0ZTJiMDUwN2NhZWJkNWFhNTQ0NzAxZDUzODEuLjZiMTNhMjY2NDJhZDVkNTM2
MmYzOWU1YTU4OGRhMzc3ZmIyYjkwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlQnVmZmVyUXQuY3BwCkBAIC0xMzYsOSArMTM2LDkgQEAg
dm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBDb2xv
clNwYWNlIHN0eWxlQ29sb3JTcGFjZSwKICAgICBpZiAoZGVzdENvbnRleHQgPT0gY29udGV4dCgp
KSB7CiAgICAgICAgIC8vIFdlJ3JlIGRyYXdpbmcgaW50byBvdXIgb3duIGJ1ZmZlci4gIEluIG9y
ZGVyIGZvciB0aGlzIHRvIHdvcmssIHdlIG5lZWQgdG8gY29weSB0aGUgc291cmNlIGJ1ZmZlciBm
aXJzdC4KICAgICAgICAgUmVmUHRyPEltYWdlPiBjb3B5ID0gY29weUltYWdlKENvcHlCYWNraW5n
U3RvcmUpOwotICAgICAgICBkZXN0Q29udGV4dC0+ZHJhd0ltYWdlKGNvcHkuZ2V0KCksIENvbG9y
U3BhY2VEZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBEb05vdFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgICAgICBkZXN0
Q29udGV4dC0+ZHJhd0ltYWdlKGNvcHkuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RS
ZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24o
KSwgdXNlTG93UXVhbGl0eVNjYWxlKTsKICAgICB9IGVsc2UKLSAgICAgICAgZGVzdENvbnRleHQt
PmRyYXdJbWFnZShtX2RhdGEubV9pbWFnZS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0UmVj
dCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSwgRG9Ob3RSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwg
dXNlTG93UXVhbGl0eVNjYWxlKTsKKyAgICAgICAgZGVzdENvbnRleHQtPmRyYXdJbWFnZShtX2Rh
dGEubV9pbWFnZS5nZXQoKSwgc3R5bGVDb2xvclNwYWNlLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3As
IGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlT
Y2FsZSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4
dCogZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luY2UvSW1hZ2VCdWZmZXJXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAppbmRleCBhMTM5
YmM5N2JjM2IxYTU1YWNjOTNhZDAwMDZhYzdhYTJiNTBjOTUwLi5jY2FiM2ViYmQ0NzFjM2ZhZDJm
YmUyOTAyNDg0ZDU4ZjI4NDg5OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9JbWFnZUJ1ZmZlcldpbkNFLmNwcApAQCAtMTE0LDcg
KzExNCw3IEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uCiAgICAgICAgICAgICAgICAgICAgICAg
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlLCBib29sIHVzZUxvd1F1
YWxpdHlTY2FsZSkKIHsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlQ29weSA9IGNvcHlJbWFnZShD
b3B5QmFja2luZ1N0b3JlKTsKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2VDb3B5LmdldCgp
LCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwgYmxlbmRNb2RlLCBEb05v
dFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGUpOworICAgIGNvbnRl
eHQtPmRyYXdJbWFnZShpbWFnZUNvcHkuZ2V0KCksIHN0eWxlQ29sb3JTcGFjZSwgZGVzdFJlY3Qs
IHNyY1JlY3QsIG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCB1
c2VMb3dRdWFsaXR5U2NhbGUpOwogfQogCiB2b2lkIEltYWdlQnVmZmVyOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcAppbmRleCA4MGU5Y2E3MmU0YzhlNzYwOTAwYmM3YmIw
NzJjZWM1ODM0YTYxNWMzLi5mNzdiZjAyYjRmNzEyNjlkN2Y4MTRiZDAzN2Y3YTg4MWQ4ZDc0MGVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcApAQCAt
MzEsNyArMzEsNyBAQCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50
UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jOwogCiAgICAg
aWYgKG1fZHJhZ0ltYWdlKQotICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdl
KG1fZHJhZ0ltYWdlLT5pbWFnZSgpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShtX2RyYWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
KCkpOwogCiAgICAgaWYgKG1fZHJhZ0ltYWdlRWxlbWVudCkgewogICAgICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBtX2RyYWdJbWFnZUVsZW1lbnQtPmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsuY3BwCmluZGV4IDk4MDFiMTkwNDJiYzBjZGI1
NWM3NDM2M2VhZWQ2OWQwMWQyOTMwOGEuLmRmMjEzODk4Y2ZkNzMwOTcxZWUyYzlhNTU1MGZhMmJk
MWQ5YTVkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1h
Z2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnSW1hZ2VHdGsu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJh
Y3Rpb24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCBmcmFjdGlvbikKICAgICByZXR1cm4gaW1h
Z2U7CiB9CiAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGlt
YWdlLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJh
Z0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9u
KQogewogICAgIHJldHVybiBpbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKS5sZWFr
UmVmKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0lt
YWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpp
bmRleCBiMzk2NmE1NDQ1YzQ5YWUwMzBhZDZmNWMzMGY5ODk1YWFiOWM4ZWJmLi4xNDkzYWU2Mzg5
NjQ0MGM3MzY2MDZlMDc3ZGI2YjE3MjQ2Y2VkN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTc3LDE2ICs3NywxNiBAQCBSZXRhaW5QdHI8TlNJ
bWFnZT4gZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBpbWFn
ZSwgZmxvYXQgZAogICAgIHJldHVybiBkaXNzb2x2ZWRJbWFnZTsKIH0KICAgICAgICAgCi1SZXRh
aW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgUmVz
cGVjdEltYWdlT3JpZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQor
UmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2Us
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBkZXNjcmlwdGlvbikKIHsKICAgICBJbnRTaXpl
IHNpemUgPSBpbWFnZS0+c2l6ZSgpOwogCiAgICAgaWYgKGltYWdlLT5pc0JpdG1hcEltYWdlKCkp
IHsKLSAgICAgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IERlZmF1bHRJbWFnZU9y
aWVudGF0aW9uOworICAgICAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uOwogICAgICAg
ICBCaXRtYXBJbWFnZSogYml0bWFwSW1hZ2UgPSBzdGF0aWNfY2FzdDxCaXRtYXBJbWFnZSAqPihp
bWFnZSk7CiAgICAgICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9IGJpdG1h
cEltYWdlLT5zaXplUmVzcGVjdGluZ09yaWVudGF0aW9uKCk7CiAKLSAgICAgICAgaWYgKHNob3Vs
ZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID09IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKQorICAg
ICAgICBpZiAoZGVzY3JpcHRpb24ucmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSA9PSBSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbikKICAgICAgICAgICAgIG9yaWVudGF0aW9uID0gYml0bWFwSW1hZ2Ut
Pm9yaWVudGF0aW9uRm9yQ3VycmVudEZyYW1lKCk7CiAKICAgICAgICAgaWYgKG9yaWVudGF0aW9u
ICE9IERlZmF1bHRJbWFnZU9yaWVudGF0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9DbGlwYm9hcmRRdC5jcHAKaW5kZXggZmE0ZGM5OWU1MTYxODMzYjk2ZTQ4YTdhZjI1MTgwYzll
ZmNlM2QzZC4uZDg0NGMzZmRlYWZiZDc4MWE1MjNjNDk4YjcwNmI5ZTlkNjEzYzY2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcApAQCAtNDUsNyArNDUsNyBA
QCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0
aW9uKSBjb25zdAogICAgIGxvY2F0aW9uID0gbV9kcmFnTG9jOwogCiAgICAgaWYgKG1fZHJhZ0lt
YWdlKQotICAgICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdl
LT5pbWFnZSgpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShtX2Ry
YWdJbWFnZS0+aW1hZ2UoKSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogCiAgICAg
aWYgKG1fZHJhZ0ltYWdlRWxlbWVudCkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBt
X2RyYWdJbWFnZUVsZW1lbnQtPmRvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9EcmFnSW1hZ2VRdC5jcHAKaW5kZXggZDM4OGYzOWRjMjUzODY4N2NhZjMwN2ZkZGNjNmM1MTY5
M2E0MDk5OC4uODg5N2NmZjZkZDVjMGFlOGRkYzc3YjQ5YjBjNTE0MjM3ZGI3YWNhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcApAQCAtNjAsNyArNjAsNyBA
QCBEcmFnSW1hZ2VSZWYgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKERyYWdJbWFnZVJlZiBp
bWFnZSwgZmxvYXQpCiAgICAgcmV0dXJuIGltYWdlOwogfQogCi1EcmFnSW1hZ2VSZWYgY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKEltYWdlKiBpbWFnZSwgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1hZ2Us
IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBpZiAoIWltYWdlIHx8ICFpbWFn
ZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwCmluZGV4IDVjNjVjMWZk
OTk1MWY0N2JjMDE3YjljYjY4YTRlNzJjYTQwZDQxMDAuLmUxMmE5OTM1MjcyYWJjNjczOWQ1Yjg1
ODEwZjg2MjAzYzEwNmMzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9DbGlwYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlw
Ym9hcmRXaW4uY3BwCkBAIC00NSw3ICs0NSw3IEBAIERyYWdJbWFnZVJlZiBDbGlwYm9hcmQ6OmNy
ZWF0ZURyYWdJbWFnZShJbnRQb2ludCYgZHJhZ0xvY2F0aW9uKSBjb25zdAogICAgIEhCSVRNQVAg
cmVzdWx0ID0gMDsKICAgICBpZiAobV9kcmFnSW1hZ2UpIHsKICNpZiBVU0UoQ0FJUk8pIHx8IFVT
RShDRykKLSAgICAgICAgcmVzdWx0ID0gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJhZ0lt
YWdlLT5pbWFnZSgpKTsgICAgICAgIAorICAgICAgICByZXN1bHQgPSBjcmVhdGVEcmFnSW1hZ2VG
cm9tSW1hZ2UobV9kcmFnSW1hZ2UtPmltYWdlKCksIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlv
bigpKTsgICAgICAgIAogICAgICAgICBkcmFnTG9jYXRpb24gPSBtX2RyYWdMb2M7CiAjZWxzZQog
ICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0RyYWdJbWFnZUNHV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9EcmFnSW1hZ2VDR1dpbi5jcHAKaW5kZXggOTMwMjViN2Y5NTBjOTcwMjc3MjdkMzIwMjcyMWQ3
MTRhZDBmZjlhNi4uODYyNjZmOTAwYTFjOTAwZjFlODE0YzBiMTU2ZWY1YWViYjg4NTQxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNHV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwCkBAIC0x
MjAsNyArMTIwLDcgQEAgZXhpdDoKICAgICByZXR1cm4gaGJtcDsKIH0KICAgICAKLURyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltZywgUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb25FbnVtKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFn
ZSogaW1nLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pCiB7CiAgICAgSEJJVE1BUCBoYm1w
ID0gMDsKICAgICBIV25kREMgZGMoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0RyYWdJbWFnZUNhaXJvV2luLmNwcAppbmRleCA2ODFjY2ZlN2NjMTI2MTMzYWZlZDJmM2Nh
ZjgyNzMxNWRlYjQ2NjI4Li44MDM3NDg2YjU0MzViYTMxNWEyNzRlYWZmNDM2MzVjYTllMGY1NTdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9X
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dp
bi5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBleGl0OgogICAgIHJldHVybiBoYm1wOwogfQogICAg
IAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSogaW1nLCBSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0pCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRnJv
bUltYWdlKEltYWdlKiBpbWcsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikKIHsKICAgICBI
QklUTUFQIGhibXAgPSAwOwogICAgIEhEQyBkYyA9IEdldERDKDApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggMDJhMWZmNzM4
NjUzOWEyZDAwYTA4OTE2ZjE3NWI5ZTJiNDk5YmE2My4uMDZjMDMzZGMzMGVjNjIzZTg5OGMyMzAx
ZGY5YTAwNmUxMDY0ODI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6cGFpbnRTbmFwc2hvdEltYWdlKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGlu
ZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgYWxpZ25l
ZFJlY3Quc2l6ZSgpKTsKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlKCktPmNv
bG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKKyAgICBjb250ZXh0
LT5kcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIENv
bXBvc2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCiB2b2lk
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludENvbnRlbnRzKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAppbmRleCA2OTg4OTRiYjk4YzVjZjg1NWFmOTRhNzhkNGViYjE4NzQ4
ZWVjMDNhLi41ZmEyYzdmZDQ5NWU5NzNhNzRjMzU3YWU1MWM1YmVlYmI3NGI3NjY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTM1Myw3ICszNTMsNyBAQCB2
b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICAgICAgICAgIGlmIChjZW50ZXJZIDwgMCkK
ICAgICAgICAgICAgICAgICAgICAgY2VudGVyWSA9IDA7CiAgICAgICAgICAgICAgICAgaW1hZ2VP
ZmZzZXQgPSBMYXlvdXRTaXplKGxlZnRCb3JkZXIgKyBsZWZ0UGFkICsgY2VudGVyWCArIGJvcmRl
cldpZHRoLCB0b3BCb3JkZXIgKyB0b3BQYWQgKyBjZW50ZXJZICsgYm9yZGVyV2lkdGgpOwotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29s
b3JTcGFjZSgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBp
bWFnZU9mZnNldCwgaW1hZ2VTaXplKSksIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFn
ZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0
KExheW91dFJlY3QocGFpbnRPZmZzZXQgKyBpbWFnZU9mZnNldCwgaW1hZ2VTaXplKSksIENvbXBv
c2l0ZVNvdXJjZU92ZXIsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgZXJyb3JQaWN0dXJlRHJhd24g
PSB0cnVlOwogICAgICAgICAgICAgfQogCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBSZW5kZXJJ
bWFnZTo6cGFpbnRJbnRvUmVjdChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91
dFJlY3QmIHJlY3QKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IGlt
YWdlRWx0ID8gaW1hZ2VFbHQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVTb3VyY2VP
dmVyOwogICAgIEltYWdlKiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoKS5nZXQoKTsK
ICAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHko
Y29udGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQt
PmRyYXdJbWFnZShtX2ltYWdlUmVzb3VyY2UtPmltYWdlKGFsaWduZWRSZWN0LndpZHRoKCksIGFs
aWduZWRSZWN0LmhlaWdodCgpKS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVk
UmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCks
IHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9pbWFnZVJl
c291cmNlLT5pbWFnZShhbGlnbmVkUmVjdC53aWR0aCgpLCBhbGlnbmVkUmVjdC5oZWlnaHQoKSku
Z2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIGNvbXBvc2l0ZU9wZXJh
dG9yLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb24oKSksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKIH0KIAogYm9vbCBSZW5kZXJJbWFnZTo6
Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKEJhY2tncm91bmRCbGVlZEF2b2lk
YW5jZSBibGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCopIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCAw
NzU5MTBhYmU5ZDAzNDY3MzlkNjk5ZTkxM2ZiMzNmMThkZGZhMTIzLi41Nzg5MWZlNDAxYWY1OTRl
Yjc3YjdiZjVhMTQ1OGJkMjBiMmUxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCB2
b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludFNuYXBzaG90KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQbwogICAgICAgICByZXR1cm47CiAKICAgICBib29sIHVzZUxv
d1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2Us
IGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwotICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFn
ZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zl
ciwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcp
OworICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBh
bGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3ZlciwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpLCB1c2VMb3dRdWFsaXR5U2NhbGlu
Zyk7CiB9CiAKIEN1cnNvckRpcmVjdGl2ZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6Z2V0Q3Vy
c29yKGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBvdmVycmlkZUN1cnNvcikgY29u
c3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>