<?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>139919</bug_id>
          
          <creation_ts>2014-12-23 15:03:01 -0800</creation_ts>
          <short_desc>[GTK] Build fix after r177692</short_desc>
          <delta_ts>2014-12-23 23:47:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>139909</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="ChangSeok Oh">changseok</reporter>
          <assigned_to name="ChangSeok Oh">changseok</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1057662</commentid>
    <comment_count>0</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2014-12-23 15:03:01 -0800</bug_when>
    <thetext>Some file and class names have been changed after this brave change. http://trac.webkit.org/changeset/177692
- Major renames:
    WebContext -&gt; WebProcessPool
    WebContextConfiguration -&gt; WebProcessPoolConfiguration
    API::ContextConfiguration -&gt; API::ProcessPoolConfiguration</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057667</commentid>
    <comment_count>1</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2014-12-23 15:13:44 -0800</bug_when>
    <thetext>Apple guys seem to be rushing upstream as a x-mas present. :P
http://trac.webkit.org/changeset/177699 also affects the build break.
- Renames ImmutableDictionary -&gt; API::Dictionary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057745</commentid>
    <comment_count>2</comment_count>
      <attachid>243725</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2014-12-23 20:10:03 -0800</bug_when>
    <thetext>Created attachment 243725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057747</commentid>
    <comment_count>3</comment_count>
      <attachid>243726</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2014-12-23 20:44:32 -0800</bug_when>
    <thetext>Created attachment 243726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057748</commentid>
    <comment_count>4</comment_count>
      <attachid>243726</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-12-23 20:50:38 -0800</bug_when>
    <thetext>Comment on attachment 243726
Patch

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057751</commentid>
    <comment_count>5</comment_count>
      <attachid>243726</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-23 21:34:44 -0800</bug_when>
    <thetext>Comment on attachment 243726
Patch

Clearing flags on attachment: 243726

Committed r177721: &lt;http://trac.webkit.org/changeset/177721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057752</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-23 21:34:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243725</attachid>
            <date>2014-12-23 20:10:03 -0800</date>
            <delta_ts>2014-12-23 20:44:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139919-20141224131003.patch</filename>
            <type>text/plain</type>
            <size>65560</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3Njk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTcyZWQyNDU1ZTRiZGVi
