<?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>146591</bug_id>
          
          <creation_ts>2015-07-03 07:27:51 -0700</creation_ts>
          <short_desc>Use Ref/RefPtr instead of PassRefPtr in WebKit2 - 2</short_desc>
          <delta_ts>2015-07-08 22:05:57 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1106693</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-03 07:27:51 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106694</commentid>
    <comment_count>1</comment_count>
      <attachid>256101</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-03 07:30:23 -0700</bug_when>
    <thetext>Created attachment 256101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106833</commentid>
    <comment_count>2</comment_count>
      <attachid>256140</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-03 23:36:06 -0700</bug_when>
    <thetext>Created attachment 256140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108064</commentid>
    <comment_count>3</comment_count>
      <attachid>256140</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-08 19:32:27 -0700</bug_when>
    <thetext>Comment on attachment 256140
Patch

Clearing flags on attachment: 256140

Committed r186566: &lt;http://trac.webkit.org/changeset/186566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108065</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-08 19:32:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108101</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-07-08 21:18:15 -0700</bug_when>
    <thetext>This introduced a build failure in Windows:

..\..\win\Plugins\PluginView.cpp(855): error C2556: &apos;WTF::PassRefPtr&lt;T&gt; WebCore::PluginView::create(WebCore::Frame *,const WebCore::IntSize &amp;,WebCore::HTMLPlugInElement *,const WebCore::URL &amp;,const WTF::Vector&lt;WTF::String,0,WTF::CrashOnOverflow,16&gt; &amp;,const WTF::Vector&lt;WTF::String,0,WTF::CrashOnOverflow,16&gt; &amp;,const WTF::String &amp;,bool)&apos; : overloaded function differs only by return type from &apos;WTF::Ref&lt;WebCore::PluginView&gt; WebCore::PluginView::create(WebCore::Frame *,const WebCore::IntSize &amp;,WebCore::HTMLPlugInElement *,const WebCore::URL &amp;,const WTF::Vector&lt;WTF::String,0,WTF::CrashOnOverflow,16&gt; &amp;,const WTF::Vector&lt;WTF::String,0,WTF::CrashOnOverflow,16&gt; &amp;,const WTF::String &amp;,bool)&apos; [C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKit\WebKit.vcxproj\WebKit\WebKit.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108104</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-07-08 21:38:46 -0700</bug_when>
    <thetext>dbates fixed it: &lt;http://trac.webkit.org/changeset/186578&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108111</commentid>
    <comment_count>7</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-07-08 22:05:57 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; dbates fixed it: &lt;http://trac.webkit.org/changeset/186578&gt;

Thank you for fixing it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256101</attachid>
            <date>2015-07-03 07:30:23 -0700</date>
            <delta_ts>2015-07-03 23:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146591-20150703232927.patch</filename>
            <type>text/plain</type>
            <size>86473</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDViN2E3NDFiOGE3MDU1
MThiMGZhNzM5ZGEzMmY0MDAzOTU0NWVhOC4uODJiMmU4MjFjMDE2OGUwMzMyYTJiYWMyMzUwOGRj
YmY4NTI1Y2VhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1NSBAQAorMjAxNS0wNy0wMyAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFJlZi9S
ZWZQdHIgaW5zdGVhZCBvZiBQYXNzUmVmUHRyIGluIFdlYktpdDIgLSAyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY1OTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb2xsb3dpbmcgcGF0Y2ggaW4gb3Jk
ZXIgdG8gcmVkdWNlIHVzZSBvZiBQYXNzUmVmUHRyLgorCisgICAgICAgICogU2hhcmVkL0Jsb2JE
YXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmg6CisgICAgICAgICogU2hhcmVk
L0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
Q29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbToKKyAgICAgICAgKFdlYktpdDo6
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQv
RG93bmxvYWRzL0Rvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6RG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFy
ZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVSZXNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpjcmVhdGUpOgorICAg
ICAgICAqIFNoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMv
T2JqQ09iamVjdEdyYXBoLmg6CisgICAgICAgIChXZWJLaXQ6Ok9iakNPYmplY3RHcmFwaDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5tbToKKyAgICAgICAgKGdldEluamVjdGVkQnVu
ZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAg
KFdLQnVuZGxlUGFnZU92ZXJsYXlDcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlUGFnZUJhbm5lck1hYy5tbToKKyAgICAgICAgKFdL
QnVuZGxlUGFnZUJhbm5lckNyZWF0ZUJhbm5lcldpdGhDQUxheWVyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb246OmNy
ZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZURPTVdpbmRvd0V4dGVuc2lvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246OmNy
ZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQ6OmdldEN1c3RvbU1lbnVGcm9t
RGVmYXVsdEl0ZW1zKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQ6OnByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb24pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmNyZWF0ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y3Jl
YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVn
aW46OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luU3RyZWFtLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luU3RyZWFt
OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAg
IChXZWJLaXQ6OlBERlBsdWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2lu
QW5ub3RhdGlvbjo6UERGUGx1Z2luQW5ub3RhdGlvbkV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5v
dGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpj
cmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dv
cmRGaWVsZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFz
c3dvcmRGaWVsZC5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luUGFzc3dvcmRGaWVsZDo6
Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRB
bm5vdGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5U
ZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luVGV4dEFubm90YXRp
b246OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpj
cmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Vmlldzo6VVJMUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6
U3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
U3RvcmFnZUFyZWFJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VB
cmVhTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6OmNyZWF0ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVu
dTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVw
TWVudS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9w
dXBNZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViUXVpY2tMb29r
SGFuZGxlQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNy
ZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1BhZ2VCYW5uZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0
UHJveHk6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRN
ZW51Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51OjpjcmVhdGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJEb2N1bWVudExvYWRlci5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlT3ZlcmxheTo6
Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVW5kb1N0ZXAuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJVbmRvU3RlcDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VC
YW5uZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VCYW5uZXI6OmNyZWF0ZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVt
b3RlLm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjcmVh
dGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKToKKwogMjAxNS0wNy0wMiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViU1FM
IGRvZXNuJ3Qgd29yayBiZWNhdXNlIG9wZW5EYXRhYmFzZSBhbHdheXMgZmFpbHMgd2l0aCBET00g
RXhjZXB0aW9uIDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdp
blZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDhm
OTIwOGY4NjFkNDc0MjM5NWFmY2QyMjQ4ZmVhYTFiNTViZDUxOGIuLmQwNjE3M2FmNmE5MzVjZWYw
OGQwMTM0ZTg5MjIxYTY5NDcxYzhjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1Bs
dWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oCkBAIC0xMTQsNyArMTE0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgICAgICAgICAgLCBwdWJsaWMgUGx1Z2luTWFudWFsTG9hZGVyCiAgICAgICAgICAgICAgICAg
ICAgICAsIHByaXZhdGUgTWVkaWFDYW5TdGFydExpc3RlbmVyIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpblZpZXc+IGNyZWF0ZShGcmFtZSogcGFyZW50RnJh
bWUsIGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFVSTCYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1W
YWx1ZXMsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgbG9hZE1hbnVhbGx5KTsKKyAgICAg
ICAgc3RhdGljIFJlZjxQbHVnaW5WaWV3PiBjcmVhdGUoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25z
dCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGxvYWRNYW51YWxseSk7CiAgICAgICAgIHZpcnR1
YWwgflBsdWdpblZpZXcoKTsKIAogICAgICAgICBQbHVnaW5QYWNrYWdlKiBwbHVnaW4oKSBjb25z
dCB7IHJldHVybiBtX3BsdWdpbi5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNp
b24uaAppbmRleCBlZjZiM2VlOTU1ZDExNTkwZDQxZmE5YTk3OGUxMTY5MDIwZDNmYWQ1Li43ODcy
OWVhN2U5Mjk1YzBlOGE4NzFkNzJkMTIyMjdkMjNlYjFmYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNh
bmRib3hFeHRlbnNpb24uaApAQCAtMzQsOSArMzQsOSBAQCBjbGFzcyBTYW5kYm94RXh0ZW5zaW9u
OwogCiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbiBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2UgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgcGF0aCwgUGFzc1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBzYW5kYm94RXh0ZW5zaW9u
KQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBwYXRoLCBQYXNzUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IHNhbmRib3hFeHRlbnNpb24p
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZVdpdGhTYW5kYm94RXh0ZW5zaW9uKHBhdGgsIHNhbmRib3hFeHRlbnNpb24pKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRl
bnNpb24ocGF0aCwgc2FuZGJveEV4dGVuc2lvbikpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5oCmluZGV4IDE2ZWQ4YTY0OWFhODNhNTk4NjFlOTc2Y2ZjZmZlZjk4ZDRjN2Fj
NDMuLjg2MDc1OTlkNDBkMjJkNGI1ZjUwMTBkZDg4ZjFjYzM3ZWQxYjJiODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXIuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlciA6IHB1YmxpYyBXVEY6OlRocmVhZFNhZmVSZWZD
b3VudGVkPENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyPiBjcmVhdGUoaWQgZGVs
ZWdhdGUsIFNFTCBkZWxlZ2F0ZU1ldGhvZFNlbGVjdG9yKTsKKyAgICBzdGF0aWMgUmVmPENvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+IGNyZWF0ZShpZCBkZWxlZ2F0ZSwgU0VMIGRlbGVnYXRl
TWV0aG9kU2VsZWN0b3IpOwogCiAgICAgfkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5k
bGVyQ2FsbENoZWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQ29tcGxldGlv
bkhhbmRsZXJDYWxsQ2hlY2tlci5tbQppbmRleCBiOGUzZTJmMmY5YzFiMjI3MDBmMzBjOWIxZmE0
MDM5NjUzOTQ5MGMwLi4zYTY4M2I2NTM0NDYyZTE5OGU2NTIwNTFlNWU4NGNjN2UyOTc2M2VmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQ29tcGxldGlv
bkhhbmRsZXJDYWxsQ2hlY2tlci5tbQpAQCAtMzMsOSArMzMsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotUGFzc1JlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyPiBDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoaWQgZGVsZWdhdGUsIFNFTCBkZWxlZ2F0ZU1l
dGhvZFNlbGVjdG9yKQorUmVmPENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+IENvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShpZCBkZWxlZ2F0ZSwgU0VMIGRlbGVnYXRlTWV0
aG9kU2VsZWN0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb21wbGV0aW9uSGFuZGxl
ckNhbGxDaGVja2VyKG9iamVjdF9nZXRDbGFzcyhkZWxlZ2F0ZSksIGRlbGVnYXRlTWV0aG9kU2Vs
ZWN0b3IpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyKG9iamVjdF9nZXRDbGFzcyhkZWxlZ2F0ZSksIGRlbGVnYXRlTWV0aG9kU2VsZWN0b3Ip
KTsKIH0KIAogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Q29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlcihDbGFzcyBkZWxlZ2F0ZUNsYXNzLCBTRUwgZGVsZWdhdGVNZXRob2RTZWxlY3Rv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRB
dXRoZW50aWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9E
b3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmgKaW5kZXggZmJlMzJkODMyN2YzNzBkMjdjMWM3
MmVlMWNkM2JjOGFkODA2ZjMzYi4uNzI4N2ZhZWRjNmUxNDEwZTA2MjAxNGUwODhjYjE2ZjE5NGYx
YWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9h
ZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25s
b2Fkcy9Eb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xh
c3MgRG93bmxvYWQ7CiAKIGNsYXNzIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQgOiBwdWJs
aWMgUmVmQ291bnRlZDxEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50PiwgcHVibGljIFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50PiBjcmVhdGUoRG93bmxvYWQqIGRvd25sb2Fk
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudChkb3du
bG9hZCkpOyB9CisgICAgc3RhdGljIFJlZjxEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50PiBj
cmVhdGUoRG93bmxvYWQqIGRvd25sb2FkKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERvd25sb2Fk
QXV0aGVudGljYXRpb25DbGllbnQoZG93bmxvYWQpKTsgfQogCiAgICAgdm9pZCBkZXRhY2goKSB7
IG1fZG93bmxvYWQgPSAwOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
YW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oCmluZGV4IGUwMGE5ZmI2N2FhMzcwMThmNDI2MDMwNGRlMzU3NmM4OGMxYTJmM2EuLjEyMWQw
Y2YyZTZhM2Y2ZjhmOGYzMDZhNGM3MWY1YzQ2M2VlMWMzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICB9OwogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGNy
ZWF0ZShjb25zdCBIYW5kbGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+
IGNyZWF0ZShjb25zdCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGUoY29u
c3QgU3RyaW5nJiBwYXRoLCBUeXBlIHR5cGUsIEhhbmRsZSYpOwogICAgIHN0YXRpYyBib29sIGNy
ZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIEhhbmRs
ZSYpOyAvLyBXaWxsIGF0dGVtcHQgdG8gY3JlYXRlIHRoZSBkaXJlY3RvcnkuCiAgICAgc3RhdGlj
IFN0cmluZyBjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4
LCBUeXBlIHR5cGUsIEhhbmRsZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1NoYXJlYWJsZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVS
ZXNvdXJjZS5jcHAKaW5kZXggOWQwMzhlYjUzMGExYjZhNjAxYTE1NTkwNGE4MjZmMzQ3YmU3YmRk
Zi4uN2Y5MTI3M2VkYzMwOTRiMGI5YjllNjkzNzUzN2ZkMzkzZTk1ZDMzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwCkBAIC0xMDcsOSArMTA3LDkgQEAg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGU6OnRyeVdy
YXBJblNoYXJlZEJ1ZmZlcigpIGNvbnMKICAgICByZXR1cm4gcmVzb3VyY2UtPndyYXBJblNoYXJl
ZEJ1ZmZlcigpOwogfQogCi1QYXNzUmVmUHRyPFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFibGVS
ZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnksIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgc2l6ZSkKK1JlZjxTaGFyZWFibGVSZXNvdXJjZT4gU2hh
cmVhYmxlUmVzb3VyY2U6OmNyZWF0ZShQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVt
b3J5LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIHNpemUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTaGFyZWFibGVSZXNvdXJjZShzaGFyZWRNZW1vcnksIG9mZnNldCwgc2l6ZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlYWJsZVJlc291cmNlKHNoYXJlZE1lbW9yeSwg
b2Zmc2V0LCBzaXplKSk7CiB9CiAKIFBhc3NSZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IFNoYXJl
YWJsZVJlc291cmNlOjptYXAoY29uc3QgSGFuZGxlJiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVSZXNvdXJjZS5oCmluZGV4IGJlMjM1ZDdlMDRhYTkyN2IxYjZlZTczNzBl
YzdkOGNiY2FlNWEyODIuLmUwYWJkN2ZkODliY2NmOTI0ZjEwMTZlMjA2MjIxMGVkZDUzYmNjODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5oCkBAIC02Nyw3ICs2
Nyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgLy8gQ3JlYXRlIGEgc2hhcmVhYmxlIHJlc291
cmNlIHRoYXQgdXNlcyBtYWxsb2NlZCBtZW1vcnkuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2hh
cmVhYmxlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVmUHRyPFNoYXJlZE1lbW9yeT4sIHVuc2lnbmVk
IG9mZnNldCwgdW5zaWduZWQgc2l6ZSk7CisgICAgc3RhdGljIFJlZjxTaGFyZWFibGVSZXNvdXJj
ZT4gY3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNp
Z25lZCBzaXplKTsKIAogICAgIC8vIENyZWF0ZSBhIHNoYXJlYWJsZSByZXNvdXJjZSBmcm9tIGEg
aGFuZGxlLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlYWJsZVJlc291cmNlPiBtYXAoY29u
c3QgSGFuZGxlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNP
YmplY3RHcmFwaC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9PYmpDT2JqZWN0R3JhcGgu
aAppbmRleCA0NDdlMWMyZWZlMTU3ZDFjYzRkNGM3OWJkNzJlMDEwYTI0MzAzODNkLi42MjkzYmQz
ZDlhZTJlN2M5N2U5ZjRkMGExMTA3YzZhN2QxN2NiZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLmgKQEAgLTQwLDkgKzQwLDkgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE9iakNPYmplY3RHcmFwaCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8
QVBJOjpPYmplY3Q6OlR5cGU6Ok9iakNPYmplY3RHcmFwaD4gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE9iakNPYmplY3RHcmFwaD4gY3JlYXRlKGlkIHJvb3RPYmplY3QpCisgICAg
c3RhdGljIFJlZjxPYmpDT2JqZWN0R3JhcGg+IGNyZWF0ZShpZCByb290T2JqZWN0KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmpDT2JqZWN0R3JhcGgocm9vdE9iamVjdCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpDT2JqZWN0R3JhcGgocm9vdE9iamVj
dCkpOwogICAgIH0KIAogICAgIGlkIHJvb3RPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RP
YmplY3QuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Fu
ZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4
dGVuc2lvbk1hYy5tbQppbmRleCA0ZTQ2MTlhZjg0MjcwNTRhM2EyNTBkNTMxZjc5MDljNmQwNmUz
NjkzLi5lNzMxYTA1ZjU1ZjY1M2QyNTVjMDUxNmY0OWUwYjE1ZmUwY2EyYmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCkBAIC0xNDQs
MTAgKzE0NCwxMCBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFNhbmRibwogICAgIHJldHVybiB0cnVlOwog
fQogCi1QYXNzUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZShjb25zdCBIYW5kbGUmIGhhbmRsZSkKK1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgaWYgKCFoYW5k
bGUubV9zYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNhbmRib3hFeHRlbnNpb24oaGFu
ZGxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc0dyb3VwLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NHcm91cC5tbQppbmRleCBiODUxZjEzMzZlYjJiNWE0OTg1Y2QxZGI3MjRkOTVmZmE5
OGIwMWQzLi44NGE3NjgxYmQyZmIyMjUyODU3ZjE2NWFkMjgyMTgyMGZjMTkyMzI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAu
bW0KQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIFdLVHlwZVJlZiBnZXRJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGEoV0tDb250ZXh0UmVmLCBjb25zdCB2b2kKICAgICBpZiAoW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJvY2Vzc0dyb3VwV2lsbENyZWF0
ZUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NQbHVnSW46KV0pIHsKICAgICAgICAgUmV0YWluUHRyPGlk
PiBpbml0aWFsaXphdGlvblVzZXJEYXRhID0gW2RlbGVnYXRlIHByb2Nlc3NHcm91cFdpbGxDcmVh
dGVDb25uZWN0aW9uVG9XZWJQcm9jZXNzUGx1Z0luOnByb2Nlc3NHcm91cF07CiAKLSAgICAgICAg
cmV0dXJuIHRvQVBJKFdlYktpdDo6T2JqQ09iamVjdEdyYXBoOjpjcmVhdGUoaW5pdGlhbGl6YXRp
b25Vc2VyRGF0YS5nZXQoKSkubGVha1JlZigpKTsKKyAgICAgICAgcmV0dXJuIHRvQVBJKCZXZWJL
aXQ6Ok9iakNPYmplY3RHcmFwaDo6Y3JlYXRlKGluaXRpYWxpemF0aW9uVXNlckRhdGEuZ2V0KCkp
LmxlYWtSZWYoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCBhMTZhZjJkZGQ5Y2E2ZDg4ZDI1MDQwNDI4
ZGNhZjhjMjUxNGFkZWMwLi5lMWMzOTBlYzgxZjgwZWFlOTQ4ZjUxNTgxYWVhYjBiZmQwYWI1ZWRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTM3
LDkgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyBJbnN0ZWFkIG9mIHRyYWNraW5nIHBy
aXZhdGUgYnJvd3Npbmcgc3RhdGUgYXMgYSBib29sZWFuIHByZWZlcmVuY2UsIHdlIHNob3VsZCBs
ZXQgdGhlIGNsaWVudCBwcm92aWRlIHN0b3JhZ2Ugc2Vzc2lvbnMgZXhwbGljaXRseS4KIHN0YXRp
YyB1bnNpZ25lZCBwcml2YXRlQnJvd3NpbmdQYWdlQ291bnQ7CiAKLVBhc3NSZWZQdHI8V2ViUHJl
ZmVyZW5jZXM+IFdlYlByZWZlcmVuY2VzOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGtleVByZWZpeCwgY29uc3QgU3RyaW5nJiBnbG9iYWxEZWJ1Z0tleVBy
ZWZpeCkKK1JlZjxXZWJQcmVmZXJlbmNlcz4gV2ViUHJlZmVyZW5jZXM6OmNyZWF0ZShjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5UHJlZml4LCBjb25zdCBTdHJpbmcm
IGdsb2JhbERlYnVnS2V5UHJlZml4KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJl
ZmVyZW5jZXMoaWRlbnRpZmllciwga2V5UHJlZml4LCBnbG9iYWxEZWJ1Z0tleVByZWZpeCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlByZWZlcmVuY2VzKGlkZW50aWZpZXIsIGtleVBy
ZWZpeCwgZ2xvYmFsRGVidWdLZXlQcmVmaXgpKTsKIH0KIAogUGFzc1JlZlB0cjxXZWJQcmVmZXJl
bmNlcz4gV2ViUHJlZmVyZW5jZXM6OmNyZWF0ZVdpdGhMZWdhY3lEZWZhdWx0cyhjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5UHJlZml4LCBjb25zdCBTdHJpbmcmIGds
b2JhbERlYnVnS2V5UHJlZml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuaAppbmRleCBlOTVlZjgyNTlhMTIzZWIzMTJjODQ0NTk2NjliMmJmNTMyMGE1NjFiLi4wMTgx
NzM4NzgxYTE3ZTkwNmY5ZTg4YTkyOWUxMTBkZmJmN2JkMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBXZWJQYWdl
UHJveHk7CiAKIGNsYXNzIFdlYlByZWZlcmVuY2VzIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxB
UEk6Ok9iamVjdDo6VHlwZTo6UHJlZmVyZW5jZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJQcmVmZXJlbmNlcz4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBrZXlQcmVmaXgsIGNvbnN0IFN0cmluZyYgZ2xvYmFsRGVidWdLZXlQcmVm
aXgpOworICAgIHN0YXRpYyBSZWY8V2ViUHJlZmVyZW5jZXM+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYga2V5UHJlZml4LCBjb25zdCBTdHJpbmcmIGdsb2Jh
bERlYnVnS2V5UHJlZml4KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQcmVmZXJlbmNlcz4g
Y3JlYXRlV2l0aExlZ2FjeURlZmF1bHRzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBrZXlQcmVmaXgsIGNvbnN0IFN0cmluZyYgZ2xvYmFsRGVidWdLZXlQcmVmaXgpOwog
CiAgICAgZXhwbGljaXQgV2ViUHJlZmVyZW5jZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGtleVByZWZpeCwgY29uc3QgU3RyaW5nJiBnbG9iYWxEZWJ1Z0tleVByZWZp
eCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VPdmVybGF5LmNwcAppbmRleCBiZmY2
NDAwNWE4NTE5MjM3ZGJiNzE1NzYxMmQ5ZWJiZjhkYjMzMjQ2Li5lMTlhZGI5ZTk0YWZiMDk3MDU3
ODUxY2M0ZDMwYzM5MTliOTU0MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZU92ZXJsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
T3ZlcmxheS5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VPdmVy
bGF5R2V0VHlwZUlEKCkKIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgV0tCdW5kbGVQYWdlT3Zlcmxh
eUNyZWF0ZShXS0J1bmRsZVBhZ2VPdmVybGF5Q2xpZW50QmFzZSogd2tDbGllbnQpCiB7CiAgICAg
YXV0byBjbGllbnRJbXBsID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlT3ZlcmxheUNsaWVudEltcGw+
KHdrQ2xpZW50KTsKLSAgICByZXR1cm4gdG9BUEkoV2ViUGFnZU92ZXJsYXk6OmNyZWF0ZShXVEY6
Om1vdmUoY2xpZW50SW1wbCkpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIHRvQVBJKCZXZWJQYWdl
T3ZlcmxheTo6Y3JlYXRlKFdURjo6bW92ZShjbGllbnRJbXBsKSkubGVha1JlZigpKTsKIH0KIAog
dm9pZCBXS0J1bmRsZVBhZ2VPdmVybGF5U2V0QWNjZXNzaWJpbGl0eUNsaWVudChXS0J1bmRsZVBh
Z2VPdmVybGF5UmVmIGJ1bmRsZVBhZ2VPdmVybGF5UmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5QWNj
ZXNzaWJpbGl0eUNsaWVudEJhc2UqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlUGFnZUJhbm5lck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFj
L1dLQnVuZGxlUGFnZUJhbm5lck1hYy5tbQppbmRleCBmYzdiNzVhNWJlZTgwNGYyMTYxY2NiNDBj
YWRlMDAzNTQxMDdjZWI4Li5lOGFmOTBiY2U0MTZkOTdhYmEyMmExOWJiMmQ3OTY3MGZkNWQ2YjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL21hYy9XS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1t
CkBAIC0xMDIsNyArMTAyLDcgQEAgV0tCdW5kbGVQYWdlQmFubmVyUmVmIFdLQnVuZGxlUGFnZUJh
bm5lckNyZWF0ZUJhbm5lcldpdGhDQUxheWVyKENBTGF5ZXIgKmxheWVyLAogICAgICAgICByZXR1
cm4gMDsKIAogICAgIGF1dG8gY2xpZW50SW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZUJhbm5l
ckNsaWVudEltcGw+KHdrQ2xpZW50KTsKLSAgICByZXR1cm4gdG9BUEkoUGFnZUJhbm5lcjo6Y3Jl
YXRlKGxheWVyLCBoZWlnaHQsIGNsaWVudEltcGwucmVsZWFzZSgpKS5sZWFrUmVmKCkpOworICAg
IHJldHVybiB0b0FQSSgmUGFnZUJhbm5lcjo6Y3JlYXRlKGxheWVyLCBoZWlnaHQsIGNsaWVudElt
cGwucmVsZWFzZSgpKS5sZWFrUmVmKCkpOwogfQogCiBDQUxheWVyICogV0tCdW5kbGVQYWdlQmFu
bmVyR2V0TGF5ZXIoV0tCdW5kbGVQYWdlQmFubmVyUmVmIHBhZ2VCYW5uZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
RE9NV2luZG93RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwCmluZGV4IGNmOGNl
NjI3M2Q1OGNlYjAzNTU5MmI1ZTRmZjhkMTkyNDE5Zjc0MTcuLmVkZmFmNzhmNzRkZDFjOGY4NTFm
MjU2YTFkMTM4NGVjNGUwYmZlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVET01XaW5kb3dFeHRlbnNpb24uY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIHN0YXRpYyBFeHRlbnNp
b25NYXAmIGFsbEV4dGVuc2lvbnMoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLVBhc3NSZWZQdHI8
SW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24+IEluamVjdGVkQnVuZGxlRE9NV2luZG93
RXh0ZW5zaW9uOjpjcmVhdGUoV2ViRnJhbWUqIGZyYW1lLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkKiB3b3JsZCkKK1JlZjxJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbj4gSW5qZWN0
ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb246OmNyZWF0ZShXZWJGcmFtZSogZnJhbWUsIEluamVj
dGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24oZnJhbWUsIHdvcmxkKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24oZnJhbWUs
IHdvcmxkKSk7CiB9CiAKIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKiBJbmplY3Rl
ZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbjo6Z2V0KERPTVdpbmRvd0V4dGVuc2lvbiogZXh0ZW5z
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5o
CmluZGV4IDFjYWYzOTYzODUwYjI5OGMzMTZhM2I4ZTQyMzFmOWM5YTc5MDE0NWYuLjA2NWY3Mjhm
ODE5ZjUxYmJmNGM2YWZkM2VmN2NjMDY5ZjYxN2NiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRl
bnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3Mg
V2ViRnJhbWU7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uIDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlRE9NV2luZG93RXh0
ZW5zaW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVE
T01XaW5kb3dFeHRlbnNpb24+IGNyZWF0ZShXZWJGcmFtZSosIEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQqKTsKKyAgICBzdGF0aWMgUmVmPEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9u
PiBjcmVhdGUoV2ViRnJhbWUqLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKik7CiAgICAgc3Rh
dGljIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKiBnZXQoV2ViQ29yZTo6RE9NV2lu
ZG93RXh0ZW5zaW9uKik7CiAKICAgICB2aXJ0dWFsIH5JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4
dGVuc2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3Bw
CmluZGV4IDM2NmZhMzM5NzZjOGQ4Yjg4MjdmMmZjMDc1MmFjNDlkMjRkNDQxZjkuLmMxMzA1ZWJk
ODk4NTU4YjJjODc3YzE3ZTlhMDVlMzk3MGVmYWVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPEluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdD4gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCkKK1JlZjxJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQ+IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6Y3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQoaGl0VGVzdFJlc3Vs
dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dChoaXRUZXN0UmVzdWx0KSk7CiB9CiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlPiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6Om5vZGVIYW5kbGUoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgKaW5kZXggYmIxMTJkYzgyYWRl
NDc2ODQ0MmM4ZmNmMDdmMzdkNTM3MTU1OWRiNS4uY2I3NTg5ZWVlNGFjZmVjNGViNzNkZWMyYmM0
ODRiNjFjYzJmM2Q5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFdlYkZyYW1lOwogCiBjbGFzcyBJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpCdW5kbGVIaXRUZXN0UmVzdWx0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6SGl0
VGVzdFJlc3VsdCYpOworICAgIHN0YXRpYyBSZWY8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYpOwogCiAgICAgY29uc3QgV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdCYgY29yZUhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJldHVybiBt
X2hpdFRlc3RSZXN1bHQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmln
YXRpb25BY3Rpb24uY3BwCmluZGV4IGFmZTg2ZDU5M2I1MWEwMzZlOWI3NzViYTRkOGJmNjllYTBl
YjQ4MzcuLjY2YTE5YThhOTYwN2I1ZjMxOTNkNzQ5OTkzMWY4MDRmMGYwYzU5OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVOYXZpZ2F0aW9uQWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAKQEAgLTgxLDkg
KzgxLDkgQEAgV2ViTW91c2VFdmVudDo6QnV0dG9uIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFj
dGlvbjo6bW91c2VCdXR0b25Gb3JOYXZpZ2F0aW9uQWMKIH0KIAogCi1QYXNzUmVmUHRyPEluamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbj4gSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9u
OjpjcmVhdGUoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24s
IFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCitSZWY8SW5qZWN0ZWRCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uPiBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246OmNyZWF0ZShXZWJG
cmFtZSogZnJhbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+IGZvcm1TdGF0ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluamVjdGVk
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbihmcmFtZSwgYWN0aW9uLCBmb3JtU3RhdGUpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24oZnJhbWUs
IGFjdGlvbiwgZm9ybVN0YXRlKSk7CiB9CiAKIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlv
bjo6SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uKFdlYkZyYW1lKiBmcmFtZSwgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+
IHBycEZvcm1TdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFj
dGlvbi5oCmluZGV4IDhlMjI0YzJmOGY4MjUxMzgzMGY2ZWNkYTgwNmFiMDc2MTVlZGY2ZDEuLmNh
M2UyOGE5ODQzNTA1ZDc1MmY2MDc1MDA4NGU2MzIyMWIyNTIyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0
aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBjbGFz
cyBXZWJGcmFtZTsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uIDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlTmF2aWdhdGlvbkFj
dGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTmF2
aWdhdGlvbkFjdGlvbj4gY3JlYXRlKFdlYkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPik7CisgICAgc3RhdGljIFJl
ZjxJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24+IGNyZWF0ZShXZWJGcmFtZSosIGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0
ZT4pOwogCiAgICAgc3RhdGljIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yTmF2aWdh
dGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJik7CiAgICAgc3RhdGlj
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvck5hdmlnYXRpb25BY3Rpb24oY29u
c3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVu
dUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCBlODBiMmNlMzQ4YmQx
NzQ4YjFmMWI3ZWZhODgwYzVlMDViMzJmYWE0Li41ODdlZmM2N2Q0NjVjMThhMmJmMTU0MjZhOGUx
OTI1OGE3YWE1NjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUNvbnRleHRNZW51Q2xpZW50LmNwcApAQCAtNjAsNyArNjAsNyBAQCBib29sIEluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50OjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhX
ZWJQYWdlJgogCiAgICAgV0tBcnJheVJlZiBuZXdNZW51V0sgPSBudWxscHRyOwogICAgIFdLVHlw
ZVJlZiB1c2VyRGF0YVRvUGFzcyA9IG51bGxwdHI7Ci0gICAgbV9jbGllbnQuZ2V0Q29udGV4dE1l
bnVGcm9tRGVmYXVsdE1lbnUodG9BUEkoJnBhZ2UpLCB0b0FQSShJbmplY3RlZEJ1bmRsZUhpdFRl
c3RSZXN1bHQ6OmNyZWF0ZShoaXRUZXN0UmVzdWx0KS5nZXQoKSksIHRvQVBJKEFQSTo6QXJyYXk6
OmNyZWF0ZShXVEY6Om1vdmUoZGVmYXVsdE1lbnVJdGVtcykpLnB0cigpKSwgJm5ld01lbnVXSywg
JnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50
LmdldENvbnRleHRNZW51RnJvbURlZmF1bHRNZW51KHRvQVBJKCZwYWdlKSwgdG9BUEkoJkluamVj
dGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6Y3JlYXRlKGhpdFRlc3RSZXN1bHQpLmdldCgpKSwgdG9B
UEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShkZWZhdWx0TWVudUl0ZW1zKSkucHRyKCkp
LCAmbmV3TWVudVdLLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CiAgICAgUmVmUHRyPEFQSTo6QXJyYXk+IGFycmF5ID0gYWRvcHRSZWYodG9JbXBsKG5ld01lbnVX
SykpOwogICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9QYXNzKSk7CiAg
ICAgCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVD
bGllbnQ6OnByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb24oV2ViUGFnZSYgcGFnCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IG51bGxwdHI7Ci0gICAgbV9j
bGllbnQucHJlcGFyZUZvckFjdGlvbk1lbnUodG9BUEkoJnBhZ2UpLCB0b0FQSShJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQ6OmNyZWF0ZShoaXRUZXN0UmVzdWx0KS5nZXQoKSksICZ1c2VyRGF0
YVRvUGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC5wcmVwYXJl
Rm9yQWN0aW9uTWVudSh0b0FQSSgmcGFnZSksIHRvQVBJKCZJbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQ6OmNyZWF0ZShoaXRUZXN0UmVzdWx0KS5nZXQoKSksICZ1c2VyRGF0YVRvUGFzcywgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVmKHRvSW1wbCh1
c2VyRGF0YVRvUGFzcykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmNwcAppbmRleCAxZDgxYjhjNzI2NzNiYWRjNmQ1YzVhZmExY2Y0YWI3YTg0ZmU2ODRhLi42
Y2VkZmRlYmVjNzk0Y2E4MGZjOGZhMTA0NDhlNDczZmEwNjkyODEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgc3RhdGljIFdv
cmxkTWFwJiBhbGxXb3JsZHMoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLVBhc3NSZWZQdHI8SW5q
ZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Y3JlYXRl
KCkKK1JlZjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVT
Y3JpcHRXb3JsZChTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZChTY3JpcHRDb250cm9sbGVy
OjpjcmVhdGVXb3JsZCgpKSk7CiB9CiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3JpcHRX
b3JsZD4gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Z2V0T3JDcmVhdGUoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgKaW5kZXgg
NzBmNmZmY2Y4MmU4ZDBjMGQxMDVkMzJhODFiYjBlZDBjNGFkMDAyYS4uNjk4NDQxNTZkYWQxZWUw
Yzg3OWYyZDUwMWJiMDlhODc3MGUwODNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6
T2JqZWN0OjpUeXBlOjpCdW5kbGVTY3JpcHRXb3JsZD4gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ+IGNyZWF0ZSgpOworICAgIHN0YXRp
YyBSZWY8SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4gZ2V0T3JDcmVhdGUoV2ViQ29yZTo6
RE9NV3JhcHBlcldvcmxkJik7CiAgICAgc3RhdGljIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQq
IG5vcm1hbFdvcmxkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4MDNlODAxMGQ5
NWM2NmVjZjEwNzE3OTVkN2E3ZWQ5ZDkyNDU3OTExLi4wZDVhZDA4NDNjMjEwNjNiODQwYWZiMmFj
NDZmMDhmZWExYWY0OTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01MCw5ICs1MCw5
IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllcikpOwogICAgIH0KICAgICB+TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4M2Q2Y2E4YWFhZmY2MjU4MzJlMzgyMDAxY2Y2YjAw
ODA2MmQ2NDllLi4zNGRkODZmMTdhMTI5OThhOWZmMzFhNmE3ODUwOTFlOTZkMjU4NmEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5jcHAKQEAgLTQ1LDkgKzQ1LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPiBXZWJS
ZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKFBhc3NSZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGNvcmVMb2Fk
ZXIpCitSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUoUGFz
c1JlZlB0cjxSZXNvdXJjZUxvYWRlcj4gY29yZUxvYWRlcikKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYlJlc291cmNlTG9hZGVyKGNvcmVMb2FkZXIpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJSZXNvdXJjZUxvYWRlcihjb3JlTG9hZGVyKSk7CiB9CiAKIFdlYlJlc291cmNl
TG9hZGVyOjpXZWJSZXNvdXJjZUxvYWRlcihQYXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyPiBjb3JlTG9hZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAppbmRleCA1MDZlYWQ0NzFkZDExN2E1OTIyZmY3NjRh
ZTE3MzE4NDc1NTEzN2E4Li4zMjNlNzNlNDI4YWRiMmE4YjExMGRhNjMxYzNhNjM3ZTVhMDAwYzE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuaApAQCAtNTgsNyArNTgsNyBAQCB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNl
TG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIFdlYlJlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZXNvdXJjZUxvYWRlcj4gY3JlYXRlKFBh
c3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+KTsKKyAgICBzdGF0aWMgUmVmPFdlYlJl
c291cmNlTG9hZGVyPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4p
OwogCiAgICAgfldlYlJlc291cmNlTG9hZGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggYzQ3OTUwMjZmMmZi
MjUzMzEzZjhjMmY2MWE5NGQ4ZGMwYTM0MmNhOC4uMTVhNWJiYWE5ZWJiOWEzOTI5YTQ3OTU3NzZi
ZjZjYzUzYjY4ZjQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgc3RhdGljIHVpbnQ2NF90
IGdlbmVyYXRlUmVxdWVzdElEKCkKIH0KICNlbmRpZgogCi1QYXNzUmVmUHRyPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK1JlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y3Jl
YXRlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIocGFnZSkpOworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihwYWdlKSk7CiB9CiAKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CmluZGV4IDA5MDNlNzQ4OTZhM2MxMDdhMzBhNGM2NzY0ZDAxMjE1MzViMjg1MGQuLjcwODI3ZDYw
YmQ0NTE0ODMxYmE4NzBlNWM3MjNmMmNmM2NmZjRjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
Y2xhc3MgV2ViUGFnZTsKIC8vLyBGSVhNRTogTmVlZCB0byBrZWVwIGEgcXVldWUgb2YgcGVuZGlu
ZyBub3RpZmljYXRpb25zIHdoaWNoIHBlcm1pc3Npb24gaXMgc3RpbGwgYmVpbmcgcmVxdWVzdGVk
LgogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGljIFJl
ZkNvdW50ZWQ8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOwogCiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCiAgICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4q
LCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKaW5kZXggMGE3Yjc0ZGU1YzVjNjYyYmQ3ZDExODRjNDYz
ZmM5NjI2YWI0MWVjZC4uNDk3ZmFkNWZiNTE5MWVhNjlkMmNlNDFlNDdjYjNiNTI4YmY0ZGZjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCkBAIC00OSwxMiArNDksMTIgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAvLyBUaGUgcGx1Zy1pbiB0aGF0IHdlJ3JlIGN1cnJlbnRseSBjYWxsaW5nIE5Q
UF9OZXcgZm9yLgogc3RhdGljIE5ldHNjYXBlUGx1Z2luKiBjdXJyZW50TlBQTmV3UGx1Z2luOwog
Ci1QYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBOZXRzY2FwZVBsdWdpbjo6Y3JlYXRlKFBhc3NS
ZWZQdHI8TmV0c2NhcGVQbHVnaW5Nb2R1bGU+IHBsdWdpbk1vZHVsZSkKK1JlZlB0cjxOZXRzY2Fw
ZVBsdWdpbj4gTmV0c2NhcGVQbHVnaW46OmNyZWF0ZShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2lu
TW9kdWxlPiBwbHVnaW5Nb2R1bGUpCiB7CiAgICAgaWYgKCFwbHVnaW5Nb2R1bGUpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTmV0c2NhcGVQbHVnaW4ocGx1Z2luTW9kdWxlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTmV0c2NhcGVQbHVnaW4ocGx1Z2luTW9kdWxlKSk7CiB9CiAgICAgCiBOZXRzY2FwZVBs
dWdpbjo6TmV0c2NhcGVQbHVnaW4oUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdpbk1vZHVsZT4gcGx1
Z2luTW9kdWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAppbmRleCAyYzYzNzIxYzgwODgzYmFkODhm
NTI1ZDcwMmYxNzYxMTBkNzRiZjYzLi44YjMyODNjOTc5M2VhNGYwNGIwMjMxZjk1NzcwZDBiODZm
ZmUzNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaApAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBO
ZXRzY2FwZVBsdWdpblN0cmVhbTsKICAgICAKIGNsYXNzIE5ldHNjYXBlUGx1Z2luIDogcHVibGlj
IFBsdWdpbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW4+
IGNyZWF0ZShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luTW9kdWxlPiBwbHVnaW5Nb2R1bGUpOwor
ICAgIHN0YXRpYyBSZWZQdHI8TmV0c2NhcGVQbHVnaW4+IGNyZWF0ZShQYXNzUmVmUHRyPE5ldHNj
YXBlUGx1Z2luTW9kdWxlPik7CiAgICAgdmlydHVhbCB+TmV0c2NhcGVQbHVnaW4oKTsKIAogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBmcm9tTlBQKE5QUCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW5TdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGNmYjFhOTY2NWNhZDYyYmE1OGU2NGRmMmU1
ZDU4MzVkYWQxOGMzMDcuLjhhOGYxODg5NDI3YjFhNmZkZTQ1MTJlMzZlMGY4MzZhODM0NmYwZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCkBAIC00OCw5ICs0OCw5IEBAIGNs
YXNzIE5ldHNjYXBlUGx1Z2luOwogCiBjbGFzcyBOZXRzY2FwZVBsdWdpblN0cmVhbSA6IHB1Ymxp
YyBSZWZDb3VudGVkPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0ZShQYXNzUmVmUHRyPE5ldHNj
YXBlUGx1Z2luPiBwbHVnaW4sIHVpbnQ2NF90IHN0cmVhbUlELCBjb25zdCBTdHJpbmcmIHJlcXVl
c3RVUkxTdHJpbmcsIGJvb2wgc2VuZE5vdGlmaWNhdGlvbiwgdm9pZCogbm90aWZpY2F0aW9uRGF0
YSkKKyAgICBzdGF0aWMgUmVmPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBjcmVhdGUoUGFzc1JlZlB0
cjxOZXRzY2FwZVBsdWdpbj4gcGx1Z2luLCB1aW50NjRfdCBzdHJlYW1JRCwgY29uc3QgU3RyaW5n
JiByZXF1ZXN0VVJMU3RyaW5nLCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5vdGlmaWNh
dGlvbkRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5ldHNjYXBlUGx1
Z2luU3RyZWFtKHBsdWdpbiwgc3RyZWFtSUQsIHJlcXVlc3RVUkxTdHJpbmcsIHNlbmROb3RpZmlj
YXRpb24sIG5vdGlmaWNhdGlvbkRhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmV0c2NhcGVQbHVnaW5TdHJlYW0ocGx1Z2luLCBzdHJlYW1JRCwgcmVxdWVzdFVSTFN0cmluZywg
c2VuZE5vdGlmaWNhdGlvbiwgbm90aWZpY2F0aW9uRGF0YSkpOwogICAgIH0KICAgICB+TmV0c2Nh
cGVQbHVnaW5TdHJlYW0oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggYTcyZTBjODhjM2Q0YzBjYjg2ZWI5NmRlMWI5OWU4
NjE1ZDBhZjllYy4uNWQ2NWE2NjZlYTkxNDQ2NDUyZTMxYjZhYzE0ZDgzOTI4MzBhYzIxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5o
CkBAIC02OCw3ICs2OCw3IEBAIGNsYXNzIFdlYkZyYW1lOwogCiBjbGFzcyBQREZQbHVnaW4gZmlu
YWwgOiBwdWJsaWMgUGx1Z2luLCBwcml2YXRlIFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQREZQbHVnaW4+IGNyZWF0ZShXZWJGcmFtZSop
OworICAgIHN0YXRpYyBSZWY8UERGUGx1Z2luPiBjcmVhdGUoV2ViRnJhbWUqKTsKICAgICB+UERG
UGx1Z2luKCk7CiAKICAgICBzdGF0aWMgV2ViQ29yZTo6UGx1Z2luSW5mbyBwbHVnaW5JbmZvKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tCmluZGV4IGRjY2M1NDEwNWZiYTg3MTllNWZjMzhkZjRjNTAyZGRkMjcyOWVlY2QuLmE0NzY2
MTUyNDJiMGNkMmRkNWRjNDRiNjhmYzFlMmM2MzZiYTA1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC01MDMsOSArNTAz
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
LVBhc3NSZWZQdHI8UERGUGx1Z2luPiBQREZQbHVnaW46OmNyZWF0ZShXZWJGcmFtZSogZnJhbWUp
CitSZWY8UERGUGx1Z2luPiBQREZQbHVnaW46OmNyZWF0ZShXZWJGcmFtZSogZnJhbWUpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQREZQbHVnaW4oZnJhbWUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBQREZQbHVnaW4oZnJhbWUpKTsKIH0KIAogUERGUGx1Z2luOjpQREZQbHVnaW4o
V2ViRnJhbWUqIGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaAppbmRleCAwZjI3ZGVmN2RiYTE2
OGJmZTVhYmQ5YWZmM2JiZjBmOWU3NWJlZDIxLi44MzY3MGMxYzgwNTQ5MzRjZGZhMjczN2U3YzBi
NDM4YzAwYWJlZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaApAQCAtNzksOSArNzksOSBAQCBw
cml2YXRlOgogCiAgICAgY2xhc3MgUERGUGx1Z2luQW5ub3RhdGlvbkV2ZW50TGlzdGVuZXIgOiBw
dWJsaWMgV2ViQ29yZTo6RXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQREZQbHVnaW5Bbm5vdGF0aW9uRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFBE
RlBsdWdpbkFubm90YXRpb24qIGFubm90YXRpb24pCisgICAgICAgIHN0YXRpYyBSZWY8UERGUGx1
Z2luQW5ub3RhdGlvbkV2ZW50TGlzdGVuZXI+IGNyZWF0ZShQREZQbHVnaW5Bbm5vdGF0aW9uKiBh
bm5vdGF0aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBE
RlBsdWdpbkFubm90YXRpb25FdmVudExpc3RlbmVyKGFubm90YXRpb24pKTsKKyAgICAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFBERlBsdWdpbkFubm90YXRpb25FdmVudExpc3RlbmVyKGFu
bm90YXRpb24pKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKSBvdmVycmlkZSB7IHJldHVybiB0aGlzID09
ICZsaXN0ZW5lcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAppbmRleCBlZWE0
MWQ3MTA1MmVmMGUwNjBhMGFiMDBmYTc3NDliMDRkMTY1YWZhLi5hMzdhZmNlMDg1NDc4NTE5MGY1
ZGRkODQ0ZDU5ZmE4N2Q2MTc4NDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24u
aApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbiA6IHB1YmxpYyBQREZQbHVnaW5Bbm5vdGF0aW9uIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uPiBjcmVhdGUo
UERGQW5ub3RhdGlvbiAqLCBQREZMYXllckNvbnRyb2xsZXIgKiwgUERGUGx1Z2luKik7CisgICAg
c3RhdGljIFJlZjxQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uPiBjcmVhdGUoUERGQW5ub3RhdGlv
biAqLCBQREZMYXllckNvbnRyb2xsZXIgKiwgUERGUGx1Z2luKik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlR2VvbWV0cnkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXggMGM0YTZj
Yjk4MWM5MDQ1ZDFlYmJiODdjZTIyNzQ0ZTVkMjVkMDQyNS4uZTFhOGU1ODIyYjI1ZTg3OTM1MWYz
NDkwYmU5NTRkMWRiODE5ZGQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5t
bQpAQCAtNDYsOSArNDYsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotUGFzc1JlZlB0cjxQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uPiBQREZQ
bHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjcmVhdGUoUERGQW5ub3RhdGlvbiAqYW5ub3RhdGlvbiwg
UERGTGF5ZXJDb250cm9sbGVyICpwZGZMYXllckNvbnRyb2xsZXIsIFBERlBsdWdpbiogcGx1Z2lu
KQorUmVmPFBERlBsdWdpbkNob2ljZUFubm90YXRpb24+IFBERlBsdWdpbkNob2ljZUFubm90YXRp
b246OmNyZWF0ZShQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uLCBQREZMYXllckNvbnRyb2xsZXIg
KnBkZkxheWVyQ29udHJvbGxlciwgUERGUGx1Z2luKiBwbHVnaW4pCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uKGFubm90YXRpb24sIHBkZkxheWVy
Q29udHJvbGxlciwgcGx1Z2luKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbihhbm5vdGF0aW9uLCBwZGZMYXllckNvbnRyb2xsZXIsIHBsdWdpbikp
OwogfQogCiB2b2lkIFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OnVwZGF0ZUdlb21ldHJ5KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luUGFzc3dvcmRGaWVsZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5QYXNzd29yZEZpZWxkLmgKaW5kZXggZWQ4MTczOTlhMDMyMjkyMTQyZTc2ZGU2
ZTkwYjllZDk0OTIxMTFjZi4uM2FjZGU5YmRhOWY5MjExNmJiMDQ1NDI1MThiOTQ1MjBlOTRkNzJl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5QYXNzd29yZEZpZWxkLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFBERlBsdWdpblBhc3N3b3JkRmllbGQgOiBwdWJsaWMgUERG
UGx1Z2luVGV4dEFubm90YXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBE
RlBsdWdpblBhc3N3b3JkRmllbGQ+IGNyZWF0ZShQREZMYXllckNvbnRyb2xsZXIgKiwgUERGUGx1
Z2luKik7CisgICAgc3RhdGljIFJlZjxQREZQbHVnaW5QYXNzd29yZEZpZWxkPiBjcmVhdGUoUERG
TGF5ZXJDb250cm9sbGVyICosIFBERlBsdWdpbiopOwogICAgIHZpcnR1YWwgflBERlBsdWdpblBh
c3N3b3JkRmllbGQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeSgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW5QYXNzd29yZEZpZWxkLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLm1tCmluZGV4IGUxMzQ1MTAyZDI0ODVlZmY2
ZGQ0YzQ1MzgwNzNmNjI1ODZmZTQ4NzEuLjczOThiNTM2MDk3NTdmNmNjN2I4YTRmYTMxYTE0YTc4
MmFhMTVkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblBhc3N3b3JkRmllbGQubW0KQEAgLTQyLDkgKzQyLDkg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBh
c3NSZWZQdHI8UERGUGx1Z2luUGFzc3dvcmRGaWVsZD4gUERGUGx1Z2luUGFzc3dvcmRGaWVsZDo6
Y3JlYXRlKFBERkxheWVyQ29udHJvbGxlciAqcGRmTGF5ZXJDb250cm9sbGVyLCBQREZQbHVnaW4q
IHBsdWdpbikKK1JlZjxQREZQbHVnaW5QYXNzd29yZEZpZWxkPiBQREZQbHVnaW5QYXNzd29yZEZp
ZWxkOjpjcmVhdGUoUERGTGF5ZXJDb250cm9sbGVyICpwZGZMYXllckNvbnRyb2xsZXIsIFBERlBs
dWdpbiogcGx1Z2luKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUERGUGx1Z2luUGFzc3dv
cmRGaWVsZChwZGZMYXllckNvbnRyb2xsZXIsIHBsdWdpbikpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFBERlBsdWdpblBhc3N3b3JkRmllbGQocGRmTGF5ZXJDb250cm9sbGVyLCBwbHVnaW4p
KTsKIH0KIAogUERGUGx1Z2luUGFzc3dvcmRGaWVsZDo6flBERlBsdWdpblBhc3N3b3JkRmllbGQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW5UZXh0QW5ub3RhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oCmluZGV4IDJlNDU3ZDdmYzRhNzQwNTY1YmUz
ZTVkZDk0ZTEyNDJlOWI4Mjg1NjcuLmFmZDRiY2M1ZjIwNzU1ZTkzOWEwOGMzZWU1YjY5NmFkMGRh
NDUxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luVGV4dEFubm90YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKQEAgLTQyLDcgKzQyLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFBERlBsdWdpblRleHRBbm5vdGF0aW9uIDogcHVi
bGljIFBERlBsdWdpbkFubm90YXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFBERlBsdWdpblRleHRBbm5vdGF0aW9uPiBjcmVhdGUoUERGQW5ub3RhdGlvbiAqLCBQREZMYXll
ckNvbnRyb2xsZXIgKiwgUERGUGx1Z2luKik7CisgICAgc3RhdGljIFJlZjxQREZQbHVnaW5UZXh0
QW5ub3RhdGlvbj4gY3JlYXRlKFBERkFubm90YXRpb24gKiwgUERGTGF5ZXJDb250cm9sbGVyICos
IFBERlBsdWdpbiopOwogICAgIHZpcnR1YWwgflBERlBsdWdpblRleHRBbm5vdGF0aW9uKCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VvbWV0cnkoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90
YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
blRleHRBbm5vdGF0aW9uLm1tCmluZGV4IGUyNDBmYzgwYTRmYzc4OGVhMWIwYzg0OTEwMzJmYTE3
NjMyYjkxOTMuLmE0YjQ5YTE0MGRmMmQxMThkZDE0NDUyNmY4OTkwYzQyYjA4NmZmZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luVGV4
dEFubm90YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQpAQCAtNjksOSArNjksOSBAQCBzdGF0aWMgY29u
c3QgU3RyaW5nIGNzc0FsaWdubWVudFZhbHVlRm9yTlNUZXh0QWxpZ25tZW50KE5TVGV4dEFsaWdu
bWVudCBhbGlnbm1lbgogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotUGFzc1JlZlB0cjxQREZQ
bHVnaW5UZXh0QW5ub3RhdGlvbj4gUERGUGx1Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZShQREZB
bm5vdGF0aW9uICphbm5vdGF0aW9uLCBQREZMYXllckNvbnRyb2xsZXIgKnBkZkxheWVyQ29udHJv
bGxlciwgUERGUGx1Z2luKiBwbHVnaW4pCitSZWY8UERGUGx1Z2luVGV4dEFubm90YXRpb24+IFBE
RlBsdWdpblRleHRBbm5vdGF0aW9uOjpjcmVhdGUoUERGQW5ub3RhdGlvbiAqYW5ub3RhdGlvbiwg
UERGTGF5ZXJDb250cm9sbGVyICpwZGZMYXllckNvbnRyb2xsZXIsIFBERlBsdWdpbiogcGx1Z2lu
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUERGUGx1Z2luVGV4dEFubm90YXRpb24oYW5u
b3RhdGlvbiwgcGRmTGF5ZXJDb250cm9sbGVyLCBwbHVnaW4pKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbihhbm5vdGF0aW9uLCBwZGZMYXllckNvbnRy
b2xsZXIsIHBsdWdpbikpOwogfQogCiBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbjo6flBERlBsdWdp
blRleHRBbm5vdGF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggNDM2MTAzMDA2NTY4
OWEyZjYzMDk2ZWNiNTRiNTkzMzg1NzI1NGZjOC4uZjY5MzIyYWNlMDkyNDBiMTI1OWM2MmNjNzgz
YTBhYjYwZmQ1ODhmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQyLDkgKzQyLDkgQEAg
Y2xhc3MgUGx1Z2luUHJveHk7CiAgICAgCiBjbGFzcyBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbiA6
IHB1YmxpYyBSZWZDb3VudGVkPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPiBjcmVhdGUoUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiBwbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIsIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwg
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBib29sIHN1
cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb24pCisgICAgc3RhdGljIFJlZjxQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlciogcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLCB1aW50NjRfdCBwbHVnaW5Qcm9j
ZXNzVG9rZW4sIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmll
ciwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihwbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIsIHBsdWdpblByb2Nlc3NUb2tlbiwgY29ubmVjdGlv
bklkZW50aWZpZXIsIHN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb24pKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ocGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLCBwbHVnaW5Qcm9jZXNzVG9rZW4sIGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBzdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uKSk7
CiAgICAgfQogICAgIH5QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCmluZGV4IDM5M2U2ZWRhYTNmZmVmNjA3ZDgzOThiY2Ji
YmExODNhMjg5NTQ2OTEuLjg1MGIyMzc2NDMxNmY4NGQzNWY1MTI0NTY1MGU4ZWU4NTUzYTUxNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCkBAIC00Miw5ICs0Miw5
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcj4gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpjcmVhdGUoKQor
UmVmPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIpOwogfQogCiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyLmgKaW5kZXggZDRlZjUzYjUxZGI5YzFmNGFlODRjMWQzOTRiOTNiOTE4
NGIwNzQzYS4uYjgzMjY2YzEzMTY2YmVkMGY2OGQ2NTRkZDQ4M2U1NDJjNTc0ZjA5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjsKICAgICAgICAgCiBjbGFzcyBQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIgOiBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVNZXNzYWdl
UmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcj4gY3JlYXRlKCk7CisgICAgc3RhdGljIFJlZjxQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXI+IGNyZWF0ZSgpOwogICAgIH5QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXIoKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b3h5LmNwcAppbmRleCA1NTU1MzhiYjkzMzdhMGU0MGMwZWY5MTZhOTVmY2RlNjE4MjczOGQ3Li4x
ZWMxNmJlMTcxYTU1ZGJlYTMyNDM0ZDBiMGU0OGQ3MjM3ZjYxMzVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKQEAgLTU1LDkgKzU1
LDkgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGx1Z2luSW5zdGFuY2VJRCgpCiAgICAgcmV0
dXJuICsrdW5pcXVlUGx1Z2luSW5zdGFuY2VJRDsKIH0KIAotUGFzc1JlZlB0cjxQbHVnaW5Qcm94
eT4gUGx1Z2luUHJveHk6OmNyZWF0ZSh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIGJvb2wg
aXNSZXN0YXJ0ZWRQcm9jZXNzKQorUmVmPFBsdWdpblByb3h5PiBQbHVnaW5Qcm94eTo6Y3JlYXRl
KHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgYm9vbCBpc1Jlc3RhcnRlZFByb2Nlc3MpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5Qcm94eShwbHVnaW5Qcm9jZXNzVG9rZW4s
IGlzUmVzdGFydGVkUHJvY2VzcykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBsdWdpblBy
b3h5KHBsdWdpblByb2Nlc3NUb2tlbiwgaXNSZXN0YXJ0ZWRQcm9jZXNzKSk7CiB9CiAKIFBsdWdp
blByb3h5OjpQbHVnaW5Qcm94eSh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIGJvb2wgaXNS
ZXN0YXJ0ZWRQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkuaAppbmRleCBhYzIyMzk0MmI2OThlYmZjMjBhZGI3NWE4NGM1MmMxYjBhMGZm
YWEyLi44OTA0MWMwNDk4YzYzZTZmODgyOWM1NTViNDkyMzRmMGVjMDZiNWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaApAQCAtNTgsNyAr
NTgsNyBAQCBzdHJ1Y3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBQbHVnaW5Q
cm94eSA6IHB1YmxpYyBQbHVnaW4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBs
dWdpblByb3h5PiBjcmVhdGUodWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBib29sIGlzUmVz
dGFydGVkUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxQbHVnaW5Qcm94eT4gY3JlYXRlKHVpbnQ2
NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgYm9vbCBpc1Jlc3RhcnRlZFByb2Nlc3MpOwogICAgIH5Q
bHVnaW5Qcm94eSgpOwogCiAgICAgdWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGx1Z2luSW5zdGFuY2VJRDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDZhODMzZjEzMTExMzUzMDc2YWNhZTEy
ODE0MzNiMmY1MTE5YmIyNDYuLmI0NzliZWNkYTdhZDJjNmM2Zjc5NjVjOWE5MDE1OWJiM2IyMzc5
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKQEAgLTgyLDkgKzgyLDkgQEAgc3RhdGljIGNvbnN0IGF1dG8gcGx1Z2luU25hcHNob3RU
aW1lckRlbGF5ID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB7IDExMDAgfTsKIAogY2xhc3Mg
UGx1Z2luVmlldzo6VVJMUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFVSTFJlcXVlc3Q+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5WaWV3OjpVUkxSZXF1ZXN0PiBj
cmVhdGUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGFsbG93UG9wdXBzKQorICAgIHN0YXRpYyBSZWY8UGx1Z2luVmlldzo6VVJMUmVxdWVz
dD4gY3JlYXRlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVx
dWVzdCwgYm9vbCBhbGxvd1BvcHVwcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVVJMUmVxdWVzdChyZXF1ZXN0SUQsIHJlcXVlc3QsIGFsbG93UG9wdXBzKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFVSTFJlcXVlc3QocmVxdWVzdElELCByZXF1ZXN0LCBhbGxv
d1BvcHVwcykpOwogICAgIH0KIAogICAgIHVpbnQ2NF90IHJlcXVlc3RJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVxdWVzdElEOyB9CkBAIC0xMDcsOSArMTA3LDkgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
UGx1Z2luVmlldzo6U3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8UGx1Z2luVmlldzo6U3RyZWFt
PiwgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cmVhbT4gY3JlYXRlKFBsdWdpblZpZXcqIHBsdWdpblZpZXcsIHVpbnQ2
NF90IHN0cmVhbUlELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCisgICAgc3RhdGlj
IFJlZjxTdHJlYW0+IGNyZWF0ZShQbHVnaW5WaWV3KiBwbHVnaW5WaWV3LCB1aW50NjRfdCBzdHJl
YW1JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTdHJlYW0ocGx1Z2luVmlldywgc3RyZWFtSUQsIHJlcXVlc3QpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RyZWFtKHBsdWdpblZpZXcsIHN0cmVhbUlE
LCByZXF1ZXN0KSk7CiAgICAgfQogICAgIH5TdHJlYW0oKTsKIApAQCAtMjcxLDkgKzI3MSw5IEBA
IHN0YXRpYyBpbmxpbmUgV2ViUGFnZSogd2ViUGFnZShIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2lu
RWxlbWVudCkKICAgICByZXR1cm4gd2ViRnJhbWUtPnBhZ2UoKTsKIH0KIAotUGFzc1JlZlB0cjxQ
bHVnaW5WaWV3PiBQbHVnaW5WaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVu
dD4gcGx1Z2luRWxlbWVudCwgUGFzc1JlZlB0cjxQbHVnaW4+IHBsdWdpbiwgY29uc3QgUGx1Z2lu
OjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorUmVmPFBsdWdpblZpZXc+IFBsdWdpblZpZXc6OmNy
ZWF0ZShQYXNzUmVmUHRyPEhUTUxQbHVnSW5FbGVtZW50PiBwbHVnaW5FbGVtZW50LCBQYXNzUmVm
UHRyPFBsdWdpbj4gcGx1Z2luLCBjb25zdCBQbHVnaW46OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5WaWV3KHBsdWdpbkVsZW1lbnQsIHBs
dWdpbiwgcGFyYW1ldGVycykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBsdWdpblZpZXco
cGx1Z2luRWxlbWVudCwgcGx1Z2luLCBwYXJhbWV0ZXJzKSk7CiB9CiAKIFBsdWdpblZpZXc6OlBs
dWdpblZpZXcoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4gcGx1Z2luRWxlbWVudCwgUGFz
c1JlZlB0cjxQbHVnaW4+IHBsdWdpbiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
aW5kZXggMzNmOGMwOTIzMDhlY2QxZGIzMTY5YjQyOWEzNzYxYTExZTAyNzAzNC4uZjBkZjQ1ZmJm
NmRkOGVkMWRiOTg1MjBkMTQ0ZmM4ZGNjNmQzYjJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC02Niw3ICs2Niw3IEBAIGNsYXNzIFdl
YkV2ZW50OwogCiBjbGFzcyBQbHVnaW5WaWV3IDogcHVibGljIFdlYkNvcmU6OlBsdWdpblZpZXdC
YXNlLCBwdWJsaWMgUGx1Z2luQ29udHJvbGxlciwgcHJpdmF0ZSBXZWJDb3JlOjpNZWRpYUNhblN0
YXJ0TGlzdGVuZXIsIHByaXZhdGUgV2ViRnJhbWU6OkxvYWRMaXN0ZW5lciwgcHJpdmF0ZSBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVn
aW5WaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4sIFBh
c3NSZWZQdHI8UGx1Z2luPiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJik7CisgICAgc3RhdGlj
IFJlZjxQbHVnaW5WaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxl
bWVudD4sIFBhc3NSZWZQdHI8UGx1Z2luPiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJik7CiAK
ICAgICB2b2lkIHJlY3JlYXRlQW5kSW5pdGlhbGl6ZShQYXNzUmVmUHRyPFBsdWdpbj4pOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCAxZWQ0MDBmMTQ3MGJkNGE3YzYzNDE1
YzUwOWI1MTNkMzAwMTljODZmLi4yMGY5ZTZmMDdhMGMzZTYyY2E0YmIxNzhiODNiYjcxZWJiODcx
NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTQ3LDkgKzQ3LDkgQEAg
Y2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbjsKIAogY2xhc3MgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IgOiBwdWJsaWMgV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvciwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlKFdlYlBh
Z2UqIHBhZ2UpCisgICAgc3RhdGljIFJlZjxSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcj4gY3Jl
YXRlKFdlYlBhZ2UqIHBhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkpOwogICAgIH0KIAogICAgIHZv
aWQgYnVpbGRUcmFuc2FjdGlvbihSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9u
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwCmluZGV4IDdlYmI3NjdlYWMwMDY3NjUxMjY1MzViODM5MWQ0N2VkNDA2NGU2
MjAuLjgwMjVmMGQ0ODQ1ODVlZGRmOTYxNTFkODNjOTQ0NGM2YzUzY2ExNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3Bw
CkBAIC00NCw5ICs0NCw5IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVN0b3JhZ2VBcmVhSUQo
KQogICAgIHJldHVybiArK3N0b3JhZ2VBcmVhSUQ7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZUFy
ZWFJbXBsPiBTdG9yYWdlQXJlYUltcGw6OmNyZWF0ZShQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhTWFw
PiBzdG9yYWdlQXJlYU1hcCkKK1JlZjxTdG9yYWdlQXJlYUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6
Y3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFNYXA+IHN0b3JhZ2VBcmVhTWFwKQogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZUFyZWFJbXBsKHN0b3JhZ2VBcmVhTWFwKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3RvcmFnZUFyZWFJbXBsKHN0b3JhZ2VBcmVhTWFwKSk7
CiB9CiAKIFN0b3JhZ2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKFBhc3NSZWZQdHI8U3RvcmFn
ZUFyZWFNYXA+IHN0b3JhZ2VBcmVhTWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCmluZGV4IGUwNDA1ZjU2NWZhODYwMjA4MDMy
NTYxNDJiNzFlNjk5ODc2OTlhN2YuLmViZTgzYWJjMzVhMzZmODA3OGZmN2JmOTU5YzMwNDE5MGY5
NjJlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3Rv
cmFnZUFyZWFJbXBsLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgU3RvcmFnZUFyZWFNYXA7CiAK
IGNsYXNzIFN0b3JhZ2VBcmVhSW1wbCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdlQXJl
YSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBjcmVh
dGUoUGFzc1JlZlB0cjxTdG9yYWdlQXJlYU1hcD4pOworICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFy
ZWFJbXBsPiBjcmVhdGUoUGFzc1JlZlB0cjxTdG9yYWdlQXJlYU1hcD4pOwogICAgIHZpcnR1YWwg
flN0b3JhZ2VBcmVhSW1wbCgpOwogCiAgICAgdWludDY0X3Qgc3RvcmFnZUFyZWFJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RvcmFnZUFyZWFJRDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKaW5kZXggNWVhMmZiZjdlMzQ3YmNk
OTI5YzYxNjExMDM1MzUyMWY2Yjc5OTQxOS4uOWJjMmM1ZjNlNWQ3NzA4NzZiNjM5N2E4ZmFlMGMy
ZTBhZDIwNjA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdl
L1N0b3JhZ2VBcmVhTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC01Myw5ICs1Myw5IEBAIHN0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZVN0b3JhZ2VNYXBJRCgpCiAgICAgcmV0dXJuICsrc3RvcmFnZU1hcElEOwogfQogCi1Q
YXNzUmVmUHRyPFN0b3JhZ2VBcmVhTWFwPiBTdG9yYWdlQXJlYU1hcDo6Y3JlYXRlKFN0b3JhZ2VO
YW1lc3BhY2VJbXBsKiBzdG9yYWdlTmFtZXNwYWNlLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgc2VjdXJpdHlPcmlnaW4pCitSZWY8U3RvcmFnZUFyZWFNYXA+IFN0b3JhZ2VBcmVhTWFw
OjpjcmVhdGUoU3RvcmFnZU5hbWVzcGFjZUltcGwqIHN0b3JhZ2VOYW1lc3BhY2UsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiBzZWN1cml0eU9yaWdpbikKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFN0b3JhZ2VBcmVhTWFwKHN0b3JhZ2VOYW1lc3BhY2UsIFdURjo6bW92ZShzZWN1
cml0eU9yaWdpbikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdG9yYWdlQXJlYU1hcChz
dG9yYWdlTmFtZXNwYWNlLCBXVEY6Om1vdmUoc2VjdXJpdHlPcmlnaW4pKSk7CiB9CiAKIFN0b3Jh
Z2VBcmVhTWFwOjpTdG9yYWdlQXJlYU1hcChTdG9yYWdlTmFtZXNwYWNlSW1wbCogc3RvcmFnZU5h
bWVzcGFjZSwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHNlY3VyaXR5T3JpZ2luKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVh
TWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAu
aAppbmRleCBjNjEwNGFhMTJkMDFkNTk2MTMwNTIwMjI4MDgzNGI2NDMzYjZjMTZmLi5jMWM1NWMw
NzY0OTM1OTdkM2UwMDRmOGRiMDA2ZWNmNzA2MTBlM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaApAQCAtNDYsNyArNDYsNyBA
QCBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbDsKIAogY2xhc3MgU3RvcmFnZUFyZWFNYXAgOiBw
dWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlQXJlYU1hcD4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhTWFwPiBj
cmVhdGUoU3RvcmFnZU5hbWVzcGFjZUltcGwqLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYpOworICAgIHN0YXRpYyBSZWY8U3RvcmFnZUFyZWFNYXA+IGNyZWF0ZShTdG9yYWdlTmFtZXNw
YWNlSW1wbCosIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJik7CiAgICAgflN0b3JhZ2VB
cmVhTWFwKCk7CiAKICAgICBXZWJDb3JlOjpTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RvcmFnZVR5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAppbmRleCA5ZjY5YTMzMWJhZTZl
MjU2MGU3Y2E3MTdiNWQ2ODU1ZjM3MDAwZmFhLi5iZDJlMDQyNmZjNTA4YTMwYjJhZWQ5MGNkMTcz
MmQyMWIxZDU4NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCkBAIC0zMyw5ICszMyw5IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3M+IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6Y3JlYXRlKFdlYlBy
b2Nlc3MqIHByb2Nlc3MpCitSZWY8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBXZWJDb25uZWN0
aW9uVG9VSVByb2Nlc3M6OmNyZWF0ZShXZWJQcm9jZXNzKiBwcm9jZXNzKQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKHByb2Nlc3MpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MocHJvY2VzcykpOwog
fQogCiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcyhX
ZWJQcm9jZXNzKiBwcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKaW5kZXggOGI5NDk4YjhkN2M3OTA0Mjc2NmNmNmE4
ZjQ2ODI1MzY2MjVlNThiMi4uMGUyNTM5NTNkZmQxNTA3NDI5MGI4YjAyMmY4NDU4ZTgyNTMwYzNm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFdlYlByb2Nlc3M7CiAKIGNsYXNz
IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcyA6IHB1YmxpYyBXZWJDb25uZWN0aW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNyZWF0
ZShXZWJQcm9jZXNzKik7CisgICAgc3RhdGljIFJlZjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+
IGNyZWF0ZShXZWJQcm9jZXNzKik7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1l
bnUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1
cE1lbnUuY3BwCmluZGV4IGM4ZWY5YmQxYjAwZGUwODYwZTJlMTZlMDM5ZjllMDQ2ZTI1Y2IyMjMu
LmEyNzUxMDg5M2VjYjQ1MjFjODVkZjQ5NzliYWNjZDczMDNlNDAxYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVu
dS5jcHAKQEAgLTM0LDkgKzM0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYlBvcHVwTWVudT4gV2ViUG9wdXBNZW51Ojpj
cmVhdGUoV2ViUGFnZSogcGFnZSwgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpCitSZWY8V2ViUG9w
dXBNZW51PiBXZWJQb3B1cE1lbnU6OmNyZWF0ZShXZWJQYWdlKiBwYWdlLCBQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlBvcHVwTWVudShwYWdl
LCBjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJQb3B1cE1lbnUocGFnZSwg
Y2xpZW50KSk7CiB9CiAKIFdlYlBvcHVwTWVudTo6V2ViUG9wdXBNZW51KFdlYlBhZ2UqIHBhZ2Us
IFBvcHVwTWVudUNsaWVudCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKaW5kZXggNDQ5MzNmMDFiOGQy
ZDRlNjg5ODBhYmZjMDQyMWFiNzhhMjc5MWEzZC4uYjI2ZmVlNzMyYjdmZmMzMzA0ZDUyZjhmYzA2
MDcxMDlmMTZjNGVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBX
ZWJQb3B1cEl0ZW07CiAKIGNsYXNzIFdlYlBvcHVwTWVudSA6IHB1YmxpYyBXZWJDb3JlOjpQb3B1
cE1lbnUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudT4gY3Jl
YXRlKFdlYlBhZ2UqLCBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKTsKKyAgICBzdGF0aWMgUmVm
PFdlYlBvcHVwTWVudT4gY3JlYXRlKFdlYlBhZ2UqLCBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQq
KTsKICAgICB+V2ViUG9wdXBNZW51KCk7CiAKICAgICBXZWJQYWdlKiBwYWdlKCkgeyByZXR1cm4g
bV9wYWdlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAKaW5kZXggMDI1ODQ2ZWMxN2Zi
NmFjMmQ0MGE0OWZjYmQ1NDYwYTQ5NGQyZTkyYy4uMWIwNjcwNTVlZGU4NDU1MGFkY2NlNmM1NmQ0
MmNiZmM4YTZlOTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcApAQCAtMzIsOSAr
MzIsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVBhc3NSZWZQdHI8V2ViU2VhcmNoUG9wdXBNZW51PiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0
ZShXZWJQYWdlKiBwYWdlLCBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKK1JlZjxXZWJTZWFyY2hQ
b3B1cE1lbnU+IFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UsIFBvcHVw
TWVudUNsaWVudCogY2xpZW50KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VhcmNo
UG9wdXBNZW51KHBhZ2UsIGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNl
YXJjaFBvcHVwTWVudShwYWdlLCBjbGllbnQpKTsKIH0KIAogV2ViU2VhcmNoUG9wdXBNZW51OjpX
ZWJTZWFyY2hQb3B1cE1lbnUoV2ViUGFnZSogcGFnZSwgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaAppbmRleCBiZDQzZWQ3NjljOTE4ODhhY2Y1ZmVlZTMw
MjE1N2E1OGYxM2Q5YzNiLi44ZjEwMTFkMjY4ZjkwNzNhMDliYjgwYzUzNTgwNmU2ZDkzNGJhYWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNlYXJjaFBvcHVwTWVudS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKQEAgLTI4LDcgKzI4LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYlNlYXJjaFBvcHVwTWVudSA6IHB1YmxpYyBXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlYXJj
aFBvcHVwTWVudT4gY3JlYXRlKFdlYlBhZ2UqLCBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKTsK
KyAgICBzdGF0aWMgUmVmPFdlYlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlKFdlYlBhZ2UqLCBXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51
KiBwb3B1cE1lbnUoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJRdWlja0xvb2tIYW5k
bGVDbGllbnQuaAppbmRleCA3ZDQ0OGZmNjMwNjA1ODVkZDgxOTg5YjNkNjk5NzgzMGI4NjcxNDkz
Li5mZjg3MzBhYTE0M2Q4NWRiMjQwMjk5N2FhMTMyZjhjMzkxMzkzNGU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJRdWlja0xvb2tI
YW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJRdWlja0xvb2tIYW5kbGVDbGllbnQuaApAQCAtNDMsOSArNDMsOSBAQCBjbGFz
cyBXZWJGcmFtZTsKIAogY2xhc3MgV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50IGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50PiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6UXVpY2tMb29rSGFuZGxlJiBoYW5kbGUsIHVpbnQ2NF90IHBhZ2VJRCkKKyAgICBzdGF0aWMg
UmVmPFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlF1aWNr
TG9va0hhbmRsZSYgaGFuZGxlLCB1aW50NjRfdCBwYWdlSUQpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudChoYW5kbGUsIHBhZ2VJRCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJRdWlja0xvb2tIYW5kbGVDbGllbnQo
aGFuZGxlLCBwYWdlSUQpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggMzVmMWE4MDk1MDBiYWFhOGRkZWY0MGY2
NWZkYTE1YTA2YjQ3NWYyOC4uM2Q0NTgxYWE0OGFlM2RmOGQ2MDY4MTM2Njk2YTQ4YzliOGNkNGQx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAt
MzUsOSArMzUsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBj
cmVhdGUoV2ViRnJhbWUqIGZyYW1lKQorICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dD4gY3JlYXRlKFdlYkZyYW1lKiBmcmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7CiAg
ICAgfQogCiAgICAgLy8gRklYTUU6IHJlbW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIGFuZCB1
c2UgU2Vzc2lvblRyYWNrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IDdjZTQ5NDExMzM0ODcyOWI1OTJmY2YxMGEzNWU3OGEzMzg2YzY5NGEu
LmFlZDFiNTk5Zjk0OTdjMDAwYTBjNjI2MTdiMWVmZWI1NTE3M2NhMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMzksOSArMzksOSBAQCBj
bGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudDsKIAogY2xhc3MgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUo
V2ViRnJhbWUqIGZyYW1lKQorICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dD4gY3JlYXRlKFdlYkZyYW1lKiBmcmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7CiAgICAgfQog
CiAgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpT
ZXNzaW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZy
ZXNoTW9uaXRvci5oCmluZGV4IGE4NmU3YjJjM2E2ODZkZjdiOGU0MmI2OWZlZjczNTAwYmZhNjMx
OWMuLjMxZjdjMjRmMWM2YThiNTQ1MTAwNDBlODIwYTBiMGUxMzFiOWI0OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9SZW1vdGVMYXllclRyZWVE
aXNwbGF5UmVmcmVzaE1vbml0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKQEAgLTM1
LDkgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZUxheWVyVHJlZURp
c3BsYXlSZWZyZXNoTW9uaXRvciA6IHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3IgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZUxheWVyVHJlZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRyYXdpbmdBcmVhKQorICAgIHN0YXRpYyBSZWY8UmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5
SUQgZGlzcGxheUlELCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSYgZHJhd2luZ0FyZWEpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZUxheWVyVHJlZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQsIGRyYXdpbmdBcmVhKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5
SUQsIGRyYXdpbmdBcmVhKSk7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgflJlbW90ZUxheWVy
VHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNjc2ZjM5YWYxNTQ4
NzkwZTRkOTE2NWI2ODdkZmJiMzQzZGJiZWZkYi4uYjUwOTYxOTBhMTUwODkyOTI3OTgwYmM5MTNi
MTI0ZThhM2RiZjUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC00OSw5ICs0OSw5IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q+IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKFdlYlBh
Z2UqIHdlYlBhZ2UpCitSZWY8Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBDb29yZGluYXRlZExh
eWVyVHJlZUhvc3Q6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KHdlYlBhZ2UpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb29yZGluYXRlZExheWVyVHJlZUhvc3Qod2ViUGFnZSkpOwogfQogCiBD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6On5Db29yZGluYXRlZExheWVyVHJlZUhvc3QoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDA0NDE5ZjE0OTg5OTM3MTNmNDRlYzI5Y2E0OWJm
ODhmYmZjZjRjNGQuLjhkNDg3MzFiYmU0MjgyNTZlODNjMjQ5YzU3YzFhMTQ1ZmFhM2JhMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTQ4LDkgKzQ4LDkgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFRocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCitSZWY8VGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q+IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUoV2ViUGFn
ZSogd2ViUGFnZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0KHdlYlBhZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCh3ZWJQYWdlKSk7CiB9CiAKIFRocmVhZGVkQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp+VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Qo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcAppbmRleCBmN2FhOTAyZTI4NGFiZTc2ZTAzN2ZmYmI0ZmMxMjAyZjg1YzA5YmIx
Li41ZjNmN2M3YmI0ZDZlZjhlNjdmOWZhZDExYWQ0NjRjMjUxODU3OTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApA
QCAtNDcsOSArNDcsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLVBhc3NSZWZQdHI8RXZlbnREaXNwYXRjaGVyPiBFdmVudERpc3BhdGNoZXI6OmNy
ZWF0ZSgpCitSZWY8RXZlbnREaXNwYXRjaGVyPiBFdmVudERpc3BhdGNoZXI6OmNyZWF0ZSgpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFdmVudERpc3BhdGNoZXIpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEV2ZW50RGlzcGF0Y2hlcik7CiB9CiAKIEV2ZW50RGlzcGF0Y2hlcjo6RXZl
bnREaXNwYXRjaGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCBhNjBkNDAwMjc5NGU1ZjNmOWUzZjQxYzk4ODVmZTQy
ZjdmNmIzYjk5Li42Zjc0MzExMTM5NDBmNmMzNjgyZTYyNzQwMTM2MjA0MTZmMTIyNDkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFdlYldoZWVsRXZlbnQ7CiAKIGNsYXNzIEV2ZW50
RGlzcGF0Y2hlciA6IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXZlbnREaXNwYXRjaGVyPiBj
cmVhdGUoKTsKKyAgICBzdGF0aWMgUmVmPEV2ZW50RGlzcGF0Y2hlcj4gY3JlYXRlKCk7CiAgICAg
fkV2ZW50RGlzcGF0Y2hlcigpOwogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCmluZGV4IDMzZGY0
MjVhOTUyNmQ0ZTg3OThkNGMxY2VlMDcxNTU0NWEzMzdlYmUuLjg4YWE3ZDkzODg1ZmE5ZWM5MWI2
YjA2M2M0YjRmN2VhZTNkMmNlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9QYWdlQmFubmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1BhZ2VCYW5uZXIuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQYWdlQmFubmVyPiBjcmVh
dGUoQ0FMYXllciAqLCBpbnQgaGVpZ2h0LCBDbGllbnQqKTsKKyAgICBzdGF0aWMgUmVmPFBhZ2VC
YW5uZXI+IGNyZWF0ZShDQUxheWVyICosIGludCBoZWlnaHQsIENsaWVudCopOwogICAgIENBTGF5
ZXIgKmxheWVyKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaAppbmRleCAyY2JkZWQy
NWFkNDJlZTliOTkyYzMxN2Q3ZTI5NTNmNmM0NDVlN2Y4Li5lMjg4NTE5NGMwZDUwNmYzMmFlNDJi
MzMzN2I1ODQzY2M4ZmNhNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaApAQCAtMzYsNyArMzYs
NyBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RQcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpCYWNrRm9yd2FyZENsaWVudCB7CiBwdWJsaWM6IAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkg
eyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5KHBhZ2UpKTsgfQor
ICAgIHN0YXRpYyBSZWY8V2ViQmFja0ZvcndhcmRMaXN0UHJveHk+IGNyZWF0ZShXZWJQYWdlKiBw
YWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5KHBhZ2Up
KTsgfQogCiAgICAgc3RhdGljIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtRm9ySUQodWludDY0
X3QpOwogICAgIHN0YXRpYyB1aW50NjRfdCBpZEZvckl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0q
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb250
ZXh0TWVudS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRN
ZW51LmgKaW5kZXggZmM2M2FmYjg4OGIyMjU3YjE0MzcwYjI3NzJiNjJkN2Q1NGExMzg2OS4uOTAx
NWZmZTE1MjU4MzI4NmU2ZDg5YmIxY2U5ZGYzMzAyZTUwY2QwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmgKQEAgLTM5LDkgKzM5
LDkgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2ViQ29udGV4dE1lbnUgOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJDb250ZXh0TWVudT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYkNvbnRleHRNZW51PiBjcmVhdGUoV2ViUGFnZSogcGFnZSkgCisgICAgc3RhdGljIFJlZjxX
ZWJDb250ZXh0TWVudT4gY3JlYXRlKFdlYlBhZ2UqIHBhZ2UpIAogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJDb250ZXh0TWVudShwYWdlKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkNvbnRleHRNZW51KHBhZ2UpKTsKICAgICB9CiAgICAgCiAgICAgfldl
YkNvbnRleHRNZW51KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJEb2N1bWVudExvYWRlci5oCmluZGV4IDc5YmIwNjgyYjQyMDYzZGY4OGZhNjczMWJj
M2FhZjViNTZiZWQxNTMuLmFjMzkxNmM4ZTliY2I0NjEzMTM5YjcwZjQ0NGJkYjUzNWEyNmQ5YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJEb2N1bWVu
dExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJEb2N1
bWVudExvYWRlci5oCkBAIC0zMiw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJEb2N1bWVudExvYWRlciA6IHB1YmxpYyBXZWJDb3JlOjpEb2N1bWVudExvYWRlciB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXI+IGNyZWF0ZShj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhJiBkYXRhKQorICAgIHN0YXRpYyBSZWY8V2ViRG9jdW1lbnRMb2FkZXI+IGNy
ZWF0ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNv
cmU6OlN1YnN0aXR1dGVEYXRhJiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkYXRhKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkRvY3VtZW50TG9hZGVyKHJlcXVlc3QsIGRhdGEpKTsKICAgICB9CiAK
ICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQoKSBjb25zdCB7IHJldHVybiBtX25hdmlnYXRpb25J
RDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVj
dG9yLmNwcAppbmRleCBmZmY2MzJmYjM0ZjFlMmU2NGE0ZTVkZmYzYTBhNDFlZGEyZWFkNmM2Li40
NWI5ODUwYmI4ODFmYzYyZjIwYTI3ZmI0YTM1Y2FlYmZkYTUwOWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApAQCAtNTMsOSAr
NTMsOSBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluaW11bUF0dGFjaGVkV2lkdGggPSA3NTA7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkluc3BlY3Rvcj4gV2ViSW5zcGVj
dG9yOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK1JlZjxXZWJJbnNwZWN0b3I+IFdlYkluc3BlY3Rv
cjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJJ
bnNwZWN0b3IocGFnZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkluc3BlY3Rvcihw
YWdlKSk7CiB9CiAKIFdlYkluc3BlY3Rvcjo6V2ViSW5zcGVjdG9yKFdlYlBhZ2UqIHBhZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKaW5k
ZXggNzRlYjdlYWJhZTNkZmYxZGM5ZWE2MTY3YmU2NmVlYzI0ZDAwYjc5OS4uMTY0YWM2ODM1MzUx
ZDRlNTRhNGYwYWFkM2YwZDQyZTI0NmE1MjQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBX
ZWJQYWdlOwogCiBjbGFzcyBXZWJJbnNwZWN0b3IgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQ
STo6T2JqZWN0OjpUeXBlOjpCdW5kbGVJbnNwZWN0b3I+LCBwdWJsaWMgSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQsIHB1YmxpYyBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkluc3BlY3Rvcj4gY3JlYXRlKFdlYlBhZ2Uq
KTsKKyAgICBzdGF0aWMgUmVmPFdlYkluc3BlY3Rvcj4gY3JlYXRlKFdlYlBhZ2UqKTsKIAogICAg
IFdlYlBhZ2UqIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXgg
NTRjM2M2MWVhZWNlNTZhYTljMzM2MjIxMDNlNDIyZmIzOTIwZmJjMS4uODk0NjVmZjgxZTI1ZWQ1
MGE4MzU4ZWE3ODAxNmNkMDExZGJhNmFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC00NCw5ICs0NCw5IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0
cjxXZWJJbnNwZWN0b3JVST4gV2ViSW5zcGVjdG9yVUk6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQor
UmVmPFdlYkluc3BlY3RvclVJPiBXZWJJbnNwZWN0b3JVSTo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2Up
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJJbnNwZWN0b3JVSShwYWdlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSW5zcGVjdG9yVUkocGFnZSkpOwogfQogCiBXZWJJbnNw
ZWN0b3JVSTo6V2ViSW5zcGVjdG9yVUkoV2ViUGFnZSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKaW5kZXggN2ZkY2ZjMDVi
Y2QxYTY0NDUwYTgzMmZlZDE5OTRjY2ZmYjA4MzQ2YS4uOWQwM2ZjMDljYWQwZWQzZTczNDJjZDky
MDFiMTI4MDVhMmZmYTcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgV2ViUGFnZTsK
IAogY2xhc3MgV2ViSW5zcGVjdG9yVUkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpCdW5kbGVJbnNwZWN0b3JVST4sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OkNs
aWVudCwgcHVibGljIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJJbnNwZWN0b3JVST4gY3JlYXRlKFdlYlBhZ2UqKTsK
KyAgICBzdGF0aWMgUmVmPFdlYkluc3BlY3RvclVJPiBjcmVhdGUoV2ViUGFnZSopOwogCiAgICAg
V2ViUGFnZSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyLmNwcAppbmRleCA2NTRiODI5NmYwNmJiZDVjOGE1YTU3NTRiNzBkYTM2ZGM2
MDczMWQ0Li42ODY2Yzc5ODQ0NjAzZTU1ZjU3NmZkZThjZDAxY2RlYzg0OGM3NzdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKQEAgLTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+IFdlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyOjpjcmVhdGUoV2ViUGFnZSogcGFnZSwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCitSZWY8V2ViT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXI+IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOjpjcmVhdGUoV2ViUGFnZSogcGFn
ZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4gZmlsZUNob29zZXIpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihwYWdlLCBmaWxl
Q2hvb3NlcikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyKHBhZ2UsIGZpbGVDaG9vc2VyKSk7CiB9CiAKIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyOjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihXZWJQYWdlKiBwYWdlLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZpbGVDaG9vc2VyPiBmaWxlQ2hvb3NlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmgKaW5kZXggMGQwOTBiZjYyNDdmYTM3YWYzMWRhOTI2Mzg2NWViMWEyM2I2YTJiYy4uNjkz
MzBkMjM3YzY1OGJjMzIwZmY0ZTJmNjE5ZGEwYjE2NmE3MDc5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgV2ViUGFnZTsKIAogY2xhc3MgV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyPiBjcmVhdGUoV2ViUGFnZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6
RmlsZUNob29zZXI+KTsKKyAgICBzdGF0aWMgUmVmPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
PiBjcmVhdGUoV2ViUGFnZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsKICAg
ICB+V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdEZy
b21QYWdlKCkgeyBtX3BhZ2UgPSAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmNwcAppbmRleCA5ZTQwODZlOWMyMzI2NjZiMmFi
MWRhZjExZGQzNWFkNmRkOWY4ZDIzLi42YmFkYzg2YzUzZWMzMDI2ZDA4Y2E3YTU5ZjI4YmI0YWY2
MzkzNjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlT3ZlcmxheS5jcHAKQEAgLTQyLDkgKzQyLDkgQEAgc3RhdGljIEhhc2hNYXA8UGFnZU92
ZXJsYXkqLCBXZWJQYWdlT3ZlcmxheSo+JiBvdmVybGF5TWFwKCkKICAgICByZXR1cm4gbWFwOwog
fQogCi1QYXNzUmVmUHRyPFdlYlBhZ2VPdmVybGF5PiBXZWJQYWdlT3ZlcmxheTo6Y3JlYXRlKHN0
ZDo6dW5pcXVlX3B0cjxXZWJQYWdlT3ZlcmxheTo6Q2xpZW50PiBjbGllbnQsIFBhZ2VPdmVybGF5
OjpPdmVybGF5VHlwZSBvdmVybGF5VHlwZSkKK1JlZjxXZWJQYWdlT3ZlcmxheT4gV2ViUGFnZU92
ZXJsYXk6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViUGFnZU92ZXJsYXk6OkNsaWVudD4gY2xp
ZW50LCBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGUgb3ZlcmxheVR5cGUpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJQYWdlT3ZlcmxheShXVEY6Om1vdmUoY2xpZW50KSwgb3ZlcmxheVR5
cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJQYWdlT3ZlcmxheShXVEY6Om1vdmUo
Y2xpZW50KSwgb3ZlcmxheVR5cGUpKTsKIH0KIAogV2ViUGFnZU92ZXJsYXk6OldlYlBhZ2VPdmVy
bGF5KHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlT3ZlcmxheTo6Q2xpZW50PiBjbGllbnQsIFBhZ2VP
dmVybGF5OjpPdmVybGF5VHlwZSBvdmVybGF5VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmgKaW5kZXggZmJiZTYyYTJhMjg1MWYz
Njg5NmY2ZjA2Mjc3OThhOGE2NjA3ZjFhOS4uNmM4Y2U5NmFkMTkyNWQ1OWIwMzFjMjRiNGQxNTk1
OGFiN2EwNTk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2VPdmVybGF5LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IGNvcHlBY2Nlc3NpYmlsaXR5QXR0cmlidXRlTmFtZXMoV2ViUGFn
ZU92ZXJsYXkmLCBib29sIC8qIHBhcmFtZXRlcml6ZWROYW1lcyAqLykgeyByZXR1cm4gVmVjdG9y
PFN0cmluZz4oKTsgfQogICAgIH07CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQYWdlT3Zl
cmxheT4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxDbGllbnQ+LCBXZWJDb3JlOjpQYWdlT3Zlcmxh
eTo6T3ZlcmxheVR5cGUgPSBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGU6OlZpZXcp
OworICAgIHN0YXRpYyBSZWY8V2ViUGFnZU92ZXJsYXk+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8
Q2xpZW50PiwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlID0gV2ViQ29yZTo6UGFn
ZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpWaWV3KTsKICAgICBzdGF0aWMgV2ViUGFnZU92ZXJsYXkq
IGZyb21Db3JlT3ZlcmxheShXZWJDb3JlOjpQYWdlT3ZlcmxheSYpOwogICAgIHZpcnR1YWwgfldl
YlBhZ2VPdmVybGF5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJVbmRvU3RlcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViVW5kb1N0ZXAuY3BwCmluZGV4IGIwMDVlMDhmMGFmNWFkYjVmMmEzMjY5MGZjODVhNTFk
NWI5MTQyMDUuLjJjYWE4ZDBkNDdlODZhNmFjMjlkNWZlYzNjZTgxNGM4MDAxNDE2NGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3RlcC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVuZG9TdGVwLmNwcApA
QCAtMzQsOSArMzQsOSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVVbmRvU3RlcCgpCiAgICAg
cmV0dXJuIHVuaXF1ZUVudHJ5SUQrKzsKIH0KIAotUGFzc1JlZlB0cjxXZWJVbmRvU3RlcD4gV2Vi
VW5kb1N0ZXA6OmNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPiBzdGVwKQorUmVm
PFdlYlVuZG9TdGVwPiBXZWJVbmRvU3RlcDo6Y3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6VW5k
b1N0ZXA+IHN0ZXApCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJVbmRvU3RlcChzdGVw
LCBnZW5lcmF0ZVVuZG9TdGVwKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJVbmRv
U3RlcChzdGVwLCBnZW5lcmF0ZVVuZG9TdGVwKCkpKTsKIH0KIAogV2ViVW5kb1N0ZXA6On5XZWJV
bmRvU3RlcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViVW5kb1N0ZXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVbmRv
U3RlcC5oCmluZGV4IDZmNDljMjkzOGNmNTRiZjc2MmRhMjY2ZGM1MjI3YTcwMDI3NzUwYjkuLjEx
ODcxZTkxZjA5ODZhNjhkZWUzMjEyOWYxNDc1NTFhYmM3ZjhjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3RlcC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3RlcC5oCkBAIC0zNCw3ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJVbmRvU3RlcCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlVuZG9TdGVwPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVW5k
b1N0ZXA+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPik7CisgICAgc3RhdGlj
IFJlZjxXZWJVbmRvU3RlcD4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+KTsK
ICAgICB+V2ViVW5kb1N0ZXAoKTsKIAogICAgIFdlYkNvcmU6OlVuZG9TdGVwKiBzdGVwKCkgY29u
c3QgeyByZXR1cm4gbV9zdGVwLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0KaW5kZXggMzhiOTI0NzQ5YWVj
MTI0ODM2OTc0MjkzNDU4MGU4NjQxMWVjOTIzMy4uOGQyODAyZmNlOWE3NjJhNDQ4NTY1Yzg1ZjRm
YTA5ODBjYTUyNmZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGFnZUJhbm5lck1hYy5tbQpAQCAtMzYsOSArMzYsOSBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8UGFnZUJh
bm5lcj4gUGFnZUJhbm5lcjo6Y3JlYXRlKENBTGF5ZXIgKmxheWVyLCBpbnQgaGVpZ2h0LCBDbGll
bnQqIGNsaWVudCkKK1JlZjxQYWdlQmFubmVyPiBQYWdlQmFubmVyOjpjcmVhdGUoQ0FMYXllciAq
bGF5ZXIsIGludCBoZWlnaHQsIENsaWVudCogY2xpZW50KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUGFnZUJhbm5lcihsYXllciwgaGVpZ2h0LCBjbGllbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBQYWdlQmFubmVyKGxheWVyLCBoZWlnaHQsIGNsaWVudCkpOwogfQogCiBQYWdl
QmFubmVyOjpQYWdlQmFubmVyKENBTGF5ZXIgKmxheWVyLCBpbnQgaGVpZ2h0LCBDbGllbnQqIGNs
aWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKaW5kZXggNTg3ODhjMTBhYWZk
YWU0Y2Y2YjQ4NDI0ODU1ZmYzNWM2Y2QwYzY2MC4uOTZhM2ZiYjUwMWFlOWE0NDI5NmY5NmI4OGI0
NDEzYmQxZjA3NjM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgKQEAgLTQz
LDcgKzQzLDcgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdDsKIAogY2xhc3MgUGxhdGZvcm1D
QUFuaW1hdGlvblJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUNBQW5pbWF0
aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBjcmVhdGUoQW5pbWF0aW9uVHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKTsKKyAgICBzdGF0
aWMgUmVmPFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBT
dHJpbmcmIGtleVBhdGgpOwogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1DQUFuaW1hdGlvblJlbW90
ZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KaW5kZXggNzM5NGQw
YjBiNDcwM2E1N2FlYzcwZjQxNjQ1YWFjYzQ5NmU3NGI1Mi4uYTljOTRmYmQ3NGMyZTk5YWFlZGMy
MDhlZmIzZDE4YWQ1ZGNlMDE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5t
bQpAQCAtMjg5LDkgKzI4OSw5IEBAIGJvb2wgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6UHJv
cGVydGllczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAgICAgCi1QYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IFBsYXRmb3Jt
Q0FBbmltYXRpb25SZW1vdGU6OmNyZWF0ZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpBbmltYXRpb25U
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKK1JlZjxQbGF0Zm9ybUNBQW5pbWF0aW9u
PiBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjcmVhdGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6
QW5pbWF0aW9uVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGtleVBhdGgpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKHR5cGUsIGtleVBhdGgpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKHR5cGUs
IGtleVBhdGgpKTsKIH0KIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aW9uPiBQbGF0Zm9y
bUNBQW5pbWF0aW9uUmVtb3RlOjpjb3B5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaAppbmRleCA5NjM3OGZhZTk5ZmJmNzk3OTZiZWI5ZWE2YTYyNmMwZDU0ODQ4NTg4
Li4xY2VkZGQ1NTk1YWE4YTlkOWIwNjRjZWYyNDJmNTcyMWUyMjM0OTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIAog
ICAgIGNsYXNzIEJhY2tpbmdTdG9yZUZsdXNoZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8QmFja2luZ1N0b3JlRmx1c2hlcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8QmFja2luZ1N0b3JlRmx1c2hlcj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiosIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiwgVmVjdG9yPFJldGFpblB0cjxDR0Nv
bnRleHRSZWY+Pik7CisgICAgICAgIHN0YXRpYyBSZWY8QmFja2luZ1N0b3JlRmx1c2hlcj4gY3Jl
YXRlKElQQzo6Q29ubmVjdGlvbiosIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVy
PiwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRSZWY+Pik7CiAKICAgICAgICAgdm9pZCBmbHVz
aCgpOwogICAgICAgICBib29sIGhhc0ZsdXNoZWQoKSBjb25zdCB7IHJldHVybiBtX2hhc0ZsdXNo
ZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGRhN2EzMmM1
ZDUwYWNhNjQxZGJkZWYxNTE4ZWI2ZjIxNDNhMWI4MzMuLmQyMTkzMjYzYWJmMDVjZmY3NGRkZGZk
Y2UxNjExZTk2ZDBjYjQzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5t
bQpAQCAtNDY2LDkgKzQ2Niw5IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6Om1h
cmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpCiAgICAgcmV0dXJuIG1fcmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC0+YmFja2luZ1N0b3JlQ29sbGVjdGlvbigpLm1hcmtBbGxCYWNr
aW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwogfQogCi1QYXNzUmVmUHRy
PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyPiBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6Y3JlYXRlKElQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+
IGVuY29kZXIsIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gY29udGV4dHNUb0ZsdXNo
KQorUmVmPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyPiBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6Y3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+IGVuY29kZXIsIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gY29udGV4dHNU
b0ZsdXNoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXIoY29ubmVjdGlvbiwgV1RGOjptb3ZlKGVuY29kZXIp
LCBXVEY6Om1vdmUoY29udGV4dHNUb0ZsdXNoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyKGNvbm5lY3Rp
b24sIFdURjo6bW92ZShlbmNvZGVyKSwgV1RGOjptb3ZlKGNvbnRleHRzVG9GbHVzaCkpKTsKIH0K
IAogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXI6OkJhY2tp
bmdTdG9yZUZsdXNoZXIoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9w
dHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRl
eHRSZWY+PiBjb250ZXh0c1RvRmx1c2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggNmYyM2E4ZjQ1
Yjg3MzBjZTFlZjQyMDQzMDFjN2UwZjY5OTMwMTQ3YS4uMjEwNmMyYjZmMTM2MjdjNzk2MDgzYmZh
MGVhNDU2ZDFhYWQ4N2YyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTA2LDcgKzEwNiw3IEBA
IHByaXZhdGU6CiAKIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViUGFnZT4pOworICAgIHN0YXRpYyBSZWY8
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViUGFnZT4pOwog
ICAgIHZpcnR1YWwgfldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKICAgICAKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDY2MTg4ZTRkNDcxM2RhYzhiNDU5
ZDAxMTIwZDNlYzc2ZGRhMGRmNTIuLjUzNDI0NjkxY2IyZTI5OThlMTNhYzhkZWQ1MGMxYjc0YTg0
NTE0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMTUxLDkgKzE1MSw5IEBAIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDo6c2V0RXh0ZXJuYWxQbGF5YmFjayhib29s
IGVuYWJsZWQsIEV4dGVyCiAKICNwcmFnbWEgbWFyayAtIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIKIAotUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpjcmVhdGUoUGFzc1JlZlB0cjxXZWJQYWdlPiBwYWdlKQorUmVmPFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmNyZWF0ZShQ
YXNzUmVmUHRyPFdlYlBhZ2U+IHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKHBhZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKHBhZ2UpKTsKIH0KIAogV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcihQYXNzUmVmUHRyPFdlYlBhZ2U+IHBh
Z2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256140</attachid>
            <date>2015-07-03 23:36:06 -0700</date>
            <delta_ts>2015-07-08 19:32:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>82230</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291
cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggOGY5MjA4Zi4uZDA2MTcz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysr
IGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTExNCw3ICsxMTQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAsIHB1YmxpYyBQ
bHVnaW5NYW51YWxMb2FkZXIKICAgICAgICAgICAgICAgICAgICAgICwgcHJpdmF0ZSBNZWRpYUNh
blN0YXJ0TGlzdGVuZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
UGx1Z2luVmlldz4gY3JlYXRlKEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYsIEhU
TUxQbHVnSW5FbGVtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFt
TmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgYm9vbCBsb2FkTWFudWFsbHkpOworICAgICAgICBzdGF0aWMgUmVmPFBsdWdpblZp
ZXc+IGNyZWF0ZShGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0lu
RWxlbWVudCosIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGJvb2wgbG9hZE1hbnVhbGx5KTsKICAgICAgICAgdmlydHVhbCB+UGx1Z2luVmlldygpOwogCiAg
ICAgICAgIFBsdWdpblBhY2thZ2UqIHBsdWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luLmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggODE3MGFjOC4uYjMwNzI4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1NSBAQAorMjAxNS0wNy0wMyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVXNlIFJlZi9SZWZQdHIgaW5zdGVhZCBvZiBQYXNzUmVmUHRyIGlu
IFdlYktpdDIgLSAyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDY1OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGb2xsb3dpbmcgcGF0Y2ggaW4gb3JkZXIgdG8gcmVkdWNlIHVzZSBvZiBQYXNzUmVmUHRy
LgorCisgICAgICAgICogU2hhcmVkL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0
ZW5zaW9uLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENo
ZWNrZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlci5tbToKKyAgICAgICAgKFdlYktpdDo6Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkQXV0aGVudGljYXRp
b25DbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVu
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oOgorICAgICAg
ICAqIFNoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJl
YWJsZVJlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVSZXNvdXJj
ZS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLmg6CisgICAgICAgIChX
ZWJLaXQ6Ok9iakNPYmplY3RHcmFwaDo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1Nh
bmRib3hFeHRlbnNpb25NYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5t
bToKKyAgICAgICAgKGdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJlZmVyZW5jZXM6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVu
Y2VzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VPdmVybGF5LmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZU92ZXJsYXlDcmVhdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlUGFn
ZUJhbm5lck1hYy5tbToKKyAgICAgICAgKFdLQnVuZGxlUGFnZUJhbm5lckNyZWF0ZUJhbm5lcldp
dGhDQUxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVET01XaW5kb3dFeHRlbnNpb246OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVh
dGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1l
bnVDbGllbnQ6OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKToKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQ6OnByZXBhcmVGb3JJbW1lZGlh
dGVBY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQ6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6
OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmg6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6Y3JlYXRlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaDoK
KyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luQW5ub3RhdGlvbjo6UERGUGx1Z2luQW5ub3RhdGlv
bkV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
REZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbToKKyAgICAgICAgKFdlYktp
dDo6UERGUGx1Z2luUGFzc3dvcmRGaWVsZDo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbToKKyAgICAgICAgKFdl
YktpdDo6UERGUGx1Z2luVGV4dEFubm90YXRpb246OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6
OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblByb3h5OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6VVJMUmVxdWVzdDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6U3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5WaWV3OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVh
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U3RvcmFnZUFyZWFNYXA6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNy
ZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9pb3MvV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNy
ZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hl
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHRNZW51OjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJEb2N1
bWVudExvYWRlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6Y3JlYXRl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlT3ZlcmxheTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViVW5kb1N0ZXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVbmRvU3RlcDo6Y3JlYXRlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVW5kb1N0ZXAuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VCYW5uZXI6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tOgorICAgICAgICAoV2ViS2l0OjpQbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjpjcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRl
KToKKwogMjAxNS0wNy0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtYY29kZV0gVXBkYXRlIHNvbWUgYnVpbGQgc2V0dGluZ3MgYXMgcmVjb21tZW5kZWQgYnkg
WGNvZGUgNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxv
YkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaAppbmRleCBlZjZiM2VlLi43
ODcyOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaApAQCAtMzQsOSArMzQs
OSBAQCBjbGFzcyBTYW5kYm94RXh0ZW5zaW9uOwogCiBjbGFzcyBCbG9iRGF0YUZpbGVSZWZlcmVu
Y2VXaXRoU2FuZGJveEV4dGVuc2lvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpCbG9iRGF0YUZp
bGVSZWZlcmVuY2UgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsb2JEYXRhRmls
ZVJlZmVyZW5jZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc1JlZlB0cjxTYW5kYm94
RXh0ZW5zaW9uPiBzYW5kYm94RXh0ZW5zaW9uKQorICAgIHN0YXRpYyBSZWY8QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoLCBQYXNzUmVmUHRyPFNhbmRib3hF
eHRlbnNpb24+IHNhbmRib3hFeHRlbnNpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uKHBhdGgsIHNh
bmRib3hFeHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQmxvYkRhdGFG
aWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24ocGF0aCwgc2FuZGJveEV4dGVuc2lvbikp
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oCmluZGV4IDE2ZWQ4YTYuLjg2
MDc1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9Db21wbGV0aW9u
SGFuZGxlckNhbGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0Nv
bXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlciA6IHB1YmxpYyBX
VEY6OlRocmVhZFNhZmVSZWZDb3VudGVkPENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVj
a2VyPiBjcmVhdGUoaWQgZGVsZWdhdGUsIFNFTCBkZWxlZ2F0ZU1ldGhvZFNlbGVjdG9yKTsKKyAg
ICBzdGF0aWMgUmVmPENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+IGNyZWF0ZShpZCBkZWxl
Z2F0ZSwgU0VMIGRlbGVnYXRlTWV0aG9kU2VsZWN0b3IpOwogCiAgICAgfkNvbXBsZXRpb25IYW5k
bGVyQ2FsbENoZWNrZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
Y29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbQppbmRleCBiOGUzZTJmLi4z
YTY4M2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQ29tcGxldGlv
bkhhbmRsZXJDYWxsQ2hlY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbQpAQCAtMzMsOSArMzMsOSBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
PiBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUoaWQgZGVsZWdhdGUsIFNFTCBk
ZWxlZ2F0ZU1ldGhvZFNlbGVjdG9yKQorUmVmPENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI+
IENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShpZCBkZWxlZ2F0ZSwgU0VMIGRl
bGVnYXRlTWV0aG9kU2VsZWN0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyKG9iamVjdF9nZXRDbGFzcyhkZWxlZ2F0ZSksIGRlbGVnYXRl
TWV0aG9kU2VsZWN0b3IpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb21wbGV0aW9uSGFu
ZGxlckNhbGxDaGVja2VyKG9iamVjdF9nZXRDbGFzcyhkZWxlZ2F0ZSksIGRlbGVnYXRlTWV0aG9k
U2VsZWN0b3IpKTsKIH0KIAogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Q29tcGxldGlv
bkhhbmRsZXJDYWxsQ2hlY2tlcihDbGFzcyBkZWxlZ2F0ZUNsYXNzLCBTRUwgZGVsZWdhdGVNZXRo
b2RTZWxlY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
RG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rv
d25sb2Fkcy9Eb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmgKaW5kZXggZmJlMzJkOC4uNzI4
N2ZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9h
ZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25s
b2Fkcy9Eb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xh
c3MgRG93bmxvYWQ7CiAKIGNsYXNzIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQgOiBwdWJs
aWMgUmVmQ291bnRlZDxEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50PiwgcHVibGljIFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50PiBjcmVhdGUoRG93bmxvYWQqIGRvd25sb2Fk
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudChkb3du
bG9hZCkpOyB9CisgICAgc3RhdGljIFJlZjxEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50PiBj
cmVhdGUoRG93bmxvYWQqIGRvd25sb2FkKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERvd25sb2Fk
QXV0aGVudGljYXRpb25DbGllbnQoZG93bmxvYWQpKTsgfQogCiAgICAgdm9pZCBkZXRhY2goKSB7
IG1fZG93bmxvYWQgPSAwOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
YW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lv
bi5oCmluZGV4IGUwMGE5ZmIuLmM2MzgyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRi
b3hFeHRlbnNpb24uaApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9Owog
ICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGNyZWF0ZShjb25z
dCBIYW5kbGUmKTsKKyAgICBzdGF0aWMgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IGNyZWF0ZShj
b25zdCBIYW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVIYW5kbGUoY29uc3QgU3RyaW5n
JiBwYXRoLCBUeXBlIHR5cGUsIEhhbmRsZSYpOwogICAgIHN0YXRpYyBib29sIGNyZWF0ZUhhbmRs
ZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIEhhbmRsZSYpOyAvLyBX
aWxsIGF0dGVtcHQgdG8gY3JlYXRlIHRoZSBkaXJlY3RvcnkuCiAgICAgc3RhdGljIFN0cmluZyBj
cmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBUeXBlIHR5
cGUsIEhhbmRsZSYpOwpAQCAtMTIzLDcgKzEyMyw3IEBAIGlubGluZSBjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpvcGVyYXRvcltd
CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheTo6b3BlcmF0b3JbXShzaXplX3QpIHsgcmV0dXJuIG1fZW1wdHlIYW5kbGU7IH0KIGlu
bGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdCB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZUFycmF5OjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBIYW5kbGVBcnJheSYpIHsg
cmV0dXJuIHRydWU7IH0KLWlubGluZSBQYXNzUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IFNhbmRi
b3hFeHRlbnNpb246OmNyZWF0ZShjb25zdCBIYW5kbGUmKSB7IHJldHVybiAwOyB9CitpbmxpbmUg
UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShjb25zdCBI
YW5kbGUmKSB7IHJldHVybiBudWxscHRyOyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGUoY29uc3QgU3RyaW5nJiwgVHlwZSwgSGFuZGxlJikgeyByZXR1cm4gdHJ1
ZTsgfQogaW5saW5lIGJvb2wgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdy
aXRlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KIGlu
bGluZSBTdHJpbmcgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5Rmls
ZShjb25zdCBTdHJpbmcmIC8qcHJlZml4Ki8sIFR5cGUsIEhhbmRsZSYpIHtyZXR1cm4gU3RyaW5n
KCk7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVJlc291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5jcHAKaW5kZXgg
OWQwMzhlYi4uN2Y5MTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJl
YWJsZVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlUmVz
b3VyY2UuY3BwCkBAIC0xMDcsOSArMTA3LDkgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGU6OnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpIGNvbnMKICAg
ICByZXR1cm4gcmVzb3VyY2UtPndyYXBJblNoYXJlZEJ1ZmZlcigpOwogfQogCi1QYXNzUmVmUHRy
PFNoYXJlYWJsZVJlc291cmNlPiBTaGFyZWFibGVSZXNvdXJjZTo6Y3JlYXRlKFBhc3NSZWZQdHI8
U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnksIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgc2l6
ZSkKK1JlZjxTaGFyZWFibGVSZXNvdXJjZT4gU2hhcmVhYmxlUmVzb3VyY2U6OmNyZWF0ZShQYXNz
UmVmUHRyPFNoYXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIHNpemUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWFibGVSZXNvdXJjZShz
aGFyZWRNZW1vcnksIG9mZnNldCwgc2l6ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNo
YXJlYWJsZVJlc291cmNlKHNoYXJlZE1lbW9yeSwgb2Zmc2V0LCBzaXplKSk7CiB9CiAKIFBhc3NS
ZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IFNoYXJlYWJsZVJlc291cmNlOjptYXAoY29uc3QgSGFu
ZGxlJiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxl
UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVSZXNvdXJjZS5oCmlu
ZGV4IGJlMjM1ZDcuLmUwYWJkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
aGFyZWFibGVSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVS
ZXNvdXJjZS5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgLy8gQ3Jl
YXRlIGEgc2hhcmVhYmxlIHJlc291cmNlIHRoYXQgdXNlcyBtYWxsb2NlZCBtZW1vcnkuCi0gICAg
c3RhdGljIFBhc3NSZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IGNyZWF0ZShQYXNzUmVmUHRyPFNo
YXJlZE1lbW9yeT4sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgc2l6ZSk7CisgICAgc3RhdGlj
IFJlZjxTaGFyZWFibGVSZXNvdXJjZT4gY3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVkTWVtb3J5Piwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBzaXplKTsKIAogICAgIC8vIENyZWF0ZSBhIHNoYXJl
YWJsZSByZXNvdXJjZSBmcm9tIGEgaGFuZGxlLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJl
YWJsZVJlc291cmNlPiBtYXAoY29uc3QgSGFuZGxlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9PYmpDT2JqZWN0R3JhcGguaAppbmRleCA0NDdlMWMyLi42MjkzYmQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL09iakNPYmplY3RHcmFwaC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvT2JqQ09iamVjdEdyYXBoLmgKQEAgLTQwLDkgKzQwLDkgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE9iakNPYmplY3RHcmFwaCA6IHB1YmxpYyBBUEk6
Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok9iakNPYmplY3RHcmFwaD4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iakNPYmplY3RHcmFwaD4gY3JlYXRlKGlkIHJvb3RP
YmplY3QpCisgICAgc3RhdGljIFJlZjxPYmpDT2JqZWN0R3JhcGg+IGNyZWF0ZShpZCByb290T2Jq
ZWN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmpDT2JqZWN0R3JhcGgo
cm9vdE9iamVjdCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBPYmpDT2JqZWN0R3Jh
cGgocm9vdE9iamVjdCkpOwogICAgIH0KIAogICAgIGlkIHJvb3RPYmplY3QoKSBjb25zdCB7IHJl
dHVybiBtX3Jvb3RPYmplY3QuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQppbmRleCA0ZTQ2MTlhLi5lNzMxYTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCkBAIC0x
NDQsMTAgKzE0NCwxMCBAQCBib29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFNhbmRibwogICAgIHJldHVybiB0cnVl
OwogfQogCi1QYXNzUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZShjb25zdCBIYW5kbGUmIGhhbmRsZSkKK1JlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3QgSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgaWYgKCFo
YW5kbGUubV9zYW5kYm94RXh0ZW5zaW9uKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNhbmRib3hFeHRlbnNpb24o
aGFuZGxlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc0dyb3VwLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NHcm91cC5tbQppbmRleCBiODUxZjEzLi44NGE3NjgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0KQEAg
LTkzLDcgKzkzLDcgQEAgc3RhdGljIFdLVHlwZVJlZiBnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxp
emF0aW9uVXNlckRhdGEoV0tDb250ZXh0UmVmLCBjb25zdCB2b2kKICAgICBpZiAoW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJvY2Vzc0dyb3VwV2lsbENyZWF0ZUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NQbHVnSW46KV0pIHsKICAgICAgICAgUmV0YWluUHRyPGlkPiBpbml0
aWFsaXphdGlvblVzZXJEYXRhID0gW2RlbGVnYXRlIHByb2Nlc3NHcm91cFdpbGxDcmVhdGVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzUGx1Z0luOnByb2Nlc3NHcm91cF07CiAKLSAgICAgICAgcmV0dXJu
IHRvQVBJKFdlYktpdDo6T2JqQ09iamVjdEdyYXBoOjpjcmVhdGUoaW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YS5nZXQoKSkubGVha1JlZigpKTsKKyAgICAgICAgcmV0dXJuIHRvQVBJKCZXZWJLaXQ6Ok9i
akNPYmplY3RHcmFwaDo6Y3JlYXRlKGluaXRpYWxpemF0aW9uVXNlckRhdGEuZ2V0KCkpLmxlYWtS
ZWYoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCBhMTZhZjJkLi5lMWMzOTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTM3LDkgKzM3LDkgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAvLyBJbnN0ZWFkIG9mIHRyYWNraW5nIHByaXZhdGUgYnJvd3Npbmcg
c3RhdGUgYXMgYSBib29sZWFuIHByZWZlcmVuY2UsIHdlIHNob3VsZCBsZXQgdGhlIGNsaWVudCBw
cm92aWRlIHN0b3JhZ2Ugc2Vzc2lvbnMgZXhwbGljaXRseS4KIHN0YXRpYyB1bnNpZ25lZCBwcml2
YXRlQnJvd3NpbmdQYWdlQ291bnQ7CiAKLVBhc3NSZWZQdHI8V2ViUHJlZmVyZW5jZXM+IFdlYlBy
ZWZlcmVuY2VzOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGtleVByZWZpeCwgY29uc3QgU3RyaW5nJiBnbG9iYWxEZWJ1Z0tleVByZWZpeCkKK1JlZjxXZWJQ
cmVmZXJlbmNlcz4gV2ViUHJlZmVyZW5jZXM6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYga2V5UHJlZml4LCBjb25zdCBTdHJpbmcmIGdsb2JhbERlYnVnS2V5
UHJlZml4KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUHJlZmVyZW5jZXMoaWRlbnRp
Zmllciwga2V5UHJlZml4LCBnbG9iYWxEZWJ1Z0tleVByZWZpeCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdlYlByZWZlcmVuY2VzKGlkZW50aWZpZXIsIGtleVByZWZpeCwgZ2xvYmFsRGVi
dWdLZXlQcmVmaXgpKTsKIH0KIAogUGFzc1JlZlB0cjxXZWJQcmVmZXJlbmNlcz4gV2ViUHJlZmVy
ZW5jZXM6OmNyZWF0ZVdpdGhMZWdhY3lEZWZhdWx0cyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYga2V5UHJlZml4LCBjb25zdCBTdHJpbmcmIGdsb2JhbERlYnVnS2V5UHJl
Zml4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2Vz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAppbmRleCBlOTVl
ZjgyLi4wMTgxNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJl
ZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMu
aApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFdlYlByZWZl
cmVuY2VzIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6UHJlZmVy
ZW5jZXM+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQcmVmZXJlbmNlcz4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBrZXlQcmVmaXgs
IGNvbnN0IFN0cmluZyYgZ2xvYmFsRGVidWdLZXlQcmVmaXgpOworICAgIHN0YXRpYyBSZWY8V2Vi
UHJlZmVyZW5jZXM+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYga2V5UHJlZml4LCBjb25zdCBTdHJpbmcmIGdsb2JhbERlYnVnS2V5UHJlZml4KTsKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJQcmVmZXJlbmNlcz4gY3JlYXRlV2l0aExlZ2FjeURlZmF1bHRz
KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBrZXlQcmVmaXgsIGNvbnN0
IFN0cmluZyYgZ2xvYmFsRGVidWdLZXlQcmVmaXgpOwogCiAgICAgZXhwbGljaXQgV2ViUHJlZmVy
ZW5jZXMoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGtleVByZWZpeCwg
Y29uc3QgU3RyaW5nJiBnbG9iYWxEZWJ1Z0tleVByZWZpeCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZU92ZXJs
YXkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2VPdmVybGF5LmNwcAppbmRleCBiZmY2NDAwLi5lMTlhZGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5jcHAKQEAgLTIyNSw3ICsyMjUsNyBAQCBX
S1R5cGVJRCBXS0J1bmRsZVBhZ2VPdmVybGF5R2V0VHlwZUlEKCkKIFdLQnVuZGxlUGFnZU92ZXJs
YXlSZWYgV0tCdW5kbGVQYWdlT3ZlcmxheUNyZWF0ZShXS0J1bmRsZVBhZ2VPdmVybGF5Q2xpZW50
QmFzZSogd2tDbGllbnQpCiB7CiAgICAgYXV0byBjbGllbnRJbXBsID0gc3RkOjptYWtlX3VuaXF1
ZTxQYWdlT3ZlcmxheUNsaWVudEltcGw+KHdrQ2xpZW50KTsKLSAgICByZXR1cm4gdG9BUEkoV2Vi
UGFnZU92ZXJsYXk6OmNyZWF0ZShXVEY6Om1vdmUoY2xpZW50SW1wbCkpLmxlYWtSZWYoKSk7Cisg
ICAgcmV0dXJuIHRvQVBJKCZXZWJQYWdlT3ZlcmxheTo6Y3JlYXRlKFdURjo6bW92ZShjbGllbnRJ
bXBsKSkubGVha1JlZigpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VPdmVybGF5U2V0QWNjZXNz
aWJpbGl0eUNsaWVudChXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIGJ1bmRsZVBhZ2VPdmVybGF5UmVm
LCBXS0J1bmRsZVBhZ2VPdmVybGF5QWNjZXNzaWJpbGl0eUNsaWVudEJhc2UqIGNsaWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
bWFjL1dLQnVuZGxlUGFnZUJhbm5lck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlUGFnZUJhbm5lck1hYy5tbQppbmRleCBm
YzdiNzVhLi5lOGFmOTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL21hYy9XS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVQ
YWdlQmFubmVyTWFjLm1tCkBAIC0xMDIsNyArMTAyLDcgQEAgV0tCdW5kbGVQYWdlQmFubmVyUmVm
IFdLQnVuZGxlUGFnZUJhbm5lckNyZWF0ZUJhbm5lcldpdGhDQUxheWVyKENBTGF5ZXIgKmxheWVy
LAogICAgICAgICByZXR1cm4gMDsKIAogICAgIGF1dG8gY2xpZW50SW1wbCA9IHN0ZDo6bWFrZV91
bmlxdWU8UGFnZUJhbm5lckNsaWVudEltcGw+KHdrQ2xpZW50KTsKLSAgICByZXR1cm4gdG9BUEko
UGFnZUJhbm5lcjo6Y3JlYXRlKGxheWVyLCBoZWlnaHQsIGNsaWVudEltcGwucmVsZWFzZSgpKS5s
ZWFrUmVmKCkpOworICAgIHJldHVybiB0b0FQSSgmUGFnZUJhbm5lcjo6Y3JlYXRlKGxheWVyLCBo
ZWlnaHQsIGNsaWVudEltcGwucmVsZWFzZSgpKS5sZWFrUmVmKCkpOwogfQogCiBDQUxheWVyICog
V0tCdW5kbGVQYWdlQmFubmVyR2V0TGF5ZXIoV0tCdW5kbGVQYWdlQmFubmVyUmVmIHBhZ2VCYW5u
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24u
Y3BwCmluZGV4IGNmOGNlNjIuLmVkZmFmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIHN0YXRpYyBF
eHRlbnNpb25NYXAmIGFsbEV4dGVuc2lvbnMoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLVBhc3NS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24+IEluamVjdGVkQnVuZGxlRE9N
V2luZG93RXh0ZW5zaW9uOjpjcmVhdGUoV2ViRnJhbWUqIGZyYW1lLCBJbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkKiB3b3JsZCkKK1JlZjxJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbj4g
SW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb246OmNyZWF0ZShXZWJGcmFtZSogZnJhbWUs
IEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24oZnJhbWUsIHdvcmxkKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24o
ZnJhbWUsIHdvcmxkKSk7CiB9CiAKIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKiBJ
bmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbjo6Z2V0KERPTVdpbmRvd0V4dGVuc2lvbiog
ZXh0ZW5zaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVu
c2lvbi5oCmluZGV4IDFjYWYzOTYuLjA2NWY3MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgV2Vi
RnJhbWU7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uIDogcHVibGlj
IEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVET01X
aW5kb3dFeHRlbnNpb24+IGNyZWF0ZShXZWJGcmFtZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQqKTsKKyAgICBzdGF0aWMgUmVmPEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uPiBj
cmVhdGUoV2ViRnJhbWUqLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKik7CiAgICAgc3RhdGlj
IEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uKiBnZXQoV2ViQ29yZTo6RE9NV2luZG93
RXh0ZW5zaW9uKik7CiAKICAgICB2aXJ0dWFsIH5JbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVu
c2lvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCmlu
ZGV4IDM2NmZhMzMuLmMxMzA1ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdC5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdD4gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCkKK1JlZjxJbmplY3RlZEJ1bmRsZUhpdFRl
c3RSZXN1bHQ+IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6Y3JlYXRlKGNvbnN0IFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQoaGl0VGVzdFJlc3VsdCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdChoaXRUZXN0UmVz
dWx0KSk7CiB9CiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6Om5vZGVIYW5kbGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRl
c3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgKaW5kZXggYmIxMTJkYy4uY2I3NTg5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oCkBAIC00MCw3ICs0MCw3IEBA
IGNsYXNzIFdlYkZyYW1lOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQgOiBw
dWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVIaXRUZXN0UmVz
dWx0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYpOworICAgIHN0
YXRpYyBSZWY8SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0PiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdCYpOwogCiAgICAgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYg
Y29yZUhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uY3BwCmluZGV4
IGFmZTg2ZDUuLjY2YTE5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2
aWdhdGlvbkFjdGlvbi5jcHAKQEAgLTgxLDkgKzgxLDkgQEAgV2ViTW91c2VFdmVudDo6QnV0dG9u
IEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbjo6bW91c2VCdXR0b25Gb3JOYXZpZ2F0aW9u
QWMKIH0KIAogCi1QYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbj4gSW5q
ZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOjpjcmVhdGUoV2ViRnJhbWUqIGZyYW1lLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3Rh
dGUpCitSZWY8SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uPiBJbmplY3RlZEJ1bmRsZU5h
dmlnYXRpb25BY3Rpb246OmNyZWF0ZShXZWJGcmFtZSogZnJhbWUsIGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IGZvcm1TdGF0ZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbihmcmFtZSwg
YWN0aW9uLCBmb3JtU3RhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJbmplY3RlZEJ1
bmRsZU5hdmlnYXRpb25BY3Rpb24oZnJhbWUsIGFjdGlvbiwgZm9ybVN0YXRlKSk7CiB9CiAKIElu
amVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbjo6SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0
aW9uKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFj
dGlvbiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDhlMjI0YzIuLmNhM2UyOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaApAQCAt
NDUsNyArNDUsNyBAQCBjbGFzcyBXZWJGcmFtZTsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbj4gY3JlYXRlKFdlYkZyYW1lKiwgY29uc3Qg
V2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRl
Pik7CisgICAgc3RhdGljIFJlZjxJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24+IGNyZWF0
ZShXZWJGcmFtZSosIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkZvcm1TdGF0ZT4pOwogCiAgICAgc3RhdGljIFdlYkV2ZW50OjpNb2RpZmllcnMg
bW9kaWZpZXJzRm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJik7CiAgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBtb3VzZUJ1dHRvbkZvck5h
dmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcApp
bmRleCBlODBiMmNlLi41ODdlZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcApAQCAtNjAsNyArNjAsNyBAQCBib29sIElu
amVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50OjpnZXRDdXN0b21NZW51RnJvbURlZmF1
bHRJdGVtcyhXZWJQYWdlJgogCiAgICAgV0tBcnJheVJlZiBuZXdNZW51V0sgPSBudWxscHRyOwog
ICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IG51bGxwdHI7Ci0gICAgbV9jbGllbnQuZ2V0
Q29udGV4dE1lbnVGcm9tRGVmYXVsdE1lbnUodG9BUEkoJnBhZ2UpLCB0b0FQSShJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQ6OmNyZWF0ZShoaXRUZXN0UmVzdWx0KS5nZXQoKSksIHRvQVBJKEFQ
STo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUoZGVmYXVsdE1lbnVJdGVtcykpLnB0cigpKSwgJm5l
d01lbnVXSywgJnVzZXJEYXRhVG9QYXNzLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAg
IG1fY2xpZW50LmdldENvbnRleHRNZW51RnJvbURlZmF1bHRNZW51KHRvQVBJKCZwYWdlKSwgdG9B
UEkoJkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6Y3JlYXRlKGhpdFRlc3RSZXN1bHQpLmdl
dCgpKSwgdG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShkZWZhdWx0TWVudUl0ZW1z
KSkucHRyKCkpLCAmbmV3TWVudVdLLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiAgICAgUmVmUHRyPEFQSTo6QXJyYXk+IGFycmF5ID0gYWRvcHRSZWYodG9JbXBs
KG5ld01lbnVXSykpOwogICAgIHVzZXJEYXRhID0gYWRvcHRSZWYodG9JbXBsKHVzZXJEYXRhVG9Q
YXNzKSk7CiAgICAgCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQ6OnByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb24oV2ViUGFnZSYgcGFnCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IG51bGxwdHI7
Ci0gICAgbV9jbGllbnQucHJlcGFyZUZvckFjdGlvbk1lbnUodG9BUEkoJnBhZ2UpLCB0b0FQSShJ
bmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmNyZWF0ZShoaXRUZXN0UmVzdWx0KS5nZXQoKSks
ICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVu
dC5wcmVwYXJlRm9yQWN0aW9uTWVudSh0b0FQSSgmcGFnZSksIHRvQVBJKCZJbmplY3RlZEJ1bmRs
ZUhpdFRlc3RSZXN1bHQ6OmNyZWF0ZShoaXRUZXN0UmVzdWx0KS5nZXQoKSksICZ1c2VyRGF0YVRv
UGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICB1c2VyRGF0YSA9IGFkb3B0UmVm
KHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmNwcAppbmRleCAxZDgxYjhjLi42Y2VkZmRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgc3RhdGljIFdv
cmxkTWFwJiBhbGxXb3JsZHMoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLVBhc3NSZWZQdHI8SW5q
ZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Y3JlYXRl
KCkKK1JlZjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkOjpjcmVhdGUoKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0ZWRCdW5kbGVT
Y3JpcHRXb3JsZChTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXb3JsZCgpKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZChTY3JpcHRDb250cm9sbGVy
OjpjcmVhdGVXb3JsZCgpKSk7CiB9CiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3JpcHRX
b3JsZD4gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Z2V0T3JDcmVhdGUoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgKaW5kZXgg
NzBmNmZmYy4uNjk4NDQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
LmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpCdW5kbGVTY3JpcHRXb3JsZD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8SW5q
ZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4gZ2V0T3JDcmVhdGUoV2ViQ29yZTo6RE9NV3JhcHBl
cldvcmxkJik7CiAgICAgc3RhdGljIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIG5vcm1hbFdv
cmxkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4MDNlODAxLi4wZDVhZDA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01MCw5ICs1MCw5IEBAIHR5cGVkZWYgdWludDY0
X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xhc3MgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwog
ICAgIH0KICAgICB+TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNw
cAppbmRleCA4M2Q2Y2E4Li4zNGRkODZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ1LDkgKzQ1LDkg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNz
UmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPiBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKFBhc3NS
ZWZQdHI8UmVzb3VyY2VMb2FkZXI+IGNvcmVMb2FkZXIpCitSZWY8V2ViUmVzb3VyY2VMb2FkZXI+
IFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRlcj4gY29y
ZUxvYWRlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlJlc291cmNlTG9hZGVyKGNv
cmVMb2FkZXIpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJSZXNvdXJjZUxvYWRlcihj
b3JlTG9hZGVyKSk7CiB9CiAKIFdlYlJlc291cmNlTG9hZGVyOjpXZWJSZXNvdXJjZUxvYWRlcihQ
YXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiBjb3JlTG9hZGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApp
bmRleCA1MDZlYWQ0Li4zMjNlNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtNTgsNyArNTgsNyBAQCB0eXBl
ZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIFdlYlJlc291cmNl
TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgSVBD
OjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZXNv
dXJjZUxvYWRlcj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+KTsK
KyAgICBzdGF0aWMgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlcj4pOwogCiAgICAgfldlYlJlc291cmNlTG9hZGVyKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAKaW5kZXggYzQ3OTUwMi4uMTVhNWJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlUmVxdWVzdElEKCkKIH0KICNlbmRpZgogCi1QYXNzUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKK1JlZjxOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIocGFnZSkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihwYWdl
KSk7CiB9CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJ
RklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oCmluZGV4IDA5MDNlNzQuLjcwODI3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTQ3LDcgKzQ3LDcg
QEAgY2xhc3MgV2ViUGFnZTsKIC8vLyBGSVhNRTogTmVlZCB0byBrZWVwIGEgcXVldWUgb2YgcGVu
ZGluZyBub3RpZmljYXRpb25zIHdoaWNoIHBlcm1pc3Npb24gaXMgc3RpbGwgYmVpbmcgcmVxdWVz
dGVkLgogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGlj
IFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOwogCiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCiAgICAgdm9pZCBzdGFydFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qLCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKaW5kZXggMGE3Yjc0ZC4uNDk3ZmFkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW4uY3BwCkBAIC00OSwxMiArNDksMTIgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAvLyBUaGUgcGx1Zy1pbiB0aGF0IHdlJ3JlIGN1cnJlbnRseSBjYWxsaW5nIE5QUF9OZXcg
Zm9yLgogc3RhdGljIE5ldHNjYXBlUGx1Z2luKiBjdXJyZW50TlBQTmV3UGx1Z2luOwogCi1QYXNz
UmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBOZXRzY2FwZVBsdWdpbjo6Y3JlYXRlKFBhc3NSZWZQdHI8
TmV0c2NhcGVQbHVnaW5Nb2R1bGU+IHBsdWdpbk1vZHVsZSkKK1JlZlB0cjxOZXRzY2FwZVBsdWdp
bj4gTmV0c2NhcGVQbHVnaW46OmNyZWF0ZShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luTW9kdWxl
PiBwbHVnaW5Nb2R1bGUpCiB7CiAgICAgaWYgKCFwbHVnaW5Nb2R1bGUpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
TmV0c2NhcGVQbHVnaW4ocGx1Z2luTW9kdWxlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmV0c2NhcGVQbHVnaW4ocGx1Z2luTW9kdWxlKSk7CiB9CiAgICAgCiBOZXRzY2FwZVBsdWdpbjo6
TmV0c2NhcGVQbHVnaW4oUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdpbk1vZHVsZT4gcGx1Z2luTW9k
dWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAppbmRleCAyYzYzNzIxLi44YjMyODNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQ
bHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW4uaApAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBOZXRzY2FwZVBsdWdpblN0
cmVhbTsKICAgICAKIGNsYXNzIE5ldHNjYXBlUGx1Z2luIDogcHVibGljIFBsdWdpbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW4+IGNyZWF0ZShQYXNzUmVm
UHRyPE5ldHNjYXBlUGx1Z2luTW9kdWxlPiBwbHVnaW5Nb2R1bGUpOworICAgIHN0YXRpYyBSZWZQ
dHI8TmV0c2NhcGVQbHVnaW4+IGNyZWF0ZShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luTW9kdWxl
Pik7CiAgICAgdmlydHVhbCB+TmV0c2NhcGVQbHVnaW4oKTsKIAogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE5ldHNjYXBlUGx1Z2luPiBmcm9tTlBQKE5QUCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
blN0cmVhbS5oCmluZGV4IGNmYjFhOTYuLjhhOGYxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpblN0cmVhbS5oCkBAIC00OCw5ICs0OCw5IEBAIGNsYXNzIE5ldHNjYXBlUGx1Z2luOwogCiBj
bGFzcyBOZXRzY2FwZVBsdWdpblN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHNjYXBlUGx1
Z2luU3RyZWFtPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVn
aW5TdHJlYW0+IGNyZWF0ZShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBwbHVnaW4sIHVpbnQ2
NF90IHN0cmVhbUlELCBjb25zdCBTdHJpbmcmIHJlcXVlc3RVUkxTdHJpbmcsIGJvb2wgc2VuZE5v
dGlmaWNhdGlvbiwgdm9pZCogbm90aWZpY2F0aW9uRGF0YSkKKyAgICBzdGF0aWMgUmVmPE5ldHNj
YXBlUGx1Z2luU3RyZWFtPiBjcmVhdGUoUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdpbj4gcGx1Z2lu
LCB1aW50NjRfdCBzdHJlYW1JRCwgY29uc3QgU3RyaW5nJiByZXF1ZXN0VVJMU3RyaW5nLCBib29s
IHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5vdGlmaWNhdGlvbkRhdGEpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IE5ldHNjYXBlUGx1Z2luU3RyZWFtKHBsdWdpbiwgc3RyZWFt
SUQsIHJlcXVlc3RVUkxTdHJpbmcsIHNlbmROb3RpZmljYXRpb24sIG5vdGlmaWNhdGlvbkRhdGEp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0c2NhcGVQbHVnaW5TdHJlYW0ocGx1
Z2luLCBzdHJlYW1JRCwgcmVxdWVzdFVSTFN0cmluZywgc2VuZE5vdGlmaWNhdGlvbiwgbm90aWZp
Y2F0aW9uRGF0YSkpOwogICAgIH0KICAgICB+TmV0c2NhcGVQbHVnaW5TdHJlYW0oKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5k
ZXggYTcyZTBjOC4uNWQ2NWE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC02OCw3ICs2OCw3IEBAIGNsYXNzIFdlYkZyYW1l
OwogCiBjbGFzcyBQREZQbHVnaW4gZmluYWwgOiBwdWJsaWMgUGx1Z2luLCBwcml2YXRlIFdlYkNv
cmU6OlNjcm9sbGFibGVBcmVhIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQREZQ
bHVnaW4+IGNyZWF0ZShXZWJGcmFtZSopOworICAgIHN0YXRpYyBSZWY8UERGUGx1Z2luPiBjcmVh
dGUoV2ViRnJhbWUqKTsKICAgICB+UERGUGx1Z2luKCk7CiAKICAgICBzdGF0aWMgV2ViQ29yZTo6
UGx1Z2luSW5mbyBwbHVnaW5JbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGRjY2M1NDEuLmE0NzY2MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CkBAIC01MDMsOSArNTAzLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKLVBhc3NSZWZQdHI8UERGUGx1Z2luPiBQREZQbHVnaW46OmNyZWF0ZShX
ZWJGcmFtZSogZnJhbWUpCitSZWY8UERGUGx1Z2luPiBQREZQbHVnaW46OmNyZWF0ZShXZWJGcmFt
ZSogZnJhbWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQREZQbHVnaW4oZnJhbWUpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQREZQbHVnaW4oZnJhbWUpKTsKIH0KIAogUERGUGx1
Z2luOjpQREZQbHVnaW4oV2ViRnJhbWUqIGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaAppbmRl
eCAwZjI3ZGVmLi44MzY3MGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaApAQCAtNzksOSArNzks
OSBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgUERGUGx1Z2luQW5ub3RhdGlvbkV2ZW50TGlzdGVu
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6RXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxQREZQbHVnaW5Bbm5vdGF0aW9uRXZlbnRMaXN0ZW5lcj4gY3Jl
YXRlKFBERlBsdWdpbkFubm90YXRpb24qIGFubm90YXRpb24pCisgICAgICAgIHN0YXRpYyBSZWY8
UERGUGx1Z2luQW5ub3RhdGlvbkV2ZW50TGlzdGVuZXI+IGNyZWF0ZShQREZQbHVnaW5Bbm5vdGF0
aW9uKiBhbm5vdGF0aW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFBERlBsdWdpbkFubm90YXRpb25FdmVudExpc3RlbmVyKGFubm90YXRpb24pKTsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBERlBsdWdpbkFubm90YXRpb25FdmVudExpc3Rl
bmVyKGFubm90YXRpb24pKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKSBvdmVycmlkZSB7IHJldHVybiB0
aGlzID09ICZsaXN0ZW5lcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAppbmRl
eCBlZWE0MWQ3Li5hMzdhZmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaApA
QCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUERGUGx1Z2luQ2hv
aWNlQW5ub3RhdGlvbiA6IHB1YmxpYyBQREZQbHVnaW5Bbm5vdGF0aW9uIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uPiBjcmVhdGUoUERG
QW5ub3RhdGlvbiAqLCBQREZMYXllckNvbnRyb2xsZXIgKiwgUERGUGx1Z2luKik7CisgICAgc3Rh
dGljIFJlZjxQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uPiBjcmVhdGUoUERGQW5ub3RhdGlvbiAq
LCBQREZMYXllckNvbnRyb2xsZXIgKiwgUERGUGx1Z2luKik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlR2VvbWV0cnkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0KCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24ubW0KaW5kZXggMGM0YTZjYi4u
ZTFhOGU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luQ2hvaWNlQW5ub3RhdGlvbi5tbQpAQCAtNDYsOSAr
NDYsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotUGFzc1JlZlB0cjxQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uPiBQREZQbHVnaW5DaG9pY2VB
bm5vdGF0aW9uOjpjcmVhdGUoUERGQW5ub3RhdGlvbiAqYW5ub3RhdGlvbiwgUERGTGF5ZXJDb250
cm9sbGVyICpwZGZMYXllckNvbnRyb2xsZXIsIFBERlBsdWdpbiogcGx1Z2luKQorUmVmPFBERlBs
dWdpbkNob2ljZUFubm90YXRpb24+IFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OmNyZWF0ZShQ
REZBbm5vdGF0aW9uICphbm5vdGF0aW9uLCBQREZMYXllckNvbnRyb2xsZXIgKnBkZkxheWVyQ29u
dHJvbGxlciwgUERGUGx1Z2luKiBwbHVnaW4pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
REZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uKGFubm90YXRpb24sIHBkZkxheWVyQ29udHJvbGxlciwg
cGx1Z2luKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUERGUGx1Z2luQ2hvaWNlQW5ub3Rh
dGlvbihhbm5vdGF0aW9uLCBwZGZMYXllckNvbnRyb2xsZXIsIHBsdWdpbikpOwogfQogCiB2b2lk
IFBERlBsdWdpbkNob2ljZUFubm90YXRpb246OnVwZGF0ZUdlb21ldHJ5KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRG
aWVsZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Q
YXNzd29yZEZpZWxkLmgKaW5kZXggZWQ4MTczOS4uM2FjZGU5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNz
d29yZEZpZWxkLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFBERlBsdWdpblBhc3N3b3JkRmllbGQgOiBwdWJsaWMgUERGUGx1Z2luVGV4dEFubm90YXRpb24g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBERlBsdWdpblBhc3N3b3JkRmllbGQ+
IGNyZWF0ZShQREZMYXllckNvbnRyb2xsZXIgKiwgUERGUGx1Z2luKik7CisgICAgc3RhdGljIFJl
ZjxQREZQbHVnaW5QYXNzd29yZEZpZWxkPiBjcmVhdGUoUERGTGF5ZXJDb250cm9sbGVyICosIFBE
RlBsdWdpbiopOwogICAgIHZpcnR1YWwgflBERlBsdWdpblBhc3N3b3JkRmllbGQoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxk
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNz
d29yZEZpZWxkLm1tCmluZGV4IGUxMzQ1MTAuLjczOThiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblBhc3N3
b3JkRmllbGQubW0KQEAgLTQyLDkgKzQyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8UERGUGx1Z2luUGFzc3dvcmRGaWVs
ZD4gUERGUGx1Z2luUGFzc3dvcmRGaWVsZDo6Y3JlYXRlKFBERkxheWVyQ29udHJvbGxlciAqcGRm
TGF5ZXJDb250cm9sbGVyLCBQREZQbHVnaW4qIHBsdWdpbikKK1JlZjxQREZQbHVnaW5QYXNzd29y
ZEZpZWxkPiBQREZQbHVnaW5QYXNzd29yZEZpZWxkOjpjcmVhdGUoUERGTGF5ZXJDb250cm9sbGVy
ICpwZGZMYXllckNvbnRyb2xsZXIsIFBERlBsdWdpbiogcGx1Z2luKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUERGUGx1Z2luUGFzc3dvcmRGaWVsZChwZGZMYXllckNvbnRyb2xsZXIsIHBs
dWdpbikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBERlBsdWdpblBhc3N3b3JkRmllbGQo
cGRmTGF5ZXJDb250cm9sbGVyLCBwbHVnaW4pKTsKIH0KIAogUERGUGx1Z2luUGFzc3dvcmRGaWVs
ZDo6flBERlBsdWdpblBhc3N3b3JkRmllbGQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5o
CmluZGV4IDJlNDU3ZDdmLi5hZmQ0YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpblRleHRBbm5vdGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5o
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBQREZQbHVnaW5U
ZXh0QW5ub3RhdGlvbiA6IHB1YmxpYyBQREZQbHVnaW5Bbm5vdGF0aW9uIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxQREZQbHVnaW5UZXh0QW5ub3RhdGlvbj4gY3JlYXRlKFBERkFu
bm90YXRpb24gKiwgUERGTGF5ZXJDb250cm9sbGVyICosIFBERlBsdWdpbiopOworICAgIHN0YXRp
YyBSZWY8UERGUGx1Z2luVGV4dEFubm90YXRpb24+IGNyZWF0ZShQREZBbm5vdGF0aW9uICosIFBE
RkxheWVyQ29udHJvbGxlciAqLCBQREZQbHVnaW4qKTsKICAgICB2aXJ0dWFsIH5QREZQbHVnaW5U
ZXh0QW5ub3RhdGlvbigpOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlb21ldHJ5KCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpblRleHRBbm5vdGF0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW5UZXh0QW5ub3RhdGlvbi5tbQppbmRleCBlMjQwZmM4Li5hNGI0
OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpblRleHRBbm5vdGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luVGV4dEFubm90YXRpb24ubW0KQEAgLTY5LDkgKzY5LDkgQEAg
c3RhdGljIGNvbnN0IFN0cmluZyBjc3NBbGlnbm1lbnRWYWx1ZUZvck5TVGV4dEFsaWdubWVudChO
U1RleHRBbGlnbm1lbnQgYWxpZ25tZW4KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVBhc3NS
ZWZQdHI8UERGUGx1Z2luVGV4dEFubm90YXRpb24+IFBERlBsdWdpblRleHRBbm5vdGF0aW9uOjpj
cmVhdGUoUERGQW5ub3RhdGlvbiAqYW5ub3RhdGlvbiwgUERGTGF5ZXJDb250cm9sbGVyICpwZGZM
YXllckNvbnRyb2xsZXIsIFBERlBsdWdpbiogcGx1Z2luKQorUmVmPFBERlBsdWdpblRleHRBbm5v
dGF0aW9uPiBQREZQbHVnaW5UZXh0QW5ub3RhdGlvbjo6Y3JlYXRlKFBERkFubm90YXRpb24gKmFu
bm90YXRpb24sIFBERkxheWVyQ29udHJvbGxlciAqcGRmTGF5ZXJDb250cm9sbGVyLCBQREZQbHVn
aW4qIHBsdWdpbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBERlBsdWdpblRleHRBbm5v
dGF0aW9uKGFubm90YXRpb24sIHBkZkxheWVyQ29udHJvbGxlciwgcGx1Z2luKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUERGUGx1Z2luVGV4dEFubm90YXRpb24oYW5ub3RhdGlvbiwgcGRm
TGF5ZXJDb250cm9sbGVyLCBwbHVnaW4pKTsKIH0KIAogUERGUGx1Z2luVGV4dEFubm90YXRpb246
On5QREZQbHVnaW5UZXh0QW5ub3RhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDQz
NjEwMzAuLmY2OTMyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00Miw5ICs0Miw5IEBA
IGNsYXNzIFBsdWdpblByb3h5OwogICAgIAogY2xhc3MgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4sIElQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbj4gY3JlYXRlKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciogcGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLCB1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4s
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgYm9vbCBz
dXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uKQorICAgIHN0YXRpYyBSZWY8
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+IGNyZWF0ZShQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXIqIHBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciwgdWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ocGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLCBwbHVnaW5Qcm9jZXNzVG9rZW4sIGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBzdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciwgcGx1Z2luUHJvY2Vzc1Rva2VuLCBjb25uZWN0
aW9uSWRlbnRpZmllciwgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbikp
OwogICAgIH0KICAgICB+UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAppbmRleCAzOTNlNmVkLi44NTBiMjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcApAQCAtNDIsOSArNDIsOSBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI+IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3JlYXRlKCkKK1JlZjxQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
cjo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uTWFuYWdlcik7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyKTsKIH0KIAogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlci5oCmluZGV4IGQ0ZWY1M2IuLmI4MzI2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb247CiAgICAgICAgIAogY2xhc3MgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIDog
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+
IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
PiBjcmVhdGUoKTsKICAgICB+UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKCk7CiAKICAg
ICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKaW5kZXggNTU1
NTM4Yi4uMWVjMTZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuY3BwCkBAIC01NSw5ICs1NSw5IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZVBsdWdpbkluc3RhbmNlSUQoKQogICAgIHJldHVybiArK3VuaXF1ZVBsdWdpbkluc3RhbmNl
SUQ7CiB9CiAKLVBhc3NSZWZQdHI8UGx1Z2luUHJveHk+IFBsdWdpblByb3h5OjpjcmVhdGUodWlu
dDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBib29sIGlzUmVzdGFydGVkUHJvY2VzcykKK1JlZjxQ
bHVnaW5Qcm94eT4gUGx1Z2luUHJveHk6OmNyZWF0ZSh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4sIGJvb2wgaXNSZXN0YXJ0ZWRQcm9jZXNzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UGx1Z2luUHJveHkocGx1Z2luUHJvY2Vzc1Rva2VuLCBpc1Jlc3RhcnRlZFByb2Nlc3MpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQbHVnaW5Qcm94eShwbHVnaW5Qcm9jZXNzVG9rZW4sIGlz
UmVzdGFydGVkUHJvY2VzcykpOwogfQogCiBQbHVnaW5Qcm94eTo6UGx1Z2luUHJveHkodWludDY0
X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBib29sIGlzUmVzdGFydGVkUHJvY2VzcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKaW5kZXggYWMyMjM5
NC4uODkwNDFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb3h5LmgKQEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IFBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVyczsKIAogY2xhc3MgUGx1Z2luUHJveHkgOiBwdWJsaWMgUGx1Z2luIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5Qcm94eT4gY3JlYXRlKHVpbnQ2NF90IHBsdWdpblBy
b2Nlc3NUb2tlbiwgYm9vbCBpc1Jlc3RhcnRlZFByb2Nlc3MpOworICAgIHN0YXRpYyBSZWY8UGx1
Z2luUHJveHk+IGNyZWF0ZSh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIGJvb2wgaXNSZXN0
YXJ0ZWRQcm9jZXNzKTsKICAgICB+UGx1Z2luUHJveHkoKTsKIAogICAgIHVpbnQ2NF90IHBsdWdp
bkluc3RhbmNlSUQoKSBjb25zdCB7IHJldHVybiBtX3BsdWdpbkluc3RhbmNlSUQ7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA2
YTgzM2YxLi5iNDc5YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCkBAIC04Miw5ICs4Miw5IEBAIHN0YXRpYyBjb25zdCBhdXRvIHBs
dWdpblNuYXBzaG90VGltZXJEZWxheSA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgeyAxMTAw
IH07CiAKIGNsYXNzIFBsdWdpblZpZXc6OlVSTFJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxV
UkxSZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGx1Z2luVmlldzo6
VVJMUmVxdWVzdD4gY3JlYXRlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYgcmVxdWVzdCwgYm9vbCBhbGxvd1BvcHVwcykKKyAgICBzdGF0aWMgUmVmPFBsdWdpblZp
ZXc6OlVSTFJlcXVlc3Q+IGNyZWF0ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgYWxsb3dQb3B1cHMpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFVSTFJlcXVlc3QocmVxdWVzdElELCByZXF1ZXN0LCBhbGxvd1BvcHVw
cykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVUkxSZXF1ZXN0KHJlcXVlc3RJRCwg
cmVxdWVzdCwgYWxsb3dQb3B1cHMpKTsKICAgICB9CiAKICAgICB1aW50NjRfdCByZXF1ZXN0SUQo
KSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RJRDsgfQpAQCAtMTA3LDkgKzEwNyw5IEBAIHByaXZh
dGU6CiAKIGNsYXNzIFBsdWdpblZpZXc6OlN0cmVhbSA6IHB1YmxpYyBSZWZDb3VudGVkPFBsdWdp
blZpZXc6OlN0cmVhbT4sIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJlYW0+IGNyZWF0ZShQbHVnaW5WaWV3KiBwbHVn
aW5WaWV3LCB1aW50NjRfdCBzdHJlYW1JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQorICAgIHN0YXRpYyBSZWY8U3RyZWFtPiBjcmVhdGUoUGx1Z2luVmlldyogcGx1Z2luVmlldywg
dWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyZWFtKHBsdWdpblZpZXcsIHN0cmVhbUlE
LCByZXF1ZXN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0cmVhbShwbHVnaW5W
aWV3LCBzdHJlYW1JRCwgcmVxdWVzdCkpOwogICAgIH0KICAgICB+U3RyZWFtKCk7CiAKQEAgLTI3
MSw5ICsyNzEsOSBAQCBzdGF0aWMgaW5saW5lIFdlYlBhZ2UqIHdlYlBhZ2UoSFRNTFBsdWdJbkVs
ZW1lbnQqIHBsdWdpbkVsZW1lbnQpCiAgICAgcmV0dXJuIHdlYkZyYW1lLT5wYWdlKCk7CiB9CiAK
LVBhc3NSZWZQdHI8UGx1Z2luVmlldz4gUGx1Z2luVmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8SFRN
TFBsdWdJbkVsZW1lbnQ+IHBsdWdpbkVsZW1lbnQsIFBhc3NSZWZQdHI8UGx1Z2luPiBwbHVnaW4s
IGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK1JlZjxQbHVnaW5WaWV3PiBQ
bHVnaW5WaWV3OjpjcmVhdGUoUGFzc1JlZlB0cjxIVE1MUGx1Z0luRWxlbWVudD4gcGx1Z2luRWxl
bWVudCwgUGFzc1JlZlB0cjxQbHVnaW4+IHBsdWdpbiwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGx1Z2luVmlldyhwbHVn
aW5FbGVtZW50LCBwbHVnaW4sIHBhcmFtZXRlcnMpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQbHVnaW5WaWV3KHBsdWdpbkVsZW1lbnQsIHBsdWdpbiwgcGFyYW1ldGVycykpOwogfQogCiBQ
bHVnaW5WaWV3OjpQbHVnaW5WaWV3KFBhc3NSZWZQdHI8SFRNTFBsdWdJbkVsZW1lbnQ+IHBsdWdp
bkVsZW1lbnQsIFBhc3NSZWZQdHI8UGx1Z2luPiBwbHVnaW4sIGNvbnN0IFBsdWdpbjo6UGFyYW1l
dGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oCmluZGV4IDMzZjhjMDkuLmYwZGY0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtNjYsNyArNjYsNyBAQCBjbGFz
cyBXZWJFdmVudDsKIAogY2xhc3MgUGx1Z2luVmlldyA6IHB1YmxpYyBXZWJDb3JlOjpQbHVnaW5W
aWV3QmFzZSwgcHVibGljIFBsdWdpbkNvbnRyb2xsZXIsIHByaXZhdGUgV2ViQ29yZTo6TWVkaWFD
YW5TdGFydExpc3RlbmVyLCBwcml2YXRlIFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIsIHByaXZhdGUg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UGx1Z2luVmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+
LCBQYXNzUmVmUHRyPFBsdWdpbj4sIGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYpOworICAgIHN0
YXRpYyBSZWY8UGx1Z2luVmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJ
bkVsZW1lbnQ+LCBQYXNzUmVmUHRyPFBsdWdpbj4sIGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYp
OwogCiAgICAgdm9pZCByZWNyZWF0ZUFuZEluaXRpYWxpemUoUGFzc1JlZlB0cjxQbHVnaW4+KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xs
aW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMWVkNDAwZi4uMjBmOWU2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC00Nyw5ICs0Nyw5IEBAIGNsYXNz
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb247CiAKIGNsYXNzIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yIDogcHVibGljIFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZShXZWJQYWdlKiBw
YWdlKQorICAgIHN0YXRpYyBSZWY8UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZShX
ZWJQYWdlKiBwYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvcihwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpKTsKICAgICB9CiAKICAgICB2b2lkIGJ1
aWxkVHJhbnNhY3Rpb24oUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVh
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJ
bXBsLmNwcAppbmRleCA3ZWJiNzY3Li44MDI1ZjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcApAQCAtNDQsOSArNDQs
OSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVTdG9yYWdlQXJlYUlEKCkKICAgICByZXR1cm4g
KytzdG9yYWdlQXJlYUlEOwogfQogCi1QYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gU3RvcmFn
ZUFyZWFJbXBsOjpjcmVhdGUoUGFzc1JlZlB0cjxTdG9yYWdlQXJlYU1hcD4gc3RvcmFnZUFyZWFN
YXApCitSZWY8U3RvcmFnZUFyZWFJbXBsPiBTdG9yYWdlQXJlYUltcGw6OmNyZWF0ZShQYXNzUmVm
UHRyPFN0b3JhZ2VBcmVhTWFwPiBzdG9yYWdlQXJlYU1hcCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFN0b3JhZ2VBcmVhSW1wbChzdG9yYWdlQXJlYU1hcCkpOworICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFN0b3JhZ2VBcmVhSW1wbChzdG9yYWdlQXJlYU1hcCkpOwogfQogCiBTdG9yYWdl
QXJlYUltcGw6OlN0b3JhZ2VBcmVhSW1wbChQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhTWFwPiBzdG9y
YWdlQXJlYU1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlQXJlYUltcGwuaAppbmRleCBlMDQwNWY1Li5lYmU4M2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCkBAIC00MSw3
ICs0MSw3IEBAIGNsYXNzIFN0b3JhZ2VBcmVhTWFwOwogCiBjbGFzcyBTdG9yYWdlQXJlYUltcGwg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U3RvcmFnZUFyZWEgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhSW1wbD4gY3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZUFy
ZWFNYXA+KTsKKyAgICBzdGF0aWMgUmVmPFN0b3JhZ2VBcmVhSW1wbD4gY3JlYXRlKFBhc3NSZWZQ
dHI8U3RvcmFnZUFyZWFNYXA+KTsKICAgICB2aXJ0dWFsIH5TdG9yYWdlQXJlYUltcGwoKTsKIAog
ICAgIHVpbnQ2NF90IHN0b3JhZ2VBcmVhSUQoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VBcmVh
SUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlQXJlYU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZUFyZWFNYXAuY3BwCmluZGV4IDVlYTJmYmYuLjliYzJjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcApAQCAtNTMsOSAr
NTMsOSBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVTdG9yYWdlTWFwSUQoKQogICAgIHJldHVy
biArK3N0b3JhZ2VNYXBJRDsKIH0KIAotUGFzc1JlZlB0cjxTdG9yYWdlQXJlYU1hcD4gU3RvcmFn
ZUFyZWFNYXA6OmNyZWF0ZShTdG9yYWdlTmFtZXNwYWNlSW1wbCogc3RvcmFnZU5hbWVzcGFjZSwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHNlY3VyaXR5T3JpZ2luKQorUmVmPFN0b3Jh
Z2VBcmVhTWFwPiBTdG9yYWdlQXJlYU1hcDo6Y3JlYXRlKFN0b3JhZ2VOYW1lc3BhY2VJbXBsKiBz
dG9yYWdlTmFtZXNwYWNlLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc2VjdXJpdHlP
cmlnaW4pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdG9yYWdlQXJlYU1hcChzdG9yYWdl
TmFtZXNwYWNlLCBXVEY6Om1vdmUoc2VjdXJpdHlPcmlnaW4pKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU3RvcmFnZUFyZWFNYXAoc3RvcmFnZU5hbWVzcGFjZSwgV1RGOjptb3ZlKHNlY3Vy
aXR5T3JpZ2luKSkpOwogfQogCiBTdG9yYWdlQXJlYU1hcDo6U3RvcmFnZUFyZWFNYXAoU3RvcmFn
ZU5hbWVzcGFjZUltcGwqIHN0b3JhZ2VOYW1lc3BhY2UsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiBzZWN1cml0eU9yaWdpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKaW5kZXggYzYxMDRhYS4uYzFjNTVjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZUltcGw7CiAKIGNsYXNzIFN0
b3JhZ2VBcmVhTWFwIDogcHVibGljIFJlZkNvdW50ZWQ8U3RvcmFnZUFyZWFNYXA+LCBwcml2YXRl
IElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dG9yYWdlQXJlYU1hcD4gY3JlYXRlKFN0b3JhZ2VOYW1lc3BhY2VJbXBsKiwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmKTsKKyAgICBzdGF0aWMgUmVmPFN0b3JhZ2VBcmVhTWFwPiBjcmVh
dGUoU3RvcmFnZU5hbWVzcGFjZUltcGwqLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYp
OwogICAgIH5TdG9yYWdlQXJlYU1hcCgpOwogCiAgICAgV2ViQ29yZTo6U3RvcmFnZVR5cGUgc3Rv
cmFnZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VUeXBlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKaW5k
ZXggOWY2OWEzMy4uYmQyZTA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcApAQCAtMzMsOSArMzMsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNyZWF0
ZShXZWJQcm9jZXNzKiBwcm9jZXNzKQorUmVmPFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4gV2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzOjpjcmVhdGUoV2ViUHJvY2VzcyogcHJvY2VzcykKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcyhwcm9jZXNzKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKHByb2Nl
c3MpKTsKIH0KIAogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpXZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3MoV2ViUHJvY2VzcyogcHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCmluZGV4IDhiOTQ5OGIuLjBlMjUzOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBXZWJQcm9jZXNzOwogCiBjbGFzcyBX
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MgOiBwdWJsaWMgV2ViQ29ubmVjdGlvbiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBjcmVhdGUo
V2ViUHJvY2VzcyopOworICAgIHN0YXRpYyBSZWY8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBj
cmVhdGUoV2ViUHJvY2VzcyopOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBN
ZW51LmNwcAppbmRleCBjOGVmOWJkLi5hMjc1MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwCkBAIC0z
NCw5ICszNCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnU+IFdlYlBvcHVwTWVudTo6Y3JlYXRlKFdlYlBh
Z2UqIHBhZ2UsIFBvcHVwTWVudUNsaWVudCogY2xpZW50KQorUmVmPFdlYlBvcHVwTWVudT4gV2Vi
UG9wdXBNZW51OjpjcmVhdGUoV2ViUGFnZSogcGFnZSwgUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnUocGFnZSwgY2xpZW50KSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUG9wdXBNZW51KHBhZ2UsIGNsaWVudCkpOwog
fQogCiBXZWJQb3B1cE1lbnU6OldlYlBvcHVwTWVudShXZWJQYWdlKiBwYWdlLCBQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCmluZGV4IDQ0OTMzZjAuLmIyNmZlZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBN
ZW51LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
b3B1cE1lbnUuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwogCiBjbGFz
cyBXZWJQb3B1cE1lbnUgOiBwdWJsaWMgV2ViQ29yZTo6UG9wdXBNZW51IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnU+IGNyZWF0ZShXZWJQYWdlKiwgV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50Kik7CisgICAgc3RhdGljIFJlZjxXZWJQb3B1cE1lbnU+IGNyZWF0
ZShXZWJQYWdlKiwgV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50Kik7CiAgICAgfldlYlBvcHVwTWVu
dSgpOwogCiAgICAgV2ViUGFnZSogcGFnZSgpIHsgcmV0dXJuIG1fcGFnZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1
cE1lbnUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
ZWFyY2hQb3B1cE1lbnUuY3BwCmluZGV4IDAyNTg0NmUuLjFiMDY3MDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNl
YXJjaFBvcHVwTWVudS5jcHAKQEAgLTMyLDkgKzMyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYlNlYXJjaFBvcHVwTWVu
dT4gV2ViU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUoV2ViUGFnZSogcGFnZSwgUG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpCitSZWY8V2ViU2VhcmNoUG9wdXBNZW51PiBXZWJTZWFyY2hQb3B1cE1lbnU6
OmNyZWF0ZShXZWJQYWdlKiBwYWdlLCBQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlYXJjaFBvcHVwTWVudShwYWdlLCBjbGllbnQpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTZWFyY2hQb3B1cE1lbnUocGFnZSwgY2xpZW50KSk7
CiB9CiAKIFdlYlNlYXJjaFBvcHVwTWVudTo6V2ViU2VhcmNoUG9wdXBNZW51KFdlYlBhZ2UqIHBh
Z2UsIFBvcHVwTWVudUNsaWVudCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKaW5k
ZXggYmQ0M2VkNy4uOGYxMDExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oCkBAIC0yOCw3
ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJTZWFyY2hQb3B1cE1lbnUg
OiBwdWJsaWMgV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZShXZWJQYWdlKiwgV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50Kik7CisgICAgc3RhdGljIFJlZjxXZWJTZWFyY2hQb3B1cE1lbnU+IGNy
ZWF0ZShXZWJQYWdlKiwgV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50Kik7CiAKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OlBvcHVwTWVudSogcG9wdXBNZW51KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgbmFtZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlF1aWNrTG9va0hh
bmRsZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9p
b3MvV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmgKaW5kZXggN2Q0NDhmZi4uZmY4NzMwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2Vi
UXVpY2tMb29rSGFuZGxlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9pb3MvV2ViUXVpY2tMb29rSGFuZGxlQ2xpZW50LmgKQEAgLTQzLDkgKzQz
LDkgQEAgY2xhc3MgV2ViRnJhbWU7CiAKIGNsYXNzIFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudCBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGVDbGllbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlF1aWNrTG9va0hhbmRsZUNsaWVudD4gY3JlYXRlKGNv
bnN0IFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZSYgaGFuZGxlLCB1aW50NjRfdCBwYWdlSUQpCisg
ICAgc3RhdGljIFJlZjxXZWJRdWlja0xvb2tIYW5kbGVDbGllbnQ+IGNyZWF0ZShjb25zdCBXZWJD
b3JlOjpRdWlja0xvb2tIYW5kbGUmIGhhbmRsZSwgdWludDY0X3QgcGFnZUlEKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJRdWlja0xvb2tIYW5kbGVDbGllbnQoaGFuZGxl
LCBwYWdlSUQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUXVpY2tMb29rSGFu
ZGxlQ2xpZW50KGhhbmRsZSwgcGFnZUlEKSk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDM1ZjFhODAuLjNkNDU4
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAg
LTM1LDkgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlKFdlYkZyYW1lKiBmcmFtZSkKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ+IGNyZWF0ZShXZWJGcmFtZSogZnJhbWUpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwog
ICAgIH0KIAogICAgIC8vIEZJWE1FOiByZW1vdmUgcGxhdGZvcm0tc3BlY2lmaWMgY29kZSBhbmQg
dXNlIFNlc3Npb25UcmFja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaAppbmRleCA3Y2U0OTQxLi5hZWQxYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291
cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTM5LDkgKzM5LDkgQEAgY2xhc3MgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ7CiAKIGNsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBw
dWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkZyYW1l
KiBmcmFtZSkKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZShXZWJGcmFtZSogZnJhbWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQoZnJhbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSkpOwogICAgIH0KIAogICAgIHN0
YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9S
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0
b3IuaAppbmRleCBhODZlN2IyLi4zMWY3YzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25p
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1JlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oCkBAIC0zNSw5ICszNSw5IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0
b3IgOiBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I+
IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhJiBkcmF3aW5nQXJlYSkKKyAgICBzdGF0aWMgUmVmPFJlbW90ZUxheWVyVHJlZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEmIGRyYXdpbmdBcmVhKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlz
cGxheUlELCBkcmF3aW5nQXJlYSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1v
dGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlELCBkcmF3aW5nQXJlYSkp
OwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVz
aE1vbml0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDY3NmYzOWEuLmI1MDk2MTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNw
cApAQCAtNDksOSArNDksOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQorUmVmPENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdD4gQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpjcmVhdGUoV2ViUGFn
ZSogd2ViUGFnZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdCh3ZWJQYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0KHdlYlBhZ2UpKTsKIH0KIAogQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojp+
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggMjQxZWJjOC4uNDNmOWU1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgV2ViUGFnZTsKIGNsYXNzIENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBMYXllclRyZWVIb3N0LCBwdWJsaWMgV2ViQ29yZTo6
Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q2xpZW50CiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBjcmVhdGUoV2ViUGFnZSopOworICAg
IHN0YXRpYyBSZWY8Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0PiBjcmVhdGUoV2ViUGFnZSopOwog
ICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdCgpOwogCiAgICAgdmlydHVhbCBj
b25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KCkgeyByZXR1cm4gbV9sYXll
clRyZWVDb250ZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMDQ0MTlmMS4u
OGQ0ODczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtNDgsOSArNDgsOSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQ
dHI8VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+IFRocmVhZGVkQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0OjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkKK1JlZjxUaHJlYWRlZENvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdD4gVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmNy
ZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Qod2ViUGFnZSkpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KHdlYlBhZ2UpKTsKIH0KIAog
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6On5UaHJlYWRlZENvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IGY3YWE5MDIuLjVmM2Y3YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
CkBAIC00Nyw5ICs0Nyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotUGFzc1JlZlB0cjxFdmVudERpc3BhdGNoZXI+IEV2ZW50RGlzcGF0Y2hlcjo6
Y3JlYXRlKCkKK1JlZjxFdmVudERpc3BhdGNoZXI+IEV2ZW50RGlzcGF0Y2hlcjo6Y3JlYXRlKCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV2ZW50RGlzcGF0Y2hlcik7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRXZlbnREaXNwYXRjaGVyKTsKIH0KIAogRXZlbnREaXNwYXRjaGVyOjpF
dmVudERpc3BhdGNoZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IGE2MGQ0MDAuLjZmNzQzMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAg
LTQ5LDcgKzQ5LDcgQEAgY2xhc3MgV2ViV2hlZWxFdmVudDsKIAogY2xhc3MgRXZlbnREaXNwYXRj
aGVyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFdmVudERpc3BhdGNoZXI+IGNyZWF0ZSgp
OworICAgIHN0YXRpYyBSZWY8RXZlbnREaXNwYXRjaGVyPiBjcmVhdGUoKTsKICAgICB+RXZlbnRE
aXNwYXRjaGVyKCk7CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgKaW5kZXggMzNkZjQyNS4uODhh
YTdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VC
YW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5l
ci5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBhZ2VCYW5uZXI+IGNyZWF0ZShDQUxheWVyICosIGlu
dCBoZWlnaHQsIENsaWVudCopOworICAgIHN0YXRpYyBSZWY8UGFnZUJhbm5lcj4gY3JlYXRlKENB
TGF5ZXIgKiwgaW50IGhlaWdodCwgQ2xpZW50Kik7CiAgICAgQ0FMYXllciAqbGF5ZXIoKTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oCmluZGV4IDJjYmRlZDIuLmUyODg1MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExp
c3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNr
Rm9yd2FyZExpc3RQcm94eS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIFdlYlBhZ2U7CiAKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5IDogcHVibGljIFdlYkNvcmU6OkJhY2tGb3J3YXJk
Q2xpZW50IHsKIHB1YmxpYzogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQmFja0ZvcndhcmRM
aXN0UHJveHk+IGNyZWF0ZShXZWJQYWdlKiBwYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkocGFnZSkpOyB9CisgICAgc3RhdGljIFJlZjxXZWJCYWNrRm9y
d2FyZExpc3RQcm94eT4gY3JlYXRlKFdlYlBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViQmFja0ZvcndhcmRMaXN0UHJveHkocGFnZSkpOyB9CiAKICAgICBzdGF0aWMgV2ViQ29y
ZTo6SGlzdG9yeUl0ZW0qIGl0ZW1Gb3JJRCh1aW50NjRfdCk7CiAgICAgc3RhdGljIHVpbnQ2NF90
IGlkRm9ySXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvbnRleHRNZW51LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29udGV4dE1lbnUuaAppbmRleCBmYzYzYWZiLi45MDE1
ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29u
dGV4dE1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29u
dGV4dE1lbnUuaApAQCAtMzksOSArMzksOSBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBXZWJD
b250ZXh0TWVudSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkNvbnRleHRNZW51PiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnU+IGNyZWF0ZShXZWJQYWdlKiBw
YWdlKSAKKyAgICBzdGF0aWMgUmVmPFdlYkNvbnRleHRNZW51PiBjcmVhdGUoV2ViUGFnZSogcGFn
ZSkgCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbnRleHRNZW51KHBh
Z2UpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29udGV4dE1lbnUocGFnZSkp
OwogICAgIH0KICAgICAKICAgICB+V2ViQ29udGV4dE1lbnUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJEb2N1bWVudExvYWRlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkRvY3VtZW50TG9hZGVyLmgKaW5kZXggNzli
YjA2OC4uYWMzOTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkRvY3VtZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkRvY3VtZW50TG9hZGVyLmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYkRvY3VtZW50TG9hZGVyIDogcHVibGljIFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJEb2N1bWVudExv
YWRlcj4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEmIGRhdGEpCisgICAgc3RhdGljIFJlZjxXZWJEb2N1
bWVudExvYWRlcj4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEmIGRhdGEpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYkRvY3VtZW50TG9hZGVyKHJlcXVlc3QsIGRhdGEpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRG9jdW1lbnRMb2FkZXIocmVxdWVzdCwgZGF0
YSkpOwogICAgIH0KIAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJu
IG1fbmF2aWdhdGlvbklEOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IGZmZjYzMmYuLjQ1Yjk4NTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC01
Myw5ICs1Myw5IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5pbXVtQXR0YWNoZWRXaWR0aCA9IDc1
MDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8V2ViSW5zcGVjdG9yPiBXZWJJ
bnNwZWN0b3I6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQorUmVmPFdlYkluc3BlY3Rvcj4gV2ViSW5z
cGVjdG9yOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYkluc3BlY3RvcihwYWdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSW5zcGVj
dG9yKHBhZ2UpKTsKIH0KIAogV2ViSW5zcGVjdG9yOjpXZWJJbnNwZWN0b3IoV2ViUGFnZSogcGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
aAppbmRleCA3NGViN2VhLi4xNjRhYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFdlYlBh
Z2U7CiAKIGNsYXNzIFdlYkluc3BlY3RvciA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpP
YmplY3Q6OlR5cGU6OkJ1bmRsZUluc3BlY3Rvcj4sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OkNs
aWVudCwgcHVibGljIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViSW5zcGVjdG9yPiBjcmVhdGUoV2ViUGFnZSopOwor
ICAgIHN0YXRpYyBSZWY8V2ViSW5zcGVjdG9yPiBjcmVhdGUoV2ViUGFnZSopOwogCiAgICAgV2Vi
UGFnZSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcAppbmRleCA1NGMz
YzYxLi44OTQ2NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkluc3BlY3Rv
clVJPiBXZWJJbnNwZWN0b3JVSTo6Y3JlYXRlKFdlYlBhZ2UqIHBhZ2UpCitSZWY8V2ViSW5zcGVj
dG9yVUk+IFdlYkluc3BlY3RvclVJOjpjcmVhdGUoV2ViUGFnZSogcGFnZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYkluc3BlY3RvclVJKHBhZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJJbnNwZWN0b3JVSShwYWdlKSk7CiB9CiAKIFdlYkluc3BlY3RvclVJOjpXZWJJ
bnNwZWN0b3JVSShXZWJQYWdlKiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaAppbmRleCA3ZmRjZmMwLi45ZDAzZmMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUku
aApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBXZWJQYWdlOwogCiBjbGFzcyBXZWJJbnNwZWN0b3JV
SSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUluc3Bl
Y3RvclVJPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYkluc3BlY3RvclVJPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHN0YXRpYyBSZWY8V2ViSW5z
cGVjdG9yVUk+IGNyZWF0ZShXZWJQYWdlKik7CiAKICAgICBXZWJQYWdlKiBwYWdlKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwCmluZGV4
IDY1NGI4MjkuLjY4NjZjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNwcApAQCAt
MzAsOSArMzAsOSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lcj4gV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI6OmNyZWF0ZShX
ZWJQYWdlKiBwYWdlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPiBmaWxlQ2hvb3Nl
cikKK1JlZjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4gV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXI6OmNyZWF0ZShXZWJQYWdlKiBwYWdlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9v
c2VyPiBmaWxlQ2hvb3NlcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyKHBhZ2UsIGZpbGVDaG9vc2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIocGFnZSwgZmlsZUNob29zZXIpKTsKIH0K
IAogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KFdlYlBhZ2UqIHBhZ2UsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+IGZpbGVDaG9v
c2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYk9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaAppbmRleCAwZDA5MGJmLi42OTMzMGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBXZWJQ
YWdlOwogCiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXI+IGNyZWF0ZShXZWJQYWdlKiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOworICAgIHN0YXRpYyBSZWY8V2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXI+IGNyZWF0ZShXZWJQYWdlKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpG
aWxlQ2hvb3Nlcj4pOwogICAgIH5XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpOwogCiAgICAg
dm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IG1fcGFnZSA9IDA7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlT3ZlcmxheS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuY3BwCmluZGV4IDll
NDA4NmUuLjZiYWRjODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmNwcApAQCAtNDIsOSArNDIsOSBAQCBzdGF0aWMgSGFzaE1h
cDxQYWdlT3ZlcmxheSosIFdlYlBhZ2VPdmVybGF5Kj4mIG92ZXJsYXlNYXAoKQogICAgIHJldHVy
biBtYXA7CiB9CiAKLVBhc3NSZWZQdHI8V2ViUGFnZU92ZXJsYXk+IFdlYlBhZ2VPdmVybGF5Ojpj
cmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VPdmVybGF5OjpDbGllbnQ+IGNsaWVudCwgUGFn
ZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQorUmVmPFdlYlBhZ2VPdmVybGF5PiBX
ZWJQYWdlT3ZlcmxheTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlT3ZlcmxheTo6Q2xp
ZW50PiBjbGllbnQsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZSBvdmVybGF5VHlwZSkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlBhZ2VPdmVybGF5KFdURjo6bW92ZShjbGllbnQpLCBv
dmVybGF5VHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlBhZ2VPdmVybGF5KFdU
Rjo6bW92ZShjbGllbnQpLCBvdmVybGF5VHlwZSkpOwogfQogCiBXZWJQYWdlT3ZlcmxheTo6V2Vi
UGFnZU92ZXJsYXkoc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VPdmVybGF5OjpDbGllbnQ+IGNsaWVu
dCwgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VPdmVybGF5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZU92ZXJsYXkuaAppbmRleCBmYmJlNjJh
Li42YzhjZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZU92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZU92ZXJsYXkuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1
YWwgVmVjdG9yPFN0cmluZz4gY29weUFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lcyhXZWJQYWdl
T3ZlcmxheSYsIGJvb2wgLyogcGFyYW1ldGVyaXplZE5hbWVzICovKSB7IHJldHVybiBWZWN0b3I8
U3RyaW5nPigpOyB9CiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBhZ2VPdmVy
bGF5PiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPENsaWVudD4sIFdlYkNvcmU6OlBhZ2VPdmVybGF5
OjpPdmVybGF5VHlwZSA9IFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6Vmlldyk7
CisgICAgc3RhdGljIFJlZjxXZWJQYWdlT3ZlcmxheT4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxD
bGllbnQ+LCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGUgPSBXZWJDb3JlOjpQYWdl
T3ZlcmxheTo6T3ZlcmxheVR5cGU6OlZpZXcpOwogICAgIHN0YXRpYyBXZWJQYWdlT3ZlcmxheSog
ZnJvbUNvcmVPdmVybGF5KFdlYkNvcmU6OlBhZ2VPdmVybGF5Jik7CiAgICAgdmlydHVhbCB+V2Vi
UGFnZU92ZXJsYXkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlVuZG9TdGVwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJVbmRvU3RlcC5jcHAKaW5kZXggYjAwNWUwOC4uMmNhYThkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVuZG9TdGVwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVW5kb1N0ZXAuY3BwCkBAIC0zNCw5ICsz
NCw5IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVVuZG9TdGVwKCkKICAgICByZXR1cm4gdW5p
cXVlRW50cnlJRCsrOwogfQogCi1QYXNzUmVmUHRyPFdlYlVuZG9TdGVwPiBXZWJVbmRvU3RlcDo6
Y3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+IHN0ZXApCitSZWY8V2ViVW5kb1N0
ZXA+IFdlYlVuZG9TdGVwOjpjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4gc3Rl
cCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlVuZG9TdGVwKHN0ZXAsIGdlbmVyYXRl
VW5kb1N0ZXAoKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlVuZG9TdGVwKHN0ZXAs
IGdlbmVyYXRlVW5kb1N0ZXAoKSkpOwogfQogCiBXZWJVbmRvU3RlcDo6fldlYlVuZG9TdGVwKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVbmRvU3Rl
cC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVuZG9TdGVwLmgKaW5k
ZXggNmY0OWMyOS4uMTE4NzFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlVuZG9TdGVwLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlVuZG9TdGVwLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFdlYlVuZG9TdGVwIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVW5kb1N0ZXA+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJVbmRvU3RlcD4gY3JlYXRlKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+KTsKKyAgICBzdGF0aWMgUmVmPFdlYlVuZG9TdGVwPiBj
cmVhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pOwogICAgIH5XZWJVbmRvU3RlcCgp
OwogCiAgICAgV2ViQ29yZTo6VW5kb1N0ZXAqIHN0ZXAoKSBjb25zdCB7IHJldHVybiBtX3N0ZXAu
Z2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGFnZUJhbm5lck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGFnZUJhbm5lck1hYy5tbQppbmRleCAzOGI5MjQ3Li44ZDI4MDJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1t
CkBAIC0zNiw5ICszNiw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotUGFzc1JlZlB0cjxQYWdlQmFubmVyPiBQYWdlQmFubmVyOjpjcmVhdGUoQ0FM
YXllciAqbGF5ZXIsIGludCBoZWlnaHQsIENsaWVudCogY2xpZW50KQorUmVmPFBhZ2VCYW5uZXI+
IFBhZ2VCYW5uZXI6OmNyZWF0ZShDQUxheWVyICpsYXllciwgaW50IGhlaWdodCwgQ2xpZW50KiBj
bGllbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQYWdlQmFubmVyKGxheWVyLCBoZWln
aHQsIGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhZ2VCYW5uZXIobGF5ZXIs
IGhlaWdodCwgY2xpZW50KSk7CiB9CiAKIFBhZ2VCYW5uZXI6OlBhZ2VCYW5uZXIoQ0FMYXllciAq
bGF5ZXIsIGludCBoZWlnaHQsIENsaWVudCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUuaAppbmRleCA1ODc4OGMxLi45NmEzZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmlt
YXRpb25SZW1vdGUuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBSZW1vdGVMYXllclRyZWVIb3N0
OwogCiBjbGFzcyBQbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OlBsYXRmb3JtQ0FBbmltYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFBsYXRmb3JtQ0FBbmltYXRpb24+IGNyZWF0ZShBbmltYXRpb25UeXBlLCBjb25zdCBTdHJpbmcm
IGtleVBhdGgpOworICAgIHN0YXRpYyBSZWY8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY3JlYXRlKEFu
aW1hdGlvblR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCk7CiAKICAgICB2aXJ0dWFsIH5QbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvblJl
bW90ZS5tbQppbmRleCA3Mzk0ZDBiLi5hOWM5NGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlLm1tCkBAIC0yODksOSArMjg5LDkgQEAgYm9vbCBQbGF0Zm9ybUNBQW5pbWF0aW9u
UmVtb3RlOjpQcm9wZXJ0aWVzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KICAgICAKLVBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6Y3JlYXRlKFBsYXRmb3JtQ0FBbmltYXRpb246
OkFuaW1hdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoKQorUmVmPFBsYXRmb3Jt
Q0FBbmltYXRpb24+IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNyZWF0ZShQbGF0Zm9ybUNB
QW5pbWF0aW9uOjpBbmltYXRpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUodHlwZSwg
a2V5UGF0aCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGUodHlwZSwga2V5UGF0aCkpOwogfQogCiBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRp
b24+IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OmNvcHkoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDk2Mzc4ZmEuLjFjZWRkZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgog
CiAgICAgY2xhc3MgQmFja2luZ1N0b3JlRmx1c2hlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxCYWNraW5nU3RvcmVGbHVzaGVyPiB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxCYWNraW5nU3RvcmVGbHVzaGVyPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uKiwg
c3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+LCBWZWN0b3I8UmV0YWluUHRyPENH
Q29udGV4dFJlZj4+KTsKKyAgICAgICAgc3RhdGljIFJlZjxCYWNraW5nU3RvcmVGbHVzaGVyPiBj
cmVhdGUoSVBDOjpDb25uZWN0aW9uKiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29k
ZXI+LCBWZWN0b3I8UmV0YWluUHRyPENHQ29udGV4dFJlZj4+KTsKIAogICAgICAgICB2b2lkIGZs
dXNoKCk7CiAgICAgICAgIGJvb2wgaGFzRmx1c2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzRmx1
c2hlZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggZGE3YTMy
Yy4uZDIxOTMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC00
NjYsOSArNDY2LDkgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFya0xheWVy
c1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCkKICAgICByZXR1cm4gbV9yZW1vdGVMYXll
clRyZWVDb250ZXh0LT5iYWNraW5nU3RvcmVDb2xsZWN0aW9uKCkubWFya0FsbEJhY2tpbmdTdG9y
ZVZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCk7CiB9CiAKLVBhc3NSZWZQdHI8UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXI+IFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2Rl
ciwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRSZWY+PiBjb250ZXh0c1RvRmx1c2gpCitSZWY8
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXI+IFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUoSVBDOjpDb25u
ZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4g
ZW5jb2RlciwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRSZWY+PiBjb250ZXh0c1RvRmx1c2gp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6
QmFja2luZ1N0b3JlRmx1c2hlcihjb25uZWN0aW9uLCBXVEY6Om1vdmUoZW5jb2RlciksIFdURjo6
bW92ZShjb250ZXh0c1RvRmx1c2gpKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXIoY29ubmVjdGlvbiwgV1RG
Ojptb3ZlKGVuY29kZXIpLCBXVEY6Om1vdmUoY29udGV4dHNUb0ZsdXNoKSkpOwogfQogCiBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6QmFja2luZ1N0b3Jl
Rmx1c2hlcihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
Ok1lc3NhZ2VFbmNvZGVyPiBlbmNvZGVyLCBWZWN0b3I8UmV0YWluUHRyPENHQ29udGV4dFJlZj4+
IGNvbnRleHRzVG9GbHVzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCA2ZjIzYThmLi4yMTA2YzJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKIAogY2xh
c3MgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI+LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBjcmVh
dGUoUGFzc1JlZlB0cjxXZWJQYWdlPik7CisgICAgc3RhdGljIFJlZjxXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJQYWdlPik7CiAgICAgdmlydHVhbCB+V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpOwogICAgIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubW0KaW5kZXggNjYxODhlNC4uNTM0MjQ2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tCkBAIC0xNTEsOSArMTUxLDkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VD
b250ZXh0OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXIKIAogI3ByYWdt
YSBtYXJrIC0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcgogCi1QYXNzUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmNyZWF0ZShQYXNz
UmVmUHRyPFdlYlBhZ2U+IHBhZ2UpCitSZWY8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcj4gV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFBhc3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIocGFn
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
cGFnZSkpOwogfQogCiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKFBhc3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>