<?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>131276</bug_id>
          
          <creation_ts>2014-04-06 03:49:47 -0700</creation_ts>
          <short_desc>Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.</short_desc>
          <delta_ts>2014-04-10 22:29:47 -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>WebCore Misc.</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>
          <dependson>131360</dependson>
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hyowon Kim">hw1008.kim</reporter>
          <assigned_to name="Hyowon Kim">hw1008.kim</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>peavo</cc>
    
    <cc>roger_fong</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997989</commentid>
    <comment_count>0</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-06 03:49:47 -0700</bug_when>
    <thetext>Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997992</commentid>
    <comment_count>1</comment_count>
      <attachid>228697</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-06 04:07:21 -0700</bug_when>
    <thetext>Created attachment 228697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997997</commentid>
    <comment_count>2</comment_count>
      <attachid>228699</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-06 07:51:45 -0700</bug_when>
    <thetext>Created attachment 228699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998139</commentid>
    <comment_count>3</comment_count>
      <attachid>228733</attachid>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-07 07:09:45 -0700</bug_when>
    <thetext>Created attachment 228733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998248</commentid>
    <comment_count>4</comment_count>
      <attachid>228733</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-07 14:52:05 -0700</bug_when>
    <thetext>Comment on attachment 228733
Patch

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

&gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.h:39
&gt; +    static std::unique_ptr&lt;GraphicsContext3DPrivate&gt; create(GraphicsContext3D*, HostWindow*);

Not sure we really need this any more. Caller can just use make_unique.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapper.h:119
&gt; +    static std::unique_ptr&lt;TextureMapper&gt; create(AccelerationMode newMode = SoftwareMode);

Argument name “newMode” should be deleted. Also, I don’t think we really need this. Caller can just use make_unique.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998254</commentid>
    <comment_count>5</comment_count>
      <attachid>228733</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-07 15:22:24 -0700</bug_when>
    <thetext>Comment on attachment 228733
Patch

Clearing flags on attachment: 228733

Committed r166889: &lt;http://trac.webkit.org/changeset/166889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998255</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-07 15:22:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998459</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-04-07 23:43:37 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 228733 [details])
&gt; Clearing flags on attachment: 228733
&gt; 
&gt; Committed r166889: &lt;http://trac.webkit.org/changeset/166889&gt;

It broke the WinCairo build - http://build.webkit.org/builders/WinCairo%20Release/builds/38167/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999501</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-04-10 04:35:34 -0700</bug_when>
    <thetext>It also broke video rendering in WebKitGTK https://bugs.webkit.org/show_bug.cgi?id=131488</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999503</commentid>
    <comment_count>9</comment_count>
      <attachid>228733</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-04-10 04:43:24 -0700</bug_when>
    <thetext>Comment on attachment 228733
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3DPrivate.cpp:-52
&gt; -

Why are you removing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999528</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-10 07:38:32 -0700</bug_when>
    <thetext>This patch sent us comically down the software path unconditionally, because it deleted the TextureMapperGL::create(...) static method, but didn&apos;t change the callsite. We&apos;ve fixed it in https://bugs.webkit.org/show_bug.cgi?id=131471.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999740</commentid>
    <comment_count>11</comment_count>
    <who name="Hyowon Kim">hw1008.kim</who>
    <bug_when>2014-04-10 18:24:59 -0700</bug_when>
    <thetext>I&apos;m sorry about the breakage on WinCairo and GTK.
And thanks for fixing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999795</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-10 22:29:47 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I&apos;m sorry about the breakage on WinCairo and GTK.
&gt; And thanks for fixing it.

No problem. The code is cleaner with your changes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228697</attachid>
            <date>2014-04-06 04:07:21 -0700</date>
            <delta_ts>2014-04-06 07:51:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131276-20140406200659.patch</filename>
            <type>text/plain</type>
            <size>40256</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlMTc1NGY4YzFmMjY2