ZmQ0NTM3MjZmN2QxNDY1ZWU5NTA3YjFjMS4uOGRiZTc5Mzk0Y2QxYzEzZTdhNTc0MTEzMDM5NDQ2
ZmM3M2U4MzljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDE0LTEyLTIzICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2sub2hAY29sbGFib3JhLmNvbT4KKworICAgICAgICBbR1RLXSBC
dWlsZCBmaXggYWZ0ZXIgcjE3NzY5MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM5OTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcmVzc2VzIGJ1aWxkIGZhaWx1cmVzIGludHJv
ZHVjZWQgYWZ0ZXIgcjE3NzY5Mi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9h
ZENsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1p
c3Npb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKHdlYmtpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdENy
ZWF0ZSk6CisgICAgICAgICh3ZWJraXRfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfZ2V0X3RleHRf
ZmllbGRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lv
blJlcXVlc3RQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuY3BwOgorICAgICAgICAoZGlkUmVjZWl2ZVdlYlZpZXdNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZWN1cml0eU1h
bmFnZXIuY3BwOgorICAgICAgICAocmVnaXN0ZXJTZWN1cml0eVBvbGljeUZvclVSSVNjaGVtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAg
ICAgICh3ZWJraXRXZWJDb250ZXh0Q29uc3RydWN0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl9j
b250ZXh0X3ByZWZldGNoX2Rucyk6CisgICAgICAgICh3ZWJraXRXZWJDb250ZXh0R2V0Q29udGV4
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNl
Q3JlYXRlKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2ViUGFnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2luZG93UHJvcGVydGllcy5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9j
b2xNYW5hZ2VyUHJveHlTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHk6OkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHk6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OjpzdG9wTG9hZGluZyk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVBy
b3RvY29sUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb3VwQ3VzdG9t
UHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVz
dE1hbmFnZXI6OnByb2Nlc3NQb29sRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJv
dG9jb2wpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFu
YWdlcjo6dW5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
OjpkaWRMb2FkRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyOjpkaWRGYWlsV2l0aEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU291
cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6Y29udGV4dERl
c3Ryb3llZCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJv
dG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViVGV4dENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0Ojp1cGRh
dGVTdGF0ZUZvckFsbENvbnRleHRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkluc3Bl
Y3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQ
cm9jZXNzUG9vbEd0ay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYkNvbnRleHRHdGsuY3BwLgorICAgICAgICAoV2ViS2l0Ojppbml0SW5zcGVjdG9yU2Vy
dmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEluZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtRGVmYXVsdEljb25EYXRhYmFzZVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VE
aXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZh
dWx0RGlza0NhY2hlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtRGVmYXVsdENvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2V0SWdub3JlVExTRXJyb3JzKToKKyAgICAgICAgKiBVSVByb2Nl
c3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29va2llTWFuYWdlclByb3h5OjpzZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0
V2ViRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYkV4dGVuc2lvbkRpZFJlY2VpdmVN
ZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViUGFnZS5jcHA6CisgICAgICAgIChkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6Cisg
ICAgICAgICh3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChkaWRSZWNlaXZlUmVz
cG9uc2VGb3JSZXNvdXJjZSk6CisgICAgICAgIChkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJl
c291cmNlKToKKyAgICAgICAgKGRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChk
aWRGYWlsTG9hZEZvclJlc291cmNlKToKKyAgICAgICAgKHdlYmtpdFdlYlBhZ2VEaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFdlYlBhZ2VQcml2YXRlLmg6CisKIDIwMTQtMTItMjMgIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW5hbWUgSW1tdXRhYmxlRGljdGlvbmFyeSB0byBBUEk6OkRp
Y3Rpb25hcnkgYW5kIG1lcmdlIE11dGFibGVEaWN0aW9uYXJ5IGludG8gaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKaW5kZXggN2YyYTZmN2NjYzc4ZDY3NTgyZGVkNmEzMGE1YTg5YzRmZTdiNTA1ZS4uNDMx
NDhjNWIyN2QwM2YxM2YzNDc3NDY0YjgyMTlmZjQwMmY1YWQ0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKQEAgLTE4Niw2ICsxODYsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBTaGFyZWQv
QVBJL0FQSUFycmF5LmNwcAogICAgIFNoYXJlZC9BUEkvQVBJRGF0YS5jcHAKKyAgICBTaGFyZWQv
QVBJL0FQSURpY3Rpb25hcnkuY3BwCiAgICAgU2hhcmVkL0FQSS9BUElFcnJvci5jcHAKICAgICBT
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcAogICAgIFNoYXJlZC9BUEkvQVBJR2VvbWV0cnku
Y3BwCkBAIC0yMDUsOSArMjA2LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKICAgICBT
aGFyZWQvRm9udEluZm8uY3BwCi0gICAgU2hhcmVkL0ltbXV0YWJsZURpY3Rpb25hcnkuY3BwCiAg
ICAgU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuY3BwCi0gICAgU2hhcmVkL011dGFibGVEaWN0aW9u
YXJ5LmNwcAogICAgIFNoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAKICAgICBTaGFyZWQv
T3JpZ2luQW5kRGF0YWJhc2VzLmNwcAogICAgIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEu
Y3BwCkBAIC0yOTYsOCArMjk1LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlTm9uZS5jcHAKICAgICBTaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAKIAotICAgIFVJUHJvY2Vzcy9B
UElDb250ZXh0Q29uZmlndXJhdGlvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJTmF2aWdhdGlvbkRh
dGEuY3BwCisgICAgVUlQcm9jZXNzL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKICAg
ICBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNw
cAogICAgIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmNwcApAQCAtMzIwLDcgKzMxOSw2IEBA
IHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNw
cAogICAgIFVJUHJvY2Vzcy9XZWJDb2xvclBpY2tlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKLSAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKICAg
ICBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4
dENvbm5lY3Rpb25DbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAKQEAgLTM1MSw2ICszNDksNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAg
ICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKKyAgICBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKICAgICBV
SVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViVGV4dENoZWNrZXIuY3BwCkBAIC02MDAsNyArNTk5LDYgQEAgc2V0KFdlYktpdDJfTUVTU0FH
RVNfSU5fRklMRVMKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5tZXNzYWdlcy5p
bgogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCiAgICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KLSAg
ICBVSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtNjEwLDYgKzYwOCw3IEBAIHNldChXZWJLaXQyX01FU1NBR0VT
X0lOX0ZJTEVTCiAgICAgVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KICAgICBVSVByb2Nlc3MvV2ViVmlicmF0aW9uUHJveHkubWVzc2FnZXMuaW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZWRjYzhlNjRjYzcyNjFhNzUzNDVmNzI3OGUx
OGNmZTcyNWNlYmNmZi4uYjg2MjA1YzYwMzU1YzRhYzMxMTUzZDZhMDMxZjk2MTMxZDNiMWM3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTI2OCw3ICsyNjgsNiBAQCBsaXN0KEFQUEVO
RCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNw
cAogICAgIFVJUHJvY2Vzcy9ndGsvUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3cuY3BwCiAgICAg
VUlQcm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAKLSAgICBVSVByb2Nlc3MvZ3RrL1dlYkNv
bnRleHRHdGsuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0TWVudVByb3h5R3RrLmNw
cAogICAgIFVJUHJvY2Vzcy9ndGsvV2ViRnVsbFNjcmVlbkNsaWVudEd0ay5jcHAKICAgICBVSVBy
b2Nlc3MvZ3RrL1dlYkluc3BlY3RvckNsaWVudEd0ay5jcHAKQEAgLTI3NiwxMSArMjc1LDEyIEBA
IGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9ndGsvV2ViUGFnZVBy
b3h5R3RrLmNwcAogICAgIFVJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlHdGsuY3BwCiAg
ICAgVUlQcm9jZXNzL2d0ay9XZWJQcmVmZXJlbmNlc0d0ay5jcHAKKyAgICBVSVByb2Nlc3MvZ3Rr
L1dlYlByb2Nlc3NQb29sR3RrLmNwcAogICAgIFVJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Byb3h5
R3RrLmNwcAogCiAgICAgVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5
U291cC5jcHAKLSAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKICAgICBVSVBy
b2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vzcy9z
b3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKIAogICAgIFdlYlByb2Nlc3MvQ29va2llcy9zb3Vw
L1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAgIFdlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dl
YktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggNTUwODhlZGU2NjQ5NjlmZDBl
YThjMmIwYTNkMGNjYmQ4ZDkxNzU0YS4uNmJmODE3NTA5YjMxMjBkNzExNjQxMzBmMjlhNDBlZTgx
NzViZTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1Bh
Z2VDbGllbnRJbXBsLmNwcApAQCAtMzIsMTIgKzMyLDEyIEBACiAjaW5jbHVkZSAiTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRl
ICJXZWJDb250ZXh0TWVudVByb3h5R3RrLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5Lmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHlHdGsuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25s
b2FkQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERv
d25sb2FkQ2xpZW50LmNwcAppbmRleCAwZjRjZTg2OGMxMzkwOTdiODEzNTM2NTQ4NTM5M2Q1ZDIz
NDRmNjQ3Li5kZjdjNDdmY2VkNWRlZjIyMTg0NmNhODgwODI3Mzg3OTExZDU0ZGNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxv
YWRDbGllbnQuY3BwCkBAIC0yMSwxMCArMjEsMTAgQEAKICNpbmNsdWRlICJXZWJLaXREb3dubG9h
ZENsaWVudC5oIgogCiAjaW5jbHVkZSAiQVBJVVJMUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJXZWJD
b250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViS2l0RG93bmxvYWRQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYktpdC9X
S1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcAppbmRleCA4
NTE5YTJjYjZhNmE4ZTAyZGY1ZTRkZDMyMDc0MGE3ZTY3ZTBiMDA5Li44NGZkODBjNTMzOWViMDc5
YmY5YTBlYTliYjU1YWJmYWY3MDZmMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5j
cHAKQEAgLTIwLDggKzIwLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJL
aXRGb3JtU3VibWlzc2lvblJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIkFQSURpY3Rpb25hcnkuaCIK
ICNpbmNsdWRlICJBUElTdHJpbmcuaCIKLSNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5Lmgi
CiAjaW5jbHVkZSAiV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9nb2Jq
ZWN0L0dSZWZQdHIuaD4KQEAgLTQ1LDcgKzQ1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
ICAqLwogCiBzdHJ1Y3QgX1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdFByaXZhdGUgewotICAg
IFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiB3ZWJWYWx1ZXM7CisgICAgUmVmUHRyPEFQSTo6
RGljdGlvbmFyeT4gd2ViVmFsdWVzOwogICAgIFJlZlB0cjxXZWJGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUHJveHk+IGxpc3RlbmVyOwogICAgIEdSZWZQdHI8R0hhc2hUYWJsZT4gdmFsdWVzOwogICAg
IGJvb2wgaGFuZGxlZFJlcXVlc3Q7CkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdEZvcm1TdWJtaXNzaW9u
UmVxdWVzCiAgICAgb2JqZWN0Q2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRGb3JtU3VibWlzc2lvblJl
cXVlc3REaXNwb3NlOwogfQogCi1XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QqIHdlYmtpdEZv
cm1TdWJtaXNzaW9uUmVxdWVzdENyZWF0ZShJbW11dGFibGVEaWN0aW9uYXJ5KiB2YWx1ZXMsIFdl
YkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSogbGlzdGVuZXIpCitXZWJLaXRGb3JtU3VibWlz
c2lvblJlcXVlc3QqIHdlYmtpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdENyZWF0ZShBUEk6OkRpY3Rp
b25hcnkqIHZhbHVlcywgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5KiBsaXN0ZW5lcikK
IHsKICAgICBXZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfRk9S
TV9TVUJNSVNTSU9OX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0ZPUk1fU1VCTUlT
U0lPTl9SRVFVRVNULCBOVUxMKSk7CiAgICAgcmVxdWVzdC0+cHJpdi0+d2ViVmFsdWVzID0gdmFs
dWVzOwpAQCAtMTAwLDkgKzEwMCw5IEBAIEdIYXNoVGFibGUqIHdlYmtpdF9mb3JtX3N1Ym1pc3Np
b25fcmVxdWVzdF9nZXRfdGV4dF9maWVsZHMoV2ViS2l0Rm9ybVN1Ym1pc3Npb25SCiAKICAgICBy
ZXF1ZXN0LT5wcml2LT52YWx1ZXMgPSBhZG9wdEdSZWYoZ19oYXNoX3RhYmxlX25ld19mdWxsKGdf
c3RyX2hhc2gsIGdfc3RyX2VxdWFsLCBnX2ZyZWUsIGdfZnJlZSkpOwogCi0gICAgY29uc3QgSW1t
dXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSYgbWFwID0gcmVxdWVzdC0+cHJpdi0+d2ViVmFsdWVz
LT5tYXAoKTsKLSAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlOjpjb25zdF9pdGVyYXRv
ciBlbmQgPSBtYXAuZW5kKCk7Ci0gICAgZm9yIChJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBl
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAg
ICBjb25zdCBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUmIG1hcCA9IHJlcXVlc3QtPnByaXYtPndl
YlZhbHVlcy0+bWFwKCk7CisgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBtYXAuZW5kKCk7CisgICAgZm9yIChBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGU6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAg
ICAgICBBUEk6OlN0cmluZyogdmFsdWUgPSBzdGF0aWNfY2FzdDxBUEk6OlN0cmluZyo+KGl0LT52
YWx1ZS5nZXQoKSk7CiAgICAgICAgIGdfaGFzaF90YWJsZV9pbnNlcnQocmVxdWVzdC0+cHJpdi0+
dmFsdWVzLmdldCgpLCBnX3N0cmR1cChpdC0+a2V5LnV0ZjgoKS5kYXRhKCkpLCBnX3N0cmR1cCh2
YWx1ZS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJt
aXNzaW9uUmVxdWVzdFByaXZhdGUuaAppbmRleCA5ZmU0NzUxZDIwMzU3MmVhNGQyZjAyNjFhMzNi
MDQ1NDg4NWUwZTYzLi4xZDJiNDk5ZjY4YmM3YmJkNTMwZjEyMTk1N2VkMmM2NzdmMTA1OTBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3Vi
bWlzc2lvblJlcXVlc3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCkBAIC0yMyw2ICsyMyw2
IEBACiAjaW5jbHVkZSAiV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
V2ViS2l0UHJpdmF0ZS5oIgogCi1XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QqIHdlYmtpdEZv
cm1TdWJtaXNzaW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6OkltbXV0YWJsZURpY3Rpb25hcnkqIHZh
bHVlcywgV2ViS2l0OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkqKTsKK1dlYktpdEZv
cm1TdWJtaXNzaW9uUmVxdWVzdCogd2Via2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0Q3JlYXRlKEFQ
STo6RGljdGlvbmFyeSogdmFsdWVzLCBXZWJLaXQ6OldlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQ
cm94eSopOwogCiAjZW5kaWYgLy8gV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0UHJpdmF0ZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKaW5kZXggYTE1M2E2ODIxOGIzNWI5ZWQyYjgz
MWI3MzJmNzMwYzFlMDJmNmM5Ni4uYjIxMzRlYmVlNTQwNmNjMWQzNWJjYmMyMTRmODA1NTVlOGY0
NGNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMzIsNyArMzIsNyBAQAog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0
aWMgdm9pZCBkaWRSZWNlaXZlV2ViVmlld01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hhciogbWVzc2FnZU5hbWUsIEltbXV0YWJsZURpY3Rp
b25hcnkmIG1lc3NhZ2UpCitzdGF0aWMgdm9pZCBkaWRSZWNlaXZlV2ViVmlld01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hhciogbWVzc2Fn
ZU5hbWUsIEFQSTo6RGljdGlvbmFyeSYgbWVzc2FnZSkKIHsKICAgICBpZiAoZ19zdHJfZXF1YWwo
bWVzc2FnZU5hbWUsICJEaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSIpKSB7CiAgICAgICAgIFdl
YkZyYW1lUHJveHkqIGZyYW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVQcm94eSo+KG1lc3NhZ2Uu
Z2V0KFN0cmluZzo6ZnJvbVVURjgoIkZyYW1lIikpKTsKQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0
aWMgdm9pZCBkaWRSZWNlaXZlV2ViVmlld01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgYwogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBl
UmVmIG1lc3NhZ2VCb2R5LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIEFTU0VSVChX
S0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOwotICAg
IEltbXV0YWJsZURpY3Rpb25hcnkmIG1lc3NhZ2UgPSAqdG9JbXBsKHN0YXRpY19jYXN0PFdLRGlj
dGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpKTsKKyAgICBBUEk6OkRpY3Rpb25hcnkmIG1lc3NhZ2Ug
PSAqdG9JbXBsKHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpKTsKIAog
ICAgIENTdHJpbmcgbWVzc2FnZU5hbWVDU3RyaW5nID0gdG9JbXBsKG1lc3NhZ2VOYW1lKS0+c3Ry
aW5nKCkudXRmOCgpOwogICAgIGNvbnN0IGNoYXIqIG1lc3NhZ2VOYW1lVVRGOCA9IG1lc3NhZ2VO
YW1lQ1N0cmluZy5kYXRhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRTZWN1cml0eU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmNwcAppbmRleCBhZGQ1NWQxYjYwN2Nj
MDkzYmY1OTZmNWJjY2Y5YmYwNGFhN2Q4M2RmLi4wYTFjYTg2ODE0OTU0ZGMwYmY3OTk0NzcwN2I1
YzY0NjYwNWFiYjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRTZWN1cml0eU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5TWFuYWdlci5jcHAKQEAgLTIwLDkgKzIwLDkgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRTZWN1cml0eU1hbmFnZXIuaCIKIAot
I2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJLaXRTZWN1cml0eU1hbmFnZXJQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTY5LDcgKzY5LDcgQEAgV2ViS2l0U2VjdXJp
dHlNYW5hZ2VyKiB3ZWJraXRTZWN1cml0eU1hbmFnZXJDcmVhdGUoV2ViS2l0V2ViQ29udGV4dCog
d2ViQ29udGV4dCkKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyU2VjdXJpdHlQb2xpY3lGb3JVUklTY2hl
bWUoV2ViS2l0U2VjdXJpdHlNYW5hZ2VyKiBtYW5hZ2VyLCBjb25zdCBjaGFyKiBzY2hlbWUsIFNl
Y3VyaXR5UG9saWN5IHBvbGljeSkKIHsKICAgICBTdHJpbmcgdXJsU2NoZW1lID0gU3RyaW5nOjpm
cm9tVVRGOChzY2hlbWUpOwotICAgIFdlYkNvbnRleHQqIHdlYkNvbnRleHQgPSB3ZWJraXRXZWJD
b250ZXh0R2V0Q29udGV4dChtYW5hZ2VyLT5wcml2LT53ZWJDb250ZXh0KTsKKyAgICBXZWJQcm9j
ZXNzUG9vbCogd2ViQ29udGV4dCA9IHdlYmtpdFdlYkNvbnRleHRHZXRDb250ZXh0KG1hbmFnZXIt
PnByaXYtPndlYkNvbnRleHQpOwogCiAgICAgLy8gV2Uga2VlcCB0aGUgV2ViQ29yZTo6U2NoZW1l
UmVnaXN0cnkgb2YgdGhlIFVJIHByb2Nlc3MgaW4gc3luYyB3aXRoIHRoZQogICAgIC8vIHdlYiBw
cm9jZXNzIG9uZSwgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIHRoZSBTZWN1cml0eVBvbGljeSBmb3IK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29u
dGV4dC5jcHAKaW5kZXggZWQ0MTZlNDVhMjRiYjUxNjk1ZTA4MzhmOTBhOWQ3Y2RlMTU0OGRjZS4u
MGNhMmQ2YzRjMzJlNDAzNTBlZTZiYzIyZDE3NjcyNmFmMmRkMzVkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAg
LTE1Myw3ICsxNTMsNyBAQCB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8V2ViS2l0VVJJ
U2NoZW1lSGFuZGxlcj4gPiBVUklTY2hlbWVIYW5kbGVyTWFwOwogdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBHUmVmUHRyPFdlYktpdFVSSVNjaGVtZVJlcXVlc3Q+ID4gVVJJU2NoZW1lUmVxdWVz
dE1hcDsKIAogc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdl
YkNvbnRleHQ+IGNvbnRleHQ7CisgICAgUmVmUHRyPFdlYlByb2Nlc3NQb29sPiBjb250ZXh0Owog
ICAgIGJvb2wgY2xpZW50c0RldGFjaGVkOwogCiAgICAgR1JlZlB0cjxXZWJLaXRDb29raWVNYW5h
Z2VyPiBjb29raWVNYW5hZ2VyOwpAQCAtMjU3LDE1ICsyNTcsMTUgQEAgc3RhdGljIHZvaWQgd2Vi
a2l0V2ViQ29udGV4dENvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICBHX09CSkVDVF9D
TEFTUyh3ZWJraXRfd2ViX2NvbnRleHRfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQob2JqZWN0
KTsKIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gYnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxlbmFt
ZShpbmplY3RlZEJ1bmRsZURpcmVjdG9yeSgpLCAibGlid2Via2l0Mmd0a2luamVjdGVkYnVuZGxl
LnNvIiwgbnVsbHB0cikpOwotICAgIFdlYkNvbnRleHRDb25maWd1cmF0aW9uIHdlYkNvbnRleHRD
b25maWd1cmF0aW9uOworICAgIFdlYlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiB3ZWJDb250ZXh0
Q29uZmlndXJhdGlvbjsKICAgICB3ZWJDb250ZXh0Q29uZmlndXJhdGlvbi5pbmplY3RlZEJ1bmRs
ZVBhdGggPSBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGJ1bmRsZUZpbGVuYW1lLmdldCgpKTsK
LSAgICBXZWJDb250ZXh0OjphcHBseVBsYXRmb3JtU3BlY2lmaWNDb25maWd1cmF0aW9uRGVmYXVs
dHMod2ViQ29udGV4dENvbmZpZ3VyYXRpb24pOworICAgIFdlYlByb2Nlc3NQb29sOjphcHBseVBs
YXRmb3JtU3BlY2lmaWNDb25maWd1cmF0aW9uRGVmYXVsdHMod2ViQ29udGV4dENvbmZpZ3VyYXRp
b24pOwogICAgIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQgPSBXRUJLSVRfV0VCX0NPTlRF
WFQob2JqZWN0KTsKICAgICBXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSogcHJpdiA9IHdlYkNvbnRl
eHQtPnByaXY7CiAgICAgaWYgKCFwcml2LT5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkuaXNOdWxsKCkp
CiAgICAgICAgIHdlYkNvbnRleHRDb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZURpcmVjdG9yeSA9
IFdlYkNvcmU6OmZpbGVuYW1lVG9TdHJpbmcocHJpdi0+bG9jYWxTdG9yYWdlRGlyZWN0b3J5LmRh
dGEoKSk7CiAKLSAgICBwcml2LT5jb250ZXh0ID0gV2ViQ29udGV4dDo6Y3JlYXRlKFdURjo6bW92
ZSh3ZWJDb250ZXh0Q29uZmlndXJhdGlvbikpOworICAgIHByaXYtPmNvbnRleHQgPSBXZWJQcm9j
ZXNzUG9vbDo6Y3JlYXRlKFdURjo6bW92ZSh3ZWJDb250ZXh0Q29uZmlndXJhdGlvbikpOwogCiAg
ICAgcHJpdi0+cmVxdWVzdE1hbmFnZXIgPSBwcml2LT5jb250ZXh0LT5zdXBwbGVtZW50PFdlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpOwogICAgIHByaXYtPmNvbnRleHQtPnNl
dENhY2hlTW9kZWwoQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsKQEAgLTEwMDMsOSArMTAw
Myw5IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3ByZWZldGNoX2RucyhXZWJLaXRXZWJDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBob3N0CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwoaG9zdG5h
bWUpOwogCi0gICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOworICAgIEFQ
STo6RGljdGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6
ZnJvbVVURjgoIkhvc3RuYW1lIiksIEFQSTo6U3RyaW5nOjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRG
OChob3N0bmFtZSkpKTsKLSAgICBjb250ZXh0LT5wcml2LT5jb250ZXh0LT5wb3N0TWVzc2FnZVRv
SW5qZWN0ZWRCdW5kbGUoU3RyaW5nOjpmcm9tVVRGOCgiUHJlZmV0Y2hETlMiKSwgSW1tdXRhYmxl
RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIGNvbnRl
eHQtPnByaXYtPmNvbnRleHQtPnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShTdHJpbmc6OmZy
b21VVEY4KCJQcmVmZXRjaEROUyIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUo
bWVzc2FnZSkpLmdldCgpKTsKIH0KIAogLyoqCkBAIC0xMTI0LDcgKzExMjQsNyBAQCBHVmFyaWFu
dCogd2Via2l0V2ViQ29udGV4dEluaXRpYWxpemVXZWJFeHRlbnNpb25zKFdlYktpdFdlYkNvbnRl
eHQqIGNvbnRleHQpCiAgICAgICAgIGNvbnRleHQtPnByaXYtPndlYkV4dGVuc2lvbnNJbml0aWFs
aXphdGlvblVzZXJEYXRhLmdldCgpKTsKIH0KIAotV2ViQ29udGV4dCogd2Via2l0V2ViQ29udGV4
dEdldENvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKK1dlYlByb2Nlc3NQb29sKiB3
ZWJraXRXZWJDb250ZXh0R2V0Q29udGV4dChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0KQogewog
ICAgIGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0
UHJpdmF0ZS5oCmluZGV4IDQ3OTE2YzBkZDgzMzkzODFhMTYxMDM1M2FmYzUyNDUxZTMxNmViZjYu
LjZlYTdmMmFhZjIzYzUwMDJmODkzZDRkZDc5MDAxNWI3OGI2M2VjNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUuaApAQCAtMjcsMTMgKzI3LDEzIEBACiAjZGVmaW5lIFdlYktpdFdlYkNvbnRleHRQcml2
YXRlX2gKIAogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVzZXJDb250
ZW50TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyLmgiCiAKLVdlYktpdDo6V2ViQ29udGV4dCogd2Via2l0V2ViQ29udGV4dEdldENvbnRl
eHQoV2ViS2l0V2ViQ29udGV4dCopOworV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCogd2Via2l0V2Vi
Q29udGV4dEdldENvbnRleHQoV2ViS2l0V2ViQ29udGV4dCopOwogV2ViS2l0RG93bmxvYWQqIHdl
YmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKFdlYktpdDo6RG93bmxvYWRQcm94eSop
OwogV2ViS2l0RG93bmxvYWQqIHdlYmtpdFdlYkNvbnRleHRTdGFydERvd25sb2FkKFdlYktpdFdl
YkNvbnRleHQqLCBjb25zdCBjaGFyKiB1cmksIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CiB2b2lk
IHdlYmtpdFdlYkNvbnRleHRSZW1vdmVEb3dubG9hZChXZWJLaXQ6OkRvd25sb2FkUHJveHkqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHAKaW5kZXggMDFkOTVmOWVjMWRlOTg4MzY1YzI1YjBiYWMwMGYzNmJjYjA3NzY2Ny4uYzhiNjI2
NmU3ODgzNzQzYmUyYWMwNjdhNDM3ZWI5ZjM2MWM1ODcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTM0NzIsMTQgKzM0
NzIsMTQgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdFNuYXBzaG90UmVnaW9uIHIKIHsKICAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CiAKLSAgICBJbW11dGFibGVEaWN0aW9uYXJ5
OjpNYXBUeXBlIG1lc3NhZ2U7CisgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7
CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlU25hcHNob3RDYWxsYmFja0lEKCk7
CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiU25hcHNob3RPcHRpb25zIiksIEFQ
STo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHdlYktpdFNuYXBzaG90T3B0
aW9uc1RvU25hcHNob3RPcHRpb25zKG9wdGlvbnMpKSkpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmlu
Zzo6ZnJvbVVURjgoIlNuYXBzaG90UmVnaW9uIiksIEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KHRvU25hcHNob3RSZWdpb24ocmVnaW9uKSkpKTsKICAgICBtZXNzYWdl
LnNldChTdHJpbmc6OmZyb21VVEY4KCJDYWxsYmFja0lEIiksIEFQSTo6VUludDY0OjpjcmVhdGUo
Y2FsbGJhY2tJRCkpOwogCiAgICAgd2ViVmlldy0+cHJpdi0+c25hcHNob3RSZXN1bHRzTWFwLnNl
dChjYWxsYmFja0lELCBhZG9wdEdSZWYoZ190YXNrX25ldyh3ZWJWaWV3LCBjYW5jZWxsYWJsZSwg
Y2FsbGJhY2ssIHVzZXJEYXRhKSkpOwotICAgIGdldFBhZ2Uod2ViVmlldyktPnBvc3RNZXNzYWdl
VG9JbmplY3RlZEJ1bmRsZShTdHJpbmc6OmZyb21VVEY4KCJHZXRTbmFwc2hvdCIpLCBJbW11dGFi
bGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgZ2V0
UGFnZSh3ZWJWaWV3KS0+cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFN0cmluZzo6ZnJvbVVU
RjgoIkdldFNuYXBzaG90IiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNz
YWdlKSkuZ2V0KCkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCAwYmY3MGNmNDg3MWJlYjY0
NjlkZDc1YWQ4ZDZhMjZkNjg4MDllYzVkLi40YmE5ZTQ1MzY3YjFkMGE2M2M4N2U1ODQ1NDljNWIy
N2Y2YzIxYmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiUGFn
ZUNsaWVudEltcGwuaCIKICNpbmNsdWRlICJSZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5oIgog
I2luY2x1ZGUgIlZpZXdTdGF0ZS5oIgotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRl
ICJXZWJFdmVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuQ2xpZW50R3RrLmgi
CiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIKQEAgLTQ3LDYgKzQ2LDcgQEAKICNpbmNs
dWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCiAjaW5jbHVk
ZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nh
aXJvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVlUHRyR3RrLmg+CkBAIC0x
MDgyLDcgKzEwODIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfYmFzZV9jbGFzc19p
bml0KFdlYktpdFdlYlZpZXdCYXNlQ2xhc3MqIHdlYmtpdFdlYlZpZQogICAgIGNvbnRhaW5lckNs
YXNzLT5mb3JhbGwgPSB3ZWJraXRXZWJWaWV3QmFzZUNvbnRhaW5lckZvcmFsbDsKIH0KIAotV2Vi
S2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlKFdlYkNvbnRleHQqIGNvbnRl
eHQsIFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcywgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAs
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KiB1c2VyQ29udGVudENvbnRyb2xsZXIsIFdl
YlBhZ2VQcm94eSogcmVsYXRlZFBhZ2UpCitXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmll
d0Jhc2VDcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqIGNvbnRleHQsIFdlYlByZWZlcmVuY2VzKiBwcmVm
ZXJlbmNlcywgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAsIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5KiB1c2VyQ29udGVudENvbnRyb2xsZXIsIFdlYlBhZ2VQcm94eSogcmVsYXRlZFBhZ2Up
CiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlID0gV0VCS0lUX1dF
Ql9WSUVXX0JBU0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9WSUVXX0JBU0UsIE5VTEwp
KTsKICAgICB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2Uod2Via2l0V2ViVmlld0Jhc2Us
IGNvbnRleHQsIHByZWZlcmVuY2VzLCBwYWdlR3JvdXAsIHVzZXJDb250ZW50Q29udHJvbGxlciwg
cmVsYXRlZFBhZ2UpOwpAQCAtMTExOSw3ICsxMTE5LDcgQEAgc3RhdGljIHZvaWQgZGV2aWNlU2Nh
bGVGYWN0b3JDaGFuZ2VkKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSkKIH0K
ICNlbmRpZiAvLyBIQVZFKEdUS19TQ0FMRV9GQUNUT1IpCiAKLXZvaWQgd2Via2l0V2ViVmlld0Jh
c2VDcmVhdGVXZWJQYWdlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgV2Vi
Q29udGV4dCogY29udGV4dCwgV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBXZWJQYWdlR3Jv
dXAqIHBhZ2VHcm91cCwgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkqIHVzZXJDb250ZW50
Q29udHJvbGxlciwgV2ViUGFnZVByb3h5KiByZWxhdGVkUGFnZSkKK3ZvaWQgd2Via2l0V2ViVmll
d0Jhc2VDcmVhdGVXZWJQYWdlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwg
V2ViUHJvY2Vzc1Bvb2wqIGNvbnRleHQsIFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcywgV2Vi
UGFnZUdyb3VwKiBwYWdlR3JvdXAsIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KiB1c2Vy
Q29udGVudENvbnRyb2xsZXIsIFdlYlBhZ2VQcm94eSogcmVsYXRlZFBhZ2UpCiB7CiAgICAgV2Vi
S2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2Via2l0V2ViVmlld0Jhc2UtPnByaXY7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlLmgKaW5kZXggMTEyZTRjYmQ0NmI1NWVlMjVlMzA4Y2Y5MjY2NGYw
MjQzZGEwNTBiZS4uNjU1YTBiZTJhYWI1MzRkMDAyM2I4NGYwMzdjNGVhYzYwNjQ2ZmNmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jh
c2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld0Jhc2VQcml2YXRlLmgKQEAgLTM2LDEwICszNiwxMCBAQAogI2luY2x1ZGUgIldlYktp
dFdlYlZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAKLVdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZShXZWJLaXQ6OldlYkNvbnRleHQqLCBXZWJL
aXQ6OldlYlByZWZlcmVuY2VzKiwgV2ViS2l0OjpXZWJQYWdlR3JvdXAqLCBXZWJLaXQ6OldlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5KiwgV2ViS2l0OjpXZWJQYWdlUHJveHkqKTsKK1dlYktp
dFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZShXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sKiwgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyosIFdlYktpdDo6V2ViUGFnZUdyb3VwKiwgV2Vi
S2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSosIFdlYktpdDo6V2ViUGFnZVByb3h5
Kik7CiBHdGtJTUNvbnRleHQqIHdlYmtpdFdlYlZpZXdCYXNlR2V0SU1Db250ZXh0KFdlYktpdFdl
YlZpZXdCYXNlKik7CiBXZWJLaXQ6OldlYlBhZ2VQcm94eSogd2Via2l0V2ViVmlld0Jhc2VHZXRQ
YWdlKFdlYktpdFdlYlZpZXdCYXNlKik7Ci12b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2Vi
UGFnZShXZWJLaXRXZWJWaWV3QmFzZSosIFdlYktpdDo6V2ViQ29udGV4dCosIFdlYktpdDo6V2Vi
UHJlZmVyZW5jZXMqLCBXZWJLaXQ6OldlYlBhZ2VHcm91cCosIFdlYktpdDo6V2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHkqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSopOwordm9pZCB3ZWJraXRX
ZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2UoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sKiwgV2ViS2l0OjpXZWJQcmVmZXJlbmNlcyosIFdlYktpdDo6V2ViUGFnZUdyb3Vw
KiwgV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSosIFdlYktpdDo6V2ViUGFn
ZVByb3h5Kik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9vbHRpcFRleHQoV2ViS2l0V2Vi
Vmlld0Jhc2UqLCBjb25zdCBjaGFyKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9vbHRp
cEFyZWEoV2ViS2l0V2ViVmlld0Jhc2UqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlRm9yd2FyZE5leHRLZXlFdmVudChXZWJLaXRXZWJWaWV3QmFzZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2lu
ZG93UHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXaW5kb3dQcm9wZXJ0aWVzLmNwcAppbmRleCBiYWM4OGI1NzU4ZGI2YmY0MDNkMGVmYWU5YzEx
NTA0MmM0ZmZiOTdiLi41NGEwMzM4OGM0NjQzNzc0OGYwODhiNTYyMjgzMDg1MmQ1NGFhZjQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXaW5kb3dQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXaW5kb3dQcm9wZXJ0aWVzLmNwcApAQCAtMjAsOSArMjAsOSBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYktpdFdpbmRvd1Byb3BlcnRpZXMuaCIKIAorI2luY2x1ZGUgIkFQ
SURpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJBUElOdW1iZXIuaCIKICNpbmNsdWRlICJBUElVUkxS
ZXF1ZXN0LmgiCi0jaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIldl
YktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzUHJpdmF0ZS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xN
YW5hZ2VyUHJveHlTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1
c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5U291cC5jcHAKaW5k
ZXggZjhiZjJmMzE4ZGY2ZWY4MWZhMWU5YTM2ZmVkNjU2MWZjNjAzNzBmZS4uYjBiY2MxY2NiYTE1
OWRkM2FlOTczNDIzY2FjNzcxYWYyMmJjOWE0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHlTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvc291cC9DdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eVNvdXAuY3BwCkBA
IC0yMywxNSArMjMsMTUgQEAKICNpbmNsdWRlICJDaGlsZFByb2Nlc3NQcm94eS5oIgogI2luY2x1
ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiQ3VzdG9tUHJv
dG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OjpDdXN0
b21Qcm90b2NvbE1hbmFnZXJQcm94eShDaGlsZFByb2Nlc3NQcm94eSogY2hpbGRQcm9jZXNzUHJv
eHksIFdlYkNvbnRleHQmIHdlYkNvbnRleHQpCitDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTo6
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkoQ2hpbGRQcm9jZXNzUHJveHkqIGNoaWxkUHJvY2Vz
c1Byb3h5LCBXZWJQcm9jZXNzUG9vbCYgd2ViQ29udGV4dCkKICAgICA6IG1fY2hpbGRQcm9jZXNz
UHJveHkoY2hpbGRQcm9jZXNzUHJveHkpCi0gICAgLCBtX3dlYkNvbnRleHQod2ViQ29udGV4dCkK
KyAgICAsIG1fcHJvY2Vzc1Bvb2wod2ViQ29udGV4dCkKIHsKICAgICBBU1NFUlQobV9jaGlsZFBy
b2Nlc3NQcm94eSk7CiAgICAgbV9jaGlsZFByb2Nlc3NQcm94eS0+YWRkTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCAqdGhpcyk7CkBAIC0zOSwxMiArMzksMTIgQEAgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHk6OkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5KENoaWxkUHJvY2Vzc1Byb3h5KiBjaGlsZFAK
IAogdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTo6c3RhcnRMb2FkaW5nKHVpbnQ2NF90
IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKIHsKLSAgICBtX3dlYkNvbnRleHQuc3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xS
ZXF1ZXN0TWFuYWdlcj4oKS0+c3RhcnRMb2FkaW5nKGN1c3RvbVByb3RvY29sSUQsIHJlcXVlc3Qp
OworICAgIG1fcHJvY2Vzc1Bvb2wuc3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1
ZXN0TWFuYWdlcj4oKS0+c3RhcnRMb2FkaW5nKGN1c3RvbVByb3RvY29sSUQsIHJlcXVlc3QpOwog
fQogCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OjpzdG9wTG9hZGluZyh1aW50NjRf
dCBjdXN0b21Qcm90b2NvbElEKQogewotICAgIG1fd2ViQ29udGV4dC5zdXBwbGVtZW50PFdlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpLT5zdG9wTG9hZGluZyhjdXN0b21Qcm90
b2NvbElEKTsKKyAgICBtX3Byb2Nlc3NQb29sLnN1cHBsZW1lbnQ8V2ViU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXI+KCktPnN0b3BMb2FkaW5nKGN1c3RvbVByb3RvY29sSUQpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmNwcApp
bmRleCA1NjIxYTg2YjY3YThjOTM2ZWJlYzQ3MGI5MWY1MDg4ODYyMDg3YjYwLi4zYmExODdhNDcx
MjU4ZTNjYTY0MjM5OGVjNzY1MGIxN2ExMzJhMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAvV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1h
bmFnZXIuY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAKICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5j
bHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJDb250
ZXh0LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgpAQCAtNDAsMTIgKzQwLDEyIEBAIGNv
bnN0IGNoYXIqIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpzdXBwbGVtZW50
TmFtZSgpCiAgICAgcmV0dXJuICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlciI7
CiB9CiAKLVBhc3NSZWZQdHI8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IFdl
YlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUoV2ViQ29udGV4dCogY29u
dGV4dCkKK1Bhc3NSZWZQdHI8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IFdl
YlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wq
IGNvbnRleHQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlcihjb250ZXh0KSk7CiB9CiAKLVdlYlNvdXBDdXN0b21Qcm90b2NvbFJl
cXVlc3RNYW5hZ2VyOjpXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcihXZWJDb250
ZXh0KiBjb250ZXh0KQorV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OldlYlNv
dXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyKFdlYlByb2Nlc3NQb29sKiBjb250ZXh0KQog
ICAgIDogV2ViQ29udGV4dFN1cHBsZW1lbnQoY29udGV4dCkKIHsKIH0KQEAgLTYwLDcgKzYwLDcg
QEAgdm9pZCBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6aW5pdGlhbGl6ZUNs
aWVudChjb25zdCBXS1NvdXBDdXN0b21Qcm8KIH0KIAogLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQK
LXZvaWQgV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OmNvbnRleHREZXN0cm95
ZWQoKQordm9pZCBXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6cHJvY2Vzc1Bv
b2xEZXN0cm95ZWQoKQogewogfQogCkBAIC04MCwxMCArODAsMTAgQEAgdm9pZCBXZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcjo6ZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpCiAK
IHZvaWQgV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI6OnJlZ2lzdGVyU2NoZW1l
Rm9yQ3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7Ci0gICAgaWYgKCFjb250
ZXh0KCkpCisgICAgaWYgKCFwcm9jZXNzUG9vbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBj
b250ZXh0KCktPnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2woc2NoZW1lKTsKKyAgICBw
cm9jZXNzUG9vbCgpLT5yZWdpc3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sKHNjaGVtZSk7CiAK
ICAgICBBU1NFUlQoIW1fcmVnaXN0ZXJlZFNjaGVtZXMuY29udGFpbnMoc2NoZW1lKSk7CiAgICAg
bV9yZWdpc3RlcmVkU2NoZW1lcy5hcHBlbmQoc2NoZW1lKTsKQEAgLTkxLDEwICs5MSwxMCBAQCB2
b2lkIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpyZWdpc3RlclNjaGVtZUZv
ckN1c3RvbVByb3RvY29sKGNvbnN0CiAKIHZvaWQgV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVz
dE1hbmFnZXI6OnVucmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbChjb25zdCBTdHJpbmcm
IHNjaGVtZSkKIHsKLSAgICBpZiAoIWNvbnRleHQoKSkKKyAgICBpZiAoIXByb2Nlc3NQb29sKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnRleHQoKS0+dW5yZWdpc3RlclNjaGVtZUZvckN1
c3RvbVByb3RvY29sKHNjaGVtZSk7CisgICAgcHJvY2Vzc1Bvb2woKS0+dW5yZWdpc3RlclNjaGVt
ZUZvckN1c3RvbVByb3RvY29sKHNjaGVtZSk7CiAKICAgICBBU1NFUlQobV9yZWdpc3RlcmVkU2No
ZW1lcy5jb250YWlucyhzY2hlbWUpKTsKICAgICBtX3JlZ2lzdGVyZWRTY2hlbWVzLnJlbW92ZSht
X3JlZ2lzdGVyZWRTY2hlbWVzLmZpbmQoc2NoZW1lKSk7CkBAIC0xMTMsMzQgKzExMywzNCBAQCB2
b2lkIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpzdG9wTG9hZGluZyh1aW50
NjRfdCBjdXN0b21Qcm90b2NvbElEKQogCiB2b2lkIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVl
c3RNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UodWludDY0X3QgY3VzdG9tUHJvdG9jb2xJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgaWYgKCFj
b250ZXh0KCkpCisgICAgaWYgKCFwcm9jZXNzUG9vbCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBjb250ZXh0KCktPm5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZFJlY2VpdmVSZXNwb25zZShjdXN0b21Qcm90b2Nv
bElELCByZXNwb25zZSwgMCksIDApOworICAgIHByb2Nlc3NQb29sKCktPm5ldHdvcmtpbmdQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRp
ZFJlY2VpdmVSZXNwb25zZShjdXN0b21Qcm90b2NvbElELCByZXNwb25zZSwgMCksIDApOwogfQog
CiB2b2lkIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpkaWRMb2FkRGF0YSh1
aW50NjRfdCBjdXN0b21Qcm90b2NvbElELCBjb25zdCBBUEk6OkRhdGEqIGRhdGEpCiB7Ci0gICAg
aWYgKCFjb250ZXh0KCkpCisgICAgaWYgKCFwcm9jZXNzUG9vbCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBjb250ZXh0KCktPm5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZExvYWREYXRhKGN1c3RvbVByb3RvY29s
SUQsIGRhdGEtPmRhdGFSZWZlcmVuY2UoKSksIDApOworICAgIHByb2Nlc3NQb29sKCktPm5ldHdv
cmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1h
bmFnZXI6OkRpZExvYWREYXRhKGN1c3RvbVByb3RvY29sSUQsIGRhdGEtPmRhdGFSZWZlcmVuY2Uo
KSksIDApOwogfQogCiB2b2lkIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyOjpk
aWRGYWlsV2l0aEVycm9yKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIGlmICghY29udGV4dCgpKQorICAgIGlmICgh
cHJvY2Vzc1Bvb2woKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29udGV4dCgpLT5uZXR3b3Jr
aW5nUHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyOjpEaWRGYWlsV2l0aEVycm9yKGN1c3RvbVByb3RvY29sSUQsIGVycm9yKSwgMCk7CisgICAg
cHJvY2Vzc1Bvb2woKS0+bmV0d29ya2luZ1Byb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6RGlkRmFpbFdpdGhFcnJvcihjdXN0b21Qcm90b2Nv
bElELCBlcnJvciksIDApOwogfQogCiB2b2lkIFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyOjpkaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQpCiB7Ci0g
ICAgaWYgKCFjb250ZXh0KCkpCisgICAgaWYgKCFwcm9jZXNzUG9vbCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBjb250ZXh0KCktPm5ldHdvcmtpbmdQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZEZpbmlzaExvYWRpbmcoY3VzdG9t
UHJvdG9jb2xJRCksIDApOworICAgIHByb2Nlc3NQb29sKCktPm5ldHdvcmtpbmdQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6OkRpZEZpbmlz
aExvYWRpbmcoY3VzdG9tUHJvdG9jb2xJRCksIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9XZWJTb3Vw
Q3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oCmluZGV4IDJlMWI5ZmFjYjk3OWIzMGQzNjM0
YzZjZGIzMTc3MDQzNmZhNmY1YTAuLjRlNzc5N2ZhMjIyYmJjN2U5NWM2Yzc5NzRmZWI5YjE5M2Rl
ZTA2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3Rv
bVByb3RvY29scy9zb3VwL1dlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAv
V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaApAQCAtMzksMTMgKzM5LDEzIEBA
IGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBX
ZWJDb250ZXh0OworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAKIGNsYXNzIFdlYlNvdXBDdXN0b21Q
cm90b2NvbFJlcXVlc3RNYW5hZ2VyIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVj
dDo6VHlwZTo6U291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+LCBwdWJsaWMgV2ViQ29u
dGV4dFN1cHBsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVt
ZW50TmFtZSgpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU291cEN1c3RvbVByb3RvY29s
UmVxdWVzdE1hbmFnZXI+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+IGNyZWF0ZShXZWJQcm9jZXNz
UG9vbCopOwogICAgIHZpcnR1YWwgfldlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
KCk7CiAKICAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tTb3VwQ3VzdG9tUHJvdG9j
b2xSZXF1ZXN0TWFuYWdlckNsaWVudEJhc2UqKTsKQEAgLTY3LDEwICs2NywxMCBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgQVBJOjpPYmplY3Q6OmRlcmVmOwogCiBwcml2YXRlOgotICAgIFdlYlNvdXBD
dXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyKFdlYkNvbnRleHQqKTsKKyAgICBXZWJTb3VwQ3Vz
dG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcihXZWJQcm9jZXNzUG9vbCopOwogCiAgICAgLy8gV2Vi
Q29udGV4dFN1cHBsZW1lbnQKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzUG9vbERlc3Ryb3llZCgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5Kikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJUZXh0Q2hlY2tlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVGV4dENoZWNrZXIuY3BwCmluZGV4IDkz
NGM1ODk0MTU2NjEzMDZhMzJlMWJmY2M0NzRlYzUxMWFhODdkYWMuLmFmNDU5YTNiMDNlNWY1Yjgx
YWVjY2MwNGIwNGU4ZWNlN2IyODc2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJUZXh0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlRleHRDaGVja2VyLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXIuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtNTAsNyArNTAsNyBAQCB2b2lkIFdlYlRleHRDaGVja2VyOjpz
ZXRDbGllbnQoY29uc3QgV0tUZXh0Q2hlY2tlckNsaWVudEJhc2UqIGNsaWVudCkKIAogc3RhdGlj
IHZvaWQgdXBkYXRlU3RhdGVGb3JBbGxDb250ZXh0cygpCiB7Ci0gICAgY29uc3QgVmVjdG9yPFdl
YkNvbnRleHQqPiYgY29udGV4dHMgPSBXZWJDb250ZXh0OjphbGxDb250ZXh0cygpOworICAgIGNv
bnN0IFZlY3RvcjxXZWJQcm9jZXNzUG9vbCo+JiBjb250ZXh0cyA9IFdlYlByb2Nlc3NQb29sOjph
bGxQcm9jZXNzUG9vbHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbnRleHRzLnNp
emUoKTsgKytpKQogICAgICAgICBjb250ZXh0c1tpXS0+dGV4dENoZWNrZXJTdGF0ZUNoYW5nZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4
dEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjUxNjY2MThiOTAyZWI4YWEzZTEzZmFj
NzRkMzYyYjY0YzM1MjhiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dEd0ay5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4
dC5oIgotCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQ
cm94eS5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgotI2luY2x1ZGUgIldlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
LQotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NN
ZXNzYWdlcy5oIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdGF0aWMgdm9pZCBp
bml0SW5zcGVjdG9yU2VydmVyKCkKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKLSAg
ICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlmIChpbml0aWFsaXplZCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgIFN0cmluZyBz
ZXJ2ZXJBZGRyZXNzKGdfZ2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKTsKLQotICAg
IGlmICghc2VydmVyQWRkcmVzcy5pc051bGwoKSkgewotICAgICAgICBTdHJpbmcgYmluZEFkZHJl
c3MgPSAiMTI3LjAuMC4xIjsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgcG9ydCA9IDI5OTk7Ci0K
LSAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OwotICAgICAgICBzZXJ2ZXJBZGRyZXNzLnNw
bGl0KCc6JywgcmVzdWx0KTsKLQotICAgICAgICBpZiAocmVzdWx0LnNpemUoKSA9PSAyKSB7Ci0g
ICAgICAgICAgICBiaW5kQWRkcmVzcyA9IHJlc3VsdFswXTsKLSAgICAgICAgICAgIGJvb2wgb2sg
PSBmYWxzZTsKLSAgICAgICAgICAgIHBvcnQgPSByZXN1bHRbMV0udG9JbnQoJm9rKTsKLSAgICAg
ICAgICAgIGlmICghb2spIHsKLSAgICAgICAgICAgICAgICBwb3J0ID0gMjk5OTsKLSAgICAgICAg
ICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlIHRoZSBwb3J0LiBVc2UgMjk5OSBpbnN0
ZWFkLiIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIExPR19F
UlJPUigiQ291bGRuJ3QgcGFyc2UgJXMsIHdyb25nIGZvcm1hdD8gVXNlIDEyNy4wLjAuMToyOTk5
IGluc3RlYWQuIiwgc2VydmVyQWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKLQotICAgICAgICBpZiAo
IVdlYkluc3BlY3RvclNlcnZlcjo6c2hhcmVkKCkubGlzdGVuKGJpbmRBZGRyZXNzLCBwb3J0KSkK
LSAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQgbGlzdGVuaW5nIG9uOiBJUCBh
ZGRyZXNzPSVzLCBwb3J0PSVkLiIsIGJpbmRBZGRyZXNzLnV0ZjgoKS5kYXRhKCksIHBvcnQpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgTE9HKEluc3BlY3RvclNlcnZlciwgIlRvIHN0
YXJ0IGluc3BlY3RvciBzZXJ2ZXIgc2V0IFdFQktJVF9JTlNQRUNUT1JfU0VSVkVSIHRvIDEyNy4w
LjAuMToyOTk5IGZvciBleGFtcGxlLiIpOwotI2VuZGlmCi19Ci0KLVdURjo6U3RyaW5nIFdlYkNv
bnRleHQ6OnBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKSBjb25zdAot
ewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUo
Z19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndlYmtpdGd0ayIsICJhcHBsaWNhdGlvbnMiLCBudWxs
cHRyKSk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmZpbGVuYW1lVG9TdHJpbmcoY2FjaGVEaXJlY3Rv
cnkuZ2V0KCkpOwotfQotCi12b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKLSAgICBp
bml0SW5zcGVjdG9yU2VydmVyKCk7Ci0KLSAgICBpZiAoIXBhcmFtZXRlcnMudXJsU2NoZW1lc1Jl
Z2lzdGVyZWRBc0xvY2FsLmNvbnRhaW5zKCJyZXNvdXJjZSIpKSB7Ci0gICAgICAgIFdlYkNvcmU6
OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoInJlc291cmNlIik7Ci0g
ICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsLmFwcGVuZCgicmVz
b3VyY2UiKTsKLSAgICB9Ci0KLSAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2VzcygpKSB7Ci0gICAg
ICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMgPSBz
dXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2VyPigpLT5yZWdpc3Rl
cmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOwotCi0gICAgICAgIHN1cHBsZW1lbnQ8V2Vi
Q29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShwYXJhbWV0
ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0
ZW50U3RvcmFnZVR5cGUpOwotICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9
IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7Ci0KLSAgICAgICAgcGFyYW1ldGVycy5p
Z25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKLSAgICB9Ci19Ci0KLXZvaWQgV2Vi
Q29udGV4dDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCi17Ci19Ci0KLVN0cmluZyBXZWJD
b250ZXh0OjpwbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpCi17Ci0gICAg
R1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dl
dF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXRndGsiLCAiZGF0YWJhc2VzIiwgbnVsbHB0cikpOwot
ICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5Lmdl
dCgpKTsKLX0KLQotU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdEluZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKLX0KLQotU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdEljb25EYXRh
YmFzZVBhdGgoKSBjb25zdAotewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRhdGFiYXNlRGlyZWN0
b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndlYmtpdGd0ayIs
ICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmZpbGVuYW1l
VG9TdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOwotfQotCi1TdHJpbmcgV2ViQ29udGV4
dDo6cGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKLXsKLSAgICBHVW5pcXVl
UHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9k
YXRhX2RpcigpLCAid2Via2l0Z3RrIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsKLSAgICBy
ZXR1cm4gV2ViQ29yZTo6ZmlsZW5hbWVUb1N0cmluZyhzdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsK
LX0KLQotU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VE
aXJlY3RvcnkoKQotewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXRndGsi
LCAibWVkaWFrZXlzIiwgbnVsbHB0cikpOwotICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRv
U3RyaW5nKG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkuZ2V0KCkpOwotfQotCi1TdHJpbmcgV2Vi
Q29udGV4dDo6cGxhdGZvcm1EZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5KCkgY29uc3QKLXsKLSAg
ICBHVW5pcXVlUHRyPGNoYXI+IGRpc2tDYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdf
Z2V0X3VzZXJfY2FjaGVfZGlyKCksIGdfZ2V0X3ByZ25hbWUoKSwgbnVsbHB0cikpOwotICAgIHJl
dHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGRpc2tDYWNoZURpcmVjdG9yeS5nZXQoKSk7
Ci19Ci0KLVN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRDb29raWVTdG9yYWdlRGly
ZWN0b3J5KCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJp
bmcoKTsKLX0KLQotdm9pZCBXZWJDb250ZXh0OjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25v
cmVUTFNFcnJvcnMpCi17Ci0gICAgbV9pZ25vcmVUTFNFcnJvcnMgPSBpZ25vcmVUTFNFcnJvcnM7
Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICBpZiAodXNlc05ldHdvcmtQcm9jZXNz
KCkgJiYgbmV0d29ya1Byb2Nlc3MoKSkgewotICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0SWdub3JlVExTRXJyb3JzKG1faWdub3JlVExT
RXJyb3JzKSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLSAgICBzZW5kVG9B
bGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldElnbm9yZVRMU0Vycm9ycyhtX2ln
bm9yZVRMU0Vycm9ycykpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKaW5k
ZXggM2UwNmFlMjU4MWZiZjY2ZWNjMWJhNjJmMzVlNjQwZTlhYWY3NWYzZS4uMzU4ZjA0N2MyMzJh
M2U3MWRjMTBjYjE1NzBkYjkwNWM2NTFmMzQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKQEAgLTYyLDcgKzYyLDcg
QEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0
b3JQYWdlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsKICAgICBBU1NFUlQoIW1faW5zcGVjdG9y
Vmlldyk7Ci0gICAgbV9pbnNwZWN0b3JWaWV3ID0gR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFz
ZUNyZWF0ZSgmaW5zcGVjdG9yQ29udGV4dCgpLCBudWxscHRyLCBpbnNwZWN0b3JQYWdlR3JvdXAo
KSwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIG1faW5zcGVjdG9yVmlldyA9IEdUS19XSURHRVQo
d2Via2l0V2ViVmlld0Jhc2VDcmVhdGUoJmluc3BlY3RvclByb2Nlc3NQb29sKCksIG51bGxwdHIs
IGluc3BlY3RvclBhZ2VHcm91cCgpLCBudWxscHRyLCBudWxscHRyKSk7CiAgICAgZ19vYmplY3Rf
YWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVChtX2luc3BlY3RvclZpZXcpLCByZWludGVycHJldF9j
YXN0PHZvaWQqKj4oJm1faW5zcGVjdG9yVmlldykpOwogICAgIHJldHVybiB3ZWJraXRXZWJWaWV3
QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV9pbnNwZWN0b3JWaWV3KSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQb29sR3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc4OWVkMjNjMjAwY2EzODczN2ZjYzE5ZjM3Y2M5ZGFkNWQwYTE5OTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQ
b29sR3RrLmNwcApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2wuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgorI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHZv
aWQgaW5pdEluc3BlY3RvclNlcnZlcigpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIp
CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBpZiAoaW5pdGlhbGl6
ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICBTdHJp
bmcgc2VydmVyQWRkcmVzcyhnX2dldGVudigiV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIiKSk7CisK
KyAgICBpZiAoIXNlcnZlckFkZHJlc3MuaXNOdWxsKCkpIHsKKyAgICAgICAgU3RyaW5nIGJpbmRB
ZGRyZXNzID0gIjEyNy4wLjAuMSI7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IHBvcnQgPSAyOTk5
OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAgICAgICAgc2VydmVyQWRkcmVz
cy5zcGxpdCgnOicsIHJlc3VsdCk7CisKKyAgICAgICAgaWYgKHJlc3VsdC5zaXplKCkgPT0gMikg
eworICAgICAgICAgICAgYmluZEFkZHJlc3MgPSByZXN1bHRbMF07CisgICAgICAgICAgICBib29s
IG9rID0gZmFsc2U7CisgICAgICAgICAgICBwb3J0ID0gcmVzdWx0WzFdLnRvSW50KCZvayk7Cisg
ICAgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICAgICAgcG9ydCA9IDI5OTk7CisgICAg
ICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBwYXJzZSB0aGUgcG9ydC4gVXNlIDI5OTkg
aW5zdGVhZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBM
T0dfRVJST1IoIkNvdWxkbid0IHBhcnNlICVzLCB3cm9uZyBmb3JtYXQ/IFVzZSAxMjcuMC4wLjE6
Mjk5OSBpbnN0ZWFkLiIsIHNlcnZlckFkZHJlc3MudXRmOCgpLmRhdGEoKSk7CisKKyAgICAgICAg
aWYgKCFXZWJJbnNwZWN0b3JTZXJ2ZXI6OnNoYXJlZCgpLmxpc3RlbihiaW5kQWRkcmVzcywgcG9y
dCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHN0YXJ0IGxpc3RlbmluZyBvbjog
SVAgYWRkcmVzcz0lcywgcG9ydD0lZC4iLCBiaW5kQWRkcmVzcy51dGY4KCkuZGF0YSgpLCBwb3J0
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExPRyhJbnNwZWN0b3JTZXJ2ZXIsICJU
byBzdGFydCBpbnNwZWN0b3Igc2VydmVyIHNldCBXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiB0byAx
MjcuMC4wLjE6Mjk5OSBmb3IgZXhhbXBsZS4iKTsKKyNlbmRpZgorfQorCitXVEY6OlN0cmluZyBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgp
IGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid2Via2l0Z3RrIiwgImFwcGxpY2F0aW9u
cyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6ZmlsZW5hbWVUb1N0cmluZyhjYWNo
ZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5p
dGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKK3sKKyAgICBpbml0SW5zcGVjdG9yU2VydmVyKCk7CisKKyAgICBpZiAoIXBhcmFtZXRlcnMu
dXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsLmNvbnRhaW5zKCJyZXNvdXJjZSIpKSB7CisgICAg
ICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoInJl
c291cmNlIik7CisgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2Fs
LmFwcGVuZCgicmVzb3VyY2UiKTsKKyAgICB9CisKKyAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2Vz
cygpKSB7CisgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Q
cm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
PigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOworCisgICAgICAgIHN1
cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3Rv
cmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5j
b29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOworICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFj
Y2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CisKKyAgICAgICAg
cGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKKyAgICB9Cit9
CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQorewor
fQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdFdlYlNRTERhdGFiYXNl
RGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRhYmFzZURpcmVjdG9yeShn
X2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndlYmtpdGd0ayIsICJkYXRh
YmFzZXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmZpbGVuYW1lVG9TdHJpbmco
ZGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtRGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybURlZmF1bHRJY29uRGF0YWJhc2VQYXRoKCkgY29uc3QKK3sKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBkYXRhYmFzZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3Vz
ZXJfY2FjaGVfZGlyKCksICJ3ZWJraXRndGsiLCAiaWNvbmRhdGFiYXNlIiwgbnVsbHB0cikpOwor
ICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGRhdGFiYXNlRGlyZWN0b3J5Lmdl
dCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybURlZmF1bHRMb2NhbFN0
b3JhZ2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHN0b3JhZ2VEaXJlY3Rv
cnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXRndGsiLCAi
bG9jYWxzdG9yYWdlIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRv
U3RyaW5nKHN0b3JhZ2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKQoreworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFt
ZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXRndGsiLCAibWVkaWFrZXlzIiwgbnVsbHB0
cikpOworICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKG1lZGlhS2V5c1N0b3Jh
Z2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
RGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpIGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxjaGFy
PiBkaXNrQ2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2Rp
cigpLCBnX2dldF9wcmduYW1lKCksIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Zmls
ZW5hbWVUb1N0cmluZyhkaXNrQ2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdENvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit2
b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJv
cnMpCit7CisgICAgbV9pZ25vcmVUTFNFcnJvcnMgPSBpZ25vcmVUTFNFcnJvcnM7CisjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBpZiAodXNlc05ldHdvcmtQcm9jZXNzKCkgJiYgbmV0
d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6U2V0SWdub3JlVExTRXJyb3JzKG1faWdub3JlVExTRXJyb3JzKSwg
MCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKyAgICBzZW5kVG9BbGxQcm9jZXNz
ZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldElnbm9yZVRMU0Vycm9ycyhtX2lnbm9yZVRMU0Vy
cm9ycykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggN2IyMjEwZDRmMzQzOTM2OGU1MTE4NWU3MTBiNjA4MmE1MjA3OGIzYi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgotCi0jaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2Vy
UHJveHkuaCIKLSNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LXZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi17Ci0gICAgc3VwcGxlbWVu
dDxXZWJDb29raWVNYW5hZ2VyUHJveHk+KCktPmdldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHBh
cmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLCBwYXJhbWV0ZXJzLmNvb2tpZVBl
cnNpc3RlbnRTdG9yYWdlVHlwZSk7Ci0gICAgcGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kg
PSBtX2luaXRpYWxIVFRQQ29va2llQWNjZXB0UG9saWN5OwotICAgIHBhcmFtZXRlcnMuaWdub3Jl
VExTRXJyb3JzID0gbV9pZ25vcmVUTFNFcnJvcnM7Ci0gICAgcGFyYW1ldGVycy5sYW5ndWFnZXMg
PSBXZWJDb3JlOjp1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7Ci0gICAgcGFyYW1ldGVycy51cmxT
Y2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scyA9IHN1cHBsZW1lbnQ8V2ViU291cEN1
c3RvbVByb3RvY29sUmVxdWVzdE1hbmFnZXI+KCktPnJlZ2lzdGVyZWRTY2hlbWVzRm9yQ3VzdG9t
UHJvdG9jb2xzKCk7Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCmluZGV4
IDQ1N2UwMzcwZjgzZDJmYjI5YzY4MDRmZWQzYjkxZTcyYmNjNDMyYmQuLmFmNDQzZWNhNjlkOGVi
ODRiY2MxOTAxZGEzNTRjNTNhODk0MTJjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJQcm94eVNvdXAuY3BwCkBAIC0y
NiwxNCArMjYsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyUHJveHkuaCIKIAotI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyUHJveHk6OnNldENvb2tp
ZVBlcnNpc3RlbnRTdG9yYWdlKGNvbnN0IFN0cmluZyYgc3RvcmFnZVBhdGgsIHVpbnQzMl90IHN0
b3JhZ2VUeXBlKQogewotICAgIGNvbnRleHQoKS0+c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxh
dW5jaGluZ0lmTmVjZXNzYXJ5KE1lc3NhZ2VzOjpXZWJDb29raWVNYW5hZ2VyOjpTZXRDb29raWVQ
ZXJzaXN0ZW50U3RvcmFnZShzdG9yYWdlUGF0aCwgc3RvcmFnZVR5cGUpKTsKKyAgICBwcm9jZXNz
UG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVz
c2FnZXM6OldlYkNvb2tpZU1hbmFnZXI6OlNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKHN0b3Jh
Z2VQYXRoLCBzdG9yYWdlVHlwZSkpOwogCiAgICAgbV9jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBh
dGggPSBzdG9yYWdlUGF0aDsKICAgICBtX2Nvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSA9IHN0
YXRpY19jYXN0PFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGU+KHN0b3JhZ2VUeXBlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29s
U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNv
dXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE2YjZkODcwNDQyOWI2NjJmZDRiNzk2OWQ1OGYyZmYyMjg0YTlh
ODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJQ
cm9jZXNzUG9vbFNvdXAuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzUG9vbC5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJT
b3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGFu
Z3VhZ2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclBy
b3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUp
OworICAgIHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENvb2tp
ZUFjY2VwdFBvbGljeTsKKyAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9IG1faWdub3Jl
VExTRXJyb3JzOworICAgIHBhcmFtZXRlcnMubGFuZ3VhZ2VzID0gV2ViQ29yZTo6dXNlclByZWZl
cnJlZExhbmd1YWdlcygpOworICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JD
dXN0b21Qcm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RN
YW5hZ2VyPigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOworfQorCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcApp
bmRleCA5YzQ4MmI5ZWRiMzkyYzJmZmVmMWEwNjFhZmQ3ZWY5OGMzYjYwZjBiLi45ZGI3MDBjZmY3
NWQyNGY3NDI3ZDg2N2I5YTc2NzdmOTk1MWRlNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0V2ViRXh0ZW5zaW9uLmNwcApAQCAtMjAsOCArMjAsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIldlYktpdFdlYkV4dGVuc2lvbi5oIgogCisjaW5jbHVkZSAiQVBJRGlj
dGlvbmFyeS5oIgogI2luY2x1ZGUgIkFQSVN0cmluZy5oIgotI2luY2x1ZGUgIkltbXV0YWJsZURp
Y3Rpb25hcnkuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1
bmRsZVBhZ2UuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCkBAIC04MSw3ICs4MSw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYkV4dGVuc2lvblBhZ2VEZXN0cm95KFdlYktpdFdlYkV4dGVu
c2lvbiogZXh0ZW5zaW9uLCBXZWJQYWdlCiAgICAgZXh0ZW5zaW9uLT5wcml2LT5wYWdlcy5yZW1v
dmUocGFnZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFdlYkV4dGVuc2lvbkRpZFJlY2VpdmVN
ZXNzYWdlKFdlYktpdFdlYkV4dGVuc2lvbiosIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIElt
bXV0YWJsZURpY3Rpb25hcnkmIG1lc3NhZ2UpCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJFeHRlbnNp
b25EaWRSZWNlaXZlTWVzc2FnZShXZWJLaXRXZWJFeHRlbnNpb24qLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2VOYW1lLCBBUEk6OkRpY3Rpb25hcnkmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKG1lc3NhZ2VO
YW1lID09IFN0cmluZzo6ZnJvbVVURjgoIlByZWZldGNoRE5TIikpIHsKICAgICAgICAgQVBJOjpT
dHJpbmcqIGhvc3RuYW1lID0gc3RhdGljX2Nhc3Q8QVBJOjpTdHJpbmcqPihtZXNzYWdlLmdldChT
dHJpbmc6OmZyb21VVEY4KCJIb3N0bmFtZSIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2Vi
UGFnZS5jcHAKaW5kZXggNzczOWVmZTdhYWZhNmYzZDBmOGViM2Q2MWRiMDYzOTAyN2Y1ZjMyYy4u
YmQwOTlkODUzM2U0MmFkM2Q4ZmIwZmVkMjZhN2FiNjUzOWU5ZmEyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMjEsOCArMjEsOCBAQAogI2luY2x1ZGUgIldlYktp
dFdlYlBhZ2UuaCIKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCisjaW5jbHVkZSAiQVBJRGljdGlv
bmFyeS5oIgogI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgotI2luY2x1ZGUgIkltbXV0YWJsZURp
Y3Rpb25hcnkuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIldLQnVu
ZGxlQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlRnJhbWUuaCIKQEAgLTE1OCwxMiArMTU4
LDEyIEBAIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV0tCdW5kbGVQ
YWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lCiAKIHN0YXRpYyB2b2lkIGRpZEluaXRpYXRl
TG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgYm9vbCAv
KiBwYWdlTG9hZElzUHJvdmlzaW9uYWwgKi8sIGNvbnN0IHZvaWQqKQogewotICAgIEltbXV0YWJs
ZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKKyAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5
cGUgbWVzc2FnZTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRv
SW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiRnJhbWUiKSwg
dG9JbXBsKGZyYW1lKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRp
ZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBtZXNzYWdlLnNl
dChTdHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIHRvSW1wbChyZXF1ZXN0KSk7Ci0gICAgV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpm
cm9tVVRGOCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVE
aWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9t
VVRGOCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25h
cnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIFdLVVJM
UmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmIHdr
UmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCkBAIC0xODIsNTAgKzE4Miw1MCBAQCBzdGF0aWMgV0tVUkxSZXF1ZXN0UmVm
IHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YQogICAgIHJlc291cmNlUmVxdWVzdC5zZXRJbml0aWF0aW5nUGFnZUlEKHRvSW1wbChwYWdlKS0+
cGFnZUlEKCkpOwogICAgIFJlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IG5ld1JlcXVlc3QgPSBBUEk6
OlVSTFJlcXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJlcXVlc3QpOwogCi0gICAgSW1tdXRhYmxlRGlj
dGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOworICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBt
ZXNzYWdlOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwgdG9JbXBs
KHBhZ2UpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlmaWVyIiks
IEFQSTo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmlu
Zzo6ZnJvbVVURjgoIlJlcXVlc3QiKSwgbmV3UmVxdWVzdC5nZXQoKSk7CiAgICAgaWYgKCFyZWRp
cmVjdFJlc291cmNlUmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIG1lc3NhZ2Uuc2V0KFN0cmlu
Zzo6ZnJvbVVURjgoIlJlZGlyZWN0UmVzcG9uc2UiKSwgdG9JbXBsKHdrUmVkaXJlY3RSZXNwb25z
ZSkpOwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNz
YWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSIp
LCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7
CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2Uo
U3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEFQ
STo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogCiAgICAg
cmV0dXJuIHRvQVBJKG5ld1JlcXVlc3QucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CiAKIHN0YXRp
YyB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VSTFJlc3BvbnNlUmVm
IHJlc3BvbnNlLCBjb25zdCB2b2lkKikKIHsKLSAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBU
eXBlIG1lc3NhZ2U7CisgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAg
bWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUGFnZSIpLCB0b0ltcGwocGFnZSkpOwogICAg
IG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIklkZW50aWZpZXIiKSwgQVBJOjpVSW50NjQ6
OmNyZWF0ZShpZGVudGlmaWVyKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgi
UmVzcG9uc2UiKSwgdG9JbXBsKHJlc3BvbnNlKSk7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
aW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5E
aWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVh
dGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
aW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5E
aWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShX
VEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGhGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFt
ZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbGVuZ3RoLCBjb25zdCB2b2lkKikK
IHsKLSAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CisgICAgQVBJOjpE
aWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9t
VVRGOCgiUGFnZSIpLCB0b0ltcGwocGFnZSkpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJv
bVVURjgoIklkZW50aWZpZXIiKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShpZGVudGlmaWVyKSk7CiAg
ICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiQ29udGVudExlbmd0aCIpLCBBUEk6OlVJ
bnQ2NDo6Y3JlYXRlKGxlbmd0aCkpOwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVk
QnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUo
V1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5q
ZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRS
ZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRl
KFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRGaW5pc2hM
b2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVp
bnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IHZvaWQqKQogewotICAgIEltbXV0YWJsZURpY3Rpb25h
cnk6Ok1hcFR5cGUgbWVzc2FnZTsKKyAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2Fn
ZTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdl
KSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBBUEk6
OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5p
bmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRp
ZEZpbmlzaExvYWRGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RG
Ojptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0
ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRGaW5p
c2hMb2FkRm9yUmVzb3VyY2UiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1l
c3NhZ2UpKS5nZXQoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkRm9yUmVzb3VyY2Uo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZp
ZXIsIFdLRXJyb3JSZWYgZXJyb3IsIGNvbnN0IHZvaWQqKQogewotICAgIEltbXV0YWJsZURpY3Rp
b25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKKyAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVz
c2FnZTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChw
YWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBB
UEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6
OmZyb21VVEY4KCJFcnJvciIpLCB0b0ltcGwoZXJyb3IpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQ
YWdlLkRpZEZhaWxMb2FkRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRl
KFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmlu
amVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlk
RmFpbExvYWRGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUo
bWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZ2V0Q29udGV4dE1lbnVGcm9tRGVm
YXVsdE1lbnUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgd2tIaXRU
ZXN0UmVzdWx0LCBXS0FycmF5UmVmIHdrRGVmYXVsdE1lbnUsIFdLQXJyYXlSZWYqIHdrTmV3TWVu
dSwgV0tUeXBlUmVmKiB3a1VzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtNDQ4
LDcgKzQ0OCw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSog
d2ViUGFnZSkKICAgICByZXR1cm4gcGFnZTsKIH0KIAotdm9pZCB3ZWJraXRXZWJQYWdlRGlkUmVj
ZWl2ZU1lc3NhZ2UoV2ViS2l0V2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFt
ZSwgSW1tdXRhYmxlRGljdGlvbmFyeSYgbWVzc2FnZSkKK3ZvaWQgd2Via2l0V2ViUGFnZURpZFJl
Y2VpdmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5h
bWUsIEFQSTo6RGljdGlvbmFyeSYgbWVzc2FnZSkKIHsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0g
U3RyaW5nKCJHZXRTbmFwc2hvdCIpKSB7CiAgICAgICAgIFNuYXBzaG90T3B0aW9ucyBzbmFwc2hv
dE9wdGlvbnMgPSBzdGF0aWNfY2FzdDxTbmFwc2hvdE9wdGlvbnM+KHN0YXRpY19jYXN0PEFQSTo6
VUludDY0Kj4obWVzc2FnZS5nZXQoIlNuYXBzaG90T3B0aW9ucyIpKS0+dmFsdWUoKSk7CkBAIC00
NzMsMTEgKzQ3MywxMSBAQCB2b2lkIHdlYmtpdFdlYlBhZ2VEaWRSZWNlaXZlTWVzc2FnZShXZWJL
aXRXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYQogICAgICAgICAgICAgICAg
IHNuYXBzaG90SW1hZ2UgPSB3ZWJQYWdlLT5zY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25zKHNuYXBz
aG90UmVjdCwgMSwgc25hcHNob3RPcHRpb25zIHwgU25hcHNob3RPcHRpb25zU2hhcmVhYmxlKTsK
ICAgICAgICAgfQogCi0gICAgICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2Fn
ZVJlcGx5OworICAgICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZVJlcGx5Owog
ICAgICAgICBtZXNzYWdlUmVwbHkuc2V0KCJQYWdlIiwgd2ViUGFnZSk7CiAgICAgICAgIG1lc3Nh
Z2VSZXBseS5zZXQoIkNhbGxiYWNrSUQiLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGNhbGxiYWNrSUQp
KTsKICAgICAgICAgbWVzc2FnZVJlcGx5LnNldCgiU25hcHNob3QiLCBzbmFwc2hvdEltYWdlKTsK
LSAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3Nh
Z2UoIldlYlBhZ2UuRGlkR2V0U25hcHNob3QiLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUo
V1RGOjptb3ZlKG1lc3NhZ2VSZXBseSkpLmdldCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoIldlYlBhZ2UuRGlkR2V0U25hcHNo
b3QiLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZVJlcGx5KSkuZ2V0
KCkpOwogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9X
ZWJLaXRXZWJQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2VQcml2YXRlLmgKaW5kZXggM2ZlYzU2ZTczNDYy
ZWEyMzA5YmY2N2RiM2ExYzIwNzM1MWU5ZWEzYy4uNDZhOGQyNmM4MTljOTVjNzNmZWVlMzAyMWVk
YmQyZTFlYTA4MzEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2VQcml2
YXRlLmgKQEAgLTIwLDExICsyMCwxMSBAQAogI2lmbmRlZiBXZWJLaXRXZWJQYWdlUHJpdmF0ZV9o
CiAjZGVmaW5lIFdlYktpdFdlYlBhZ2VQcml2YXRlX2gKIAotI2luY2x1ZGUgIkltbXV0YWJsZURp
Y3Rpb25hcnkuaCIKKyNpbmNsdWRlICJBUElEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKIAogV2ViS2l0V2ViUGFnZSogd2Via2l0
V2ViUGFnZUNyZWF0ZShXZWJLaXQ6OldlYlBhZ2UqKTsKLXZvaWQgd2Via2l0V2ViUGFnZURpZFJl
Y2VpdmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBX
ZWJLaXQ6OkltbXV0YWJsZURpY3Rpb25hcnkmIG1lc3NhZ2UpOwordm9pZCB3ZWJraXRXZWJQYWdl
RGlkUmVjZWl2ZU1lc3NhZ2UoV2ViS2l0V2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5h
bWUsIEFQSTo6RGljdGlvbmFyeSYgbWVzc2FnZSk7CiAKICNlbmRpZiAvLyBXZWJLaXRXZWJQYWdl
UHJpdmF0ZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243726</attachid>
            <date>2014-12-23 20:44:32 -0800</date>
            <delta_ts>2014-12-23 21:34:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139919-20141224134432.patch</filename>
            <type>text/plain</type>
            <size>51934</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWVhZDlkYjAwYTg1ZmI0
YWRhOWU3YTI1M2VlMTQ3NzA3OTAwM2IyOC4uZjBlNTBhNWZhMjAxNDk5MzZhODJkOTBlNTExMGQz
Zjk2YzI2MWM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE0LTEyLTIzICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2sub2hAY29sbGFib3JhLmNvbT4KKworICAgICAgICBbR1RLXSBC
dWlsZCBmaXggYWZ0ZXIgcjE3NzY5MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM5OTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcmVzc2VzIGJ1aWxkIGZhaWx1cmVzIGludHJv
ZHVjZWQgYWZ0ZXIgcjE3NzY5Mi4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBSZW5h
bWVkIFdlYkNvbnRleHRTb3VwIHRvIFdlYlByb2Nlc3NQb29sU291cC5jcHAKKyAgICAgICAgKiBQ
bGF0Zm9ybUdUSy5jbWFrZTogZGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvUGFn
ZUNsaWVudEltcGwuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25s
b2FkQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3Vi
bWlzc2lvblJlcXVlc3QuY3BwOgorICAgICAgICAod2Via2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0
Q3JlYXRlKToKKyAgICAgICAgKHdlYmtpdF9mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9nZXRfdGV4
dF9maWVsZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNz
aW9uUmVxdWVzdFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJ
bmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6CisgICAgICAgIChkaWRSZWNlaXZlV2ViVmlld01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNlY3VyaXR5
TWFuYWdlci5jcHA6CisgICAgICAgIChyZWdpc3RlclNlY3VyaXR5UG9saWN5Rm9yVVJJU2NoZW1l
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKHdlYmtpdFdlYkNvbnRleHRDb25zdHJ1Y3RlZCk6CisgICAgICAgICh3ZWJraXRfd2Vi
X2NvbnRleHRfcHJlZmV0Y2hfZG5zKToKKyAgICAgICAgKHdlYmtpdFdlYkNvbnRleHRHZXRDb250
ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0Jh
c2VDcmVhdGUpOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmNwcDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSk6
CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHA6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3BwLgorICAg
ICAgICAoV2ViS2l0Ojppbml0SW5zcGVjdG9yU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUludmFsaWRh
dGVDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVm
YXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEljb25EYXRhYmFzZVBh
dGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0TG9j
YWxTdG9yYWdlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdENvb2tpZVN0b3Jh
Z2VEaXJlY3RvcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0SWdub3Jl
VExTRXJyb3JzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4
dFNvdXAuY3BwLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJFeHRlbnNpb24uY3BwOgorICAgICAgICAod2Via2l0V2ViRXh0
ZW5zaW9uRGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcDoKKyAgICAgICAgKGRpZEluaXRpYXRlTG9h
ZEZvclJlc291cmNlKToKKyAgICAgICAgKHdpbGxTZW5kUmVxdWVzdEZvckZyYW1lKToKKyAgICAg
ICAgKGRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKToKKyAgICAgICAgKGRpZFJlY2VpdmVD
b250ZW50TGVuZ3RoRm9yUmVzb3VyY2UpOgorICAgICAgICAoZGlkRmluaXNoTG9hZEZvclJlc291
cmNlKToKKyAgICAgICAgKGRpZEZhaWxMb2FkRm9yUmVzb3VyY2UpOgorICAgICAgICAod2Via2l0
V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZVByaXZhdGUuaDoKKwogMjAxNC0xMi0yMyAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dL
Ml0gRml4IGEgbG90IG9mIGJ1aWxkIGJyZWFrIHNpbmNlIHIxNzc2OTIgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCmluZGV4IDYyYjRiNjgzZjhhZTYzODEyZTlmY2JhYmUwZmE0YjczYTY5Y2UxMGQu
LmIxMmJjNDU4NzIwNzc5ZTRmNWUzMTU3MzQxNzhmYjFjNzkzOWVkM2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCkBAIC0xNzQsOCArMTc0LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VS
Q0VTCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJVSVBvcHVwTWVudUNsaWVudC5jcHAKICAgICBVSVBy
b2Nlc3MvZWZsL1dlYlZpZXdFZmwuY3BwCiAKLSAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0
U291cC5jcHAKICAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNw
cAorICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKIAogICAgIFdlYlBy
b2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcAogICAgIFdlYlByb2Nl
c3MvQ29va2llcy9zb3VwL1dlYktpdFNvdXBDb29raWVKYXJTcWxpdGUuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtR1RLLmNtYWtlCmluZGV4IGVkY2M4ZTY0Y2M3MjYxYTc1MzQ1ZjcyNzhlMThjZmU3MjVjZWJj
ZmYuLmI4NjIwNWM2MDM1NWM0YWMzMTE1M2Q2YTAzMWY5NjEzMWQzYjFjNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtR1RLLmNtYWtlCkBAIC0yNjgsNyArMjY4LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHAKICAgICBVSVBy
b2Nlc3MvZ3RrL1JlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93LmNwcAogICAgIFVJUHJvY2Vzcy9n
dGsvVGV4dENoZWNrZXJHdGsuY3BwCi0gICAgVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNw
cAogICAgIFVJUHJvY2Vzcy9ndGsvV2ViQ29udGV4dE1lbnVQcm94eUd0ay5jcHAKICAgICBVSVBy
b2Nlc3MvZ3RrL1dlYkZ1bGxTY3JlZW5DbGllbnRHdGsuY3BwCiAgICAgVUlQcm9jZXNzL2d0ay9X
ZWJJbnNwZWN0b3JDbGllbnRHdGsuY3BwCkBAIC0yNzYsMTEgKzI3NSwxMiBAQCBsaXN0KEFQUEVO
RCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAK
ICAgICBVSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3RrLmNwcAogICAgIFVJUHJvY2Vz
cy9ndGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwCisgICAgVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNz
UG9vbEd0ay5jcHAKICAgICBVSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQcm94eUd0ay5jcHAKIAog
ICAgIFVJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCi0g
ICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCiAgICAgVUlQcm9jZXNzL3NvdXAv
V2ViQ29va2llTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzUG9vbFNvdXAuY3BwCiAKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVN
YW5hZ2VyU291cC5jcHAKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJLaXRTb3VwQ29v
a2llSmFyU3FsaXRlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDU1MDg4ZWRlNjY0OTY5ZmQwZWE4YzJiMGEzZDBj
Y2JkOGQ5MTc1NGEuLjZiZjgxNzUwOWIzMTIwZDcxMTY0MTMwZjI5YTQwZWU4MTc1YmUxODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1w
bC5jcHAKQEAgLTMyLDEyICszMiwxMiBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4
dE1lbnVQcm94eUd0ay5oIgogI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgogI2luY2x1ZGUg
IldlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgog
I2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5R3RrLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZl
bnROYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrVXRpbGl0aWVzLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZENsaWVu
dC5jcHAKaW5kZXggMGY0Y2U4NjhjMTM5MDk3YjgxMzUzNjU0ODUzOTNkNWQyMzQ0ZjY0Ny4uZGY3
YzQ3ZmNlZDVkZWYyMjE4NDZjYTg4MDgyNzM4NzkxMWQ1NGRjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWRDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkQ2xpZW50LmNw
cApAQCAtMjEsMTAgKzIxLDEwIEBACiAjaW5jbHVkZSAiV2ViS2l0RG93bmxvYWRDbGllbnQuaCIK
IAogI2luY2x1ZGUgIkFQSVVSTFJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgog
I2luY2x1ZGUgIldlYktpdERvd25sb2FkUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJl
c3BvbnNlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlIDxXZWJLaXQvV0tTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5jcHAKaW5kZXggODUxOWEyY2I2YTZh
OGUwMmRmNWU0ZGQzMjA3NDBhN2U2N2UwYjAwOS4uODRmZDgwYzUzMzllYjA3OWJmOWEwZWE5YmI1
NWFiZmFmNzA2ZjI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QuY3BwCkBAIC0yMCw4
ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0Rm9ybVN1Ym1p
c3Npb25SZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJBUElEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAi
QVBJU3RyaW5nLmgiCi0jaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgogI2luY2x1ZGUg
IldlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYktpdEZvcm1T
dWJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRy
Lmg+CkBAIC00NSw3ICs0NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgKi8KIAogc3Ry
dWN0IF9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3RQcml2YXRlIHsKLSAgICBSZWZQdHI8SW1t
dXRhYmxlRGljdGlvbmFyeT4gd2ViVmFsdWVzOworICAgIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+
IHdlYlZhbHVlczsKICAgICBSZWZQdHI8V2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5PiBs
aXN0ZW5lcjsKICAgICBHUmVmUHRyPEdIYXNoVGFibGU+IHZhbHVlczsKICAgICBib29sIGhhbmRs
ZWRSZXF1ZXN0OwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZm9ybV9zdWJt
aXNzaW9uX3JlcXVlc3RfY2xhc3NfaW5pdChXZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlcwogICAg
IG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0RGlzcG9z
ZTsKIH0KIAotV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0KiB3ZWJraXRGb3JtU3VibWlzc2lv
blJlcXVlc3RDcmVhdGUoSW1tdXRhYmxlRGljdGlvbmFyeSogdmFsdWVzLCBXZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQorV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0
KiB3ZWJraXRGb3JtU3VibWlzc2lvblJlcXVlc3RDcmVhdGUoQVBJOjpEaWN0aW9uYXJ5KiB2YWx1
ZXMsIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSogbGlzdGVuZXIpCiB7CiAgICAgV2Vi
S2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX0ZPUk1fU1VCTUlTU0lP
Tl9SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9GT1JNX1NVQk1JU1NJT05fUkVRVUVT
VCwgTlVMTCkpOwogICAgIHJlcXVlc3QtPnByaXYtPndlYlZhbHVlcyA9IHZhbHVlczsKQEAgLTEw
MCw5ICsxMDAsOSBAQCBHSGFzaFRhYmxlKiB3ZWJraXRfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3Rf
Z2V0X3RleHRfZmllbGRzKFdlYktpdEZvcm1TdWJtaXNzaW9uUgogCiAgICAgcmVxdWVzdC0+cHJp
di0+dmFsdWVzID0gYWRvcHRHUmVmKGdfaGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBn
X3N0cl9lcXVhbCwgZ19mcmVlLCBnX2ZyZWUpKTsKIAotICAgIGNvbnN0IEltbXV0YWJsZURpY3Rp
b25hcnk6Ok1hcFR5cGUmIG1hcCA9IHJlcXVlc3QtPnByaXYtPndlYlZhbHVlcy0+bWFwKCk7Ci0g
ICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFw
LmVuZCgpOwotICAgIGZvciAoSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZTo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBtYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgY29uc3QgQVBJ
OjpEaWN0aW9uYXJ5OjpNYXBUeXBlJiBtYXAgPSByZXF1ZXN0LT5wcml2LT53ZWJWYWx1ZXMtPm1h
cCgpOworICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
bWFwLmVuZCgpOworICAgIGZvciAoQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlOjpjb25zdF9pdGVy
YXRvciBpdCA9IG1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgQVBJOjpT
dHJpbmcqIHZhbHVlID0gc3RhdGljX2Nhc3Q8QVBJOjpTdHJpbmcqPihpdC0+dmFsdWUuZ2V0KCkp
OwogICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KHJlcXVlc3QtPnByaXYtPnZhbHVlcy5nZXQo
KSwgZ19zdHJkdXAoaXQtPmtleS51dGY4KCkuZGF0YSgpKSwgZ19zdHJkdXAodmFsdWUtPnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3RQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGb3JtU3VibWlzc2lvblJlcXVl
c3RQcml2YXRlLmgKaW5kZXggOWZlNDc1MWQyMDM1NzJlYTRkMmYwMjYxYTMzYjA0NTQ4ODVlMGU2
My4uMWQyYjQ5OWY2OGJjN2JiZDUzMGYxMjE5NTdlZDJjNjc3ZjEwNTkwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1
ZXN0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZvcm1TdWJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApAQCAtMjMsNiArMjMsNiBAQAogI2luY2x1
ZGUgIldlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYktpdFByaXZh
dGUuaCIKIAotV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0KiB3ZWJraXRGb3JtU3VibWlzc2lv
blJlcXVlc3RDcmVhdGUoV2ViS2l0OjpJbW11dGFibGVEaWN0aW9uYXJ5KiB2YWx1ZXMsIFdlYktp
dDo6V2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5Kik7CitXZWJLaXRGb3JtU3VibWlzc2lv
blJlcXVlc3QqIHdlYmtpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdENyZWF0ZShBUEk6OkRpY3Rpb25h
cnkqIHZhbHVlcywgV2ViS2l0OjpXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkqKTsKIAog
I2VuZGlmIC8vIFdlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdFByaXZhdGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0
ZWRCdW5kbGVDbGllbnQuY3BwCmluZGV4IGExNTNhNjgyMThiMzViOWVkMmI4MzFiNzMyZjczMGMx
ZTAyZjZjOTYuLmIyMTM0ZWJlZTU0MDZjYzFkMzViY2JjMjE0ZjgwNTU1ZThmNDRjYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZVdlYlZpZXdNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGNvbnN0IGNoYXIqIG1lc3NhZ2VOYW1lLCBJbW11dGFibGVEaWN0aW9uYXJ5JiBtZXNz
YWdlKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGNoYXIqIG1lc3NhZ2VOYW1lLCBBUEk6
OkRpY3Rpb25hcnkmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKGdfc3RyX2VxdWFsKG1lc3NhZ2VOYW1l
LCAiRGlkSW5pdGlhdGVMb2FkRm9yUmVzb3VyY2UiKSkgewogICAgICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lUHJveHkqPihtZXNzYWdlLmdldChTdHJpbmc6
OmZyb21VVEY4KCJGcmFtZSIpKSk7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIHZvaWQgZGlk
UmVjZWl2ZVdlYlZpZXdNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGMKIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxl
KFdLQ29udGV4dFJlZiwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdl
Qm9keSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBBU1NFUlQoV0tHZXRUeXBlSUQo
bWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgpKTsKLSAgICBJbW11dGFibGVE
aWN0aW9uYXJ5JiBtZXNzYWdlID0gKnRvSW1wbChzdGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+
KG1lc3NhZ2VCb2R5KSk7CisgICAgQVBJOjpEaWN0aW9uYXJ5JiBtZXNzYWdlID0gKnRvSW1wbChz
dGF0aWNfY2FzdDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KSk7CiAKICAgICBDU3RyaW5n
IG1lc3NhZ2VOYW1lQ1N0cmluZyA9IHRvSW1wbChtZXNzYWdlTmFtZSktPnN0cmluZygpLnV0Zjgo
KTsKICAgICBjb25zdCBjaGFyKiBtZXNzYWdlTmFtZVVURjggPSBtZXNzYWdlTmFtZUNTdHJpbmcu
ZGF0YSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0U2VjdXJpdHlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFNlY3VyaXR5TWFuYWdlci5jcHAKaW5kZXggYWRkNTVkMWI2MDdjYzA5M2JmNTk2ZjVi
Y2NmOWJmMDRhYTdkODNkZi4uMGExY2E4NjgxNDk1NGRjMGJmNzk5NDc3MDdiNWM2NDY2MDVhYmIw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2Vj
dXJpdHlNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZWN1cml0eU1hbmFnZXIuY3BwCkBAIC0yMCw5ICsyMCw5IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0U2VjdXJpdHlNYW5hZ2VyLmgiCiAKLSNpbmNsdWRlICJX
ZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViS2l0U2VjdXJpdHlNYW5hZ2VyUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2wuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CkBAIC02OSw3ICs2OSw3IEBAIFdlYktpdFNlY3VyaXR5TWFuYWdlciog
d2Via2l0U2VjdXJpdHlNYW5hZ2VyQ3JlYXRlKFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQp
CiBzdGF0aWMgdm9pZCByZWdpc3RlclNlY3VyaXR5UG9saWN5Rm9yVVJJU2NoZW1lKFdlYktpdFNl
Y3VyaXR5TWFuYWdlciogbWFuYWdlciwgY29uc3QgY2hhciogc2NoZW1lLCBTZWN1cml0eVBvbGlj
eSBwb2xpY3kpCiB7CiAgICAgU3RyaW5nIHVybFNjaGVtZSA9IFN0cmluZzo6ZnJvbVVURjgoc2No
ZW1lKTsKLSAgICBXZWJDb250ZXh0KiB3ZWJDb250ZXh0ID0gd2Via2l0V2ViQ29udGV4dEdldENv
bnRleHQobWFuYWdlci0+cHJpdi0+d2ViQ29udGV4dCk7CisgICAgV2ViUHJvY2Vzc1Bvb2wqIHdl
YkNvbnRleHQgPSB3ZWJraXRXZWJDb250ZXh0R2V0Q29udGV4dChtYW5hZ2VyLT5wcml2LT53ZWJD
b250ZXh0KTsKIAogICAgIC8vIFdlIGtlZXAgdGhlIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5IG9m
IHRoZSBVSSBwcm9jZXNzIGluIHN5bmMgd2l0aCB0aGUKICAgICAvLyB3ZWIgcHJvY2VzcyBvbmUs
IHNvIHRoYXQgd2UgY2FuIHJldHVybiB0aGUgU2VjdXJpdHlQb2xpY3kgZm9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCmlu
ZGV4IGVkNDE2ZTQ1YTI0YmI1MTY5NWUwODM4ZjkwYTlkN2NkZTE1NDhkY2UuLjBjYTJkNmM0YzMy
ZTQwMzUwZWU2YmMyMmQxNzY3MjZhZjJkZDM1ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0xNTMsNyArMTUz
LDcgQEAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdlYktpdFVSSVNjaGVtZUhhbmRs
ZXI+ID4gVVJJU2NoZW1lSGFuZGxlck1hcDsKIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR1Jl
ZlB0cjxXZWJLaXRVUklTY2hlbWVSZXF1ZXN0PiA+IFVSSVNjaGVtZVJlcXVlc3RNYXA7CiAKIHN0
cnVjdCBfV2ViS2l0V2ViQ29udGV4dFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb250ZXh0PiBj
b250ZXh0OworICAgIFJlZlB0cjxXZWJQcm9jZXNzUG9vbD4gY29udGV4dDsKICAgICBib29sIGNs
aWVudHNEZXRhY2hlZDsKIAogICAgIEdSZWZQdHI8V2ViS2l0Q29va2llTWFuYWdlcj4gY29va2ll
TWFuYWdlcjsKQEAgLTI1NywxNSArMjU3LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYkNvbnRl
eHRDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0
X3dlYl9jb250ZXh0X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkKG9iamVjdCk7CiAKICAgICBH
VW5pcXVlUHRyPGNoYXI+IGJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoaW5qZWN0ZWRC
dW5kbGVEaXJlY3RvcnkoKSwgImxpYndlYmtpdDJndGtpbmplY3RlZGJ1bmRsZS5zbyIsIG51bGxw
dHIpKTsKLSAgICBXZWJDb250ZXh0Q29uZmlndXJhdGlvbiB3ZWJDb250ZXh0Q29uZmlndXJhdGlv
bjsKKyAgICBXZWJQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gd2ViQ29udGV4dENvbmZpZ3VyYXRp
b247CiAgICAgd2ViQ29udGV4dENvbmZpZ3VyYXRpb24uaW5qZWN0ZWRCdW5kbGVQYXRoID0gV2Vi
Q29yZTo6ZmlsZW5hbWVUb1N0cmluZyhidW5kbGVGaWxlbmFtZS5nZXQoKSk7Ci0gICAgV2ViQ29u
dGV4dDo6YXBwbHlQbGF0Zm9ybVNwZWNpZmljQ29uZmlndXJhdGlvbkRlZmF1bHRzKHdlYkNvbnRl
eHRDb25maWd1cmF0aW9uKTsKKyAgICBXZWJQcm9jZXNzUG9vbDo6YXBwbHlQbGF0Zm9ybVNwZWNp
ZmljQ29uZmlndXJhdGlvbkRlZmF1bHRzKHdlYkNvbnRleHRDb25maWd1cmF0aW9uKTsKICAgICBX
ZWJLaXRXZWJDb250ZXh0KiB3ZWJDb250ZXh0ID0gV0VCS0lUX1dFQl9DT05URVhUKG9iamVjdCk7
CiAgICAgV2ViS2l0V2ViQ29udGV4dFByaXZhdGUqIHByaXYgPSB3ZWJDb250ZXh0LT5wcml2Owog
ICAgIGlmICghcHJpdi0+bG9jYWxTdG9yYWdlRGlyZWN0b3J5LmlzTnVsbCgpKQogICAgICAgICB3
ZWJDb250ZXh0Q29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBXZWJDb3JlOjpm
aWxlbmFtZVRvU3RyaW5nKHByaXYtPmxvY2FsU3RvcmFnZURpcmVjdG9yeS5kYXRhKCkpOwogCi0g
ICAgcHJpdi0+Y29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0ZShXVEY6Om1vdmUod2ViQ29udGV4
dENvbmZpZ3VyYXRpb24pKTsKKyAgICBwcml2LT5jb250ZXh0ID0gV2ViUHJvY2Vzc1Bvb2w6OmNy
ZWF0ZShXVEY6Om1vdmUod2ViQ29udGV4dENvbmZpZ3VyYXRpb24pKTsKIAogICAgIHByaXYtPnJl
cXVlc3RNYW5hZ2VyID0gcHJpdi0+Y29udGV4dC0+c3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJv
dG9jb2xSZXF1ZXN0TWFuYWdlcj4oKTsKICAgICBwcml2LT5jb250ZXh0LT5zZXRDYWNoZU1vZGVs
KENhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlcik7CkBAIC0xMDAzLDkgKzEwMDMsOSBAQCB2b2lk
IHdlYmtpdF93ZWJfY29udGV4dF9wcmVmZXRjaF9kbnMoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCwgY29uc3QgY2hhciogaG9zdAogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9D
T05URVhUKGNvbnRleHQpKTsKICAgICBnX3JldHVybl9pZl9mYWlsKGhvc3RuYW1lKTsKIAotICAg
IEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKKyAgICBBUEk6OkRpY3Rpb25h
cnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJI
b3N0bmFtZSIpLCBBUEk6OlN0cmluZzo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVURjgoaG9zdG5hbWUp
KSk7Ci0gICAgY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVu
ZGxlKFN0cmluZzo6ZnJvbVVURjgoIlByZWZldGNoRE5TIiksIEltbXV0YWJsZURpY3Rpb25hcnk6
OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKKyAgICBjb250ZXh0LT5wcml2LT5j
b250ZXh0LT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoU3RyaW5nOjpmcm9tVVRGOCgiUHJl
ZmV0Y2hETlMiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5n
ZXQoKSk7CiB9CiAKIC8qKgpAQCAtMTEyNCw3ICsxMTI0LDcgQEAgR1ZhcmlhbnQqIHdlYmtpdFdl
YkNvbnRleHRJbml0aWFsaXplV2ViRXh0ZW5zaW9ucyhXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0
KQogICAgICAgICBjb250ZXh0LT5wcml2LT53ZWJFeHRlbnNpb25zSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YS5nZXQoKSk7CiB9CiAKLVdlYkNvbnRleHQqIHdlYmtpdFdlYkNvbnRleHRHZXRDb250ZXh0
KFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQpCitXZWJQcm9jZXNzUG9vbCogd2Via2l0V2ViQ29u
dGV4dEdldENvbnRleHQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKIHsKICAgICBnX2Fzc2Vy
dChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaApp
bmRleCA0NzkxNmMwZGQ4MzM5MzgxYTE2MTAzNTNhZmM1MjQ1MWUzMTZlYmY2Li42ZWE3ZjJhYWYy
M2M1MDAyZjg5M2Q0ZGQ3OTAwMTViNzhiNjNlYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmgKQEAg
LTI3LDEzICsyNywxMyBAQAogI2RlZmluZSBXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZV9oCiAKICNp
bmNsdWRlICJEb3dubG9hZFByb3h5LmgiCi0jaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKICNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgog
Ci1XZWJLaXQ6OldlYkNvbnRleHQqIHdlYmtpdFdlYkNvbnRleHRHZXRDb250ZXh0KFdlYktpdFdl
YkNvbnRleHQqKTsKK1dlYktpdDo6V2ViUHJvY2Vzc1Bvb2wqIHdlYmtpdFdlYkNvbnRleHRHZXRD
b250ZXh0KFdlYktpdFdlYkNvbnRleHQqKTsKIFdlYktpdERvd25sb2FkKiB3ZWJraXRXZWJDb250
ZXh0R2V0T3JDcmVhdGVEb3dubG9hZChXZWJLaXQ6OkRvd25sb2FkUHJveHkqKTsKIFdlYktpdERv
d25sb2FkKiB3ZWJraXRXZWJDb250ZXh0U3RhcnREb3dubG9hZChXZWJLaXRXZWJDb250ZXh0Kiwg
Y29uc3QgY2hhciogdXJpLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSopOwogdm9pZCB3ZWJraXRXZWJD
b250ZXh0UmVtb3ZlRG93bmxvYWQoV2ViS2l0OjpEb3dubG9hZFByb3h5Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDAx
ZDk1ZjllYzFkZTk4ODM2NWMyNWIwYmFjMDBmMzZiY2IwNzc2NjcuLmM4YjYyNjZlNzg4Mzc0M2Jl
MmFjMDY3YTQzN2ViOWYzNjFjNTg3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0zNDcyLDE0ICszNDcyLDE0IEBAIHZv
aWQgd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJLaXRTbmFwc2hvdFJlZ2lvbiByCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
V0VCX1ZJRVcod2ViVmlldykpOwogCi0gICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBt
ZXNzYWdlOworICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOwogICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZVNuYXBzaG90Q2FsbGJhY2tJRCgpOwogICAgIG1lc3Nh
Z2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNuYXBzaG90T3B0aW9ucyIpLCBBUEk6OlVJbnQ2NDo6
Y3JlYXRlKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih3ZWJLaXRTbmFwc2hvdE9wdGlvbnNUb1NuYXBz
aG90T3B0aW9ucyhvcHRpb25zKSkpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4
KCJTbmFwc2hvdFJlZ2lvbiIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKHN0YXRpY19jYXN0PHVpbnQ2
NF90Pih0b1NuYXBzaG90UmVnaW9uKHJlZ2lvbikpKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5n
Ojpmcm9tVVRGOCgiQ2FsbGJhY2tJRCIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGNhbGxiYWNrSUQp
KTsKIAogICAgIHdlYlZpZXctPnByaXYtPnNuYXBzaG90UmVzdWx0c01hcC5zZXQoY2FsbGJhY2tJ
RCwgYWRvcHRHUmVmKGdfdGFza19uZXcod2ViVmlldywgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1
c2VyRGF0YSkpKTsKLSAgICBnZXRQYWdlKHdlYlZpZXcpLT5wb3N0TWVzc2FnZVRvSW5qZWN0ZWRC
dW5kbGUoU3RyaW5nOjpmcm9tVVRGOCgiR2V0U25hcHNob3QiKSwgSW1tdXRhYmxlRGljdGlvbmFy
eTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIGdldFBhZ2Uod2ViVmll
dyktPnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShTdHJpbmc6OmZyb21VVEY4KCJHZXRTbmFw
c2hvdCIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgp
KTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggMGJmNzBjZjQ4NzFiZWI2NDY5ZGQ3NWFkOGQ2
YTI2ZDY4ODA5ZWM1ZC4uNGJhOWU0NTM2N2IxZDBhNjNjODdlNTg0NTQ5YzViMjdmNmMyMWJhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBs
LmgiCiAjaW5jbHVkZSAiUmVkaXJlY3RlZFhDb21wb3NpdGVXaW5kb3cuaCIKICNpbmNsdWRlICJW
aWV3U3RhdGUuaCIKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRG
YWN0b3J5LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbkNsaWVudEd0ay5oIgogI2luY2x1ZGUg
IldlYkluc3BlY3RvclByb3h5LmgiCkBAIC00Nyw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVy
ZW5jZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0aWxpdGll
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgpAQCAtMTA4Miw3ICsxMDgy
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Jhc2VfY2xhc3NfaW5pdChXZWJLaXRX
ZWJWaWV3QmFzZUNsYXNzKiB3ZWJraXRXZWJWaWUKICAgICBjb250YWluZXJDbGFzcy0+Zm9yYWxs
ID0gd2Via2l0V2ViVmlld0Jhc2VDb250YWluZXJGb3JhbGw7CiB9CiAKLVdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQcmVm
ZXJlbmNlcyogcHJlZmVyZW5jZXMsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXJQcm94eSogdXNlckNvbnRlbnRDb250cm9sbGVyLCBXZWJQYWdlUHJveHkq
IHJlbGF0ZWRQYWdlKQorV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRl
KFdlYlByb2Nlc3NQb29sKiBjb250ZXh0LCBXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMsIFdl
YlBhZ2VHcm91cCogcGFnZUdyb3VwLCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSogdXNl
ckNvbnRlbnRDb250cm9sbGVyLCBXZWJQYWdlUHJveHkqIHJlbGF0ZWRQYWdlKQogewogICAgIFdl
YktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSA9IFdFQktJVF9XRUJfVklFV19CQVNF
KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfVklFV19CQVNFLCBOVUxMKSk7CiAgICAgd2Vi
a2l0V2ViVmlld0Jhc2VDcmVhdGVXZWJQYWdlKHdlYmtpdFdlYlZpZXdCYXNlLCBjb250ZXh0LCBw
cmVmZXJlbmNlcywgcGFnZUdyb3VwLCB1c2VyQ29udGVudENvbnRyb2xsZXIsIHJlbGF0ZWRQYWdl
KTsKQEAgLTExMTksNyArMTExOSw3IEBAIHN0YXRpYyB2b2lkIGRldmljZVNjYWxlRmFjdG9yQ2hh
bmdlZChXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiB9CiAjZW5kaWYgLy8g
SEFWRShHVEtfU0NBTEVfRkFDVE9SKQogCi12b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRlV2Vi
UGFnZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIFdlYkNvbnRleHQqIGNv
bnRleHQsIFdlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcywgV2ViUGFnZUdyb3VwKiBwYWdlR3Jv
dXAsIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5KiB1c2VyQ29udGVudENvbnRyb2xsZXIs
IFdlYlBhZ2VQcm94eSogcmVsYXRlZFBhZ2UpCit2b2lkIHdlYmtpdFdlYlZpZXdCYXNlQ3JlYXRl
V2ViUGFnZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIFdlYlByb2Nlc3NQ
b29sKiBjb250ZXh0LCBXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMsIFdlYlBhZ2VHcm91cCog
cGFnZUdyb3VwLCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSogdXNlckNvbnRlbnRDb250
cm9sbGVyLCBXZWJQYWdlUHJveHkqIHJlbGF0ZWRQYWdlKQogewogICAgIFdlYktpdFdlYlZpZXdC
YXNlUHJpdmF0ZSogcHJpdiA9IHdlYmtpdFdlYlZpZXdCYXNlLT5wcml2OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
UHJpdmF0ZS5oCmluZGV4IDExMmU0Y2JkNDZiNTVlZTI1ZTMwOGNmOTI2NjRmMDI0M2RhMDUwYmUu
LjY1NWEwYmUyYWFiNTM0ZDAwMjNiODRmMDM3YzRlYWM2MDY0NmZjZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
UHJpdmF0ZS5oCkBAIC0zNiwxMCArMzYsMTAgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFz
ZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogCi1XZWJLaXRXZWJWaWV3QmFzZSogd2Vi
a2l0V2ViVmlld0Jhc2VDcmVhdGUoV2ViS2l0OjpXZWJDb250ZXh0KiwgV2ViS2l0OjpXZWJQcmVm
ZXJlbmNlcyosIFdlYktpdDo6V2ViUGFnZUdyb3VwKiwgV2ViS2l0OjpXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJQcm94eSosIFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CitXZWJLaXRXZWJWaWV3QmFz
ZSogd2Via2l0V2ViVmlld0Jhc2VDcmVhdGUoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCosIFdlYktp
dDo6V2ViUHJlZmVyZW5jZXMqLCBXZWJLaXQ6OldlYlBhZ2VHcm91cCosIFdlYktpdDo6V2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHkqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSopOwogR3RrSU1D
b250ZXh0KiB3ZWJraXRXZWJWaWV3QmFzZUdldElNQ29udGV4dChXZWJLaXRXZWJWaWV3QmFzZSop
OwogV2ViS2l0OjpXZWJQYWdlUHJveHkqIHdlYmtpdFdlYlZpZXdCYXNlR2V0UGFnZShXZWJLaXRX
ZWJWaWV3QmFzZSopOwotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZVdlYlBhZ2UoV2ViS2l0
V2ViVmlld0Jhc2UqLCBXZWJLaXQ6OldlYkNvbnRleHQqLCBXZWJLaXQ6OldlYlByZWZlcmVuY2Vz
KiwgV2ViS2l0OjpXZWJQYWdlR3JvdXAqLCBXZWJLaXQ6OldlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5KiwgV2ViS2l0OjpXZWJQYWdlUHJveHkqKTsKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VD
cmVhdGVXZWJQYWdlKFdlYktpdFdlYlZpZXdCYXNlKiwgV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCos
IFdlYktpdDo6V2ViUHJlZmVyZW5jZXMqLCBXZWJLaXQ6OldlYlBhZ2VHcm91cCosIFdlYktpdDo6
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSopOwog
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldFRvb2x0aXBUZXh0KFdlYktpdFdlYlZpZXdCYXNlKiwg
Y29uc3QgY2hhciopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldFRvb2x0aXBBcmVhKFdlYktp
dFdlYlZpZXdCYXNlKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogdm9pZCB3ZWJraXRXZWJW
aWV3QmFzZUZvcndhcmROZXh0S2V5RXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdpbmRvd1Byb3BlcnRp
ZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2luZG93UHJv
cGVydGllcy5jcHAKaW5kZXggYmFjODhiNTc1OGRiNmJmNDAzZDBlZmFlOWMxMTUwNDJjNGZmYjk3
Yi4uNTRhMDMzODhjNDY0Mzc3NDhmMDg4YjU2MjI4MzA4NTJkNTRhYWY0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2luZG93UHJvcGVydGllcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2luZG93UHJv
cGVydGllcy5jcHAKQEAgLTIwLDkgKzIwLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJXZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmgiCiAKKyNpbmNsdWRlICJBUElEaWN0aW9uYXJ5
LmgiCiAjaW5jbHVkZSAiQVBJTnVtYmVyLmgiCiAjaW5jbHVkZSAiQVBJVVJMUmVxdWVzdC5oIgot
I2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZhdGUuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ludFJlY3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvV2ViQ29udGV4dEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dl
YkNvbnRleHRHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjUxNjY2MThi
OTAyZWI4YWEzZTEzZmFjNzRkMzYyYjY0YzM1MjhiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViQ29u
dGV4dEd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjkgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9u
cyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiV2ViQ29udGV4dC5oIgotCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIldl
YkNvb2tpZU1hbmFnZXJQcm94eS5oIgotI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgot
I2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJXZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0
TWFuYWdlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5
Lmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KLQotI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0jaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1zdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9yU2VydmVyKCkKLXsKLSNpZiBFTkFCTEUoSU5TUEVD
VE9SX1NFUlZFUikKLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlm
IChpbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW5pdGlhbGl6ZWQgPSB0cnVl
OwotICAgIFN0cmluZyBzZXJ2ZXJBZGRyZXNzKGdfZ2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NF
UlZFUiIpKTsKLQotICAgIGlmICghc2VydmVyQWRkcmVzcy5pc051bGwoKSkgewotICAgICAgICBT
dHJpbmcgYmluZEFkZHJlc3MgPSAiMTI3LjAuMC4xIjsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQg
cG9ydCA9IDI5OTk7Ci0KLSAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OwotICAgICAgICBz
ZXJ2ZXJBZGRyZXNzLnNwbGl0KCc6JywgcmVzdWx0KTsKLQotICAgICAgICBpZiAocmVzdWx0LnNp
emUoKSA9PSAyKSB7Ci0gICAgICAgICAgICBiaW5kQWRkcmVzcyA9IHJlc3VsdFswXTsKLSAgICAg
ICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKLSAgICAgICAgICAgIHBvcnQgPSByZXN1bHRbMV0udG9J
bnQoJm9rKTsKLSAgICAgICAgICAgIGlmICghb2spIHsKLSAgICAgICAgICAgICAgICBwb3J0ID0g
Mjk5OTsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlIHRoZSBwb3J0
LiBVc2UgMjk5OSBpbnN0ZWFkLiIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgJXMsIHdyb25nIGZvcm1hdD8gVXNl
IDEyNy4wLjAuMToyOTk5IGluc3RlYWQuIiwgc2VydmVyQWRkcmVzcy51dGY4KCkuZGF0YSgpKTsK
LQotICAgICAgICBpZiAoIVdlYkluc3BlY3RvclNlcnZlcjo6c2hhcmVkKCkubGlzdGVuKGJpbmRB
ZGRyZXNzLCBwb3J0KSkKLSAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQgbGlz
dGVuaW5nIG9uOiBJUCBhZGRyZXNzPSVzLCBwb3J0PSVkLiIsIGJpbmRBZGRyZXNzLnV0ZjgoKS5k
YXRhKCksIHBvcnQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgTE9HKEluc3BlY3Rv
clNlcnZlciwgIlRvIHN0YXJ0IGluc3BlY3RvciBzZXJ2ZXIgc2V0IFdFQktJVF9JTlNQRUNUT1Jf
U0VSVkVSIHRvIDEyNy4wLjAuMToyOTk5IGZvciBleGFtcGxlLiIpOwotI2VuZGlmCi19Ci0KLVdU
Rjo6U3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnkoKSBjb25zdAotewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdf
YnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndlYmtpdGd0ayIsICJhcHBs
aWNhdGlvbnMiLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmZpbGVuYW1lVG9TdHJp
bmcoY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOwotfQotCi12b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKLXsKLSAgICBpbml0SW5zcGVjdG9yU2VydmVyKCk7Ci0KLSAgICBpZiAoIXBhcmFtZXRl
cnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsLmNvbnRhaW5zKCJyZXNvdXJjZSIpKSB7Ci0g
ICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwo
InJlc291cmNlIik7Ci0gICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xv
Y2FsLmFwcGVuZCgicmVzb3VyY2UiKTsKLSAgICB9Ci0KLSAgICBpZiAoIXVzZXNOZXR3b3JrUHJv
Y2VzcygpKSB7Ci0gICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0
b21Qcm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyPigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOwotCi0gICAgICAg
IHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50
U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVy
cy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwotICAgICAgICBwYXJhbWV0ZXJzLmNvb2tp
ZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7Ci0KLSAgICAg
ICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKLSAgICB9
Ci19Ci0KLXZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCi17Ci19
Ci0KLVN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVj
dG9yeSgpCi17Ci0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXRndGsiLCAiZGF0YWJhc2Vz
IiwgbnVsbHB0cikpOwotICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGRhdGFi
YXNlRGlyZWN0b3J5LmdldCgpKTsKLX0KLQotU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVm
YXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3Jt
RGVmYXVsdEljb25EYXRhYmFzZVBhdGgoKSBjb25zdAotewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIo
KSwgIndlYmtpdGd0ayIsICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7Ci0gICAgcmV0dXJuIFdl
YkNvcmU6OmZpbGVuYW1lVG9TdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOwotfQotCi1T
dHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkK
LXsKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid2Via2l0Z3RrIiwgImxvY2Fsc3RvcmFnZSIsIG51
bGxwdHIpKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6ZmlsZW5hbWVUb1N0cmluZyhzdG9yYWdlRGly
ZWN0b3J5LmdldCgpKTsKLX0KLQotU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdE1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKQotewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1lZGlh
S2V5c1N0b3JhZ2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGly
KCksICJ3ZWJraXRndGsiLCAibWVkaWFrZXlzIiwgbnVsbHB0cikpOwotICAgIHJldHVybiBXZWJD
b3JlOjpmaWxlbmFtZVRvU3RyaW5nKG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkuZ2V0KCkpOwot
fQotCi1TdHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZhdWx0RGlza0NhY2hlRGlyZWN0b3J5
KCkgY29uc3QKLXsKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGRpc2tDYWNoZURpcmVjdG9yeShnX2J1
aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksIGdfZ2V0X3ByZ25hbWUoKSwgbnVs
bHB0cikpOwotICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGRpc2tDYWNoZURp
cmVjdG9yeS5nZXQoKSk7Ci19Ci0KLVN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRD
b29raWVTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotdm9pZCBXZWJDb250ZXh0OjpzZXRJZ25vcmVUTFNF
cnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCi17Ci0gICAgbV9pZ25vcmVUTFNFcnJvcnMgPSBp
Z25vcmVUTFNFcnJvcnM7Ci0jaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICBpZiAodXNl
c05ldHdvcmtQcm9jZXNzKCkgJiYgbmV0d29ya1Byb2Nlc3MoKSkgewotICAgICAgICBuZXR3b3Jr
UHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0SWdub3JlVExTRXJy
b3JzKG1faWdub3JlVExTRXJyb3JzKSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5k
aWYKLSAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldElnbm9y
ZVRMU0Vycm9ycyhtX2lnbm9yZVRMU0Vycm9ycykpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9y
UHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQ
cm94eUd0ay5jcHAKaW5kZXggM2UwNmFlMjU4MWZiZjY2ZWNjMWJhNjJmMzVlNjQwZTlhYWY3NWYz
ZS4uMzU4ZjA0N2MyMzJhM2U3MWRjMTBjYjE1NzBkYjkwNWM2NTFmMzQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAK
QEAgLTYyLDcgKzYyLDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKIHsKICAgICBBU1NFUlQobV9wYWdlKTsKICAgICBBU1NF
UlQoIW1faW5zcGVjdG9yVmlldyk7Ci0gICAgbV9pbnNwZWN0b3JWaWV3ID0gR1RLX1dJREdFVCh3
ZWJraXRXZWJWaWV3QmFzZUNyZWF0ZSgmaW5zcGVjdG9yQ29udGV4dCgpLCBudWxscHRyLCBpbnNw
ZWN0b3JQYWdlR3JvdXAoKSwgbnVsbHB0ciwgbnVsbHB0cikpOworICAgIG1faW5zcGVjdG9yVmll
dyA9IEdUS19XSURHRVQod2Via2l0V2ViVmlld0Jhc2VDcmVhdGUoJmluc3BlY3RvclByb2Nlc3NQ
b29sKCksIG51bGxwdHIsIGluc3BlY3RvclBhZ2VHcm91cCgpLCBudWxscHRyLCBudWxscHRyKSk7
CiAgICAgZ19vYmplY3RfYWRkX3dlYWtfcG9pbnRlcihHX09CSkVDVChtX2luc3BlY3RvclZpZXcp
LCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJm1faW5zcGVjdG9yVmlldykpOwogICAgIHJldHVy
biB3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV9pbnNwZWN0
b3JWaWV3KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NQb29sR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJv
Y2Vzc1Bvb2xHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4OWVkMjNjMjAwY2EzODczN2ZjYzE5ZjM3Y2M5
ZGFkNWQwYTE5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Z3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcApAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9u
cyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3RvY29sUmVx
dWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdp
c3RyeS5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIHZvaWQgaW5pdEluc3BlY3RvclNlcnZlcigpCit7CisjaWYgRU5BQkxFKElO
U1BFQ1RPUl9TRVJWRVIpCisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAg
ICBpZiAoaW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRpYWxpemVkID0g
dHJ1ZTsKKyAgICBTdHJpbmcgc2VydmVyQWRkcmVzcyhnX2dldGVudigiV0VCS0lUX0lOU1BFQ1RP
Ul9TRVJWRVIiKSk7CisKKyAgICBpZiAoIXNlcnZlckFkZHJlc3MuaXNOdWxsKCkpIHsKKyAgICAg
ICAgU3RyaW5nIGJpbmRBZGRyZXNzID0gIjEyNy4wLjAuMSI7CisgICAgICAgIHVuc2lnbmVkIHNo
b3J0IHBvcnQgPSAyOTk5OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAgICAg
ICAgc2VydmVyQWRkcmVzcy5zcGxpdCgnOicsIHJlc3VsdCk7CisKKyAgICAgICAgaWYgKHJlc3Vs
dC5zaXplKCkgPT0gMikgeworICAgICAgICAgICAgYmluZEFkZHJlc3MgPSByZXN1bHRbMF07Cisg
ICAgICAgICAgICBib29sIG9rID0gZmFsc2U7CisgICAgICAgICAgICBwb3J0ID0gcmVzdWx0WzFd
LnRvSW50KCZvayk7CisgICAgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICAgICAgcG9y
dCA9IDI5OTk7CisgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBwYXJzZSB0aGUg
cG9ydC4gVXNlIDI5OTkgaW5zdGVhZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlICVzLCB3cm9uZyBmb3JtYXQ/
IFVzZSAxMjcuMC4wLjE6Mjk5OSBpbnN0ZWFkLiIsIHNlcnZlckFkZHJlc3MudXRmOCgpLmRhdGEo
KSk7CisKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3JTZXJ2ZXI6OnNoYXJlZCgpLmxpc3Rlbihi
aW5kQWRkcmVzcywgcG9ydCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHN0YXJ0
IGxpc3RlbmluZyBvbjogSVAgYWRkcmVzcz0lcywgcG9ydD0lZC4iLCBiaW5kQWRkcmVzcy51dGY4
KCkuZGF0YSgpLCBwb3J0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExPRyhJbnNw
ZWN0b3JTZXJ2ZXIsICJUbyBzdGFydCBpbnNwZWN0b3Igc2VydmVyIHNldCBXRUJLSVRfSU5TUEVD
VE9SX1NFUlZFUiB0byAxMjcuMC4wLjE6Mjk5OSBmb3IgZXhhbXBsZS4iKTsKKyNlbmRpZgorfQor
CitXVEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0QXBwbGljYXRpb25D
YWNoZURpcmVjdG9yeSgpIGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJl
Y3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid2Via2l0Z3Rr
IiwgImFwcGxpY2F0aW9ucyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6ZmlsZW5h
bWVUb1N0cmluZyhjYWNoZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBpbml0SW5zcGVjdG9yU2VydmVyKCk7CisKKyAgICBp
ZiAoIXBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsLmNvbnRhaW5zKCJyZXNv
dXJjZSIpKSB7CisgICAgICAgIFdlYkNvcmU6OlNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNj
aGVtZUFzTG9jYWwoInJlc291cmNlIik7CisgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1Jl
Z2lzdGVyZWRBc0xvY2FsLmFwcGVuZCgicmVzb3VyY2UiKTsKKyAgICB9CisKKyAgICBpZiAoIXVz
ZXNOZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lz
dGVyZWRGb3JDdXN0b21Qcm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2Nv
bFJlcXVlc3RNYW5hZ2VyPigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygp
OworCisgICAgICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29r
aWVQZXJzaXN0ZW50U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0
aCwgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOworICAgICAgICBwYXJh
bWV0ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xp
Y3k7CisKKyAgICAgICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vy
cm9yczsKKyAgICB9Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0
ZUNvbnRleHQoKQoreworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVs
dFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRh
YmFzZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndl
YmtpdGd0ayIsICJkYXRhYmFzZXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OmZp
bGVuYW1lVG9TdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybURlZmF1bHRJY29uRGF0YWJhc2VQYXRoKCkgY29u
c3QKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRhYmFzZURpcmVjdG9yeShnX2J1aWxkX2Zp
bGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3ZWJraXRndGsiLCAiaWNvbmRhdGFiYXNl
IiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5nKGRhdGFi
YXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bURlZmF1bHRMb2NhbFN0b3JhZ2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IHN0b3JhZ2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCks
ICJ3ZWJraXRndGsiLCAibG9jYWxzdG9yYWdlIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJD
b3JlOjpmaWxlbmFtZVRvU3RyaW5nKHN0b3JhZ2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJp
bmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rv
cnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnko
Z19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3ZWJraXRndGsiLCAibWVk
aWFrZXlzIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpmaWxlbmFtZVRvU3RyaW5n
KG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtRGVmYXVsdERpc2tDYWNoZURpcmVjdG9yeSgpIGNvbnN0Cit7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiBkaXNrQ2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dl
dF91c2VyX2NhY2hlX2RpcigpLCBnX2dldF9wcmduYW1lKCksIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6ZmlsZW5hbWVUb1N0cmluZyhkaXNrQ2FjaGVEaXJlY3RvcnkuZ2V0KCkpOwor
fQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtRGVmYXVsdENvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9v
bCBpZ25vcmVUTFNFcnJvcnMpCit7CisgICAgbV9pZ25vcmVUTFNFcnJvcnMgPSBpZ25vcmVUTFNF
cnJvcnM7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBpZiAodXNlc05ldHdvcmtQ
cm9jZXNzKCkgJiYgbmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBuZXR3b3JrUHJvY2Vzcygp
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0SWdub3JlVExTRXJyb3JzKG1faWdu
b3JlVExTRXJyb3JzKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKyAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldElnbm9yZVRMU0Vycm9y
cyhtX2lnbm9yZVRMU0Vycm9ycykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZiNmQ4NzA0NDI5YjY2MmZkNGI3OTY5ZDU4ZjJmZjIy
ODRhOWE4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIK
LQotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVk
ZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViU291cEN1c3RvbVByb3Rv
Y29sUmVxdWVzdE1hbmFnZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi12b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKLXsKLSAgICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKS0+Z2V0Q29v
a2llUGVyc2lzdGVudFN0b3JhZ2UocGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVBh
dGgsIHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlKTsKLSAgICBwYXJhbWV0
ZXJzLmNvb2tpZUFjY2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7
Ci0gICAgcGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKLSAg
ICBwYXJhbWV0ZXJzLmxhbmd1YWdlcyA9IFdlYkNvcmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMo
KTsKLSAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xz
ID0gc3VwcGxlbWVudDxXZWJTb3VwQ3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlcj4oKS0+cmVn
aXN0ZXJlZFNjaGVtZXNGb3JDdXN0b21Qcm90b2NvbHMoKTsKLX0KLQotfQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE2YjZkODcwNDQyOWI2NjJmZDRiNzk2OWQ1OGYyZmYyMjg0YTlhODUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzUG9vbFNvdXAuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTb3Vw
Q3VzdG9tUHJvdG9jb2xSZXF1ZXN0TWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3Vh
Z2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIHN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5
PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOwor
ICAgIHBhcmFtZXRlcnMuY29va2llQWNjZXB0UG9saWN5ID0gbV9pbml0aWFsSFRUUENvb2tpZUFj
Y2VwdFBvbGljeTsKKyAgICBwYXJhbWV0ZXJzLmlnbm9yZVRMU0Vycm9ycyA9IG1faWdub3JlVExT
RXJyb3JzOworICAgIHBhcmFtZXRlcnMubGFuZ3VhZ2VzID0gV2ViQ29yZTo6dXNlclByZWZlcnJl
ZExhbmd1YWdlcygpOworICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0
b21Qcm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5h
Z2VyPigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFdlYkV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAppbmRl
eCA5YzQ4MmI5ZWRiMzkyYzJmZmVmMWEwNjFhZmQ3ZWY5OGMzYjYwZjBiLi45ZGI3MDBjZmY3NWQy
NGY3NDI3ZDg2N2I5YTc2NzdmOTk1MWRlNmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViRXh0ZW5zaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2Vi
S2l0V2ViRXh0ZW5zaW9uLmNwcApAQCAtMjAsOCArMjAsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYktpdFdlYkV4dGVuc2lvbi5oIgogCisjaW5jbHVkZSAiQVBJRGljdGlv
bmFyeS5oIgogI2luY2x1ZGUgIkFQSVN0cmluZy5oIgotI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rp
b25hcnkuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRs
ZVBhZ2UuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCkBAIC04MSw3ICs4MSw3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYkV4dGVuc2lvblBhZ2VEZXN0cm95KFdlYktpdFdlYkV4dGVuc2lv
biogZXh0ZW5zaW9uLCBXZWJQYWdlCiAgICAgZXh0ZW5zaW9uLT5wcml2LT5wYWdlcy5yZW1vdmUo
cGFnZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFdlYkV4dGVuc2lvbkRpZFJlY2VpdmVNZXNz
YWdlKFdlYktpdFdlYkV4dGVuc2lvbiosIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIEltbXV0
YWJsZURpY3Rpb25hcnkmIG1lc3NhZ2UpCitzdGF0aWMgdm9pZCB3ZWJraXRXZWJFeHRlbnNpb25E
aWRSZWNlaXZlTWVzc2FnZShXZWJLaXRXZWJFeHRlbnNpb24qLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2VOYW1lLCBBUEk6OkRpY3Rpb25hcnkmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKG1lc3NhZ2VOYW1l
ID09IFN0cmluZzo6ZnJvbVVURjgoIlByZWZldGNoRE5TIikpIHsKICAgICAgICAgQVBJOjpTdHJp
bmcqIGhvc3RuYW1lID0gc3RhdGljX2Nhc3Q8QVBJOjpTdHJpbmcqPihtZXNzYWdlLmdldChTdHJp
bmc6OmZyb21VVEY4KCJIb3N0bmFtZSIpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFn
ZS5jcHAKaW5kZXggNzczOWVmZTdhYWZhNmYzZDBmOGViM2Q2MWRiMDYzOTAyN2Y1ZjMyYy4uYmQw
OTlkODUzM2U0MmFkM2Q4ZmIwZmVkMjZhN2FiNjUzOWU5ZmEyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMjEsOCArMjEsOCBAQAogI2luY2x1ZGUgIldlYktpdFdl
YlBhZ2UuaCIKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCisjaW5jbHVkZSAiQVBJRGljdGlvbmFy
eS5oIgogI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgotI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rp
b25hcnkuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIldLQnVuZGxl
QVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlRnJhbWUuaCIKQEAgLTE1OCwxMiArMTU4LDEy
IEBAIHN0YXRpYyB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdl
UmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lCiAKIHN0YXRpYyB2b2lkIGRpZEluaXRpYXRlTG9h
ZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
LCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgYm9vbCAvKiBw
YWdlTG9hZElzUHJvdmlzaW9uYWwgKi8sIGNvbnN0IHZvaWQqKQogewotICAgIEltbXV0YWJsZURp
Y3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKKyAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUg
bWVzc2FnZTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1w
bChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiRnJhbWUiKSwgdG9J
bXBsKGZyYW1lKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmll
ciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBtZXNzYWdlLnNldChT
dHJpbmc6OmZyb21VVEY4KCJSZXF1ZXN0IiksIHRvSW1wbChyZXF1ZXN0KSk7Ci0gICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9t
VVRGOCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0
aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRG
OCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6
OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIFdLVVJMUmVx
dWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tVUkxSZXF1ZXN0UmVmIHdrUmVx
dWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCkBAIC0xODIsNTAgKzE4Miw1MCBAQCBzdGF0aWMgV0tVUkxSZXF1ZXN0UmVmIHdp
bGxTZW5kUmVxdWVzdEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYQog
ICAgIHJlc291cmNlUmVxdWVzdC5zZXRJbml0aWF0aW5nUGFnZUlEKHRvSW1wbChwYWdlKS0+cGFn
ZUlEKCkpOwogICAgIFJlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IG5ld1JlcXVlc3QgPSBBUEk6OlVS
TFJlcXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJlcXVlc3QpOwogCi0gICAgSW1tdXRhYmxlRGljdGlv
bmFyeTo6TWFwVHlwZSBtZXNzYWdlOworICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBtZXNz
YWdlOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwgdG9JbXBsKHBh
Z2UpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlmaWVyIiksIEFQ
STo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6
ZnJvbVVURjgoIlJlcXVlc3QiKSwgbmV3UmVxdWVzdC5nZXQoKSk7CiAgICAgaWYgKCFyZWRpcmVj
dFJlc291cmNlUmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6
ZnJvbVVURjgoIlJlZGlyZWN0UmVzcG9uc2UiKSwgdG9JbXBsKHdrUmVkaXJlY3RSZXNwb25zZSkp
OwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdl
KFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkU2VuZFJlcXVlc3RGb3JSZXNvdXJjZSIpLCBJ
bW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7Cisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3Ry
aW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEFQSTo6
RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogCiAgICAgcmV0
dXJuIHRvQVBJKG5ld1JlcXVlc3QucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CiAKIHN0YXRpYyB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS1VSTFJlc3BvbnNlUmVmIHJl
c3BvbnNlLCBjb25zdCB2b2lkKikKIHsKLSAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBl
IG1lc3NhZ2U7CisgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAgbWVz
c2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUGFnZSIpLCB0b0ltcGwocGFnZSkpOwogICAgIG1l
c3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIklkZW50aWZpZXIiKSwgQVBJOjpVSW50NjQ6OmNy
ZWF0ZShpZGVudGlmaWVyKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVz
cG9uc2UiKSwgdG9JbXBsKHJlc3BvbnNlKSk7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5q
ZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRS
ZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUo
V1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5q
ZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRS
ZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6
Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGhGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJl
ZiwgdWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3QgbGVuZ3RoLCBjb25zdCB2b2lkKikKIHsK
LSAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CisgICAgQVBJOjpEaWN0
aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRG
OCgiUGFnZSIpLCB0b0ltcGwocGFnZSkpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVU
RjgoIklkZW50aWZpZXIiKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShpZGVudGlmaWVyKSk7CiAgICAg
bWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiQ29udGVudExlbmd0aCIpLCBBUEk6OlVJbnQ2
NDo6Y3JlYXRlKGxlbmd0aCkpOwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVjdGVkQnVu
ZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGhGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RG
Ojptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0
ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRSZWNl
aXZlQ29udGVudExlbmd0aEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdU
Rjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2Fk
Rm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IHZvaWQqKQogewotICAgIEltbXV0YWJsZURpY3Rpb25hcnk6
Ok1hcFR5cGUgbWVzc2FnZTsKKyAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsK
ICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7
CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBBUEk6OlVJ
bnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbmpl
Y3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZEZp
bmlzaExvYWRGb3JSZXNvdXJjZSIpLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjpt
b3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRC
dW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRGaW5pc2hM
b2FkRm9yUmVzb3VyY2UiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3Nh
Z2UpKS5nZXQoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkRm9yUmVzb3VyY2UoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFdLRXJyb3JSZWYgZXJyb3IsIGNvbnN0IHZvaWQqKQogewotICAgIEltbXV0YWJsZURpY3Rpb25h
cnk6Ok1hcFR5cGUgbWVzc2FnZTsKKyAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2Fn
ZTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiksIHRvSW1wbChwYWdl
KSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRpZmllciIpLCBBUEk6
OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZy
b21VVEY4KCJFcnJvciIpLCB0b0ltcGwoZXJyb3IpKTsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdl
LkRpZEZhaWxMb2FkRm9yUmVzb3VyY2UiKSwgSW1tdXRhYmxlRGljdGlvbmFyeTo6Y3JlYXRlKFdU
Rjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluamVj
dGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkRmFp
bExvYWRGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVz
c2FnZSkpLmdldCgpKTsKIH0KIAogc3RhdGljIHZvaWQgZ2V0Q29udGV4dE1lbnVGcm9tRGVmYXVs
dE1lbnUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgd2tIaXRUZXN0
UmVzdWx0LCBXS0FycmF5UmVmIHdrRGVmYXVsdE1lbnUsIFdLQXJyYXlSZWYqIHdrTmV3TWVudSwg
V0tUeXBlUmVmKiB3a1VzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtNDQ4LDcg
KzQ0OCw3IEBAIFdlYktpdFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VDcmVhdGUoV2ViUGFnZSogd2Vi
UGFnZSkKICAgICByZXR1cm4gcGFnZTsKIH0KIAotdm9pZCB3ZWJraXRXZWJQYWdlRGlkUmVjZWl2
ZU1lc3NhZ2UoV2ViS2l0V2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwg
SW1tdXRhYmxlRGljdGlvbmFyeSYgbWVzc2FnZSkKK3ZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2Vp
dmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUs
IEFQSTo6RGljdGlvbmFyeSYgbWVzc2FnZSkKIHsKICAgICBpZiAobWVzc2FnZU5hbWUgPT0gU3Ry
aW5nKCJHZXRTbmFwc2hvdCIpKSB7CiAgICAgICAgIFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9w
dGlvbnMgPSBzdGF0aWNfY2FzdDxTbmFwc2hvdE9wdGlvbnM+KHN0YXRpY19jYXN0PEFQSTo6VUlu
dDY0Kj4obWVzc2FnZS5nZXQoIlNuYXBzaG90T3B0aW9ucyIpKS0+dmFsdWUoKSk7CkBAIC00NzMs
MTEgKzQ3MywxMSBAQCB2b2lkIHdlYmtpdFdlYlBhZ2VEaWRSZWNlaXZlTWVzc2FnZShXZWJLaXRX
ZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYQogICAgICAgICAgICAgICAgIHNu
YXBzaG90SW1hZ2UgPSB3ZWJQYWdlLT5zY2FsZWRTbmFwc2hvdFdpdGhPcHRpb25zKHNuYXBzaG90
UmVjdCwgMSwgc25hcHNob3RPcHRpb25zIHwgU25hcHNob3RPcHRpb25zU2hhcmVhYmxlKTsKICAg
ICAgICAgfQogCi0gICAgICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZVJl
cGx5OworICAgICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZVJlcGx5OwogICAg
ICAgICBtZXNzYWdlUmVwbHkuc2V0KCJQYWdlIiwgd2ViUGFnZSk7CiAgICAgICAgIG1lc3NhZ2VS
ZXBseS5zZXQoIkNhbGxiYWNrSUQiLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGNhbGxiYWNrSUQpKTsK
ICAgICAgICAgbWVzc2FnZVJlcGx5LnNldCgiU25hcHNob3QiLCBzbmFwc2hvdEltYWdlKTsKLSAg
ICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2Uo
IldlYlBhZ2UuRGlkR2V0U25hcHNob3QiLCBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoV1RG
Ojptb3ZlKG1lc3NhZ2VSZXBseSkpLmdldCgpKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVk
KCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoIldlYlBhZ2UuRGlkR2V0U25hcHNob3Qi
LCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZVJlcGx5KSkuZ2V0KCkp
OwogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJL
aXRXZWJQYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2VQcml2YXRlLmgKaW5kZXggM2ZlYzU2ZTczNDYyZWEy
MzA5YmY2N2RiM2ExYzIwNzM1MWU5ZWEzYy4uNDZhOGQyNmM4MTljOTVjNzNmZWVlMzAyMWVkYmQy
ZTFlYTA4MzEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2VQcml2YXRl
LmgKQEAgLTIwLDExICsyMCwxMSBAQAogI2lmbmRlZiBXZWJLaXRXZWJQYWdlUHJpdmF0ZV9oCiAj
ZGVmaW5lIFdlYktpdFdlYlBhZ2VQcml2YXRlX2gKIAotI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rp
b25hcnkuaCIKKyNpbmNsdWRlICJBUElEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vi
UGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKIAogV2ViS2l0V2ViUGFnZSogd2Via2l0V2Vi
UGFnZUNyZWF0ZShXZWJLaXQ6OldlYlBhZ2UqKTsKLXZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2Vp
dmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBXZWJL
aXQ6OkltbXV0YWJsZURpY3Rpb25hcnkmIG1lc3NhZ2UpOwordm9pZCB3ZWJraXRXZWJQYWdlRGlk
UmVjZWl2ZU1lc3NhZ2UoV2ViS2l0V2ViUGFnZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUs
IEFQSTo6RGljdGlvbmFyeSYgbWVzc2FnZSk7CiAKICNlbmRpZiAvLyBXZWJLaXRXZWJQYWdlUHJp
dmF0ZV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>