NTBmOWM4OGNkYTc2ZDk5ZWRhNmU1OWE4MS4uOWI1YmI1MWViOTk5MWVlMmFlODA2ODEyYTQzOGQy
NjQ3OWFlY2UyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE0LTA0LTA2ICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5n
IHN0ZDo6dW5pcXVlX3B0ciBmb3Igb3BlbmdsLCB0ZXhtYXAsIHRyYW5zZm9ybXMgYW5kIGVmbCBp
biBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0
ciBpbiBjb2RlIHVuZGVyIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvCisgICAgICAgIG9wZW5n
bCwgdGV4bWFwLCB0cmFuc2Zvcm1zIGFuZCBlZmwgd2l0aCBzdGQ6OnVuaXF1ZV9wdHIuCisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VD
YWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFjZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdl
Q2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
OjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9l
ZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4
dGVuc2lvbnMzRE9wZW5HTEVTOjpzZXRFWFRDb250ZXh0TG9zdENhbGxiYWNrKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlT2ZmU2NyZWVuQ29udGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5T
dXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3Vy
ZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyOjpUZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6cGxh
dGZvcm1DcmVhdGVBY2NlbGVyYXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
OjpwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyOjpUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyOjpjcmVhdGUpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjpwdXJnZUdMUmVzb3VyY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUcmFuc2Zvcm1TdGF0ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OlRy
YW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2spOgorCiAyMDE0LTA0
LTA1ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1Mg
U2hhcGVzXSBSZW1vdmUgQ1NTQm94VHlwZSBtZW1iZXIgZnJvbSBCYXNpY1NoYXBlIGFuZCBDU1NC
YXNpY1NoYXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggMjkzZTQ3M2ExNDc4ODA0Y2I3NWVjNjFiMjRi
YWNiNzU3MzY4MDNlMi4uOTUwZmE4NWNhY2RmNGFiMjg4MWEzNjNlNzI1OGQxMzIwMmQ3NDM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTA0LTA2ICBIeW93b24gS2lt
ICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6
dW5pcXVlX3B0ciBmb3Igb3BlbmdsLCB0ZXhtYXAsIHRyYW5zZm9ybXMgYW5kIGVmbCBpbiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMxMjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93blB0ciBmb3IgVGV4dHVyZU1hcHBlciBp
biBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbCB3aXRoIHN0ZDo6dW5pcXVlX3B0ci4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
RWZsLmg6CisKIDIwMTQtMDQtMDMgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFtFRkxdIFNob3VsZCBmbHVzaCBhbmQgcmVuZGVyIGxheWVycyBhZnRlciB0
aGUgcm9vdCBsYXllciBpcyBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDVjMDY2NGUzNmFk
NGU4ODA1YjUzYzYyYjc1ODY2Y2U2MjY4MzVmNGQuLjQxNzk0M2Q2ZmE0YzE2NTc3ZDVjOTAwYjBk
ZWZhNTZkYjYzN2E5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0w
NC0wNiAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92
ZSB0byB1c2luZyBzdGQ6OnVuaXF1ZV9wdHIgZm9yIG9wZW5nbCwgdGV4bWFwLCB0cmFuc2Zvcm1z
IGFuZCBlZmwgaW4gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI3NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBPd25QdHIgZm9y
IFRleHR1cmVNYXBwZXIgaW4gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgd2l0aCBzdGQ6
OnVuaXF1ZV9wdHIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5oOgorCiAyMDE0LTA0LTAyICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbmlmeSBwcml2YXRlIGJyb3dzaW5nIHdpdGggc2Vzc2lvbnMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggYTIxZjkzZGNhOTVhOWIwZTIzYmVhMThjNGQ4OGRmMGJkNjZkM2IxZC4uM2Mx
Yzc3ZmVhNDI5N2Y1YjA5MzAxMzEzMTk2ZWUyZmZjYTQ3NzZjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE0LTA0LTA2ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6dW5pcXVlX3B0ciBmb3Igb3BlbmdsLCB0
ZXhtYXAsIHRyYW5zZm9ybXMgYW5kIGVmbCBpbiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjc2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1
c2VzIG9mIE93blB0ciBmb3IgVGV4dHVyZU1hcHBlciBpbiBMYXllclRyZWVIb3N0R3RrIHdpdGgg
c3RkOjp1bmlxdWVfcHRyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXll
clRyZWVIb3N0R3RrLmg6CisKIDIwMTQtMDQtMDQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBpT1MgQnVpbGQgZml4IGFmdGVyIHIx
NjY4MTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcAppbmRleCBlMmE0ZTZmZGYwZjgxYjg2OWVkZmVlZDQzZDJmMjJjZWJlYjhj
YTQ2Li40MThjYmI4NTU0NGMxYzRiYmJhNmY2MWNlZmYxNWM4YTYwYWM0MGMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
QEAgLTU4OCw4ICs1ODgsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6
ZU5ld0NvbnRleHQoKQogICAgIG1fY29udGV4dC0+dmlld3BvcnQoMCwgMCwgY2FudmFzU2l6ZS53
aWR0aCgpLCBjYW52YXNTaXplLmhlaWdodCgpKTsKICAgICBtX2NvbnRleHQtPnNjaXNzb3IoMCwg
MCwgY2FudmFzU2l6ZS53aWR0aCgpLCBjYW52YXNTaXplLmhlaWdodCgpKTsKIAotICAgIG1fY29u
dGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhhZG9wdFB0cihuZXcgV2ViR0xSZW5kZXJpbmdD
b250ZXh0TG9zdENhbGxiYWNrKHRoaXMpKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJvck1lc3Nh
Z2VDYWxsYmFjayhhZG9wdFB0cihuZXcgV2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdl
Q2FsbGJhY2sodGhpcykpKTsKKyAgICBtX2NvbnRleHQtPnNldENvbnRleHRMb3N0Q2FsbGJhY2so
c3RkOjptYWtlX3VuaXF1ZTxXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2s+KHRoaXMp
KTsKKyAgICBtX2NvbnRleHQtPnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6bWFrZV91bmlx
dWU8V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KHRoaXMpKTsKIH0K
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNldHVwRmxhZ3MoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXgg
YmUyNjAyMzNiNjQzNmE0NzY4ZmU4ODdmNTJkOWZjMDhhODNlYzk5MC4uYjFkYzJiMjU0MjU0NTEz
N2E2ZmExNjM2OWIyMTZjOTUyNjNjNmY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC00NzcsOCArNDc3LDggQEAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIH5FcnJvck1lc3NhZ2VDYWxsYmFjaygpIHsgfQogICAg
IH07CiAKLSAgICB2b2lkIHNldENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093blB0cjxDb250ZXh0
TG9zdENhbGxiYWNrPik7Ci0gICAgdm9pZCBzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhQYXNzT3du
UHRyPEVycm9yTWVzc2FnZUNhbGxiYWNrPik7CisgICAgdm9pZCBzZXRDb250ZXh0TG9zdENhbGxi
YWNrKHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TG9zdENhbGxiYWNrPik7CisgICAgdm9pZCBzZXRF
cnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+
KTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoQXR0
cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0gUmVuZGVyT2Zmc2NyZWVuKTsKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlRm9yQ3VycmVudEdM
Q29udGV4dCgpOwpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgcHJpdmF0ZToKICAgICBMaXN0SGFzaFNl
dDxHQzNEZW51bT4gbV9zeW50aGV0aWNFcnJvcnM7CiAKICAgICBmcmllbmQgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOwotICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+
IG1fcHJpdmF0ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
PiBtX3ByaXZhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dDNEQ2Fpcm8uY3BwCmluZGV4IGEyNjU3OGJjZTk5NzIyYjQ1MGU2MTlkOTQ3MzM1YTMx
M2Y4M2FmZGQuLmY0ODg4ODIzMjcyMjg4ODE1YWY3YjY5NmM2MjU4NmY1NDI1OGYwN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dDNEQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCkBAIC0zOCw4ICszOCw2IEBACiAjaW5jbHVk
ZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKICNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgogI2lu
Y2x1ZGUgPGNhaXJvLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKICNpZiBQTEFURk9STShXSU4pCiAjaW5jbHVkZSAiR0xTTEFORy9TaGFk
ZXJMYW5nLmgiCkBAIC0yNzIsMTEgKzI3MCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpw
YWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBpbnQgaW1hZwog
ICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0
Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQordm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9w
dHI8Q29udGV4dExvc3RDYWxsYmFjaz4pCiB7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKFBhc3NPd25QdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+
KQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1
bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGxiYWNrPikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmgKaW5kZXggNmU4
NjljMGYxYTZkODY1ZDlkZTgwNzViNDNmM2JjYTdiOTVhYzgyMi4uMDk0MWFjZjhmNDAzNzFmYmJh
ZTI3MzQyYjQ3ZjEwZmVlODg4OTc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMQ29udGV4dC5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVm
aW5lIEV2YXNHTENvbnRleHRfaAogCiAjaW5jbHVkZSA8RXZhc19HTC5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xTdXJmYWNlLmgKaW5kZXggMDRk
MTg3OGZmMzI3ZTU3MDAyZGRjZGViNjU1YzZlMGNjMzkxNWJlYi4uMGE4MmE1YmVlMGE4NTVlZjU3
ZDg3NDRmZDdiMzNjOGM1ZmUxOGJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFjZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5j
bHVkZSAiSW50U2l6ZS5oIgogCiAjaW5jbHVkZSA8RXZhc19HTC5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVm
bC5jcHAKaW5kZXggOTQ2MTgyNTRhZWUyOGRmZGE0OTQxNWI1NzI5NmIyNjRhZjliMDEwNS4uZGY3
YjcxYzlhYzVlNDhjYWU1NmRhZWRkMDdjMDg5NTdkM2E5MThjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RFZmwuY3BwCkBAIC0xOTcsMTIgKzE5NywxMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpp
c0dMRVMyQ29tcGxpYW50KCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25QdHI8Q29udGV4dExvc3RDYWxsYmFj
az4gY2FsbEJhY2spCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxi
YWNrKHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TG9zdENhbGxiYWNrPiBjYWxsQmFjaykKIHsKLSAg
ICBtX3ByaXZhdGUtPnNldENvbnRleHRMb3N0Q2FsbGJhY2soY2FsbEJhY2spOworICAgIG1fcHJp
dmF0ZS0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6Om1vdmUoY2FsbEJhY2spKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soUGFzc093blB0
cjxFcnJvck1lc3NhZ2VDYWxsYmFjaz4pIAordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJy
b3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGxiYWNrPikK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmNwcAppbmRleCA4MzY1MjI3OWMxNGQxNTZmNTBjYWFjOTcyNWFlMjc4NjY3YTg0OTdkLi5hYTBm
ODVmY2E1ZDI5ZGU0NDA0YzQ1NjI5NTY4YmExOTJhZWRkODY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlLmNwcApAQCAtMjYsMTIgKzI2LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+IEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBIb3N0V2luZG93
KiBob3N0V2luZG93KQorc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4g
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCiB7Ci0gICAgT3duUHRyPEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZT4gcGxhdGZvcm1MYXllciA9IGFkb3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGUoY29udGV4dCwgaG9zdFdpbmRvdykpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0NvbnRleHQzRFByaXZhdGU+IHBsYXRmb3JtTGF5ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4oY29udGV4dCwgaG9zdFdpbmRvdyk7CiAKICAgICBpZiAo
cGxhdGZvcm1MYXllciAmJiBwbGF0Zm9ybUxheWVyLT5pbml0aWFsaXplKCkpCi0gICAgICAgIHJl
dHVybiBwbGF0Zm9ybUxheWVyLnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIHBsYXRmb3JtTGF5
ZXI7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTEwNSw5ICsxMDUsOSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cmVsZWFzZVJlc291cmNlcygpCiAgICAgfQogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNz
T3duUHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxiYWNrPiBjYWxsQmFjaykK
K3ZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4gY2Fs
bEJhY2spCiB7Ci0gICAgbV9jb250ZXh0TG9zdENhbGxiYWNrID0gY2FsbEJhY2s7CisgICAgbV9j
b250ZXh0TG9zdENhbGxiYWNrID0gc3RkOjptb3ZlKGNhbGxCYWNrKTsKIH0KIAogUGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0M0QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCmluZGV4IGUw
ZWFmMDkzNmVkNWNmMDZkZGFjOTM5NTE0MTMxZTkzZmNiMWRmMjQuLjdjZWM1ZGIwYzViYzNkZmU0
YjIyY2RhYzFjMjIzZTQ4MDYzMzEwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgK
QEAgLTI4LDcgKzI4LDYgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAiR0xQbGF0Zm9ybUNvbnRleHQu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUKQEAgLTM3LDExICszNiwxMyBAQCBjbGFzcyBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGUKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4gY3JlYXRlKEdyYXBoaWNzQ29udGV4
dDNEKiwgSG9zdFdpbmRvdyopOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBIb3N0V2luZG93Kik7
CisKKyAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBIb3N0
V2luZG93Kik7CiAgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpOwogCiAgICAgUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3Q7Ci0g
ICAgdm9pZCBzZXRDb250ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0
M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+KTsKKyAgICB2b2lkIHNldENvbnRleHRMb3N0Q2FsbGJh
Y2soc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxiYWNr
Pik7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogICAgIHZpcnR1YWwgdm9pZCBwYWludFRv
VGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCkgb3ZlcnJpZGU7CiAjZW5kaWYKQEAgLTY2LDcgKzY3
LDYgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIHVuc2lnbmVkIFBlbmRpbmdTdXJmYWNlT3BlcmF0
aW9uOwogI2VuZGlmCiAKLSAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250
ZXh0M0QqLCBIb3N0V2luZG93Kik7CiAgICAgYm9vbCBpbml0aWFsaXplKCk7CiAgICAgdm9pZCBj
cmVhdGVHcmFwaGljc1N1cmZhY2UoKTsKICAgICBib29sIHByZXBhcmVCdWZmZXIoKSBjb25zdDsK
QEAgLTc0LDE1ICs3NCwxNSBAQCBwcml2YXRlOgogCiAgICAgR3JhcGhpY3NDb250ZXh0M0QqIG1f
Y29udGV4dDsKICAgICBIb3N0V2luZG93KiBtX2hvc3RXaW5kb3c7Ci0gICAgT3duUHRyPEdMUGxh
dGZvcm1Db250ZXh0PiBtX29mZlNjcmVlbkNvbnRleHQ7Ci0gICAgT3duUHRyPEdMUGxhdGZvcm1T
dXJmYWNlPiBtX29mZlNjcmVlblN1cmZhY2U7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZv
cm1Db250ZXh0PiBtX29mZlNjcmVlbkNvbnRleHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMUGxh
dGZvcm1TdXJmYWNlPiBtX29mZlNjcmVlblN1cmZhY2U7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCiAgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9zdXJmYWNlSGFuZGxlOwogICAgIFJlZlB0
cjxHcmFwaGljc1N1cmZhY2U+IG1fZ3JhcGhpY3NTdXJmYWNlOwogICAgIFJlZlB0cjxHcmFwaGlj
c1N1cmZhY2U+IG1fcHJldmlvdXNHcmFwaGljc1N1cmZhY2U7CiAgICAgUGVuZGluZ1N1cmZhY2VP
cGVyYXRpb24gbV9zdXJmYWNlT3BlcmF0aW9uIDogMzsKICNlbmRpZgotICAgIE93blB0cjxHcmFw
aGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4gbV9jb250ZXh0TG9zdENhbGxiYWNr
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxs
YmFjaz4gbV9jb250ZXh0TG9zdENhbGxiYWNrOwogICAgIExpc3RIYXNoU2V0PEdDM0RlbnVtPiBt
X3N5bnRoZXRpY0Vycm9yczsKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBJbnRSZWN0IG1fdGFy
Z2V0UmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCmluZGV4IDUzOTE4MjM1ZDJj
MDZmNjJiZjI4YTBjODBmZTRmYzUwYTVjNDNjYTguLjBkNTdjZTVjYzcxM2MzMTViOTgyMTIyODcy
YWRmMzlmNzcyMmY2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcApAQCAtMTg1
LDkgKzE4NSw5IEBAIGludCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6Z2V0R3JhcGhpY3NSZXNldFN0
YXR1c0FSQigpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEV4dGVuc2lvbnMzRE9wZW5H
TEVTOjpzZXRFWFRDb250ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0
M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IGNhbGxiYWNrKQordm9pZCBFeHRlbnNpb25zM0RPcGVu
R0xFUzo6c2V0RVhUQ29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3ND
b250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IGNhbGxiYWNrKQogewotICAgIG1fY29udGV4
dExvc3RDYWxsYmFjayA9IGNhbGxiYWNrOworICAgIG1fY29udGV4dExvc3RDYWxsYmFjayA9IHN0
ZDo6bW92ZShjYWxsYmFjayk7CiB9CiAKIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OnJlYWRu
UGl4ZWxzRVhUKGludCB4LCBpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEdDM0RzaXplaSBidWZTaXplLCB2b2lk
ICpkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaAppbmRleCAzYzk3MGNjMjQ1YmY2Mzdh
NTI3Y2YwM2I3YTcyYTgyNWE2MDU2MWViLi5lYTZkOWZjMzVlNmI0NTU1ODFjN2Q4NzkzNGRmZjUy
ZjAzMTYwMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaApAQCAtODUsNyArODUsNyBA
QCBwdWJsaWM6CiAKICAgICAvLyBFWFQgUm9idXN0bmVzcyAtIHJlc2V0CiAgICAgdmlydHVhbCBp
bnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpOwotICAgIHZvaWQgc2V0RVhUQ29udGV4dExv
c3RDYWxsYmFjayhQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxi
YWNrPik7CisgICAgdm9pZCBzZXRFWFRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0
cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4pOwogCiAgICAgLy8gRVhU
IFJvYnVzdG5lc3MgLSBldGMKICAgICB2aXJ0dWFsIHZvaWQgcmVhZG5QaXhlbHNFWFQoaW50IHgs
IGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHlwZSwgR0MzRHNpemVpIGJ1ZlNpemUsIHZvaWQgKmRhdGEpOwpAQCAtMTIw
LDggKzEyMCw3IEBAIHByb3RlY3RlZDoKICAgICBQRk5HTERSQVdBUlJBWVNJTlNUQU5DRURBTkdM
RVBST0MgbV9nbERyYXdBcnJheXNJbnN0YW5jZWRBTkdMRTsKICAgICBQRk5HTERSQVdFTEVNRU5U
U0lOU1RBTkNFREFOR0xFUFJPQyBtX2dsRHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEU7CiAKLQot
ICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4gbV9jb250
ZXh0TG9zdENhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQzRDo6
Q29udGV4dExvc3RDYWxsYmFjaz4gbV9jb250ZXh0TG9zdENhbGxiYWNrOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAKaW5kZXggMDZmNjFjNGU3
YTA4OTJlOTQ4YTI3MWJiNjJjYzYxMWNmNDkyMWNkZS4uNTU4NDgxMDc5YTEwYWUzM2UyZTQ4ODg2
NWNlMDA4MjhlZDJmZmIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCkBAIC02MSwxMiAr
NjEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdMQ3VycmVudENvbnRleHRXcmFwcGVyKCkg
eyB9CiB9OwogCi1zdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gY3JlYXRlT2Zm
U2NyZWVuQ29udGV4dCgpCitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1Db250ZXh0
PiBjcmVhdGVPZmZTY3JlZW5Db250ZXh0KCkKIHsKICNpZiBVU0UoR0xYKQotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgR0xYT2ZmU2NyZWVuQ29udGV4dCgpKTsKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxHTFhPZmZTY3JlZW5Db250ZXh0PigpOwogI2VsaWYgVVNFKEVHTCkKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEVHTE9mZlNjcmVlbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8RUdMT2ZmU2NyZWVuQ29udGV4dD4oKTsKICNlbHNlCiAgICAgcmV0dXJuIG51
bGxwdHI7CiAjZW5kaWYKQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgdm9pZCByZXNvbHZlUmVz
ZXRTdGF0dXNFeHRlbnNpb24oKQogICAgIH0KIH0KIAotUGFzc093blB0cjxHTFBsYXRmb3JtQ29u
dGV4dD4gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0M0Q6
OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1Db250
ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChHcmFwaGljc0NvbnRleHQzRDo6
UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCiB7CiAjaWYgIVVTRShPUEVOR0xfRVNfMikKICAgICBp
ZiAoIWluaXRpYWxpemVPcGVuR0xTaGltcygpKQpAQCAtMTA5LDEzICsxMDksOSBAQCBQYXNzT3du
UHRyPEdMUGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChH
cmFwaGljc0NvbnRleHQzRAogCiAgICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgewogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoKLSAgICAgICAgaWYgKE93blB0cjxH
TFBsYXRmb3JtQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBjcmVhdGVPZmZTY3JlZW5Db250ZXh0KCk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyVG9DdXJyZW50R0xDb250ZXh0OgotICAgICAgICBpZiAoT3duUHRyPEdM
UGxhdGZvcm1Db250ZXh0PiBjb250ZXh0ID0gYWRvcHRQdHIobmV3IEdMQ3VycmVudENvbnRleHRX
cmFwcGVyKCkpKQotICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQucmVsZWFzZSgpOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R0xDdXJyZW50Q29udGV4
dFdyYXBwZXI+KCk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlU
b0hvc3RXaW5kb3c6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
TFBsYXRmb3JtQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dMUGxhdGZvcm1Db250ZXh0LmgKaW5kZXggMDMxNDdjODhiZWJjNjI2NWFjYzFhMWY0YjFh
ZGRlZTBjOWYyY2NkMy4uZmQzOWQ0YzhlMmM4NDVhYzQxM2U1YmMzOGNmNmZkYzFiYTM3MmUyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dMUGxhdGZvcm1Db250ZXh0LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJHTFBs
YXRmb3JtU3VyZmFjZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogLy8g
RW5jYXBzdWxhdGVzIGFuIE9wZW5HTCBjb250ZXh0LCBoaWRpbmcgcGxhdGZvcm0gc3BlY2lmaWMg
bWFuYWdlbWVudC4KIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDcgKzQ2LDcgQEAgcHVibGlj
OgogICAgICAgICBQTEFURk9STUNPTlRFWFRfVU5LTk9XTl9DT05URVhUX1JFU0VUID0gMHg4MjU1
LAogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gY3Jl
YXRlQ29udGV4dChHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGNyZWF0ZUNvbnRleHQoR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzR0xFeHRl
bnNpb24oY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmluZGV4IGRk
MjdmNzY5OTJiNzUzOGY3ZGM2ZmUyMTM0MTAwMjNhOWEyNTAxOGQuLmM0YzhkNjQ2OWE5MjJlOGZh
ZjBhOTY4ZGQ0YzJjNTgzOTdhZTg4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcApAQCAt
NDAsMTEgKzQwLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIEdMUGxhdGZvcm1T
dXJmYWNlKiBtX2N1cnJlbnREcmF3YWJsZSA9IDA7CiAKLVBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1
cmZhY2U+IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+
IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMpCiB7Ci0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNl
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxHTFBsYXRmb3JtU3VyZmFjZT4gc3VyZmFjZTsKICNpZiBV
U0UoR0xYKQotICAgIHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgR0xYT2ZmU2NyZWVuU3VyZmFjZShh
dHRyaWJ1dGVzKSk7CisgICAgc3VyZmFjZSA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYT2ZmU2NyZWVu
U3VyZmFjZT4oYXR0cmlidXRlcyk7CiAjZWxpZiBVU0UoRUdMKSAmJiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKICAgICBzdXJmYWNlID0gRUdMT2ZmU2NyZWVuU3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVu
U3VyZmFjZShhdHRyaWJ1dGVzKTsKICNlbHNlCkBAIC01Myw3ICs1Myw3IEBAIFBhc3NPd25QdHI8
R0xQbGF0Zm9ybVN1cmZhY2U+IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJm
YWNlKFN1cmZhY2VBCiAjZW5kaWYKIAogICAgIGlmIChzdXJmYWNlICYmIHN1cmZhY2UtPmRyYXdh
YmxlKCkpCi0gICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJu
IHN1cmZhY2U7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgK
aW5kZXggYWY3ZjdiY2I3Mzg5ZjNiYmQ0Y2Q5NjBiYjM5YjI2YzBiNTZmODcyZi4uZjVlNGY1MzEy
YjZlM2NlNWM2ZWEyMWUyMWRkMGI2ZDc1YTc5MzgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBTdXJmYWNl
QXR0cmlidXRlczsKICAgICAvLyBDcmVhdGVzIGEgR0wgc3VyZmFjZSB1c2VkIGZvciBvZmZzY3Jl
ZW4gcmVuZGVyaW5nLgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBj
cmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZh
Y2U6OkRlZmF1bHQpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZh
Y2U+IGNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMgPSBHTFBsYXRmb3Jt
U3VyZmFjZTo6RGVmYXVsdCk7CiAKICAgICB2aXJ0dWFsIH5HTFBsYXRmb3JtU3VyZmFjZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9l
ZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VmbC9HcmFwaGljc1N1cmZhY2VDb21tb24uY3BwCmluZGV4IDM1Yjkx
YjZhYTM0ZjA2OTBmOWYzMjQyMDRjMTMwOGVkNTA5ZTUzYTMuLmJlOGM2OTg3YjdhODdlNzg4MDc3
MTlkOTgxYmNlMmYxOWExZjg0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HcmFwaGljc1N1cmZhY2VDb21tb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VmbC9HcmFwaGljc1N1cmZh
Y2VDb21tb24uY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1f
c2l6ZTsKICAgICBQbGF0Zm9ybUJ1ZmZlckhhbmRsZSBtX3NoYXJlZEhhbmRsZTsKICAgICBPd25Q
dHI8R0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50PiBtX2NsaWVudDsKLSAgICBPd25QdHI8R0xQbGF0
Zm9ybUNvbnRleHQ+IG1fc2hhcmVkQ29udGV4dDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0
Zm9ybUNvbnRleHQ+IG1fc2hhcmVkQ29udGV4dDsKICAgICBPd25QdHI8R0xUcmFuc3BvcnRTdXJm
YWNlPiBtX3NoYXJlZFN1cmZhY2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKaW5kZXgg
OTc1ZDQ4NmI1MzBkYjg0YTQ1MzYyYzlhMGZlOTUxNTAzYjAxNjEwNi4uNmMzYzVlMzIzZDdlNjE1
NWVlNmI0YjI2M2NhNThjNTQ4ZjllMmYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcApAQCAt
MTEyLDE5ICsxMTIsMTQgQEAgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIEVHTFRyYW5zcG9ydFN1cmZh
Y2U6OmNvbmZpZ3VyYXRpb24oKQogICAgIHJldHVybiBtX2NvbmZpZ1NlbGVjdG9yLT5zdXJmYWNl
Q29udGV4dENvbmZpZygpOwogfQogCi1QYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBFR0xP
ZmZTY3JlZW5TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpCitzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IEVHTE9mZlNj
cmVlblN1cmZhY2U6OmNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKIHsKLSAgICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2U7CiAjaWYg
UExBVEZPUk0oWDExKQotICAgIHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgRUdMUGl4bWFwU3VyZmFj
ZShhdHRyaWJ1dGVzKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RUdMUGl4bWFwU3Vy
ZmFjZT4oYXR0cmlidXRlcyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGVzKTsK
LSNlbmRpZgotCi0gICAgaWYgKHN1cmZhY2UpCi0gICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVh
c2UoKTsKLQogICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKIEVHTE9mZlNjcmVlblN1
cmZhY2U6OkVHTE9mZlNjcmVlblN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMgc3VyZmFjZUF0dHJp
YnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9lZ2wvRUdMU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaAppbmRleCAwZjlhYWI2ZTZmODdlMGEyYWNhOTJiMjZk
ZDI0OGZhZDUwYjAxODFkLi41ZGViZTdlZGI2YjVmOTFmNTQyZWIzMDA3NzhkMGVkOTNlMWU5NDU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9l
Z2wvRUdMU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJvdGVjdGVkOgogCiBj
bGFzcyBFR0xPZmZTY3JlZW5TdXJmYWNlIDogcHVibGljIEdMUGxhdGZvcm1TdXJmYWNlIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRlT2Zm
U2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0
cmlidXRlcyk7CiAgICAgdmlydHVhbCB+RUdMT2ZmU2NyZWVuU3VyZmFjZSgpOwogICAgIHZpcnR1
YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZGVzdHJveSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5jcHAKaW5kZXggNGRiN2Q2NzJiOTFkMWNiMmIyYzkzNmM2ZDdmZDQ5YzM0
ZTViMDJiYi4uM2VmN2MyYmI4YjQ2Y2FlOTYyNDk2NWIzNDg0ZjE3ZjczN2NkYTMwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC00NSw3ICs0NSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBHcmFwaGljc0xheWVyOjpjcmVhdGUoR3Jh
cGhpY3NMYXllckZhY3RvcnkqIGZhY3RvCiAKIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAg
ICAgOiBHcmFwaGljc0xheWVyKGNsaWVudCkKLSAgICAsIG1fbGF5ZXIoYWRvcHRQdHIobmV3IFRl
eHR1cmVNYXBwZXJMYXllcigpKSkKKyAgICAsIG1fbGF5ZXIoc3RkOjptYWtlX3VuaXF1ZTxUZXh0
dXJlTWFwcGVyTGF5ZXI+KCkpCiAgICAgLCBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cigwKQog
ICAgICwgbV9jaGFuZ2VNYXNrKE5vQ2hhbmdlcykKICAgICAsIG1fbmVlZHNEaXNwbGF5KGZhbHNl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCBkOTE5YTQ1N2Jk
YWQyYmU4YWUxYTBiYTM2MzEzN2RlYzczZDdmZjEzLi5iNzhiM2E2NTA0YThlMzI0NTY4Y2MyNTdl
MTYwNTdhMjcxYjA5OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIu
aApAQCAtMTYwLDcgKzE2MCw3IEBAIHByaXZhdGU6CiAgICAgfTsKICAgICB2b2lkIG5vdGlmeUNo
YW5nZShDaGFuZ2VNYXNrKTsKIAotICAgIE93blB0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IG1fbGF5
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXJMYXllcj4gbV9sYXllcjsKICAg
ICBSZWZQdHI8VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlPiBtX2NvbXBvc2l0ZWRJbWFn
ZTsKICAgICBOYXRpdmVJbWFnZVB0ciBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cjsKICAgICBS
ZWZQdHI8VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlci5jcHAKaW5kZXggM2UwN2Y3NDcwNGJlODBiZTU4MTMwMWMyN2JhMjE0YzJlYzE1ZjU2Zi4u
NzBlNGU4MTM4ZDUyODZlOTFkODhiYzFlYmFiN2U0NTE5ODJhZTRhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
LmNwcApAQCAtMTI4LDEwICsxMjgsMTAgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBUZXh0
dXJlTWFwcGVyOjphY3F1aXJlVGV4dHVyZUZyb21Qb29sKGNvbnN0IEludFNpemUmIHMKICAgICBy
ZXR1cm4gc2VsZWN0ZWRUZXh0dXJlOwogfQogCi1QYXNzT3duUHRyPFRleHR1cmVNYXBwZXI+IFRl
eHR1cmVNYXBwZXI6OmNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG1vZGUpCitzdGQ6OnVuaXF1ZV9w
dHI8VGV4dHVyZU1hcHBlcj4gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKEFjY2VsZXJhdGlvbk1vZGUg
bW9kZSkKIHsKICAgICBpZiAobW9kZSA9PSBTb2Z0d2FyZU1vZGUpCi0gICAgICAgIHJldHVybiBU
ZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXI6OmNyZWF0ZSgpOworICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXI+KCk7CiAgICAgcmV0dXJuIHBsYXRm
b3JtQ3JlYXRlQWNjZWxlcmF0ZWQoKTsKIH0KIApAQCAtMTM5LDcgKzEzOSw3IEBAIFRleHR1cmVN
YXBwZXI6OlRleHR1cmVNYXBwZXIoQWNjZWxlcmF0aW9uTW9kZSBhY2NlbGVyYXRpb25Nb2RlKQog
ICAgIDogbV9jb250ZXh0KDApCiAgICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9s
YXRpb25EZWZhdWx0KQogICAgICwgbV90ZXh0RHJhd2luZ01vZGUoVGV4dE1vZGVGaWxsKQotICAg
ICwgbV90ZXh0dXJlUG9vbChhZG9wdFB0cihuZXcgQml0bWFwVGV4dHVyZVBvb2woKSkpCisgICAg
LCBtX3RleHR1cmVQb29sKHN0ZDo6bWFrZV91bmlxdWU8Qml0bWFwVGV4dHVyZVBvb2w+KCkpCiAg
ICAgLCBtX2FjY2VsZXJhdGlvbk1vZGUoYWNjZWxlcmF0aW9uTW9kZSkKICAgICAsIG1faXNNYXNr
TW9kZShmYWxzZSkKICAgICAsIG1fd3JhcE1vZGUoU3RyZXRjaFdyYXApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaApp
bmRleCAxOTk2YTc5NGRlZTYzMTdjYzFiYjgxZWI3NzYzMjIwYTUzYTY1YTZhLi45MzEyMDNkMTcw
ZTM3NTUzNDgwYjU3MGE4NjM3ODIwYjMyNmY2NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKQEAgLTExNiw3
ICsxMTYsOSBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIFBhaW50RmxhZ3M7CiAK
LSAgICBzdGF0aWMgUGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBjcmVhdGUoQWNjZWxlcmF0aW9u
TW9kZSBuZXdNb2RlID0gU29mdHdhcmVNb2RlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFRleHR1cmVNYXBwZXI+IGNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG5ld01vZGUgPSBTb2Z0d2Fy
ZU1vZGUpOworCisgICAgZXhwbGljaXQgVGV4dHVyZU1hcHBlcihBY2NlbGVyYXRpb25Nb2RlKTsK
ICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyKCk7CiAKICAgICBlbnVtIEV4cG9zZWRFZGdlcyB7
CkBAIC0xNjMsOCArMTY1LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V3JhcE1vZGUoV3JhcE1v
ZGUgbSkgeyBtX3dyYXBNb2RlID0gbTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgVGV4
dHVyZU1hcHBlcihBY2NlbGVyYXRpb25Nb2RlKTsKLQogICAgIEdyYXBoaWNzQ29udGV4dCogbV9j
b250ZXh0OwogCiAgICAgYm9vbCBpc0luTWFza01vZGUoKSBjb25zdCB7IHJldHVybiBtX2lzTWFz
a01vZGU7IH0KQEAgLTE3MywxNiArMTczLDE2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCi0gICAgc3RhdGljIFBhc3NPd25QdHI8VGV4dHVyZU1h
cHBlcj4gcGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8VGV4dHVyZU1hcHBlcj4gcGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpOwogI2Vsc2UK
LSAgICBzdGF0aWMgUGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBwbGF0Zm9ybUNyZWF0ZUFjY2Vs
ZXJhdGVkKCkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+IHBsYXRm
b3JtQ3JlYXRlQWNjZWxlcmF0ZWQoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8
VGV4dHVyZU1hcHBlcj4oKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVy
ZU1hcHBlcj4oKTsKICAgICB9CiAjZW5kaWYKICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBtX2lu
dGVycG9sYXRpb25RdWFsaXR5OwogICAgIFRleHREcmF3aW5nTW9kZUZsYWdzIG1fdGV4dERyYXdp
bmdNb2RlOwotICAgIE93blB0cjxCaXRtYXBUZXh0dXJlUG9vbD4gbV90ZXh0dXJlUG9vbDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Qml0bWFwVGV4dHVyZVBvb2w+IG1fdGV4dHVyZVBvb2w7CiAgICAg
QWNjZWxlcmF0aW9uTW9kZSBtX2FjY2VsZXJhdGlvbk1vZGU7CiAgICAgYm9vbCBtX2lzTWFza01v
ZGU7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wYXR0ZXJuVHJhbnNmb3JtOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmNwcAppbmRleCA1YzlmOGZkNTY1OTc5ODMyODg2MmE3Zjg1NDM0Y2NjYzAzNGM5
OGZiLi4yNGRlZDFlMDdmYzliMzBjMDFhMWJlMTBkMTBlOGFlZTE2MjE4NDg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmNwcApAQCAtMTEyOSw5ICsxMTI5LDkgQEAgUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPiBUZXh0dXJlTWFwcGVyR0w6OmNyZWF0ZVRleHR1cmUoKQogfQogCiAjaWYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQotUGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpw
bGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCkKK3N0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVy
PiBUZXh0dXJlTWFwcGVyOjpwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCkKIHsKLSAgICByZXR1
cm4gVGV4dHVyZU1hcHBlckdMOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxUZXh0dXJlTWFwcGVyR0w+KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCmluZGV4
IGYwZmQxYjFiNGUxMmU1ZDljMDEzYTYyNDdlZTNiNTRmNGUyYmQwYzMuLjgzMjQ4Zjg2ZDAzYWYy
ZWZiMmJlZGQxYTVkMzllNjY3NzliN2Q2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKQEAgLTM4LDcg
KzM4LDcgQEAgY2xhc3MgRmlsdGVyT3BlcmF0aW9uOwogLy8gQW4gT3BlbkdMLUVTMiBpbXBsZW1l
bnRhdGlvbiBvZiBUZXh0dXJlTWFwcGVyLgogY2xhc3MgVGV4dHVyZU1hcHBlckdMIDogcHVibGlj
IFRleHR1cmVNYXBwZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHR1cmVN
YXBwZXJHTD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFRleHR1cmVNYXBwZXJHTCk7
IH0KKyAgICBUZXh0dXJlTWFwcGVyR0woKTsKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyR0wo
KTsKIAogICAgIGVudW0gRmxhZyB7CkBAIC0xMjAsOCArMTIwLDYgQEAgcHJpdmF0ZToKICAgICAg
ICAgWUF4aXNNb2RlIHlBeGlzTW9kZTsKICAgICB9OwogCi0gICAgVGV4dHVyZU1hcHBlckdMKCk7
Ci0KICAgICB2b2lkIGRyYXdUZXh0dXJlZFF1YWRXaXRoUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbSosIHVpbnQzMl90IHRleHR1cmUsIEZsYWdzLCBjb25zdCBJbnRTaXplJiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmlld01hdHJp
eCwgZmxvYXQgb3BhY2l0eSk7CiAgICAgdm9pZCBkcmF3KGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtKiwgR0MzRGVudW0gZHJhd2luZ01vZGUsIEZsYWdzKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCmluZGV4IGY1ZTM4YjM1OGY2NTcxNDZiODUzZjQyNTFlNGM1
NzM4MzAzMjZiOWEuLjgyZGYwNGU4NmYzMTI1Zjk3YjE2YjFjNGZmZGY3ODJkY2Y0YmU1OWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVySW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKQEAgLTUwLDcgKzUwLDkgQEAgcHJp
dmF0ZToKIGNsYXNzIFRleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlciA6IHB1YmxpYyBUZXh0dXJlTWFw
cGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcg
VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyKTsgfQorICAgIFRleHR1cmVNYXBwZXJJbWFnZUJ1ZmZl
cigpCisgICAgICAgIDogVGV4dHVyZU1hcHBlcihTb2Z0d2FyZU1vZGUpCisgICAgeyB9CiAKICAg
ICAvLyBUZXh0dXJlTWFwcGVyIGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lkIGRyYXdC
b3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKQEAgLTcwLDkgKzcyLDYgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIo
KQotICAgICAgICA6IFRleHR1cmVNYXBwZXIoU29mdHdhcmVNb2RlKQotICAgIHsgfQogICAgIFJl
ZlB0cjxCaXRtYXBUZXh0dXJlPiBtX2N1cnJlbnRTdXJmYWNlOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCA4
M2ZkNTY4MjE1NmYwOTE3OGI2MGZhY2NkMDQzYTY2NzhkMGM2Y2RmLi4zNTc3ZmE4YzIwMjJiZGY0
ZjkzN2EwNjBhZWZiYmYxMzdhYTE0M2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApAQCAtNjQ2LDcgKzY0Niw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwdXJnZUdMUmVzb3VyY2VzKCkKICAgICBtX3Jv
b3RMYXllcklEID0gSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRDsKICAgICBtX2xheWVycy5jbGVh
cigpOwogICAgIG1fZml4ZWRMYXllcnMuY2xlYXIoKTsKLSAgICBtX3RleHR1cmVNYXBwZXIuY2xl
YXIoKTsKKyAgICBtX3RleHR1cmVNYXBwZXIgPSBudWxscHRyOwogICAgIG1fYmFja2luZ1N0b3Jl
cy5jbGVhcigpOwogICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5kaW5nQnVmZmVycy5jbGVhcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmgKaW5kZXggYmRmYWYwZjc4Mjc1MTQyNzdmMjljNzZhMTkxMTdkZGZkYWE4Mjg2Yi4uNzVh
NDcyZDRkMTI5YzMzOTc4MWU5OTY3YmMxZDlhZGM0ZmFhNzhkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtMTUyLDcgKzE1
Miw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4gbV9yZW5k
ZXJRdWV1ZTsKICAgICBNdXRleCBtX3JlbmRlclF1ZXVlTXV0ZXg7CiAKLSAgICBPd25QdHI8VGV4
dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJl
TWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCwgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiA+IEltYWdl
QmFja2luZ01hcDsKICAgICBJbWFnZUJhY2tpbmdNYXAgbV9pbWFnZUJhY2tpbmdzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zv
cm1TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1RyYW5zZm9ybVN0YXRlLmNwcAppbmRleCBiNWMwOTA4ZTVlY2MyYmZmOTlhMWNjZmM3MjQyZDlm
ZTZhZGY1NGI5Li4wZTY5ZDY2MTBmMjE0Y2Q2YmJlMTc1NTljMjgwYmViMWU5NzAwY2FhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
Zm9ybVN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcApAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAKLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRyYW5zZm9ybVN0YXRlJiBUcmFu
c2Zvcm1TdGF0ZTo6b3BlcmF0b3I9KGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBvdGhlcikKQEAgLTQy
LDEwICs0MCwxMCBAQCBUcmFuc2Zvcm1TdGF0ZSYgVHJhbnNmb3JtU3RhdGU6Om9wZXJhdG9yPShj
b25zdCBUcmFuc2Zvcm1TdGF0ZSYgb3RoZXIpCiAgICAgbV9hY2N1bXVsYXRpbmdUcmFuc2Zvcm0g
PSBvdGhlci5tX2FjY3VtdWxhdGluZ1RyYW5zZm9ybTsKICAgICBtX2RpcmVjdGlvbiA9IG90aGVy
Lm1fZGlyZWN0aW9uOwogICAgIAotICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0uY2xlYXIoKTsK
KyAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtID0gbnVsbHB0cjsKIAogICAgIGlmIChvdGhlci5t
X2FjY3VtdWxhdGVkVHJhbnNmb3JtKQotICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtID0g
YWRvcHRQdHIobmV3IFRyYW5zZm9ybWF0aW9uTWF0cml4KCpvdGhlci5tX2FjY3VtdWxhdGVkVHJh
bnNmb3JtKSk7CisgICAgICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0gPSBzdGQ6Om1ha2VfdW5p
cXVlPFRyYW5zZm9ybWF0aW9uTWF0cml4Pigqb3RoZXIubV9hY2N1bXVsYXRlZFRyYW5zZm9ybSk7
CiAgICAgICAgIAogICAgIHJldHVybiAqdGhpczsKIH0KQEAgLTEyMSwxMiArMTE5LDEyIEBAIHZv
aWQgVHJhbnNmb3JtU3RhdGU6OmFwcGx5VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB0cmFuc2Zvcm1Gcm9tQ29uCiAgICAgLy8gSWYgd2UgaGF2ZSBhbiBhY2N1bXVsYXRlZCB0
cmFuc2Zvcm0gZnJvbSBsYXN0IHRpbWUsIG11bHRpcGx5IGluIHRoaXMgdHJhbnNmb3JtCiAgICAg
aWYgKG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pIHsKICAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09
IEFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uKQotICAgICAgICAgICAgbV9hY2N1bXVsYXRlZFRyYW5z
Zm9ybSA9IGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCh0cmFuc2Zvcm1Gcm9tQ29u
dGFpbmVyICogKm1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pKTsKKyAgICAgICAgICAgIG1fYWNjdW11
bGF0ZWRUcmFuc2Zvcm0gPSBzdGQ6Om1ha2VfdW5pcXVlPFRyYW5zZm9ybWF0aW9uTWF0cml4Pih0
cmFuc2Zvcm1Gcm9tQ29udGFpbmVyICogKm1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT5tdWx0aXBseSh0cmFu
c2Zvcm1Gcm9tQ29udGFpbmVyKTsKICAgICB9IGVsc2UgaWYgKGFjY3VtdWxhdGUgPT0gQWNjdW11
bGF0ZVRyYW5zZm9ybSkgewogICAgICAgICAvLyBNYWtlIG9uZSBpZiB3ZSBzdGFydGVkIHRvIGFj
Y3VtdWxhdGUKLSAgICAgICAgbV9hY2N1bXVsYXRlZFRyYW5zZm9ybSA9IGFkb3B0UHRyKG5ldyBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCh0cmFuc2Zvcm1Gcm9tQ29udGFpbmVyKSk7CisgICAgICAgIG1f
YWNjdW11bGF0ZWRUcmFuc2Zvcm0gPSBzdGQ6Om1ha2VfdW5pcXVlPFRyYW5zZm9ybWF0aW9uTWF0
cml4Pih0cmFuc2Zvcm1Gcm9tQ29udGFpbmVyKTsKICAgICB9CiAgICAgCiAgICAgaWYgKGFjY3Vt
dWxhdGUgPT0gRmxhdHRlblRyYW5zZm9ybSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCmluZGV4
IGJjNjgyYTdkOTQ4ZWQ3MWVkNGUyYmMyYTVjOWI3Zjk0MmU4ZTQzMWUuLmY4YmMzMmY5NDI5NjUw
YjQ1OTRhZjI4NTllNjQ4MTVmYmExMmY3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmgKQEAg
LTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTGF5b3V0U2l6
ZS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCi0jaW5jbHVkZSA8d3RmL093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExMCw3ICsxMDksNyBAQCBwcml2
YXRlOgogICAgIEZsb2F0UXVhZCBtX2xhc3RQbGFuYXJRdWFkOwogCiAgICAgLy8gV2Ugb25seSBh
bGxvY2F0ZSB0aGUgdHJhbnNmb3JtIGlmIHdlIG5lZWQgdG8KLSAgICBPd25QdHI8VHJhbnNmb3Jt
YXRpb25NYXRyaXg+IG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm07CisgICAgc3RkOjp1bmlxdWVfcHRy
PFRyYW5zZm9ybWF0aW9uTWF0cml4PiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtOwogICAgIExheW91
dFNpemUgbV9hY2N1bXVsYXRlZE9mZnNldDsKICAgICBib29sIG1fYWNjdW11bGF0aW5nVHJhbnNm
b3JtOwogICAgIGJvb2wgbV9tYXBQb2ludCwgbV9tYXBRdWFkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdp
bi5jcHAKaW5kZXggMmYzNWVmNTQwYzg3MDNkMmQxN2I4ZGU0NDU0ZGJhZTVhNWY3OGI2OC4uYWVm
NTVlMGUzMjVkMzFjNTNmOTlhYmUyMjY5ZmFlMWU3MzM5NzZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
M0RXaW4uY3BwCkBAIC0xNjMsMTEgKzE2MywxMSBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBo
aWNzQ29udGV4dDNEKCkKICAgICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093
blB0cjxDb250ZXh0TG9zdENhbGxiYWNrPikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENv
bnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQog
ewogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhQ
YXNzT3duUHRyPEVycm9yTWVzc2FnZUNhbGxiYWNrPikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VDYWxs
YmFjaz4pCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCmluZGV4
IDY5NmMzZGQ1ZDhmYmExODdhZjg4OWViZmRiNmJlMTBhNDQ2ZjczYzcuLmU5MDkwZmM3OGY1MjNk
N2MxMTY3MTU2MGRkMDIwM2Y5NjEyZGIzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRFZmwuaApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJGUFND
b3VudGVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2VmbC9VbmlxdWVQdHJF
ZmwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsNyArNTYsNyBAQCBwcml2YXRlOgog
ICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7CiAgICAgRXZhc19PYmplY3QqIG1fY29tcG9zaXRpbmdP
YmplY3Q7CiAKLSAgICBPd25QdHI8VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7CiAgICAgR3Jh
cGhpY3NMYXllciogbV9yb290TGF5ZXI7CiAgICAgVGltZXI8QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQ+IG1fc3luY1RpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApp
bmRleCAwNThmY2JhMjc2ODAxNWUxYWJhMWNlMzgyMWEzNmNiMTY4ZmQ1NTFlLi4zYWNmYzhkNmU4
NTIxNDU5MzgzYTJlNDM0NzBhMmQxYmI1ZDg5ZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8V2ViQ29yZTo6
UmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3c+IG1fcmVkaXJlY3RlZFdpbmRvdzsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllcjsKLSAgICBPd25QdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFw
cGVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3RleHR1
cmVNYXBwZXI7CiAgICAgZG91YmxlIG1fbGFzdEZsdXNoVGltZTsKICAgICBkb3VibGUgbV9yZWRy
YXdQZW5kaW5nVGltZTsKICAgICBib29sIG1fbmVlZHNFeHRyYUZsdXNoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsu
aAppbmRleCAxY2JjZjNlNTc0ZjllZGNlZmMxYjdiOTE0YWUwMTYyNzg3ZWE2OGVlLi4zYzhjMmEw
ZTFjMTBiOTliOTVhYzg5Njg3NWZjYTc1ZGY2ZTM0NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAt
MTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXI+IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllcjsKICAgICB0eXBlZGVmIEhh
c2hNYXA8UGFnZU92ZXJsYXkqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cj4+IFBhZ2VPdmVybGF5TGF5ZXJNYXA7CiAgICAgUGFnZU92ZXJsYXlMYXllck1hcCBtX3BhZ2VP
dmVybGF5TGF5ZXJzOwotICAgIE93blB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3RleHR1
cmVNYXBwZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXI+IG1f
dGV4dHVyZU1hcHBlcjsKICAgICBPd25QdHI8V2ViQ29yZTo6R0xDb250ZXh0PiBtX2NvbnRleHQ7
CiAgICAgZG91YmxlIG1fbGFzdEZsdXNoVGltZTsKICAgICBib29sIG1fbGF5ZXJGbHVzaFNjaGVk
dWxpbmdFbmFibGVkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228699</attachid>
            <date>2014-04-06 07:51:45 -0700</date>
            <delta_ts>2014-04-07 07:09:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131276-20140406235123.patch</filename>
            <type>text/plain</type>
            <size>43159</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FlMTc1NGY4YzFmMjY2
NTBmOWM4OGNkYTc2ZDk5ZWRhNmU1OWE4MS4uODI4YTNjMjYwZjQxZjEwZGYyYWI0NTFmNzg0Y2Q5
ZDhhNjc1NzEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDE0LTA0LTA2ICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5n
IHN0ZDo6dW5pcXVlX3B0ciBmb3Igb3BlbmdsLCB0ZXhtYXAsIHRyYW5zZm9ybXMgYW5kIGVmbCBp
biBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0
ciBpbiBjb2RlIHVuZGVyIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvCisgICAgICAgIG9wZW5n
bCwgdGV4bWFwLCB0cmFuc2Zvcm1zIGFuZCBlZmwgd2l0aCBzdGQ6OnVuaXF1ZV9wdHIuCisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4
dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFj
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExv
c3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJy
b3JNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzZXRFWFRDb250ZXh0TG9zdENhbGxiYWNrKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT2ZmU2NyZWVuQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29t
bW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3Vy
ZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5TdXJmYWNlOjpjcmVhdGVP
ZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9l
Z2wvRUdMU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlcjo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyOjpUZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlcjo6cGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyOjpwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyOjpUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyOjpjcmVhdGUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpwdXJnZUdMUmVzb3VyY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1TdGF0ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdl
YkNvcmU6OlRyYW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKToK
KwogMjAxNC0wNC0wNSAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBbQ1NTIFNoYXBlc10gUmVtb3ZlIENTU0JveFR5cGUgbWVtYmVyIGZyb20gQmFzaWNTaGFw
ZSBhbmQgQ1NTQmFzaWNTaGFwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDI5M2U0NzNhMTQ3ODgwNGNi
NzVlYzYxYjI0YmFjYjc1NzM2ODAzZTIuLjk1MGZhODVjYWNkZjRhYjI4ODFhMzYzZTcyNThkMTMy
MDJkNzQzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wNC0wNiAg
SHlvd29uIEtpbSAgPGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSB0byB1
c2luZyBzdGQ6OnVuaXF1ZV9wdHIgZm9yIG9wZW5nbCwgdGV4bWFwLCB0cmFuc2Zvcm1zIGFuZCBl
ZmwgaW4gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBPd25QdHIgZm9yIFRleHR1
cmVNYXBwZXIgaW4gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwgd2l0aCBzdGQ6OnVu
aXF1ZV9wdHIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEVmbC5oOgorCiAyMDE0LTA0LTAzICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBTaG91bGQgZmx1c2ggYW5kIHJlbmRlciBsYXll
cnMgYWZ0ZXIgdGhlIHJvb3QgbGF5ZXIgaXMgY2hhbmdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA1
YzA2NjRlMzZhZDRlODgwNWI1M2M2MmI3NTg2NmNlNjI2ODM1ZjRkLi40MTc5NDNkNmZhNGMxNjU3
N2Q1YzkwMGIwZGVmYTU2ZGI2MzdhOWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTQtMDQtMDYgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRyIGZvciBvcGVuZ2wsIHRleG1hcCwg
dHJhbnNmb3JtcyBhbmQgZWZsIGluIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyNzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2Yg
T3duUHRyIGZvciBUZXh0dXJlTWFwcGVyIGluIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
IHdpdGggc3RkOjp1bmlxdWVfcHRyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKKwogMjAxNC0wNC0wMiAgTWFydGluIEhvY2sgIDxt
aG9ja0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5pZnkgcHJpdmF0ZSBicm93c2luZyB3aXRoIHNl
c3Npb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGEyMWY5M2RjYTk1YTliMGUyM2JlYTE4YzRkODhkZjBiZDY2
ZDNiMWQuLjNjMWM3N2ZlYTQyOTdmNWIwOTMwMTMxMzE5NmVlMmZmY2E0Nzc2Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wNC0wNiAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1A
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSB0byB1c2luZyBzdGQ6OnVuaXF1ZV9wdHIgZm9y
IG9wZW5nbCwgdGV4bWFwLCB0cmFuc2Zvcm1zIGFuZCBlZmwgaW4gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMTI3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlcGxhY2UgdXNlcyBvZiBPd25QdHIgZm9yIFRleHR1cmVNYXBwZXIgaW4gTGF5ZXJUcmVlSG9z
dEd0ayB3aXRoIHN0ZDo6dW5pcXVlX3B0ci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oOgorCiAyMDE0LTA0LTA0ICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gaU9TIEJ1aWxkIGZp
eCBhZnRlciByMTY2ODE4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggZTJhNGU2ZmRmMGY4MWI4NjllZGZlZWQ0M2Qy
ZjIyY2ViZWI4Y2E0Ni4uNDE4Y2JiODU1NDRjMWM0YmJiYTZmNjFjZWZmMTVjOGE2MGFjNDBjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwCkBAIC01ODgsOCArNTg4LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmluaXRpYWxpemVOZXdDb250ZXh0KCkKICAgICBtX2NvbnRleHQtPnZpZXdwb3J0KDAsIDAsIGNh
bnZhc1NpemUud2lkdGgoKSwgY2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT5z
Y2lzc29yKDAsIDAsIGNhbnZhc1NpemUud2lkdGgoKSwgY2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAK
LSAgICBtX2NvbnRleHQtPnNldENvbnRleHRMb3N0Q2FsbGJhY2soYWRvcHRQdHIobmV3IFdlYkdM
UmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjayh0aGlzKSkpOwotICAgIG1fY29udGV4dC0+c2V0
RXJyb3JNZXNzYWdlQ2FsbGJhY2soYWRvcHRQdHIobmV3IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVy
cm9yTWVzc2FnZUNhbGxiYWNrKHRoaXMpKSk7CisgICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9z
dENhbGxiYWNrKHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xSZW5kZXJpbmdDb250ZXh0TG9zdENhbGxi
YWNrPih0aGlzKSk7CisgICAgbV9jb250ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6
Om1ha2VfdW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrPih0
aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZsYWdzKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oCmluZGV4IGJlMjYwMjMzYjY0MzZhNDc2OGZlODg3ZjUyZDlmYzA4YTgzZWM5OTAuLmIxZGMy
YjI1NDI1NDUxMzdhNmZhMTYzNjliMjE2Yzk1MjYzYzZmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNDc3LDgg
KzQ3Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+RXJyb3JNZXNzYWdlQ2FsbGJhY2so
KSB7IH0KICAgICB9OwogCi0gICAgdm9pZCBzZXRDb250ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25Q
dHI8Q29udGV4dExvc3RDYWxsYmFjaz4pOwotICAgIHZvaWQgc2V0RXJyb3JNZXNzYWdlQ2FsbGJh
Y2soUGFzc093blB0cjxFcnJvck1lc3NhZ2VDYWxsYmFjaz4pOworICAgIHZvaWQgc2V0Q29udGV4
dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RDYWxsYmFjaz4pOworICAg
IHZvaWQgc2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEVycm9yTWVzc2Fn
ZUNhbGxiYWNrPik7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
Y3JlYXRlKEF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBSZW5kZXJTdHlsZSA9IFJlbmRlck9mZnNj
cmVlbik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUZv
ckN1cnJlbnRHTENvbnRleHQoKTsKQEAgLTExNDMsNyArMTE0Myw3IEBAIHByaXZhdGU6CiAgICAg
TGlzdEhhc2hTZXQ8R0MzRGVudW0+IG1fc3ludGhldGljRXJyb3JzOwogCiAgICAgZnJpZW5kIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTsKLSAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlPiBtX3ByaXZhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZT4gbV9wcml2YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZS5jcHAKaW5kZXggOTU2MTY2ZGFjYmUzMTZmMWJiNzdhZDgzOGVlYmM3
Mjk4NDc1M2ExNS4uZmNmMzNkZTA4YjI3YmY0ZTE2MGU0MGM3MmQ3NjgzZTQ2M2MwMmZjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCkBAIC00NSwxMSArNDUsNiBAQCB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlPiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZShHcmFwaGljc0Nv
bnRleHQzRCogY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0
eWxlKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
KGNvbnRleHQsIHJlbmRlclN0eWxlKSk7Ci19Ci0KIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBHcmFw
aGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCiAgICAgOiBtX2NvbnRleHQo
Y29udGV4dCkKICAgICAsIG1fcmVuZGVyU3R5bGUocmVuZGVyU3R5bGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCmluZGV4IGI2ZmQ0NDgyNzY0MmUxZjkyZjk3NzdmNTk5ZGRlZDZkNDNlOGIyYTguLjE1
NjZkYTA4YjdkYmQ2MTYxODFmMmYwNDBlMmFiM2M4NmMzZDU5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZQog
I2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6
UmVuZGVyU3R5bGUpOworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRl
eHQzRCosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7CiAgICAgfkdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZSgpOwogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKQEAgLTQ4LDggKzQ4LDYg
QEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsK
LQogICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CiAgICAgT3duUHRyPEdMQ29udGV4
dD4gbV9nbENvbnRleHQ7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIG1fcmVu
ZGVyU3R5bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCmluZGV4IGEyNjU3OGJj
ZTk5NzIyYjQ1MGU2MTlkOTQ3MzM1YTMxM2Y4M2FmZGQuLjE0YjE5OGNkNzg3MjE0YmMwZTRiMmJk
YWM2MmI1NjQ5MDVlNTVjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCkBA
IC0zOCw4ICszOCw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKICNpbmNs
dWRlICJSZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgPGNhaXJvLmg+Ci0jaW5jbHVkZSA8d3RmL093
blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKICNpZiBQTEFURk9STShXSU4p
CiAjaW5jbHVkZSAiR0xTTEFORy9TaGFkZXJMYW5nLmgiCkBAIC04OSw3ICs4Nyw3IEBAIEdyYXBo
aWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzRDo6QXR0cmli
dXRlcyBhdHRyaWJ1dGVzLCBICiAgICAgLCBtX211bHRpc2FtcGxlRkJPKDApCiAgICAgLCBtX211
bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKDApCiAgICAgLCBtX211bHRpc2FtcGxlQ29sb3JC
dWZmZXIoMCkKLSAgICAsIG1fcHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0
ZSh0aGlzLCByZW5kZXJTdHlsZSkpCisgICAgLCBtX3ByaXZhdGUoc3RkOjptYWtlX3VuaXF1ZTxH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU+KHRoaXMsIHJlbmRlclN0eWxlKSkKIHsKICAgICBtYWtl
Q29udGV4dEN1cnJlbnQoKTsKIApAQCAtMjcyLDExICsyNzAsMTEgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFyKiBpbWFnZVBpeGVscywg
aW50IGltYWcKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093blB0cjxDb250ZXh0TG9zdENhbGxi
YWNrPikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3Rk
Ojp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQogewogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhQYXNzT3duUHRyPEVycm9yTWVzc2Fn
ZUNhbGxiYWNrPikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxi
YWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VDYWxsYmFjaz4pCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMQ29udGV4dC5o
CmluZGV4IDZlODY5YzBmMWE2ZDg2NWQ5ZGU4MDc1YjQzZjNiY2E3Yjk1YWM4MjIuLjA5NDFhY2Y4
ZjQwMzcxZmJiYWUyNzM0MmI0N2YxMGZlZTg4ODk3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTENvbnRleHQuaApAQCAtMjcsNyArMjcs
NiBAQAogI2RlZmluZSBFdmFzR0xDb250ZXh0X2gKIAogI2luY2x1ZGUgPEV2YXNfR0wuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xTdXJmYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFjZS5o
CmluZGV4IDA0ZDE4NzhmZjMyN2U1NzAwMmRkY2RlYjY1NWM2ZTBjYzM5MTViZWIuLjBhODJhNWJl
ZTBhODU1ZWY1N2Q4NzQ0ZmQ3YjMzYzhjNWZlMThiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xTdXJmYWNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNHTFN1cmZhY2UuaApAQCAtMjksNyArMjks
NiBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKIAogI2luY2x1ZGUgPEV2YXNfR0wuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQz
REVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3ND
b250ZXh0M0RFZmwuY3BwCmluZGV4IDk0NjE4MjU0YWVlMjhkZmRhNDk0MTViNTcyOTZiMjY0YWY5
YjAxMDUuLmRmN2I3MWM5YWM1ZTQ4Y2FlNTZkYWVkZDA3YzA4OTU3ZDNhOTE4YzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQz
REVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBo
aWNzQ29udGV4dDNERWZsLmNwcApAQCAtMTk3LDEyICsxOTcsMTIgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiAjZW5kaWYKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPENvbnRleHRM
b3N0Q2FsbGJhY2s+IGNhbGxCYWNrKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4
dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RDYWxsYmFjaz4gY2FsbEJh
Y2spCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKGNhbGxCYWNrKTsK
KyAgICBtX3ByaXZhdGUtPnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjptb3ZlKGNhbGxCYWNr
KSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNr
KFBhc3NPd25QdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KSAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5jcHAKaW5kZXggODM2NTIyNzljMTRkMTU2ZjUwY2FhYzk3MjVhZTI3ODY2N2E4
NDk3ZC4uYWEwZjg1ZmNhNWQyOWRlNDQwNGM0NTYyOTU2OGJhMTkyYWVkZDg2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTI2LDEyICsyNiwxMiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPiBHcmFw
aGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwg
SG9zdFdpbmRvdyogaG9zdFdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU+IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4
dDNEKiBjb250ZXh0LCBIb3N0V2luZG93KiBob3N0V2luZG93KQogewotICAgIE93blB0cjxHcmFw
aGljc0NvbnRleHQzRFByaXZhdGU+IHBsYXRmb3JtTGF5ZXIgPSBhZG9wdFB0cihuZXcgR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlKGNvbnRleHQsIGhvc3RXaW5kb3cpKTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPiBwbGF0Zm9ybUxheWVyID0gc3RkOjptYWtl
X3VuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+KGNvbnRleHQsIGhvc3RXaW5kb3cpOwog
CiAgICAgaWYgKHBsYXRmb3JtTGF5ZXIgJiYgcGxhdGZvcm1MYXllci0+aW5pdGlhbGl6ZSgpKQot
ICAgICAgICByZXR1cm4gcGxhdGZvcm1MYXllci5yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBw
bGF0Zm9ybUxheWVyOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC0xMDUsOSArMTA1LDkg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnJlbGVhc2VSZXNvdXJjZXMoKQogICAg
IH0KIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnNldENvbnRleHRMb3N0Q2Fs
bGJhY2soUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4g
Y2FsbEJhY2spCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6c2V0Q29udGV4dExvc3RD
YWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2Fs
bGJhY2s+IGNhbGxCYWNrKQogewotICAgIG1fY29udGV4dExvc3RDYWxsYmFjayA9IGNhbGxCYWNr
OworICAgIG1fY29udGV4dExvc3RDYWxsYmFjayA9IHN0ZDo6bW92ZShjYWxsQmFjayk7CiB9CiAK
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
aAppbmRleCBlMGVhZjA5MzZlZDVjZjA2ZGRhYzkzOTUxNDEzMWU5M2ZjYjFkZjI0Li43Y2VjNWRi
MGM1YmMzZGZlNGIyMmNkYWMxYzIyM2U0ODA2MzMxMDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgIkdMUGxhdGZv
cm1Db250ZXh0LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlCkBAIC0zNywxMSArMzYsMTMg
QEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+IGNyZWF0ZShHcmFw
aGljc0NvbnRleHQzRCosIEhvc3RXaW5kb3cqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgSG9z
dFdpbmRvdyopOworCisgICAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4
dDNEKiwgSG9zdFdpbmRvdyopOwogICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKTsKIAog
ICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgp
IGNvbnN0OwotICAgIHZvaWQgc2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPEdyYXBo
aWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxiYWNrPik7CisgICAgdm9pZCBzZXRDb250ZXh0
TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExv
c3RDYWxsYmFjaz4pOwogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciosIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQpIG92ZXJyaWRlOwogI2VuZGlmCkBA
IC02Niw3ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBQZW5kaW5nU3Vy
ZmFjZU9wZXJhdGlvbjsKICNlbmRpZgogCi0gICAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdy
YXBoaWNzQ29udGV4dDNEKiwgSG9zdFdpbmRvdyopOwogICAgIGJvb2wgaW5pdGlhbGl6ZSgpOwog
ICAgIHZvaWQgY3JlYXRlR3JhcGhpY3NTdXJmYWNlKCk7CiAgICAgYm9vbCBwcmVwYXJlQnVmZmVy
KCkgY29uc3Q7CkBAIC03NCwxNSArNzQsMTUgQEAgcHJpdmF0ZToKIAogICAgIEdyYXBoaWNzQ29u
dGV4dDNEKiBtX2NvbnRleHQ7CiAgICAgSG9zdFdpbmRvdyogbV9ob3N0V2luZG93OwotICAgIE93
blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gbV9vZmZTY3JlZW5Db250ZXh0OwotICAgIE93blB0cjxH
TFBsYXRmb3JtU3VyZmFjZT4gbV9vZmZTY3JlZW5TdXJmYWNlOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxHTFBsYXRmb3JtQ29udGV4dD4gbV9vZmZTY3JlZW5Db250ZXh0OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxHTFBsYXRmb3JtU3VyZmFjZT4gbV9vZmZTY3JlZW5TdXJmYWNlOwogI2lmIFVTRShHUkFQ
SElDU19TVVJGQUNFKQogICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIG1fc3VyZmFjZUhhbmRsZTsK
ICAgICBSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPiBtX2dyYXBoaWNzU3VyZmFjZTsKICAgICBSZWZQ
dHI8R3JhcGhpY3NTdXJmYWNlPiBtX3ByZXZpb3VzR3JhcGhpY3NTdXJmYWNlOwogICAgIFBlbmRp
bmdTdXJmYWNlT3BlcmF0aW9uIG1fc3VyZmFjZU9wZXJhdGlvbiA6IDM7CiAjZW5kaWYKLSAgICBP
d25QdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IG1fY29udGV4dExv
c3RDYWxsYmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRl
eHRMb3N0Q2FsbGJhY2s+IG1fY29udGV4dExvc3RDYWxsYmFjazsKICAgICBMaXN0SGFzaFNldDxH
QzNEZW51bT4gbV9zeW50aGV0aWNFcnJvcnM7CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgSW50
UmVjdCBtX3RhcmdldFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAppbmRleCA1
MzkxODIzNWQyYzA2ZjYyYmYyOGEwYzgwZmU0ZmM1MGE1YzQzY2E4Li4wZDU3Y2U1Y2M3MTNjMzE1
Yjk4MjEyMjg3MmFkZjM5Zjc3MjJmNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5j
cHAKQEAgLTE4NSw5ICsxODUsOSBAQCBpbnQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmdldEdyYXBo
aWNzUmVzZXRTdGF0dXNBUkIoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBFeHRlbnNp
b25zM0RPcGVuR0xFUzo6c2V0RVhUQ29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPEdyYXBo
aWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgRXh0ZW5z
aW9uczNET3BlbkdMRVM6OnNldEVYVENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxiYWNrPiBjYWxsYmFjaykKIHsKLSAg
ICBtX2NvbnRleHRMb3N0Q2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBtX2NvbnRleHRMb3N0Q2Fs
bGJhY2sgPSBzdGQ6Om1vdmUoY2FsbGJhY2spOwogfQogCiB2b2lkIEV4dGVuc2lvbnMzRE9wZW5H
TEVTOjpyZWFkblBpeGVsc0VYVChpbnQgeCwgaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBHQzNEc2l6ZWkgYnVm
U2l6ZSwgdm9pZCAqZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgKaW5kZXggM2M5NzBj
YzI0NWJmNjM3YTUyN2NmMDNiN2E3MmE4MjVhNjA1NjFlYi4uZWE2ZDlmYzM1ZTZiNDU1NTgxYzdk
ODc5MzRkZmY1MmYwMzE2MDA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgKQEAgLTg1
LDcgKzg1LDcgQEAgcHVibGljOgogCiAgICAgLy8gRVhUIFJvYnVzdG5lc3MgLSByZXNldAogICAg
IHZpcnR1YWwgaW50IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKLSAgICB2b2lkIHNldEVY
VENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4
dExvc3RDYWxsYmFjaz4pOworICAgIHZvaWQgc2V0RVhUQ29udGV4dExvc3RDYWxsYmFjayhzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+KTsKIAog
ICAgIC8vIEVYVCBSb2J1c3RuZXNzIC0gZXRjCiAgICAgdmlydHVhbCB2b2lkIHJlYWRuUGl4ZWxz
RVhUKGludCB4LCBpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
ZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEdDM0RzaXplaSBidWZTaXplLCB2b2lkICpkYXRh
KTsKQEAgLTEyMCw4ICsxMjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUEZOR0xEUkFXQVJSQVlTSU5T
VEFOQ0VEQU5HTEVQUk9DIG1fZ2xEcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEU7CiAgICAgUEZOR0xE
UkFXRUxFTUVOVFNJTlNUQU5DRURBTkdMRVBST0MgbV9nbERyYXdFbGVtZW50c0luc3RhbmNlZEFO
R0xFOwogCi0KLSAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJh
Y2s+IG1fY29udGV4dExvc3RDYWxsYmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3ND
b250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IG1fY29udGV4dExvc3RDYWxsYmFjazsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCmluZGV4
IDA2ZjYxYzRlN2EwODkyZTk0OGEyNzFiYjYyY2M2MTFjZjQ5MjFjZGUuLjU1ODQ4MTA3OWExMGFl
MzNlMmU0ODg4NjVjZTAwODI4ZWQyZmZiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcApA
QCAtNjEsMTIgKzYxLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HTEN1cnJlbnRDb250ZXh0
V3JhcHBlcigpIHsgfQogfTsKIAotc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+
IGNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKQorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTFBsYXRm
b3JtQ29udGV4dD4gY3JlYXRlT2ZmU2NyZWVuQ29udGV4dCgpCiB7CiAjaWYgVVNFKEdMWCkKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEdMWE9mZlNjcmVlbkNvbnRleHQoKSk7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8R0xYT2ZmU2NyZWVuQ29udGV4dD4oKTsKICNlbGlmIFVTRShFR0wp
Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFR0xPZmZTY3JlZW5Db250ZXh0KCkpOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9mZlNjcmVlbkNvbnRleHQ+KCk7CiAjZWxzZQogICAg
IHJldHVybiBudWxscHRyOwogI2VuZGlmCkBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIHZvaWQg
cmVzb2x2ZVJlc2V0U3RhdHVzRXh0ZW5zaW9uKCkKICAgICB9CiB9CiAKLVBhc3NPd25QdHI8R0xQ
bGF0Zm9ybUNvbnRleHQ+IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDb250ZXh0KEdyYXBoaWNz
Q29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK3N0ZDo6dW5pcXVlX3B0cjxHTFBs
YXRmb3JtQ29udGV4dD4gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQogewogI2lmICFVU0UoT1BFTkdMX0VT
XzIpCiAgICAgaWYgKCFpbml0aWFsaXplT3BlbkdMU2hpbXMoKSkKQEAgLTEwOSwxMyArMTA5LDkg
QEAgUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0
ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0M0QKIAogICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW46Ci0gICAgICAgIGlm
IChPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVPZmZTY3JlZW5Db250
ZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gY3JlYXRlT2ZmU2NyZWVuQ29udGV4dCgpOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclRvQ3VycmVudEdMQ29udGV4dDoKLSAgICAgICAgaWYg
KE93blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gY29udGV4dCA9IGFkb3B0UHRyKG5ldyBHTEN1cnJl
bnRDb250ZXh0V3JhcHBlcigpKSkKLSAgICAgICAgICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2Uo
KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdMQ3Vy
cmVudENvbnRleHRXcmFwcGVyPigpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRl
ckRpcmVjdGx5VG9Ib3N0V2luZG93OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCmluZGV4IDAzMTQ3Yzg4YmViYzYyNjVh
Y2MxYTFmNGIxYWRkZWUwYzlmMmNjZDMuLmZkMzlkNGM4ZTJjODQ1YWM0MTNlNWJjMzhjZjZmZGMx
YmEzNzJlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5j
bHVkZSAiR0xQbGF0Zm9ybVN1cmZhY2UuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5o
IgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIC8vIEVuY2Fwc3VsYXRlcyBhbiBPcGVuR0wgY29udGV4dCwgaGlkaW5nIHBsYXRmb3Jt
IHNwZWNpZmljIG1hbmFnZW1lbnQuCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw3ICs0Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgUExBVEZPUk1DT05URVhUX1VOS05PV05fQ09OVEVYVF9SRVNF
VCA9IDB4ODI1NSwKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybUNv
bnRleHQ+IGNyZWF0ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1Db250ZXh0PiBjcmVhdGVDb250ZXh0
KEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0dMRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNw
cAppbmRleCBkZDI3Zjc2OTkyYjc1MzhmN2RjNmZlMjEzNDEwMDIzYTlhMjUwMThkLi5jNGM4ZDY0
NjlhOTIyZThmYWYwYTk2OGRkNGMyYzU4Mzk3YWU4OGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFj
ZS5jcHAKQEAgLTQwLDExICs0MCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBH
TFBsYXRmb3JtU3VyZmFjZSogbV9jdXJyZW50RHJhd2FibGUgPSAwOwogCi1QYXNzT3duUHRyPEdM
UGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFj
ZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZv
cm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJm
YWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogewotICAgIE93blB0cjxHTFBsYXRmb3JtU3VyZmFj
ZT4gc3VyZmFjZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZh
Y2U7CiAjaWYgVVNFKEdMWCkKLSAgICBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEdMWE9mZlNjcmVl
blN1cmZhY2UoYXR0cmlidXRlcykpOworICAgIHN1cmZhY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEdM
WE9mZlNjcmVlblN1cmZhY2U+KGF0dHJpYnV0ZXMpOwogI2VsaWYgVVNFKEVHTCkgJiYgVVNFKEdS
QVBISUNTX1NVUkZBQ0UpCiAgICAgc3VyZmFjZSA9IEVHTE9mZlNjcmVlblN1cmZhY2U6OmNyZWF0
ZU9mZlNjcmVlblN1cmZhY2UoYXR0cmlidXRlcyk7CiAjZWxzZQpAQCAtNTMsNyArNTMsNyBAQCBQ
YXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2Zm
U2NyZWVuU3VyZmFjZShTdXJmYWNlQQogI2VuZGlmCiAKICAgICBpZiAoc3VyZmFjZSAmJiBzdXJm
YWNlLT5kcmF3YWJsZSgpKQotICAgICAgICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CisgICAg
ICAgIHJldHVybiBzdXJmYWNlOwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oCmluZGV4IGFmN2Y3YmNiNzM4OWYzYmJkNGNkOTYwYmIzOWIyNmMwYjU2Zjg3MmYu
LmY1ZTRmNTMxMmI2ZTNjZTVjNmVhMjFlMjFkZDBiNmQ3NWE3OTM4MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5zaWdu
ZWQgU3VyZmFjZUF0dHJpYnV0ZXM7CiAgICAgLy8gQ3JlYXRlcyBhIEdMIHN1cmZhY2UgdXNlZCBm
b3Igb2Zmc2NyZWVuIHJlbmRlcmluZy4KLSAgICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3Jt
U3VyZmFjZT4gY3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxh
dGZvcm1TdXJmYWNlOjpEZWZhdWx0KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMUGxh
dGZvcm1TdXJmYWNlPiBjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzID0g
R0xQbGF0Zm9ybVN1cmZhY2U6OkRlZmF1bHQpOwogCiAgICAgdmlydHVhbCB+R0xQbGF0Zm9ybVN1
cmZhY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWZsL0dyYXBoaWNzU3VyZmFjZUNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcApp
bmRleCAzNWI5MWI2YWEzNGYwNjkwZjlmMzI0MjA0YzEzMDhlZDUwOWU1M2EzLi5iZThjNjk4N2I3
YTg3ZTc4ODA3NzE5ZDk4MWJjZTJmMTlhMWY4NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3Jh
cGhpY3NTdXJmYWNlQ29tbW9uLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAg
SW50U2l6ZSBtX3NpemU7CiAgICAgUGxhdGZvcm1CdWZmZXJIYW5kbGUgbV9zaGFyZWRIYW5kbGU7
CiAgICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZUNsaWVudD4gbV9jbGllbnQ7Ci0gICAgT3du
UHRyPEdMUGxhdGZvcm1Db250ZXh0PiBtX3NoYXJlZENvbnRleHQ7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEdMUGxhdGZvcm1Db250ZXh0PiBtX3NoYXJlZENvbnRleHQ7CiAgICAgT3duUHRyPEdMVHJh
bnNwb3J0U3VyZmFjZT4gbV9zaGFyZWRTdXJmYWNlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2Uu
Y3BwCmluZGV4IDk3NWQ0ODZiNTMwZGI4NGE0NTM2MmM5YTBmZTk1MTUwM2IwMTYxMDYuLjZjM2M1
ZTMyM2Q3ZTYxNTVlZTZiNGIyNjNjYTU4YzU0OGY5ZTJmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFj
ZS5jcHAKQEAgLTExMiwxOSArMTEyLDE0IEBAIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBFR0xUcmFu
c3BvcnRTdXJmYWNlOjpjb25maWd1cmF0aW9uKCkKICAgICByZXR1cm4gbV9jb25maWdTZWxlY3Rv
ci0+c3VyZmFjZUNvbnRleHRDb25maWcoKTsKIH0KIAotUGFzc093blB0cjxHTFBsYXRmb3JtU3Vy
ZmFjZT4gRUdMT2ZmU2NyZWVuU3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNl
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1TdXJmYWNl
PiBFR0xPZmZTY3JlZW5TdXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMpCiB7Ci0gICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJm
YWNlOwogI2lmIFBMQVRGT1JNKFgxMSkKLSAgICBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFBp
eG1hcFN1cmZhY2UoYXR0cmlidXRlcykpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVH
TFBpeG1hcFN1cmZhY2U+KGF0dHJpYnV0ZXMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oYXR0
cmlidXRlcyk7Ci0jZW5kaWYKLQotICAgIGlmIChzdXJmYWNlKQotICAgICAgICByZXR1cm4gc3Vy
ZmFjZS5yZWxlYXNlKCk7Ci0KICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgogfQogCiBFR0xP
ZmZTY3JlZW5TdXJmYWNlOjpFR0xPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzIHN1
cmZhY2VBdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmgKaW5kZXggMGY5YWFiNmU2Zjg3ZTBh
MmFjYTkyYjI2ZGQyNDhmYWQ1MGIwMTgxZC4uNWRlYmU3ZWRiNmI1ZjkxZjU0MmViMzAwNzc4ZDBl
ZDkzZTFlOTQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5oCkBAIC01Myw3ICs1Myw3IEBAIHByb3Rl
Y3RlZDoKIAogY2xhc3MgRUdMT2ZmU2NyZWVuU3VyZmFjZSA6IHB1YmxpYyBHTFBsYXRmb3JtU3Vy
ZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+
IGNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZU9mZlNjcmVlblN1cmZhY2Uo
U3VyZmFjZUF0dHJpYnV0ZXMpOwogICAgIHZpcnR1YWwgfkVHTE9mZlNjcmVlblN1cmZhY2UoKTsK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBjb25maWd1cmF0aW9uKCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDRkYjdkNjcyYjkxZDFjYjJiMmM5MzZj
NmQ3ZmQ0OWMzNGU1YjAyYmIuLjNlZjdjMmJiOGI0NmNhZTk2MjQ5NjViMzQ4NGYxN2Y3MzdjZGEz
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtNDUs
NyArNDUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBmYWN0bwogCiBHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoR3JhcGhpY3NMYXllckNsaWVudCog
Y2xpZW50KQogICAgIDogR3JhcGhpY3NMYXllcihjbGllbnQpCi0gICAgLCBtX2xheWVyKGFkb3B0
UHRyKG5ldyBUZXh0dXJlTWFwcGVyTGF5ZXIoKSkpCisgICAgLCBtX2xheWVyKHN0ZDo6bWFrZV91
bmlxdWU8VGV4dHVyZU1hcHBlckxheWVyPigpKQogICAgICwgbV9jb21wb3NpdGVkTmF0aXZlSW1h
Z2VQdHIoMCkKICAgICAsIG1fY2hhbmdlTWFzayhOb0NoYW5nZXMpCiAgICAgLCBtX25lZWRzRGlz
cGxheShmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXgg
ZDkxOWE0NTdiZGFkMmJlOGFlMWEwYmEzNjMxMzdkZWM3M2Q3ZmYxMy4uYjc4YjNhNjUwNGE4ZTMy
NDU2OGNjMjU3ZTE2MDU3YTI3MWIwOTk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmgKQEAgLTE2MCw3ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIH07CiAgICAgdm9p
ZCBub3RpZnlDaGFuZ2UoQ2hhbmdlTWFzayk7CiAKLSAgICBPd25QdHI8VGV4dHVyZU1hcHBlckxh
eWVyPiBtX2xheWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IG1f
bGF5ZXI7CiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZT4gbV9jb21w
b3NpdGVkSW1hZ2U7CiAgICAgTmF0aXZlSW1hZ2VQdHIgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQ
dHI7CiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3Jl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXIuY3BwCmluZGV4IDNlMDdmNzQ3MDRiZTgwYmU1ODEzMDFjMjdiYTIxNGMy
ZWMxNWY1NmYuLjcwZTRlODEzOGQ1Mjg2ZTkxZDg4YmMxZWJhYjdlNDUxOTgyYWU0YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlci5jcHAKQEAgLTEyOCwxMCArMTI4LDEwIEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gVGV4dHVyZU1hcHBlcjo6YWNxdWlyZVRleHR1cmVGcm9tUG9vbChjb25zdCBJbnRTaXpl
JiBzCiAgICAgcmV0dXJuIHNlbGVjdGVkVGV4dHVyZTsKIH0KIAotUGFzc093blB0cjxUZXh0dXJl
TWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpjcmVhdGUoQWNjZWxlcmF0aW9uTW9kZSBtb2RlKQorc3Rk
Ojp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShBY2NlbGVy
YXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gU29mdHdhcmVNb2RlKQotICAgICAg
ICByZXR1cm4gVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyOjpjcmVhdGUoKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyPigpOwogICAgIHJl
dHVybiBwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCk7CiB9CiAKQEAgLTEzOSw3ICsxMzksNyBA
QCBUZXh0dXJlTWFwcGVyOjpUZXh0dXJlTWFwcGVyKEFjY2VsZXJhdGlvbk1vZGUgYWNjZWxlcmF0
aW9uTW9kZSkKICAgICA6IG1fY29udGV4dCgwKQogICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0
eShJbnRlcnBvbGF0aW9uRGVmYXVsdCkKICAgICAsIG1fdGV4dERyYXdpbmdNb2RlKFRleHRNb2Rl
RmlsbCkKLSAgICAsIG1fdGV4dHVyZVBvb2woYWRvcHRQdHIobmV3IEJpdG1hcFRleHR1cmVQb29s
KCkpKQorICAgICwgbV90ZXh0dXJlUG9vbChzdGQ6Om1ha2VfdW5pcXVlPEJpdG1hcFRleHR1cmVQ
b29sPigpKQogICAgICwgbV9hY2NlbGVyYXRpb25Nb2RlKGFjY2VsZXJhdGlvbk1vZGUpCiAgICAg
LCBtX2lzTWFza01vZGUoZmFsc2UpCiAgICAgLCBtX3dyYXBNb2RlKFN0cmV0Y2hXcmFwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmgKaW5kZXggMTk5NmE3OTRkZWU2MzE3Y2MxYmI4MWViNzc2MzIyMGE1M2E2NWE2YS4u
OTMxMjAzZDE3MGUzNzU1MzQ4MGI1NzBhODYzNzgyMGIzMjZmNjVmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5o
CkBAIC0xMTYsNyArMTE2LDkgQEAgcHVibGljOgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBQYWlu
dEZsYWdzOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8VGV4dHVyZU1hcHBlcj4gY3JlYXRlKEFj
Y2VsZXJhdGlvbk1vZGUgbmV3TW9kZSA9IFNvZnR3YXJlTW9kZSk7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyPiBjcmVhdGUoQWNjZWxlcmF0aW9uTW9kZSBuZXdNb2Rl
ID0gU29mdHdhcmVNb2RlKTsKKworICAgIGV4cGxpY2l0IFRleHR1cmVNYXBwZXIoQWNjZWxlcmF0
aW9uTW9kZSk7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlcigpOwogCiAgICAgZW51bSBFeHBv
c2VkRWRnZXMgewpAQCAtMTYzLDggKzE2NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdyYXBN
b2RlKFdyYXBNb2RlIG0pIHsgbV93cmFwTW9kZSA9IG07IH0KIAogcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IFRleHR1cmVNYXBwZXIoQWNjZWxlcmF0aW9uTW9kZSk7Ci0KICAgICBHcmFwaGljc0Nv
bnRleHQqIG1fY29udGV4dDsKIAogICAgIGJvb2wgaXNJbk1hc2tNb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9pc01hc2tNb2RlOyB9CkBAIC0xNzMsMTYgKzE3MywxNiBAQCBwcm90ZWN0ZWQ6CiAKIHBy
aXZhdGU6CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQotICAgIHN0YXRpYyBQYXNzT3duUHRy
PFRleHR1cmVNYXBwZXI+IHBsYXRmb3JtQ3JlYXRlQWNjZWxlcmF0ZWQoKTsKKyAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+IHBsYXRmb3JtQ3JlYXRlQWNjZWxlcmF0ZWQo
KTsKICNlbHNlCi0gICAgc3RhdGljIFBhc3NPd25QdHI8VGV4dHVyZU1hcHBlcj4gcGxhdGZvcm1D
cmVhdGVBY2NlbGVyYXRlZCgpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFw
cGVyPiBwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBQ
YXNzT3duUHRyPFRleHR1cmVNYXBwZXI+KCk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFRleHR1cmVNYXBwZXI+KCk7CiAgICAgfQogI2VuZGlmCiAgICAgSW50ZXJwb2xhdGlvblF1
YWxpdHkgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eTsKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyBt
X3RleHREcmF3aW5nTW9kZTsKLSAgICBPd25QdHI8Qml0bWFwVGV4dHVyZVBvb2w+IG1fdGV4dHVy
ZVBvb2w7CisgICAgc3RkOjp1bmlxdWVfcHRyPEJpdG1hcFRleHR1cmVQb29sPiBtX3RleHR1cmVQ
b29sOwogICAgIEFjY2VsZXJhdGlvbk1vZGUgbV9hY2NlbGVyYXRpb25Nb2RlOwogICAgIGJvb2wg
bV9pc01hc2tNb2RlOwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcGF0dGVyblRyYW5zZm9y
bTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggNWM5ZjhmZDU2NTk3OTgzMjg4NjJhN2Y4NTQz
NGNjY2MwMzRjOThmYi4uMjRkZWQxZTA3ZmM5YjMwYzAxYTFiZTEwZDEwZThhZWUxNjIxODQ4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTExMjksOSArMTEyOSw5IEBAIFBhc3NSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlckdMOjpjcmVhdGVUZXh0dXJlKCkKIH0KIAogI2lm
IFVTRShURVhUVVJFX01BUFBFUl9HTCkKLVBhc3NPd25QdHI8VGV4dHVyZU1hcHBlcj4gVGV4dHVy
ZU1hcHBlcjo6cGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpCitzdGQ6OnVuaXF1ZV9wdHI8VGV4
dHVyZU1hcHBlcj4gVGV4dHVyZU1hcHBlcjo6cGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpCiB7
Ci0gICAgcmV0dXJuIFRleHR1cmVNYXBwZXJHTDo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlckdMPigpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
R0wuaAppbmRleCBmMGZkMWIxYjRlMTJlNWQ5YzAxM2E2MjQ3ZWUzYjU0ZjRlMmJkMGMzLi44MzI0
OGY4NmQwM2FmMmVmYjJiZWRkMWE1ZDM5ZTY2Nzc5YjdkNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5o
CkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEZpbHRlck9wZXJhdGlvbjsKIC8vIEFuIE9wZW5HTC1F
UzIgaW1wbGVtZW50YXRpb24gb2YgVGV4dHVyZU1hcHBlci4KIGNsYXNzIFRleHR1cmVNYXBwZXJH
TCA6IHB1YmxpYyBUZXh0dXJlTWFwcGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0
cjxUZXh0dXJlTWFwcGVyR0w+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZXh0dXJl
TWFwcGVyR0wpOyB9CisgICAgVGV4dHVyZU1hcHBlckdMKCk7CiAgICAgdmlydHVhbCB+VGV4dHVy
ZU1hcHBlckdMKCk7CiAKICAgICBlbnVtIEZsYWcgewpAQCAtMTIwLDggKzEyMCw2IEBAIHByaXZh
dGU6CiAgICAgICAgIFlBeGlzTW9kZSB5QXhpc01vZGU7CiAgICAgfTsKIAotICAgIFRleHR1cmVN
YXBwZXJHTCgpOwotCiAgICAgdm9pZCBkcmF3VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0oVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0qLCB1aW50MzJfdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50
U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2Rl
bFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHkpOwogICAgIHZvaWQgZHJhdyhjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbW9kZWxWaWV3TWF0cml4LCBUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbSosIEdDM0RlbnVtIGRyYXdpbmdNb2RlLCBGbGFncyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVySW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaAppbmRleCBmNWUzOGIzNThmNjU3MTQ2Yjg1
M2Y0MjUxZTRjNTczODMwMzI2YjlhLi44MmRmMDRlODZmMzEyNWY5N2IxNmIxYzRmZmRmNzgyZGNm
NGJlNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCkBAIC01MCw3ICs1
MCw5IEBAIHByaXZhdGU6CiBjbGFzcyBUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIgOiBwdWJsaWMg
VGV4dHVyZU1hcHBlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8VGV4dHVyZU1hcHBlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRQdHIobmV3IFRleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlcik7IH0KKyAgICBUZXh0dXJlTWFwcGVy
SW1hZ2VCdWZmZXIoKQorICAgICAgICA6IFRleHR1cmVNYXBwZXIoU29mdHdhcmVNb2RlKQorICAg
IHsgfQogCiAgICAgLy8gVGV4dHVyZU1hcHBlciBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwg
dm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CkBAIC03MCw5
ICs3Miw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgVGV4dHVyZU1hcHBlcklt
YWdlQnVmZmVyKCkKLSAgICAgICAgOiBUZXh0dXJlTWFwcGVyKFNvZnR3YXJlTW9kZSkKLSAgICB7
IH0KICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gbV9jdXJyZW50U3VyZmFjZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5j
cHAKaW5kZXggODNmZDU2ODIxNTZmMDkxNzhiNjBmYWNjZDA0M2E2Njc4ZDBjNmNkZi4uMzU3N2Zh
OGMyMDIyYmRmNGY5MzdhMDYwYWVmYmJmMTM3YWExNDNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTY0Niw3ICs2
NDYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cHVyZ2VHTFJlc291cmNlcygp
CiAgICAgbV9yb290TGF5ZXJJRCA9IEludmFsaWRDb29yZGluYXRlZExheWVySUQ7CiAgICAgbV9s
YXllcnMuY2xlYXIoKTsKICAgICBtX2ZpeGVkTGF5ZXJzLmNsZWFyKCk7Ci0gICAgbV90ZXh0dXJl
TWFwcGVyLmNsZWFyKCk7CisgICAgbV90ZXh0dXJlTWFwcGVyID0gbnVsbHB0cjsKICAgICBtX2Jh
Y2tpbmdTdG9yZXMuY2xlYXIoKTsKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZl
cnMuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5oCmluZGV4IGJkZmFmMGY3ODI3NTE0Mjc3ZjI5Yzc2YTE5MTE3ZGRmZGFh
ODI4NmIuLjc1YTQ3MmQ0ZDEyOWMzMzk3ODFlOTk2N2JjMWQ5YWRjNGZhYTc4ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAg
LTE1Miw3ICsxNTIsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4+IG1fcmVuZGVyUXVldWU7CiAgICAgTXV0ZXggbV9yZW5kZXJRdWV1ZU11dGV4OwogCi0gICAg
T3duUHRyPFRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1hcHBlcjsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwogCiAgICAgdHlwZWRlZiBIYXNoTWFw
PENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZT4gPiBJbWFnZUJhY2tpbmdNYXA7CiAgICAgSW1hZ2VCYWNraW5nTWFwIG1faW1hZ2VCYWNraW5n
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvVHJhbnNmb3JtU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5jcHAKaW5kZXggYjVjMDkwOGU1ZWNjMmJmZjk5YTFj
Y2ZjNzI0MmQ5ZmU2YWRmNTRiOS4uMGU2OWQ2NjEwZjIxNGNkNmJiZTE3NTU5YzI4MGJlYjFlOTcw
MGNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9UcmFuc2Zvcm1TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1TdGF0ZS5oIgogCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBUcmFuc2Zvcm1T
dGF0ZSYgVHJhbnNmb3JtU3RhdGU6Om9wZXJhdG9yPShjb25zdCBUcmFuc2Zvcm1TdGF0ZSYgb3Ro
ZXIpCkBAIC00MiwxMCArNDAsMTAgQEAgVHJhbnNmb3JtU3RhdGUmIFRyYW5zZm9ybVN0YXRlOjpv
cGVyYXRvcj0oY29uc3QgVHJhbnNmb3JtU3RhdGUmIG90aGVyKQogICAgIG1fYWNjdW11bGF0aW5n
VHJhbnNmb3JtID0gb3RoZXIubV9hY2N1bXVsYXRpbmdUcmFuc2Zvcm07CiAgICAgbV9kaXJlY3Rp
b24gPSBvdGhlci5tX2RpcmVjdGlvbjsKICAgICAKLSAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3Jt
LmNsZWFyKCk7CisgICAgbV9hY2N1bXVsYXRlZFRyYW5zZm9ybSA9IG51bGxwdHI7CiAKICAgICBp
ZiAob3RoZXIubV9hY2N1bXVsYXRlZFRyYW5zZm9ybSkKLSAgICAgICAgbV9hY2N1bXVsYXRlZFRy
YW5zZm9ybSA9IGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgqb3RoZXIubV9hY2N1
bXVsYXRlZFRyYW5zZm9ybSkpOworICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtID0gc3Rk
OjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4oKm90aGVyLm1fYWNjdW11bGF0ZWRU
cmFuc2Zvcm0pOwogICAgICAgICAKICAgICByZXR1cm4gKnRoaXM7CiB9CkBAIC0xMjEsMTIgKzEx
OSwxMiBAQCB2b2lkIFRyYW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtRnJvbUNvbgogICAgIC8vIElmIHdlIGhhdmUgYW4gYWNj
dW11bGF0ZWQgdHJhbnNmb3JtIGZyb20gbGFzdCB0aW1lLCBtdWx0aXBseSBpbiB0aGlzIHRyYW5z
Zm9ybQogICAgIGlmIChtX2FjY3VtdWxhdGVkVHJhbnNmb3JtKSB7CiAgICAgICAgIGlmIChtX2Rp
cmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURpcmVjdGlvbikKLSAgICAgICAgICAgIG1fYWNjdW11
bGF0ZWRUcmFuc2Zvcm0gPSBhZG9wdFB0cihuZXcgVHJhbnNmb3JtYXRpb25NYXRyaXgodHJhbnNm
b3JtRnJvbUNvbnRhaW5lciAqICptX2FjY3VtdWxhdGVkVHJhbnNmb3JtKSk7CisgICAgICAgICAg
ICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtID0gc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1hdGlv
bk1hdHJpeD4odHJhbnNmb3JtRnJvbUNvbnRhaW5lciAqICptX2FjY3VtdWxhdGVkVHJhbnNmb3Jt
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+bXVs
dGlwbHkodHJhbnNmb3JtRnJvbUNvbnRhaW5lcik7CiAgICAgfSBlbHNlIGlmIChhY2N1bXVsYXRl
ID09IEFjY3VtdWxhdGVUcmFuc2Zvcm0pIHsKICAgICAgICAgLy8gTWFrZSBvbmUgaWYgd2Ugc3Rh
cnRlZCB0byBhY2N1bXVsYXRlCi0gICAgICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0gPSBhZG9w
dFB0cihuZXcgVHJhbnNmb3JtYXRpb25NYXRyaXgodHJhbnNmb3JtRnJvbUNvbnRhaW5lcikpOwor
ICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtID0gc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zv
cm1hdGlvbk1hdHJpeD4odHJhbnNmb3JtRnJvbUNvbnRhaW5lcik7CiAgICAgfQogICAgIAogICAg
IGlmIChhY2N1bXVsYXRlID09IEZsYXR0ZW5UcmFuc2Zvcm0pIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3Rh
dGUuaAppbmRleCBiYzY4MmE3ZDk0OGVkNzFlZDRlMmJjMmE1YzliN2Y5NDJlOGU0MzFlLi5mOGJj
MzJmOTQyOTY1MGI0NTk0YWYyODU5ZTY0ODE1ZmJhMTJmN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1T
dGF0ZS5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUg
IkxheW91dFNpemUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTAsNyArMTA5
LDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdFF1YWQgbV9sYXN0UGxhbmFyUXVhZDsKIAogICAgIC8v
IFdlIG9ubHkgYWxsb2NhdGUgdGhlIHRyYW5zZm9ybSBpZiB3ZSBuZWVkIHRvCi0gICAgT3duUHRy
PFRyYW5zZm9ybWF0aW9uTWF0cml4PiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybTsK
ICAgICBMYXlvdXRTaXplIG1fYWNjdW11bGF0ZWRPZmZzZXQ7CiAgICAgYm9vbCBtX2FjY3VtdWxh
dGluZ1RyYW5zZm9ybTsKICAgICBib29sIG1fbWFwUG9pbnQsIG1fbWFwUXVhZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQz
RFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3ND
b250ZXh0M0RXaW4uY3BwCmluZGV4IDJmMzVlZjU0MGM4NzAzZDJkMTdiOGRlNDQ1NGRiYWU1YTVm
NzhiNjguLmIxOTFmOTEzODkwOTA2ZjEzYWZlMzhmNWRiYmNmZTMxYjQ5MjJjYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQz
RFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBo
aWNzQ29udGV4dDNEV2luLmNwcApAQCAtNzksNyArNzksNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6
R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRl
cywgSAogICAgICwgbV9tdWx0aXNhbXBsZUZCTygwKQogICAgICwgbV9tdWx0aXNhbXBsZURlcHRo
U3RlbmNpbEJ1ZmZlcigwKQogICAgICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCi0gICAg
LCBtX3ByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGUodGhpcywgcmVuZGVy
U3R5bGUpKQorICAgICwgbV9wcml2YXRlKHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlPih0aGlzLCByZW5kZXJTdHlsZSkpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50
KCk7CiAKQEAgLTE2MywxMSArMTYzLDExIEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3ND
b250ZXh0M0QoKQogICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKIH0KIAot
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRy
PENvbnRleHRMb3N0Q2FsbGJhY2s+KQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4
dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RDYWxsYmFjaz4pCiB7CiB9
CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKFBhc3NP
d25QdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0
RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGxiYWNr
PikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggNjk2
YzNkZDVkOGZiYTE4N2FmODg5ZWJmZGI2YmUxMGE0NDZmNzNjNy4uZTkwOTBmYzc4ZjUyM2Q3YzEx
NjcxNTYwZGQwMjAzZjk2MTJkYjMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dEVmbC5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckZQU0NvdW50
ZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgot
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAg
RXZhc19PYmplY3QqIG1fdmlldzsKICAgICBFdmFzX09iamVjdCogbV9jb21wb3NpdGluZ09iamVj
dDsKIAotICAgIE93blB0cjxUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1hcHBlcjsKICAgICBHcmFwaGlj
c0xheWVyKiBtX3Jvb3RMYXllcjsKICAgICBUaW1lcjxBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dD4gbV9zeW5jVGltZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCmluZGV4
IDA1OGZjYmEyNzY4MDE1ZTFhYmExY2UzODIxYTM2Y2IxNjhmZDU1MWUuLjNhY2ZjOGQ2ZTg1MjE0
NTkzODNhMmU0MzQ3MGEyZDFiYjVkODllMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxXZWJDb3JlOjpSZWRp
cmVjdGVkWENvbXBvc2l0ZVdpbmRvdz4gbV9yZWRpcmVjdGVkV2luZG93OwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9ub25Db21wb3NpdGVkQ29udGVudExh
eWVyOwotICAgIE93blB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1h
cHBlcjsKICAgICBkb3VibGUgbV9sYXN0Rmx1c2hUaW1lOwogICAgIGRvdWJsZSBtX3JlZHJhd1Bl
bmRpbmdUaW1lOwogICAgIGJvb2wgbV9uZWVkc0V4dHJhRmx1c2g7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCmlu
ZGV4IDFjYmNmM2U1NzRmOWVkY2VmYzFiN2I5MTRhZTAxNjI3ODdlYTY4ZWUuLjNjOGMyYTBlMWMx
MGI5OWI5NWFjODk2ODc1ZmNhNzVkZjZlMzQ0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC0xMDMs
NyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllcj4gbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyOwogICAgIHR5cGVkZWYgSGFzaE1h
cDxQYWdlT3ZlcmxheSosIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPj4g
UGFnZU92ZXJsYXlMYXllck1hcDsKICAgICBQYWdlT3ZlcmxheUxheWVyTWFwIG1fcGFnZU92ZXJs
YXlMYXllcnM7Ci0gICAgT3duUHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1h
cHBlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0
dXJlTWFwcGVyOwogICAgIE93blB0cjxXZWJDb3JlOjpHTENvbnRleHQ+IG1fY29udGV4dDsKICAg
ICBkb3VibGUgbV9sYXN0Rmx1c2hUaW1lOwogICAgIGJvb2wgbV9sYXllckZsdXNoU2NoZWR1bGlu
Z0VuYWJsZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228733</attachid>
            <date>2014-04-07 07:09:45 -0700</date>
            <delta_ts>2014-04-10 04:43:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131276-20140407230924.patch</filename>
            <type>text/plain</type>
            <size>44557</size>
            <attacher name="Hyowon Kim">hw1008.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2ODY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTM0ZjhmNGYzZGQzMWM3
M2U1ODUyNDFlZjU5MTMzODBhNWQxODgyMS4uZmI5OGI1ZGFmM2M3MzQ0Mjc1NDRhM2QzODcyODNl
NzAwOGI4OGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE0LTA0LTA3ICBIeW93
b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5n
IHN0ZDo6dW5pcXVlX3B0ciBmb3Igb3BlbmdsLCB0ZXhtYXAsIHRyYW5zZm9ybXMgYW5kIGVmbCBp
biBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93blB0ciBhbmQgUGFzc093blB0
ciBpbiBjb2RlIHVuZGVyIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvCisgICAgICAgIG9wZW5n
bCwgdGV4bWFwLCB0cmFuc2Zvcm1zIGFuZCBlZmwgd2l0aCBzdGQ6OnVuaXF1ZV9wdHIuCisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4
dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFj
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExv
c3RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJy
b3JNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTEVTOjpzZXRFWFRDb250ZXh0
TG9zdENhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMRVMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQ
bGF0Zm9ybUNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT2ZmU2NyZWVuQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZTY3Jl
ZW5TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9y
bVN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3Jh
cGhpY3NTdXJmYWNlQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5T
dXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpUZXh0dXJlTWFwcGVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlcjo6cGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJhdGVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmg6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckltYWdlQnVmZmVyOjpUZXh0dXJlTWFwcGVy
SW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckltYWdlQnVmZmVy
OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwdXJnZUdMUmVzb3VyY2VzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zv
cm1TdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1TdGF0ZTo6b3BlcmF0b3I9
KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0Qp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVz
c2FnZUNhbGxiYWNrKToKKwogMjAxNC0wNC0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWlu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHRoZSBkZWJ1ZyBib3RzIGFmdGVyIHIxNjY4NjMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCAzYTFjNjRiMjBjZjhkMGU0N2RlZjE4M2MxNmMzZDczOTkzMDVk
ZDBhLi4zODNlYTc1NTIwMGZiZTg1YmVkZGNmNDE2MmJkZjUwYWVjMGZhNjFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDQtMDcgIEh5b3dvbiBLaW0gIDxodzEwMDgu
a2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1vdmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRy
IGZvciBvcGVuZ2wsIHRleG1hcCwgdHJhbnNmb3JtcyBhbmQgZWZsIGluIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzEyNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZXBsYWNlIHVzZXMgb2YgT3duUHRyIGZvciBUZXh0dXJlTWFwcGVyIGluIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0RWZsIHdpdGggc3RkOjp1bmlxdWVfcHRyLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRFZmwuaDoKKwog
MjAxNC0wNC0wNSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF1bV0sxXSBBcHBseSBvdmVycmlkZSBhbmQgZmluYWwga2V5d29yZCBmb3IgQ2hyb21l
Q2xpZW50RWZsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNWMwNjY0ZTM2YWQ0ZTg4MDViNTNjNjJiNzU4
NjZjZTYyNjgzNWY0ZC4uYjM3NGE5ZTNlNTEwODMwMDQwYzExNGJlNjBlOGZhN2RiOTQ4ZDM5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTA0LTA3ICBIeW93b24gS2lt
ICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6
dW5pcXVlX3B0ciBmb3Igb3BlbmdsLCB0ZXhtYXAsIHRyYW5zZm9ybXMgYW5kIGVmbCBpbiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMxMjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93blB0ciBmb3IgVGV4dHVyZU1hcHBlciBp
biBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCB3aXRoIHN0ZDo6dW5pcXVlX3B0ci4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Lmg6
CisKIDIwMTQtMDQtMDIgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgogCiAgICAgICAg
IFVuaWZ5IHByaXZhdGUgYnJvd3Npbmcgd2l0aCBzZXNzaW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiYTBl
ZmVlYWM0YTQ3ZjI5NTNmZDRhZTg5MDVhMDczN2VjMDI4ZjE1Li4xYTUxY2FkODQxYzdlYjQ1MmIx
OTUwNDdkMDk4MjhlYzM3ZDEwOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQt
MDQtMDcgIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1v
dmUgdG8gdXNpbmcgc3RkOjp1bmlxdWVfcHRyIGZvciBvcGVuZ2wsIHRleG1hcCwgdHJhbnNmb3Jt
cyBhbmQgZWZsIGluIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyNzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgT3duUHRyIGZv
ciBUZXh0dXJlTWFwcGVyIGluIExheWVyVHJlZUhvc3RHdGsgd2l0aCBzdGQ6OnVuaXF1ZV9wdHIu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaDoK
KwogMjAxNC0wNC0wNiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IENsZWFuIHVwIFdLR2VzdHVyZVR5cGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGUyYTRlNmZkZjBmODFiODY5
ZWRmZWVkNDNkMmYyMmNlYmViOGNhNDYuLjQxOGNiYjg1NTQ0YzFjNGJiYmE2ZjYxY2VmZjE1Yzhh
NjBhYzQwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNTg4LDggKzU4OCw4IEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT52aWV3cG9y
dCgwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1f
Y29udGV4dC0+c2Npc3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVp
Z2h0KCkpOwogCi0gICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKGFkb3B0UHRy
KG5ldyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sodGhpcykpKTsKLSAgICBtX2Nv
bnRleHQtPnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKGFkb3B0UHRyKG5ldyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayh0aGlzKSkpOworICAgIG1fY29udGV4dC0+c2V0
Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4
dExvc3RDYWxsYmFjaz4odGhpcykpOworICAgIG1fY29udGV4dC0+c2V0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2soc3RkOjptYWtlX3VuaXF1ZTxXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VD
YWxsYmFjaz4odGhpcykpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6c2V0dXBG
bGFncygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAppbmRleCBiZTI2MDIzM2I2NDM2YTQ3NjhmZTg4N2Y1MmQ5ZmMwOGE4M2Vj
OTkwLi5iMWRjMmIyNTQyNTQ1MTM3YTZmYTE2MzY5YjIxNmM5NTI2M2M2ZjgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgK
QEAgLTQ3Nyw4ICs0NzcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkVycm9yTWVzc2Fn
ZUNhbGxiYWNrKCkgeyB9CiAgICAgfTsKIAotICAgIHZvaWQgc2V0Q29udGV4dExvc3RDYWxsYmFj
ayhQYXNzT3duUHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2b2lkIHNldEVycm9yTWVz
c2FnZUNhbGxiYWNrKFBhc3NPd25QdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KTsKKyAgICB2b2lk
IHNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJh
Y2s+KTsKKyAgICB2b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxF
cnJvck1lc3NhZ2VDYWxsYmFjaz4pOwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNyZWF0ZShBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBS
ZW5kZXJPZmZzY3JlZW4pOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBjcmVhdGVGb3JDdXJyZW50R0xDb250ZXh0KCk7CkBAIC0xMTQzLDcgKzExNDMsNyBAQCBwcml2
YXRlOgogICAgIExpc3RIYXNoU2V0PEdDM0RlbnVtPiBtX3N5bnRoZXRpY0Vycm9yczsKIAogICAg
IGZyaWVuZCBjbGFzcyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU7Ci0gICAgT3duUHRyPEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZT4gbV9wcml2YXRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0NvbnRleHQzRFByaXZhdGU+IG1fcHJpdmF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDk1NjE2NmRhY2JlMzE2ZjFiYjc3
YWQ4MzhlZWJjNzI5ODQ3NTNhMTUuLmZjZjMzZGUwOGIyN2JmNGUxNjBlNDBjNzJkNzY4M2U0NjNj
MDJmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAtNDUsMTEgKzQ1LDYgQEAgdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHls
ZSByZW5kZXJTdHlsZSkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZShjb250ZXh0LCByZW5kZXJTdHlsZSkpOwotfQotCiBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCogY29u
dGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQogICAgIDog
bV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX3JlbmRlclN0eWxlKHJlbmRlclN0eWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaAppbmRleCBiNmZkNDQ4Mjc2NDJlMWY5MmY5Nzc3ZjU5OWRkZWQ2ZDQz
ZThiMmE4Li4xNTY2ZGEwOGI3ZGJkNjE2MTgxZjJmMDQwZTJhYjNjODZjM2Q1OTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBHcmFwaGljc0NvbnRleHQz
RFByaXZhdGUKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZT4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3Jh
cGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOwogICAgIH5H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUoKTsKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgp
OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCk7CkBAIC00
OCw4ICs0OCw2IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIEdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJTdHlsZSk7Ci0KICAgICBHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIE93blB0
cjxHTENvbnRleHQ+IG1fZ2xDb250ZXh0OwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJT
dHlsZSBtX3JlbmRlclN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcAppbmRl
eCBhMjY1NzhiY2U5OTcyMmI0NTBlNjE5ZDk0NzMzNWEzMTNmODNhZmRkLi4xNGIxOThjZDc4NzIx
NGJjMGU0YjJiZGFjNjJiNTY0OTA1ZTU1YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRENh
aXJvLmNwcApAQCAtMzgsOCArMzgsNiBAQAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJv
LmgiCiAjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlIDxjYWlyby5oPgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiAjaWYgUExB
VEZPUk0oV0lOKQogI2luY2x1ZGUgIkdMU0xBTkcvU2hhZGVyTGFuZy5oIgpAQCAtODksNyArODcs
NyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSAogICAgICwgbV9tdWx0aXNhbXBsZUZCTygwKQog
ICAgICwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcigwKQogICAgICwgbV9tdWx0aXNh
bXBsZUNvbG9yQnVmZmVyKDApCi0gICAgLCBtX3ByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpjcmVhdGUodGhpcywgcmVuZGVyU3R5bGUpKQorICAgICwgbV9wcml2YXRlKHN0ZDo6bWFr
ZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0aGlzLCByZW5kZXJTdHlsZSkpCiB7
CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAKQEAgLTI3MiwxMSArMjcwLDExIEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hhciogaW1h
Z2VQaXhlbHMsIGludCBpbWFnCiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogfQogCi12b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25QdHI8Q29udGV4
dExvc3RDYWxsYmFjaz4pCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENh
bGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TG9zdENhbGxiYWNrPikKIHsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soUGFzc093blB0cjxF
cnJvck1lc3NhZ2VDYWxsYmFjaz4pCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1l
c3NhZ2VDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZh
c0dMQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TENvbnRleHQuaAppbmRleCA2ZTg2OWMwZjFhNmQ4NjVkOWRlODA3NWI0M2YzYmNhN2I5NWFjODIy
Li4wOTQxYWNmOGY0MDM3MWZiYmFlMjczNDJiNDdmMTBmZWU4ODg5NzllIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xDb250ZXh0LmgKQEAg
LTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgRXZhc0dMQ29udGV4dF9oCiAKICNpbmNsdWRlIDxFdmFz
X0dMLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZh
c0dMU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0V2YXNH
TFN1cmZhY2UuaAppbmRleCAwNGQxODc4ZmYzMjdlNTcwMDJkZGNkZWI2NTVjNmUwY2MzOTE1YmVi
Li4wYTgyYTViZWUwYTg1NWVmNTdkODc0NGZkN2IzM2M4YzVmZTE4YmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRXZhc0dMU3VyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9FdmFzR0xTdXJmYWNlLmgKQEAg
LTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJJbnRTaXplLmgiCiAKICNpbmNsdWRlIDxFdmFzX0dM
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhp
Y3NDb250ZXh0M0RFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAppbmRleCA5NDYxODI1NGFlZTI4ZGZkYTQ5NDE1YjU3
Mjk2YjI2NGFmOWIwMTA1Li5kZjdiNzFjOWFjNWU0OGNhZTU2ZGFlZGQwN2MwODk1N2QzYTkxOGM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhp
Y3NDb250ZXh0M0RFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKQEAgLTE5NywxMiArMTk3LDEyIEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJDb21wbGlhbnQoKSBjb25zdAogI2VuZGlmCiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093blB0
cjxDb250ZXh0TG9zdENhbGxiYWNrPiBjYWxsQmFjaykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJh
Y2s+IGNhbGxCYWNrKQogewotICAgIG1fcHJpdmF0ZS0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhj
YWxsQmFjayk7CisgICAgbV9wcml2YXRlLT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6bW92
ZShjYWxsQmFjaykpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3Nh
Z2VDYWxsYmFjayhQYXNzT3duUHRyPEVycm9yTWVzc2FnZUNhbGxiYWNrPikgCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8RXJy
b3JNZXNzYWdlQ2FsbGJhY2s+KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDgzNjUyMjc5YzE0ZDE1NmY1MGNhYWM5NzI1
YWUyNzg2NjdhODQ5N2QuLmFhMGY4NWZjYTVkMjlkZTQ0MDRjNDU2Mjk1NjhiYTE5MmFlZGQ4NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCkBAIC0yNiwxMiArMjYsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZT4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cpCitzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlPiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dCwgSG9zdFdpbmRvdyogaG9zdFdpbmRvdykKIHsKLSAgICBP
d25QdHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPiBwbGF0Zm9ybUxheWVyID0gYWRvcHRQdHIo
bmV3IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShjb250ZXh0LCBob3N0V2luZG93KSk7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4gcGxhdGZvcm1MYXllciA9
IHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPihjb250ZXh0LCBob3N0
V2luZG93KTsKIAogICAgIGlmIChwbGF0Zm9ybUxheWVyICYmIHBsYXRmb3JtTGF5ZXItPmluaXRp
YWxpemUoKSkKLSAgICAgICAgcmV0dXJuIHBsYXRmb3JtTGF5ZXIucmVsZWFzZSgpOworICAgICAg
ICByZXR1cm4gcGxhdGZvcm1MYXllcjsKIAogICAgIHJldHVybiBudWxscHRyOwogfQpAQCAtMTA1
LDkgKzEwNSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpyZWxlYXNlUmVzb3Vy
Y2VzKCkKICAgICB9CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpzZXRDb250
ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0
Q2FsbGJhY2s+IGNhbGxCYWNrKQordm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OnNldENv
bnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250
ZXh0TG9zdENhbGxiYWNrPiBjYWxsQmFjaykKIHsKLSAgICBtX2NvbnRleHRMb3N0Q2FsbGJhY2sg
PSBjYWxsQmFjazsKKyAgICBtX2NvbnRleHRMb3N0Q2FsbGJhY2sgPSBzdGQ6Om1vdmUoY2FsbEJh
Y2spOwogfQogCiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgKaW5kZXggZTBlYWYwOTM2ZWQ1Y2YwNmRkYWM5Mzk1MTQxMzFlOTNmY2IxZGYy
NC4uN2NlYzVkYjBjNWJjM2RmZTRiMjJjZGFjMWMyMjNlNDgwNjMzMTAxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaApAQCAtMjgsNyArMjgsNiBAQAogI2VuZGlmCiAKICNpbmNsdWRl
ICJHTFBsYXRmb3JtQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZQpAQCAtMzcs
MTEgKzM2LDEzIEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZQogI2VuZGlmCiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPiBj
cmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBIb3N0V2luZG93Kik7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+IGNyZWF0ZShHcmFwaGljc0NvbnRl
eHQzRCosIEhvc3RXaW5kb3cqKTsKKworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFw
aGljc0NvbnRleHQzRCosIEhvc3RXaW5kb3cqKTsKICAgICB+R3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlKCk7CiAKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKSBjb25zdDsKLSAgICB2b2lkIHNldENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093
blB0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4pOworICAgIHZvaWQg
c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0Q6
OkNvbnRleHRMb3N0Q2FsbGJhY2s+KTsKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAgICAg
dmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0KSBvdmVycmlkZTsK
ICNlbmRpZgpAQCAtNjYsNyArNjcsNiBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgdW5zaWduZWQg
UGVuZGluZ1N1cmZhY2VPcGVyYXRpb247CiAjZW5kaWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEhvc3RXaW5kb3cqKTsKICAgICBib29sIGluaXRp
YWxpemUoKTsKICAgICB2b2lkIGNyZWF0ZUdyYXBoaWNzU3VyZmFjZSgpOwogICAgIGJvb2wgcHJl
cGFyZUJ1ZmZlcigpIGNvbnN0OwpAQCAtNzQsMTUgKzc0LDE1IEBAIHByaXZhdGU6CiAKICAgICBH
cmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OwogICAgIEhvc3RXaW5kb3cqIG1faG9zdFdpbmRv
dzsKLSAgICBPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IG1fb2ZmU2NyZWVuQ29udGV4dDsKLSAg
ICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IG1fb2ZmU2NyZWVuU3VyZmFjZTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IG1fb2ZmU2NyZWVuQ29udGV4dDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IG1fb2ZmU2NyZWVuU3VyZmFjZTsKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiBtX3N1cmZh
Y2VIYW5kbGU7CiAgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gbV9ncmFwaGljc1N1cmZhY2U7
CiAgICAgUmVmUHRyPEdyYXBoaWNzU3VyZmFjZT4gbV9wcmV2aW91c0dyYXBoaWNzU3VyZmFjZTsK
ICAgICBQZW5kaW5nU3VyZmFjZU9wZXJhdGlvbiBtX3N1cmZhY2VPcGVyYXRpb24gOiAzOwogI2Vu
ZGlmCi0gICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENhbGxiYWNrPiBt
X2NvbnRleHRMb3N0Q2FsbGJhY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4
dDNEOjpDb250ZXh0TG9zdENhbGxiYWNrPiBtX2NvbnRleHRMb3N0Q2FsbGJhY2s7CiAgICAgTGlz
dEhhc2hTZXQ8R0MzRGVudW0+IG1fc3ludGhldGljRXJyb3JzOwogICAgIEludFNpemUgbV9zaXpl
OwogICAgIEludFJlY3QgbV90YXJnZXRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLm1tCmluZGV4
IGQ2YmFkNWE3MzhlOGNhODkxMzA4YjM4YWI4YTE2MjM5MjQ0NDA1YTcuLjNhNmQ0MjZiYmI4NmNj
YWFmZTBkY2M1YTUxMmIxNTUyOTQ5NTMxNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW0KQEAg
LTEzMiw3ICsxMzIsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3Jh
cGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaQogICAgICwgbV9tdWx0aXNh
bXBsZUZCTygwKQogICAgICwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcigwKQogICAg
ICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCi0gICAgLCBtX3ByaXZhdGUoYWRvcHRQdHIo
bmV3IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSh0aGlzKSkpCisgICAgLCBtX3ByaXZhdGUoc3Rk
OjptYWtlX3VuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+KHRoaXMpKQogewogICAgIFVO
VVNFRF9QQVJBTShob3N0V2luZG93KTsKICAgICBVTlVTRURfUEFSQU0ocmVuZGVyU3R5bGUpOwpA
QCAtMzYzLDExICszNjMsMTEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBs
aWFudCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKFBhc3NPd25QdHI8Q29udGV4dExvc3RDYWxsYmFj
az4pCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6
dW5pcXVlX3B0cjxDb250ZXh0TG9zdENhbGxiYWNrPikKIHsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soUGFzc093blB0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFj
ayhzdGQ6OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAppbmRleCA1MzkxODIzNWQyYzA2ZjYyYmYyOGEwYzgwZmU0
ZmM1MGE1YzQzY2E4Li4wZDU3Y2U1Y2M3MTNjMzE1Yjk4MjEyMjg3MmFkZjM5Zjc3MjJmNmJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAKQEAgLTE4NSw5ICsxODUsOSBAQCBpbnQg
RXh0ZW5zaW9uczNET3BlbkdMRVM6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBFeHRlbnNpb25zM0RPcGVuR0xFUzo6c2V0RVhUQ29udGV4
dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0TG9zdENh
bGxiYWNrPiBjYWxsYmFjaykKK3ZvaWQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OnNldEVYVENvbnRl
eHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzQ29udGV4dDNEOjpDb250ZXh0
TG9zdENhbGxiYWNrPiBjYWxsYmFjaykKIHsKLSAgICBtX2NvbnRleHRMb3N0Q2FsbGJhY2sgPSBj
YWxsYmFjazsKKyAgICBtX2NvbnRleHRMb3N0Q2FsbGJhY2sgPSBzdGQ6Om1vdmUoY2FsbGJhY2sp
OwogfQogCiB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpyZWFkblBpeGVsc0VYVChpbnQgeCwg
aW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEZW51bSB0eXBlLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgdm9pZCAqZGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0xFUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTEVTLmgKaW5kZXggM2M5NzBjYzI0NWJmNjM3YTUyN2NmMDNiN2E3MmE4MjVh
NjA1NjFlYi4uZWE2ZDlmYzM1ZTZiNDU1NTgxYzdkODc5MzRkZmY1MmYwMzE2MDA3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTEVTLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0V4dGVuc2lvbnMzRE9wZW5HTEVTLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gRVhUIFJvYnVzdG5lc3MgLSByZXNldAogICAgIHZpcnR1YWwgaW50IGdldEdyYXBoaWNzUmVz
ZXRTdGF0dXNBUkIoKTsKLSAgICB2b2lkIHNldEVYVENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093
blB0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4pOworICAgIHZvaWQg
c2V0RVhUQ29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+KTsKIAogICAgIC8vIEVYVCBSb2J1c3RuZXNzIC0gZXRj
CiAgICAgdmlydHVhbCB2b2lkIHJlYWRuUGl4ZWxzRVhUKGludCB4LCBpbnQgeSwgR0MzRHNpemVp
IHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUs
IEdDM0RzaXplaSBidWZTaXplLCB2b2lkICpkYXRhKTsKQEAgLTEyMCw4ICsxMjAsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgUEZOR0xEUkFXQVJSQVlTSU5TVEFOQ0VEQU5HTEVQUk9DIG1fZ2xEcmF3QXJy
YXlzSW5zdGFuY2VkQU5HTEU7CiAgICAgUEZOR0xEUkFXRUxFTUVOVFNJTlNUQU5DRURBTkdMRVBS
T0MgbV9nbERyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFOwogCi0KLSAgICBPd25QdHI8R3JhcGhp
Y3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IG1fY29udGV4dExvc3RDYWxsYmFjazsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJh
Y2s+IG1fY29udGV4dExvc3RDYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBs
YXRmb3JtQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCmluZGV4IDA2ZjYxYzRlN2EwODkyZTk0OGEyNzFiYjYy
Y2M2MTFjZjQ5MjFjZGUuLjU1ODQ4MTA3OWExMGFlMzNlMmU0ODg4NjVjZTAwODI4ZWQyZmZiMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBs
YXRmb3JtQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcApAQCAtNjEsMTIgKzYxLDEyIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5HTEN1cnJlbnRDb250ZXh0V3JhcHBlcigpIHsgfQogfTsKIAotc3RhdGlj
IFBhc3NPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKQor
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTFBsYXRmb3JtQ29udGV4dD4gY3JlYXRlT2ZmU2NyZWVu
Q29udGV4dCgpCiB7CiAjaWYgVVNFKEdMWCkKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEdMWE9m
ZlNjcmVlbkNvbnRleHQoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R0xYT2ZmU2Ny
ZWVuQ29udGV4dD4oKTsKICNlbGlmIFVTRShFR0wpCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBF
R0xPZmZTY3JlZW5Db250ZXh0KCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9m
ZlNjcmVlbkNvbnRleHQ+KCk7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCkBA
IC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIHZvaWQgcmVzb2x2ZVJlc2V0U3RhdHVzRXh0ZW5zaW9u
KCkKICAgICB9CiB9CiAKLVBhc3NPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IEdMUGxhdGZvcm1D
b250ZXh0OjpjcmVhdGVDb250ZXh0KEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5k
ZXJTdHlsZSkKK3N0ZDo6dW5pcXVlX3B0cjxHTFBsYXRmb3JtQ29udGV4dD4gR0xQbGF0Zm9ybUNv
bnRleHQ6OmNyZWF0ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRl
clN0eWxlKQogewogI2lmICFVU0UoT1BFTkdMX0VTXzIpCiAgICAgaWYgKCFpbml0aWFsaXplT3Bl
bkdMU2hpbXMoKSkKQEAgLTEwOSwxMyArMTA5LDkgQEAgUGFzc093blB0cjxHTFBsYXRmb3JtQ29u
dGV4dD4gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0M0QK
IAogICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJPZmZzY3JlZW46Ci0gICAgICAgIGlmIChPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+
IGNvbnRleHQgPSBjcmVhdGVPZmZTY3JlZW5Db250ZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4g
Y29udGV4dC5yZWxlYXNlKCk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gY3JlYXRl
T2ZmU2NyZWVuQ29udGV4dCgpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclRv
Q3VycmVudEdMQ29udGV4dDoKLSAgICAgICAgaWYgKE93blB0cjxHTFBsYXRmb3JtQ29udGV4dD4g
Y29udGV4dCA9IGFkb3B0UHRyKG5ldyBHTEN1cnJlbnRDb250ZXh0V3JhcHBlcigpKSkKLSAgICAg
ICAgICAgIHJldHVybiBjb250ZXh0LnJlbGVhc2UoKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdMQ3VycmVudENvbnRleHRXcmFwcGVyPigpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29u
dGV4dC5oCmluZGV4IDAzMTQ3Yzg4YmViYzYyNjVhY2MxYTFmNGIxYWRkZWUwYzlmMmNjZDMuLmZk
MzlkNGM4ZTJjODQ1YWM0MTNlNWJjMzhjZjZmZGMxYmEzNzJlMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29u
dGV4dC5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiR0xQbGF0Zm9ybVN1cmZhY2UuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIC8vIEVuY2Fwc3VsYXRlcyBhbiBP
cGVuR0wgY29udGV4dCwgaGlkaW5nIHBsYXRmb3JtIHNwZWNpZmljIG1hbmFnZW1lbnQuCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgUExBVEZP
Uk1DT05URVhUX1VOS05PV05fQ09OVEVYVF9SRVNFVCA9IDB4ODI1NSwKICAgICB9OwogCi0gICAg
c3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGNyZWF0ZUNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdM
UGxhdGZvcm1Db250ZXh0PiBjcmVhdGVDb250ZXh0KEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJT
dHlsZSk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0dMRXh0ZW5zaW9uKGNvbnN0IFN0cmlu
ZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAppbmRleCBkZDI3Zjc2OTkyYjc1MzhmN2Rj
NmZlMjEzNDEwMDIzYTlhMjUwMThkLi5jNGM4ZDY0NjlhOTIyZThmYWYwYTk2OGRkNGMyYzU4Mzk3
YWU4OGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKQEAgLTQwLDExICs0MCwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBHTFBsYXRmb3JtU3VyZmFjZSogbV9jdXJyZW50
RHJhd2FibGUgPSAwOwogCi1QYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3Jt
U3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1
dGVzKQorc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFj
ZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQog
ewotICAgIE93blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gc3VyZmFjZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2U7CiAjaWYgVVNFKEdMWCkKLSAgICBzdXJm
YWNlID0gYWRvcHRQdHIobmV3IEdMWE9mZlNjcmVlblN1cmZhY2UoYXR0cmlidXRlcykpOworICAg
IHN1cmZhY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWE9mZlNjcmVlblN1cmZhY2U+KGF0dHJpYnV0
ZXMpOwogI2VsaWYgVVNFKEVHTCkgJiYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgc3VyZmFj
ZSA9IEVHTE9mZlNjcmVlblN1cmZhY2U6OmNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoYXR0cmlidXRl
cyk7CiAjZWxzZQpAQCAtNTMsNyArNTMsNyBAQCBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNl
PiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQQogI2Vu
ZGlmCiAKICAgICBpZiAoc3VyZmFjZSAmJiBzdXJmYWNlLT5kcmF3YWJsZSgpKQotICAgICAgICBy
ZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBzdXJmYWNlOwogCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCmluZGV4IGFmN2Y3YmNiNzM4
OWYzYmJkNGNkOTYwYmIzOWIyNmMwYjU2Zjg3MmYuLmY1ZTRmNTMxMmI2ZTNjZTVjNmVhMjFlMjFk
ZDBiNmQ3NWE3OTM4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCkBAIC00Niw3ICs0Niw3IEBA
IHB1YmxpYzoKIAogICAgIHR5cGVkZWYgdW5zaWduZWQgU3VyZmFjZUF0dHJpYnV0ZXM7CiAgICAg
Ly8gQ3JlYXRlcyBhIEdMIHN1cmZhY2UgdXNlZCBmb3Igb2Zmc2NyZWVuIHJlbmRlcmluZy4KLSAg
ICBzdGF0aWMgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gY3JlYXRlT2ZmU2NyZWVuU3Vy
ZmFjZShTdXJmYWNlQXR0cmlidXRlcyA9IEdMUGxhdGZvcm1TdXJmYWNlOjpEZWZhdWx0KTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBjcmVhdGVPZmZTY3Jl
ZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRlZmF1bHQp
OwogCiAgICAgdmlydHVhbCB+R0xQbGF0Zm9ybVN1cmZhY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWZsL0dyYXBoaWNzU3VyZmFj
ZUNvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9l
ZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcAppbmRleCAzNWI5MWI2YWEzNGYwNjkwZjlmMzI0
MjA0YzEzMDhlZDUwOWU1M2EzLi5iZThjNjk4N2I3YTg3ZTc4ODA3NzE5ZDk4MWJjZTJmMTlhMWY4
NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZmwvR3JhcGhpY3NTdXJmYWNlQ29tbW9uLmNwcApAQCAt
MTUxLDcgKzE1MSw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgUGxhdGZv
cm1CdWZmZXJIYW5kbGUgbV9zaGFyZWRIYW5kbGU7CiAgICAgT3duUHRyPEdMVHJhbnNwb3J0U3Vy
ZmFjZUNsaWVudD4gbV9jbGllbnQ7Ci0gICAgT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBtX3No
YXJlZENvbnRleHQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdMUGxhdGZvcm1Db250ZXh0PiBtX3No
YXJlZENvbnRleHQ7CiAgICAgT3duUHRyPEdMVHJhbnNwb3J0U3VyZmFjZT4gbV9zaGFyZWRTdXJm
YWNlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCmluZGV4IDk3NWQ0ODZiNTMwZGI4NGE0
NTM2MmM5YTBmZTk1MTUwM2IwMTYxMDYuLjZjM2M1ZTMyM2Q3ZTYxNTVlZTZiNGIyNjNjYTU4YzU0
OGY5ZTJmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKQEAgLTExMiwxOSArMTEyLDE0IEBA
IFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBFR0xUcmFuc3BvcnRTdXJmYWNlOjpjb25maWd1cmF0aW9u
KCkKICAgICByZXR1cm4gbV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRleHRDb25maWcoKTsK
IH0KIAotUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gRUdMT2ZmU2NyZWVuU3VyZmFjZTo6
Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorc3Rk
Ojp1bmlxdWVfcHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBFR0xPZmZTY3JlZW5TdXJmYWNlOjpjcmVh
dGVPZmZTY3JlZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiB7Ci0gICAg
T3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlOwogI2lmIFBMQVRGT1JNKFgxMSkKLSAg
ICBzdXJmYWNlID0gYWRvcHRQdHIobmV3IEVHTFBpeG1hcFN1cmZhY2UoYXR0cmlidXRlcykpOwor
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTFBpeG1hcFN1cmZhY2U+KGF0dHJpYnV0ZXMp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oYXR0cmlidXRlcyk7Ci0jZW5kaWYKLQotICAgIGlm
IChzdXJmYWNlKQotICAgICAgICByZXR1cm4gc3VyZmFjZS5yZWxlYXNlKCk7Ci0KICAgICByZXR1
cm4gbnVsbHB0cjsKKyNlbmRpZgogfQogCiBFR0xPZmZTY3JlZW5TdXJmYWNlOjpFR0xPZmZTY3Jl
ZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1dGVzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xT
dXJmYWNlLmgKaW5kZXggMGY5YWFiNmU2Zjg3ZTBhMmFjYTkyYjI2ZGQyNDhmYWQ1MGIwMTgxZC4u
NWRlYmU3ZWRiNmI1ZjkxZjU0MmViMzAwNzc4ZDBlZDkzZTFlOTQ1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3Vy
ZmFjZS5oCkBAIC01Myw3ICs1Myw3IEBAIHByb3RlY3RlZDoKIAogY2xhc3MgRUdMT2ZmU2NyZWVu
U3VyZmFjZSA6IHB1YmxpYyBHTFBsYXRmb3JtU3VyZmFjZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoU3Vy
ZmFjZUF0dHJpYnV0ZXMpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1
cmZhY2U+IGNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpOwogICAgIHZp
cnR1YWwgfkVHTE9mZlNjcmVlblN1cmZhY2UoKTsKICAgICB2aXJ0dWFsIFBsYXRmb3JtU3VyZmFj
ZUNvbmZpZyBjb25maWd1cmF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRlc3Ry
b3koKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3Bw
CmluZGV4IDRkYjdkNjcyYjkxZDFjYjJiMmM5MzZjNmQ3ZmQ0OWMzNGU1YjAyYmIuLjNlZjdjMmJi
OGI0NmNhZTk2MjQ5NjViMzQ4NGYxN2Y3MzdjZGEzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtNDUsNyArNDUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NMYXllcj4gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKEdyYXBoaWNzTGF5ZXJGYWN0b3J5
KiBmYWN0bwogCiBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6R3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIoR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgIDogR3JhcGhpY3NMYXll
cihjbGllbnQpCi0gICAgLCBtX2xheWVyKGFkb3B0UHRyKG5ldyBUZXh0dXJlTWFwcGVyTGF5ZXIo
KSkpCisgICAgLCBtX2xheWVyKHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlckxheWVyPigp
KQogICAgICwgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIoMCkKICAgICAsIG1fY2hhbmdlTWFz
ayhOb0NoYW5nZXMpCiAgICAgLCBtX25lZWRzRGlzcGxheShmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXggZDkxOWE0NTdiZGFkMmJlOGFlMWEwYmEzNjMx
MzdkZWM3M2Q3ZmYxMy4uYjc4YjNhNjUwNGE4ZTMyNDU2OGNjMjU3ZTE2MDU3YTI3MWIwOTk1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTE2MCw3ICsxNjAs
NyBAQCBwcml2YXRlOgogICAgIH07CiAgICAgdm9pZCBub3RpZnlDaGFuZ2UoQ2hhbmdlTWFzayk7
CiAKLSAgICBPd25QdHI8VGV4dHVyZU1hcHBlckxheWVyPiBtX2xheWVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxUZXh0dXJlTWFwcGVyTGF5ZXI+IG1fbGF5ZXI7CiAgICAgUmVmUHRyPFRleHR1cmVN
YXBwZXJUaWxlZEJhY2tpbmdTdG9yZT4gbV9jb21wb3NpdGVkSW1hZ2U7CiAgICAgTmF0aXZlSW1h
Z2VQdHIgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHI7CiAgICAgUmVmUHRyPFRleHR1cmVNYXBw
ZXJCYWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuY3BwCmluZGV4IDNl
MDdmNzQ3MDRiZTgwYmU1ODEzMDFjMjdiYTIxNGMyZWMxNWY1NmYuLjcwZTRlODEzOGQ1Mjg2ZTkx
ZDg4YmMxZWJhYjdlNDUxOTgyYWU0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5jcHAKQEAgLTEyOCwxMCAr
MTI4LDEwIEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBlcjo6YWNxdWly
ZVRleHR1cmVGcm9tUG9vbChjb25zdCBJbnRTaXplJiBzCiAgICAgcmV0dXJuIHNlbGVjdGVkVGV4
dHVyZTsKIH0KIAotUGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpjcmVh
dGUoQWNjZWxlcmF0aW9uTW9kZSBtb2RlKQorc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+
IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShBY2NlbGVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgaWYg
KG1vZGUgPT0gU29mdHdhcmVNb2RlKQotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlckltYWdl
QnVmZmVyOjpjcmVhdGUoKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVy
ZU1hcHBlckltYWdlQnVmZmVyPigpOwogICAgIHJldHVybiBwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJh
dGVkKCk7CiB9CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBUZXh0dXJlTWFwcGVyOjpUZXh0dXJlTWFw
cGVyKEFjY2VsZXJhdGlvbk1vZGUgYWNjZWxlcmF0aW9uTW9kZSkKICAgICA6IG1fY29udGV4dCgw
KQogICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uRGVmYXVsdCkKICAg
ICAsIG1fdGV4dERyYXdpbmdNb2RlKFRleHRNb2RlRmlsbCkKLSAgICAsIG1fdGV4dHVyZVBvb2wo
YWRvcHRQdHIobmV3IEJpdG1hcFRleHR1cmVQb29sKCkpKQorICAgICwgbV90ZXh0dXJlUG9vbChz
dGQ6Om1ha2VfdW5pcXVlPEJpdG1hcFRleHR1cmVQb29sPigpKQogICAgICwgbV9hY2NlbGVyYXRp
b25Nb2RlKGFjY2VsZXJhdGlvbk1vZGUpCiAgICAgLCBtX2lzTWFza01vZGUoZmFsc2UpCiAgICAg
LCBtX3dyYXBNb2RlKFN0cmV0Y2hXcmFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKaW5kZXggMTk5NmE3OTRkZWU2
MzE3Y2MxYmI4MWViNzc2MzIyMGE1M2E2NWE2YS4uOTMxMjAzZDE3MGUzNzU1MzQ4MGI1NzBhODYz
NzgyMGIzMjZmNjVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlci5oCkBAIC0xMTYsNyArMTE2LDkgQEAgcHVibGlj
OgogCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBQYWludEZsYWdzOwogCi0gICAgc3RhdGljIFBhc3NP
d25QdHI8VGV4dHVyZU1hcHBlcj4gY3JlYXRlKEFjY2VsZXJhdGlvbk1vZGUgbmV3TW9kZSA9IFNv
ZnR3YXJlTW9kZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyPiBj
cmVhdGUoQWNjZWxlcmF0aW9uTW9kZSBuZXdNb2RlID0gU29mdHdhcmVNb2RlKTsKKworICAgIGV4
cGxpY2l0IFRleHR1cmVNYXBwZXIoQWNjZWxlcmF0aW9uTW9kZSk7CiAgICAgdmlydHVhbCB+VGV4
dHVyZU1hcHBlcigpOwogCiAgICAgZW51bSBFeHBvc2VkRWRnZXMgewpAQCAtMTYzLDggKzE2NSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdyYXBNb2RlKFdyYXBNb2RlIG0pIHsgbV93cmFwTW9k
ZSA9IG07IH0KIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IFRleHR1cmVNYXBwZXIoQWNjZWxl
cmF0aW9uTW9kZSk7Ci0KICAgICBHcmFwaGljc0NvbnRleHQqIG1fY29udGV4dDsKIAogICAgIGJv
b2wgaXNJbk1hc2tNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pc01hc2tNb2RlOyB9CkBAIC0xNzMs
MTYgKzE3MywxNiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAjaWYgVVNFKFRFWFRVUkVfTUFQ
UEVSX0dMKQotICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHR1cmVNYXBwZXI+IHBsYXRmb3JtQ3Jl
YXRlQWNjZWxlcmF0ZWQoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBw
ZXI+IHBsYXRmb3JtQ3JlYXRlQWNjZWxlcmF0ZWQoKTsKICNlbHNlCi0gICAgc3RhdGljIFBhc3NP
d25QdHI8VGV4dHVyZU1hcHBlcj4gcGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxUZXh0dXJlTWFwcGVyPiBwbGF0Zm9ybUNyZWF0ZUFjY2VsZXJh
dGVkKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBQYXNzT3duUHRyPFRleHR1cmVNYXBwZXI+KCk7
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHR1cmVNYXBwZXI+KCk7CiAgICAg
fQogI2VuZGlmCiAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHkgbV9pbnRlcnBvbGF0aW9uUXVhbGl0
eTsKICAgICBUZXh0RHJhd2luZ01vZGVGbGFncyBtX3RleHREcmF3aW5nTW9kZTsKLSAgICBPd25Q
dHI8Qml0bWFwVGV4dHVyZVBvb2w+IG1fdGV4dHVyZVBvb2w7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEJpdG1hcFRleHR1cmVQb29sPiBtX3RleHR1cmVQb29sOwogICAgIEFjY2VsZXJhdGlvbk1vZGUg
bV9hY2NlbGVyYXRpb25Nb2RlOwogICAgIGJvb2wgbV9pc01hc2tNb2RlOwogICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IG1fcGF0dGVyblRyYW5zZm9ybTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5k
ZXggNWM5ZjhmZDU2NTk3OTgzMjg4NjJhN2Y4NTQzNGNjY2MwMzRjOThmYi4uMjRkZWQxZTA3ZmM5
YjMwYzAxYTFiZTEwZDEwZThhZWUxNjIxODQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTExMjksOSArMTEyOSw5IEBAIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBl
ckdMOjpjcmVhdGVUZXh0dXJlKCkKIH0KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUl9HTCkKLVBh
c3NPd25QdHI8VGV4dHVyZU1hcHBlcj4gVGV4dHVyZU1hcHBlcjo6cGxhdGZvcm1DcmVhdGVBY2Nl
bGVyYXRlZCgpCitzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlcj4gVGV4dHVyZU1hcHBlcjo6
cGxhdGZvcm1DcmVhdGVBY2NlbGVyYXRlZCgpCiB7Ci0gICAgcmV0dXJuIFRleHR1cmVNYXBwZXJH
TDo6Y3JlYXRlKCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dHVyZU1hcHBlckdM
PigpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCBmMGZkMWIxYjRlMTJlNWQ5
YzAxM2E2MjQ3ZWUzYjU0ZjRlMmJkMGMzLi44MzI0OGY4NmQwM2FmMmVmYjJiZWRkMWE1ZDM5ZTY2
Nzc5YjdkNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEZp
bHRlck9wZXJhdGlvbjsKIC8vIEFuIE9wZW5HTC1FUzIgaW1wbGVtZW50YXRpb24gb2YgVGV4dHVy
ZU1hcHBlci4KIGNsYXNzIFRleHR1cmVNYXBwZXJHTCA6IHB1YmxpYyBUZXh0dXJlTWFwcGVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxUZXh0dXJlTWFwcGVyR0w+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZXh0dXJlTWFwcGVyR0wpOyB9CisgICAgVGV4dHVyZU1h
cHBlckdMKCk7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckdMKCk7CiAKICAgICBlbnVtIEZs
YWcgewpAQCAtMTIwLDggKzEyMCw2IEBAIHByaXZhdGU6CiAgICAgICAgIFlBeGlzTW9kZSB5QXhp
c01vZGU7CiAgICAgfTsKIAotICAgIFRleHR1cmVNYXBwZXJHTCgpOwotCiAgICAgdm9pZCBkcmF3
VGV4dHVyZWRRdWFkV2l0aFByb2dyYW0oVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0qLCB1aW50
MzJfdCB0ZXh0dXJlLCBGbGFncywgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHkp
OwogICAgIHZvaWQgZHJhdyhjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgbW9kZWxWaWV3TWF0cml4LCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSosIEdDM0Rl
bnVtIGRyYXdpbmdNb2RlLCBGbGFncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZm
ZXIuaAppbmRleCBmNWUzOGIzNThmNjU3MTQ2Yjg1M2Y0MjUxZTRjNTczODMwMzI2YjlhLi44MmRm
MDRlODZmMzEyNWY5N2IxNmIxYzRmZmRmNzgyZGNmNGJlNTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJJbWFnZUJ1ZmZlci5oCkBAIC01MCw3ICs1MCw5IEBAIHByaXZhdGU6CiBjbGFzcyBUZXh0
dXJlTWFwcGVySW1hZ2VCdWZmZXIgOiBwdWJsaWMgVGV4dHVyZU1hcHBlciB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8VGV4dHVy
ZU1hcHBlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFRleHR1cmVNYXBwZXJJbWFn
ZUJ1ZmZlcik7IH0KKyAgICBUZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIoKQorICAgICAgICA6IFRl
eHR1cmVNYXBwZXIoU29mdHdhcmVNb2RlKQorICAgIHsgfQogCiAgICAgLy8gVGV4dHVyZU1hcHBl
ciBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9y
JiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4Jikgb3ZlcnJpZGU7CkBAIC03MCw5ICs3Miw2IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyKCkKLSAgICAgICAgOiBUZXh0
dXJlTWFwcGVyKFNvZnR3YXJlTW9kZSkKLSAgICB7IH0KICAgICBSZWZQdHI8Qml0bWFwVGV4dHVy
ZT4gbV9jdXJyZW50U3VyZmFjZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggODNmZDU2ODIxNTZmMDkxNzhi
NjBmYWNjZDA0M2E2Njc4ZDBjNmNkZi4uMzU3N2ZhOGMyMDIyYmRmNGY5MzdhMDYwYWVmYmJmMTM3
YWExNDNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5jcHAKQEAgLTY0Niw3ICs2NDYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6cHVyZ2VHTFJlc291cmNlcygpCiAgICAgbV9yb290TGF5ZXJJRCA9IEludmFs
aWRDb29yZGluYXRlZExheWVySUQ7CiAgICAgbV9sYXllcnMuY2xlYXIoKTsKICAgICBtX2ZpeGVk
TGF5ZXJzLmNsZWFyKCk7Ci0gICAgbV90ZXh0dXJlTWFwcGVyLmNsZWFyKCk7CisgICAgbV90ZXh0
dXJlTWFwcGVyID0gbnVsbHB0cjsKICAgICBtX2JhY2tpbmdTdG9yZXMuY2xlYXIoKTsKICAgICBt
X2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IGJkZmFm
MGY3ODI3NTE0Mjc3ZjI5Yzc2YTE5MTE3ZGRmZGFhODI4NmIuLjc1YTQ3MmQ0ZDEyOWMzMzk3ODFl
OTk2N2JjMWQ5YWRjNGZhYTc4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+IG1fcmVuZGVyUXVldWU7CiAgICAgTXV0
ZXggbV9yZW5kZXJRdWV1ZU11dGV4OwogCi0gICAgT3duUHRyPFRleHR1cmVNYXBwZXI+IG1fdGV4
dHVyZU1hcHBlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJl
TWFwcGVyOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQs
IFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gPiBJbWFnZUJhY2tpbmdNYXA7CiAgICAg
SW1hZ2VCYWNraW5nTWFwIG1faW1hZ2VCYWNraW5nczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5j
cHAKaW5kZXggYjVjMDkwOGU1ZWNjMmJmZjk5YTFjY2ZjNzI0MmQ5ZmU2YWRmNTRiOS4uMGU2OWQ2
NjEwZjIxNGNkNmJiZTE3NTU5YzI4MGJlYjFlOTcwMGNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1T
dGF0ZS5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUcmFuc2Zvcm1TdGF0ZS5oIgogCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBUcmFuc2Zvcm1TdGF0ZSYgVHJhbnNmb3JtU3RhdGU6Om9wZXJh
dG9yPShjb25zdCBUcmFuc2Zvcm1TdGF0ZSYgb3RoZXIpCkBAIC00MiwxMCArNDAsMTAgQEAgVHJh
bnNmb3JtU3RhdGUmIFRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcj0oY29uc3QgVHJhbnNmb3JtU3Rh
dGUmIG90aGVyKQogICAgIG1fYWNjdW11bGF0aW5nVHJhbnNmb3JtID0gb3RoZXIubV9hY2N1bXVs
YXRpbmdUcmFuc2Zvcm07CiAgICAgbV9kaXJlY3Rpb24gPSBvdGhlci5tX2RpcmVjdGlvbjsKICAg
ICAKLSAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLmNsZWFyKCk7CisgICAgbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybSA9IG51bGxwdHI7CiAKICAgICBpZiAob3RoZXIubV9hY2N1bXVsYXRlZFRyYW5z
Zm9ybSkKLSAgICAgICAgbV9hY2N1bXVsYXRlZFRyYW5zZm9ybSA9IGFkb3B0UHRyKG5ldyBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCgqb3RoZXIubV9hY2N1bXVsYXRlZFRyYW5zZm9ybSkpOworICAgICAg
ICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtID0gc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1hdGlv
bk1hdHJpeD4oKm90aGVyLm1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pOwogICAgICAgICAKICAgICBy
ZXR1cm4gKnRoaXM7CiB9CkBAIC0xMjEsMTIgKzExOSwxMiBAQCB2b2lkIFRyYW5zZm9ybVN0YXRl
OjphcHBseVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtRnJv
bUNvbgogICAgIC8vIElmIHdlIGhhdmUgYW4gYWNjdW11bGF0ZWQgdHJhbnNmb3JtIGZyb20gbGFz
dCB0aW1lLCBtdWx0aXBseSBpbiB0aGlzIHRyYW5zZm9ybQogICAgIGlmIChtX2FjY3VtdWxhdGVk
VHJhbnNmb3JtKSB7CiAgICAgICAgIGlmIChtX2RpcmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURp
cmVjdGlvbikKLSAgICAgICAgICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0gPSBhZG9wdFB0cihu
ZXcgVHJhbnNmb3JtYXRpb25NYXRyaXgodHJhbnNmb3JtRnJvbUNvbnRhaW5lciAqICptX2FjY3Vt
dWxhdGVkVHJhbnNmb3JtKSk7CisgICAgICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtID0g
c3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4odHJhbnNmb3JtRnJvbUNvbnRh
aW5lciAqICptX2FjY3VtdWxhdGVkVHJhbnNmb3JtKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+bXVsdGlwbHkodHJhbnNmb3JtRnJvbUNvbnRhaW5l
cik7CiAgICAgfSBlbHNlIGlmIChhY2N1bXVsYXRlID09IEFjY3VtdWxhdGVUcmFuc2Zvcm0pIHsK
ICAgICAgICAgLy8gTWFrZSBvbmUgaWYgd2Ugc3RhcnRlZCB0byBhY2N1bXVsYXRlCi0gICAgICAg
IG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0gPSBhZG9wdFB0cihuZXcgVHJhbnNmb3JtYXRpb25NYXRy
aXgodHJhbnNmb3JtRnJvbUNvbnRhaW5lcikpOworICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNm
b3JtID0gc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4odHJhbnNmb3JtRnJv
bUNvbnRhaW5lcik7CiAgICAgfQogICAgIAogICAgIGlmIChhY2N1bXVsYXRlID09IEZsYXR0ZW5U
cmFuc2Zvcm0pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuaAppbmRleCBiYzY4MmE3ZDk0OGVkNzFl
ZDRlMmJjMmE1YzliN2Y5NDJlOGU0MzFlLi5mOGJjMzJmOTQyOTY1MGI0NTk0YWYyODU5ZTY0ODE1
ZmJhMTJmN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCkBAIC0zMiw3ICszMiw2IEBACiAj
aW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkxheW91dFNpemUuaCIKICNpbmNsdWRlICJU
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0xMTAsNyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICBGbG9hdFF1
YWQgbV9sYXN0UGxhbmFyUXVhZDsKIAogICAgIC8vIFdlIG9ubHkgYWxsb2NhdGUgdGhlIHRyYW5z
Zm9ybSBpZiB3ZSBuZWVkIHRvCi0gICAgT3duUHRyPFRyYW5zZm9ybWF0aW9uTWF0cml4PiBtX2Fj
Y3VtdWxhdGVkVHJhbnNmb3JtOworICAgIHN0ZDo6dW5pcXVlX3B0cjxUcmFuc2Zvcm1hdGlvbk1h
dHJpeD4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybTsKICAgICBMYXlvdXRTaXplIG1fYWNjdW11bGF0
ZWRPZmZzZXQ7CiAgICAgYm9vbCBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybTsKICAgICBib29sIG1f
bWFwUG9pbnQsIG1fbWFwUXVhZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0M0RXaW4uY3BwCmluZGV4IDJmMzVl
ZjU0MGM4NzAzZDJkMTdiOGRlNDQ1NGRiYWU1YTVmNzhiNjguLmIxOTFmOTEzODkwOTA2ZjEzYWZl
MzhmNWRiYmNmZTMxYjQ5MjJjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHQzRFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dDNEV2luLmNwcApAQCAtNzks
NyArNzksNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3ND
b250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSAogICAgICwgbV9tdWx0aXNhbXBsZUZC
TygwKQogICAgICwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcigwKQogICAgICwgbV9t
dWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCi0gICAgLCBtX3ByaXZhdGUoR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpjcmVhdGUodGhpcywgcmVuZGVyU3R5bGUpKQorICAgICwgbV9wcml2YXRlKHN0
ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0aGlzLCByZW5kZXJTdHls
ZSkpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAKQEAgLTE2MywxMSArMTYzLDExIEBA
IEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIDo6Z2xEZWxldGVG
cmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0
Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQordm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9w
dHI8Q29udGV4dExvc3RDYWxsYmFjaz4pCiB7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKFBhc3NPd25QdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+
KQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1
bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGxiYWNrPikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0RWZsLmgKaW5kZXggNjk2YzNkZDVkOGZiYTE4N2FmODg5ZWJmZGI2YmUx
MGE0NDZmNzNjNy4uZTkwOTBmYzc4ZjUyM2Q3YzExNjcxNTYwZGQwMjAzZjk2MTJkYjMwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEVmbC5oCkBAIC0yNiw3ICsyNiw2IEBACiAj
aW5jbHVkZSAiVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvZWZsL1VuaXF1ZVB0ckVmbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC01Nyw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKICAgICBF
dmFzX09iamVjdCogbV9jb21wb3NpdGluZ09iamVjdDsKIAotICAgIE93blB0cjxUZXh0dXJlTWFw
cGVyPiBtX3RleHR1cmVNYXBwZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVNYXBwZXI+
IG1fdGV4dHVyZU1hcHBlcjsKICAgICBHcmFwaGljc0xheWVyKiBtX3Jvb3RMYXllcjsKICAgICBU
aW1lcjxBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dD4gbV9zeW5jVGltZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCmluZGV4IDA1OGZjYmEyNzY4MDE1ZTFhYmExY2UzODIx
YTM2Y2IxNjhmZDU1MWUuLjNhY2ZjOGQ2ZTg1MjE0NTkzODNhMmU0MzQ3MGEyZDFiYjVkODllMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2
YXRlOgogICAgIE93blB0cjxXZWJDb3JlOjpSZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdz4gbV9y
ZWRpcmVjdGVkV2luZG93OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHcmFwaGljc0xh
eWVyPiBtX3Jvb3RMYXllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NM
YXllcj4gbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyOwotICAgIE93blB0cjxXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1hcHBlcjsKICAgICBkb3VibGUgbV9sYXN0Rmx1
c2hUaW1lOwogICAgIGRvdWJsZSBtX3JlZHJhd1BlbmRpbmdUaW1lOwogICAgIGJvb2wgbV9uZWVk
c0V4dHJhRmx1c2g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCmluZGV4IDFjYmNmM2U1NzRmOWVkY2VmYzFiN2I5
MTRhZTAxNjI3ODdlYTY4ZWUuLjNjOGMyYTBlMWMxMGI5OWI5NWFjODk2ODc1ZmNhNzVkZjZlMzQ0
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5
ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9ub25Db21wb3NpdGVkQ29u
dGVudExheWVyOwogICAgIHR5cGVkZWYgSGFzaE1hcDxQYWdlT3ZlcmxheSosIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPj4gUGFnZU92ZXJsYXlMYXllck1hcDsKICAgICBQ
YWdlT3ZlcmxheUxheWVyTWFwIG1fcGFnZU92ZXJsYXlMYXllcnM7Ci0gICAgT3duUHRyPFdlYkNv
cmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1hcHBlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwogICAgIE93blB0cjxXZWJD
b3JlOjpHTENvbnRleHQ+IG1fY29udGV4dDsKICAgICBkb3VibGUgbV9sYXN0Rmx1c2hUaW1lOwog
ICAgIGJvb2wgbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>