<?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>73019</bug_id>
          
          <creation_ts>2011-11-23 06:18:30 -0800</creation_ts>
          <short_desc>Web Inspector: split console agent into worker and page console agents</short_desc>
          <delta_ts>2011-11-23 22:17:26 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>58541</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>508103</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-23 06:18:30 -0800</bug_when>
    <thetext>Some console functionality is not supported in workers, e.g. addInspectedNode has no sense for worker since there is no DOM tree. I&apos;d like to split the agent into worker and page specific descendants.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508106</commentid>
    <comment_count>1</comment_count>
      <attachid>116351</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-23 06:23:25 -0800</bug_when>
    <thetext>Created attachment 116351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508125</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-23 07:29:01 -0800</bug_when>
    <thetext>Committed r101081: &lt;http://trac.webkit.org/changeset/101081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508542</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2011-11-23 18:21:53 -0800</bug_when>
    <thetext>What is the bigger picture here? Do workers get their own Inspector?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508626</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-23 22:17:26 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; What is the bigger picture here? Do workers get their own Inspector?

Worker inspection meta bug describes this in details: https://bugs.webkit.org/show_bug.cgi?id=58541

At the moment we can list all dedicated workers in the Page&apos;s inspector and open separate inspector for each of them. It requires window.open to work inside inspector front-end on the platform. In WebKit2 it is blocked by https://bugs.webkit.org/show_bug.cgi?id=72506.

Shared worker also can be inspected using its own web inspector. The idea is to have some discovery page for shared workers which would allow opening inspector front-end for each shared worker. In Chromium we use browser task manager for discovering shared worker processes and inspecting them.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116351</attachid>
            <date>2011-11-23 06:23:25 -0800</date>
            <delta_ts>2011-11-23 07:17:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73019-20111123182323.patch</filename>
            <type>text/plain</type>
            <size>55321</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJiOWJmZDAzMTc0OGYx
YTBlZGMzMGZlYTkxODMxOTlkZDcxYjk5Mi4uMjdhNGJiNTFhMzlhODc3NTEyMzcwYTE5NTllOTY4
OTY5NGYxNWY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDExLTExLTIzICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNwbGl0IGNvbnNvbGUgYWdlbnQgaW50byB3b3JrZXIgYW5kIHBhZ2UgY29uc29sZSBhZ2Vu
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMDE5
CisKKyAgICAgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50IG5vdyBoYXMgdHdvIGRlc2NlbmRhbnRz
OiBXb3JrZXJDb25zb2xlQWdlbnQgYW5kIFBhZ2VDb25zb2xlQWdlbnQKKyAgICAgICAgd2hpY2gg
ZW5jYXBzdWxhdGUgZnVuY3Rpb25hbGl0eSBzcGVjaWZpYyBmb3IgdGhlIHR5cGUgb2YgaW5zcGVj
dGVkIGluc3RhbmNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6Oklu
c3BlY3RvckNvbnNvbGVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xl
QWdlbnQ6On5JbnNwZWN0b3JDb25zb2xlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29uc29sZUFnZW50OjpjbGVhck1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmRpZEZh
aWxMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6YWRk
Q29uc29sZU1lc3NhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmg6CisgICAgICAgICogaW5z
cGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNv
bnNvbGVBZ2VudDo6UGFnZUNvbnNvbGVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZUFnZW50Ojp+UGFnZUNvbnNvbGVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZUFnZW50OjpjbGVhck1lc3NhZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
QWdlbnQ6OmFkZEluc3BlY3RlZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVB
Z2VudDo6ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VD
b25zb2xlQWdlbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VE
ZWJ1Z2dlckFnZW50LmguCisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNw
cDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oLgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1
bnRpbWVBZ2VudDo6UGFnZVJ1bnRpbWVBZ2VudCk6IFBhZ2VSdW50aW1lQWdlbnQgd2FzIG1vdmVk
IGludG8gaXRzIG93biBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6
flBhZ2VSdW50aW1lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6
c2NyaXB0U3RhdGVGb3JGcmFtZUlkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdl
bnQ6OmdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VE
ZWJ1Z2dlckFnZW50LmguCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2Vu
dC5oLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUFnZW50OjpXb3JrZXJDb25zb2xl
QWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29uc29sZUFnZW50Ojp+V29ya2VyQ29u
c29sZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnNvbGVBZ2VudDo6YWRkSW5z
cGVjdGVkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb25zb2xlQWdlbnQ6OmRldmVs
b3BlckV4dHJhc0VuYWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdl
bnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFn
ZW50LmguCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VySW5zcGVjdG9yQ29udHJvbGxlcjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcik6CisgICAg
ICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmguCisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJSdW50aW1lQWdlbnQ6OldvcmtlclJ1bnRpbWVBZ2VudCk6IFdvcmtlclJ1bnRpbWVBZ2VudCB3
YXMgbW92ZWQgaW50byBpdHMgb3duIGZpbGUuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJSdW50
aW1lQWdlbnQ6On5Xb3JrZXJSdW50aW1lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
UnVudGltZUFnZW50OjpzY3JpcHRTdGF0ZUZvckZyYW1lSWQpOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyUnVudGltZUFnZW50OjpnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUpOgorICAgICAgICAq
IGluc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmguCisKIDIwMTEtMTEtMjMgIE1paG5lYSBP
dmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CiAKICAgICAgICAgQ1NTIEV4Y2x1c2lvbnM6IHVw
ZGF0ZSB0aGUgbmFtZSBvZiB0aGUgc2hhcGUgQ1NTIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggNjUyNzQyYzQwMWJkMDBiNDQ1NjdlNzY3ZDlhYzZmZWQ2ZmI1MTljYy4uNWE2OWE0
YTgzODFlOTljYzY5ZjM3ZDIxYjZiODc1ZDE0OTEwYTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTkwMSwxMyArOTAxLDE3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yV29ya2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2Vu
dHMuY3BwCiAgICAgaW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcAorICAgIGluc3Bl
Y3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcAogICAgIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2Vu
dC5jcHAKKyAgICBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKICAgICBpbnNwZWN0b3Iv
U2NyaXB0QXJndW1lbnRzLmNwcAogICAgIGluc3BlY3Rvci9TY3JpcHRDYWxsRnJhbWUuY3BwCiAg
ICAgaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5jcHAKICAgICBpbnNwZWN0b3IvVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmNwcAorICAgIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCiAg
ICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL1dvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisgICAgaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2Vu
dC5jcHAKIAogICAgIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCiAgICAgbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCBiZTE3ZDI0NjE5YWE2Nzc5ZTkyMjE4Y2YyZjI4NGZhMDhhNzE5ZGNk
Li5jYjJmOWEyNDZmMTEzZGVkNWE5YTM4ZTMxNGViNDc5YWQ5OWVhYTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTIxMDksOCArMjEwOSwxMiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9OZXR3b3JrUmVzb3VyY2VzRGF0YS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlRGVidWdnZXJBZ2VudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
RGVidWdnZXJBZ2VudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVB
Z2VudC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50LmggXApAQCAtMjEyMiwxMCArMjEyNiwxNCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRHQ0V2
ZW50TGlzdGVuZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZh
Y3RvcnkuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVBZ2VudC5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmggXAorCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAw
OTVmMTAyZGJjNTAzNDlhYzc4ZGFlYzgyNDlhYjhjOTcwN2NiODAxLi5lZWI3ZjgwNmYxNDc0NjRm
MmIwNjg5NGUxMTgyMTAzMDVjMmY5YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg4NiwxMyArODg2LDE3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAg
XAogICAgIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcCBcCiAgICAgaW5zcGVjdG9y
L05ldHdvcmtSZXNvdXJjZXNEYXRhLmNwcCBcCisgICAgaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdl
bnQuY3BwIFwKICAgICBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIFwKKyAgICBpbnNw
ZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9TY3JpcHRBcmd1bWVu
dHMuY3BwIFwKICAgICBpbnNwZWN0b3IvU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCiAgICAgaW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFjay5jcHAgXAogICAgIGluc3BlY3Rvci9UaW1lbGluZVJlY29yZEZh
Y3RvcnkuY3BwIFwKKyAgICBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBcCiAgICAg
aW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAorICAgIGluc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdl
bnQuY3BwIFwKICAgICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAgXAogICAg
IGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIFwKICAgICBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIFwKQEAgLTE5MzIsMTAgKzE5MzYsMTQg
QEAgSEVBREVSUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmggXAog
ICAgIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmggXAogICAgIGluc3BlY3Rvci9OZXR3
b3JrUmVzb3VyY2VzRGF0YS5oIFwKKyAgICBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oIFwK
ICAgICBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaCBcCisgICAgaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oIFwK
ICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggXAorICAgIGluc3BlY3Rvci9X
b3JrZXJDb25zb2xlQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQu
aCBcCisgICAgaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oIFwKICAgICBsb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmggXAogICAgIGxvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlSG9zdC5oIFwKICAgICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0YWJjODQwZmU5NzBjNWMyYjIwMTEzMTRlZWQ2YzYy
NmFmOGY4NTU2Li45MTgwZWY0YmVmZjgwMmQxNmUzZDRkNTQwZjEyNTQxOTJjNjlmMmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0yNzcxLDggKzI3NzEsMTIgQEAKICAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvTmV0d29y
a1Jlc291cmNlc0RhdGEuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvTmV0d29ya1Jlc291
cmNlc0RhdGEuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3Bw
JywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2Vu
dC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmNwcCcsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvU2NyaXB0Q2FsbEZyYW1lLmNwcCcsCkBAIC0yNzgyLDEwICsyNzg2LDE0IEBACiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL1NjcmlwdEdDRXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3Iv
V29ya2VyQ29uc29sZUFnZW50LmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL1dvcmtlckNv
bnNvbGVBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2Vu
dC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCcsCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAnLAorICAgICAgICAgICAg
J2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL0Nh
Y2hlZE1ldGFkYXRhLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCA1Y2NlMDNhNzIzOGQ2NjdlNmUxNDNmZDM3NTA1MTZkMDkyNTZiNWUwLi5hMWViNjY2ZTVkMzU4
OTVhMjU4OTI0MzFjODM2MzIzYzcxOTE3YTliIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjg1NzQsNiArNjg1NzQsMTQgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFBhZ2VD
b25zb2xlQWdlbnQuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcUGFnZUNvbnNvbGVBZ2VudC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTY4NTgyLDYgKzY4NTkwLDE0IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rv
clxQYWdlUnVudGltZUFnZW50LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFBhZ2VSdW50aW1lQWdlbnQuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFNjcmlw
dEFyZ3VtZW50cy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNjg2MjIsNiArNjg2MzgsMTQg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5z
cGVjdG9yXFdvcmtlckNvbnNvbGVBZ2VudC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxXb3JrZXJDb25zb2xlQWdlbnQuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXFdvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTY4NjM3
LDYgKzY4NjYxLDE0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcV29ya2VyUnVudGltZUFnZW50LmNwcCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXFdvcmtl
clJ1bnRpbWVBZ2VudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWx0ZXIKIAkJCQlOYW1l
PSJmcm9udC1lbmQiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVkYWQ1MWZiNTUxNmM2MGIwMDZjNGY5MTM1NTE0NzIx
ZWI4YjkyNmMuLmZlNDc0MDY3ZjQwMTI0NzAxY2E0YjQzNTI4OGYwMmNiNjFlNmJkMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTYwMjMsNiArNjAyMywxNCBAQAogCQlGMzc1Q0MwNzExNTBEMzAwMDA4RERCODEgLyogSW5zcGVj
dG9yV29ya2VyUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEYzNzVDQzA2MTE1MEQzMDAwMDhEREI4MSAvKiBJbnNwZWN0b3JXb3JrZXJSZXNv
dXJjZS5oICovOyB9OwogCQlGMzgxMEMxQjEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29y
a2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjM4MTBDMTkxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmNwcCAq
LzsgfTsKIAkJRjM4MTBDMUMxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgxMEMx
QTEzNjVBNDk2MDBFRDZFMzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCAqLzsgfTsKKwkJRjM4
MjA4OTIxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEExNDdEMzVGOTAwMTBC
QzA2IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwICovOyB9OworCQlGMzgyMDg5MzE0N0QzNUY5MDAx
MEJDMDYgLyogUGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEIxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VDb25zb2xl
QWdlbnQuaCAqLzsgfTsKKwkJRjM4MjA4OTQxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1l
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjM4MjA4OEMxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuY3BwICovOyB9Owor
CQlGMzgyMDg5NTE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM4MjA4OEQxNDdEMzVGOTAw
MTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLzsgfTsKKwkJRjM4MjA4OTYxNDdEMzVGOTAw
MTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgyMDg4RTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2Vy
Q29uc29sZUFnZW50LmNwcCAqLzsgfTsKKwkJRjM4MjA4OTcxNDdEMzVGOTAwMTBCQzA2IC8qIFdv
cmtlckNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjM4MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5o
ICovOyB9OworCQlGMzgyMDg5ODE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzODIw
ODkwMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwICovOyB9OworCQlG
MzgyMDg5OTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzgyMDg5MTE0N0QzNUY5MDAx
MEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggKi87IH07CiAJCUYzOTIyNDlDMTI2RjExQUUw
MEE5MjZEOSAvKiBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzOTIyNDlBMTI2RjExQUUwMEE5MjZEOSAvKiBT
Y3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCAqLzsgfTsKIAkJRjM5MjI0OUQxMjZGMTFBRTAwQTky
NkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzOTIyNDlCMTI2RjExQUUwMEE5MjZEOSAvKiBTY3JpcHRD
YWxsU3RhY2tGYWN0b3J5LmggKi87IH07CiAJCUYzOUJFOTVCMTI2NzNCRjQwMEUwQTY3NCAvKiBT
Y3JpcHRBcmd1bWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjM5QkU5NTkxMjY3M0JGNDAwRTBBNjc0IC8qIFNjcmlwdEFyZ3VtZW50cy5jcHAg
Ki87IH07CkBAIC0xMzM4MSw2ICsxMzM4OSwxNCBAQAogCQlGMzc1Q0MwNjExNTBEMzAwMDA4RERC
ODEgLyogSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5zcGVjdG9yV29ya2VyUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjM4MTBDMTkxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvcldvcmtl
ckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM4MTBDMUExMzY1QTQ5
NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvcldvcmtlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUYzODIwODhBMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlQ29uc29sZUFnZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VDb25zb2xlQWdlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMzgyMDg4QjE0N0QzNUY5MDAxMEJD
MDYgLyogUGFnZUNvbnNvbGVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYWdlQ29uc29sZUFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzODIw
ODhDMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VSdW50aW1lQWdlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGMzgyMDg4RDE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRp
bWVBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlUnVudGltZUFn
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYzODIwODhFMTQ3RDM1RjkwMDEw
QkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV29ya2VyQ29uc29sZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjM4MjA4OEYxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXb3JrZXJDb25zb2xlQWdlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjM4MjA4OTAxNDdEMzVGOTAwMTBCQzA2IC8q
IFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXb3JrZXJSdW50aW1lQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGMzgyMDg5MTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlclJ1bnRpbWVBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGMzkyMjQ5QTEyNkYxMUFFMDBBOTI2RDkgLyogU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjM5MjI0OUIxMjZGMTFBRTAwQTkyNkQ5IC8qIFNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzlCRTk1OTEyNjczQkY0MDBFMEE2NzQg
LyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNjcmlwdEFyZ3VtZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDU1Niw4ICsxNDU3MiwxMiBAQAogCQkJCUJDQzY0RjVGMERDRkI4NEUwMDgxRUYzQiAvKiBsb2Nh
bGl6ZWRTdHJpbmdzLmpzICovLAogCQkJCTU5QzI3RjA0MTM4RDI4QzEwMDc5QjdFMiAvKiBOZXR3
b3JrUmVzb3VyY2VzRGF0YS5jcHAgKi8sCiAJCQkJNTlDMjdGMDYxMzhEMjhDRjAwNzlCN0UyIC8q
IE5ldHdvcmtSZXNvdXJjZXNEYXRhLmggKi8sCisJCQkJRjM4MjA4OEExNDdEMzVGOTAwMTBCQzA2
IC8qIFBhZ2VDb25zb2xlQWdlbnQuY3BwICovLAorCQkJCUYzODIwODhCMTQ3RDM1RjkwMDEwQkMw
NiAvKiBQYWdlQ29uc29sZUFnZW50LmggKi8sCiAJCQkJRjM0NzQyREExMzQzNjJGMDAwNTMxQkMy
IC8qIFBhZ2VEZWJ1Z2dlckFnZW50LmNwcCAqLywKIAkJCQlGMzQ3NDJEQjEzNDM2MkYwMDA1MzFC
QzIgLyogUGFnZURlYnVnZ2VyQWdlbnQuaCAqLywKKwkJCQlGMzgyMDg4QzE0N0QzNUY5MDAxMEJD
MDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5jcHAgKi8sCisJCQkJRjM4MjA4OEQxNDdEMzVGOTAwMTBC
QzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLywKIAkJCQlGMzlCRTk1OTEyNjczQkY0MDBFMEE2
NzQgLyogU2NyaXB0QXJndW1lbnRzLmNwcCAqLywKIAkJCQlGMzlCRTk1QTEyNjczQkY0MDBFMEE2
NzQgLyogU2NyaXB0QXJndW1lbnRzLmggKi8sCiAJCQkJN0FGRDRBOEExMTMxQzI3NjAwMzVCODgz
IC8qIFNjcmlwdEJyZWFrcG9pbnQuaCAqLywKQEAgLTE0NTcwLDEwICsxNDU5MCwxNCBAQAogCQkJ
CTlGQTM3RUYwMTE3MkZENDEwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5pZGwgKi8sCiAJ
CQkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAg
Ki8sCiAJCQkJNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oICovLAorCQkJCUYzODIwODhFMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdl
bnQuY3BwICovLAorCQkJCUYzODIwODhGMTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xl
QWdlbnQuaCAqLywKIAkJCQlGMzQ3NDJERTEzNDM2MzFGMDA1MzFCQzIgLyogV29ya2VyRGVidWdn
ZXJBZ2VudC5jcHAgKi8sCiAJCQkJRjM0NzQyREYxMzQzNjMxRjAwNTMxQkMyIC8qIFdvcmtlckRl
YnVnZ2VyQWdlbnQuaCAqLywKIAkJCQlGMzZFMDdBMjEzNThBOEJFMDBBQUNCQzkgLyogV29ya2Vy
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJRjM2RTA3QTMxMzU4QThCRTAwQUFDQkM5
IC8qIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCAqLywKKwkJCQlGMzgyMDg5MDE0N0QzNUY5
MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmNwcCAqLywKKwkJCQlGMzgyMDg5MTE0N0Qz
NUY5MDAxMEJDMDYgLyogV29ya2VyUnVudGltZUFnZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGluc3BlY3RvcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNDcyNyw2ICsyNDc1
MSwxMCBAQAogCQkJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUEzRTI2NDMxMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVu
dFF1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTM4QTlFNTE0NzQ0MzQ2MDBCMEVEMTIgLyog
U3R5bGVTaGFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUYzODIwODkzMTQ3RDM1RjkwMDEwQkMw
NiAvKiBQYWdlQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGMzgyMDg5NTE0N0Qz
NUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjM4
MjA4OTcxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlckNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRjM4MjA4OTkxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yNzYwMSw2ICsyNzYyOSwxMCBAQAogCQkJCTUwMzhCRTJGMTQ3
MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUEzRTI2NDMwMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVudFF1ZXVlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUYzODIwODkyMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlQ29u
c29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUYzODIwODk0MTQ3RDM1RjkwMDEwQkMw
NiAvKiBQYWdlUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUYzODIwODk2MTQ3
RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjM4MjA4OTgxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnNvbGVBZ2VudC5jcHAKaW5kZXggMWUzZDdlYjU2YTkzOGEwMWMzZjhkYmMwMGYyYWI0NTY0ZjVj
YjAxYS4uMTI1ZWM3YWU0NTJmOTMzMmZiZmVjY2RiYWQ5NWFlMTBlNmY4YzI3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAg
LTM0LDggKzM0LDYgQEAKICNpbmNsdWRlICJJZGVudGlmaWVyc0ZhY3RvcnkuaCIKICNpbmNsdWRl
ICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIu
aCIKLSNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckRPTUFn
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JTdGF0ZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKQEAgLTU4LDEyICs1NiwxMCBA
QCBzdGF0aWMgY29uc3QgY2hhciBtb25pdG9yaW5nWEhSW10gPSAibW9uaXRvcmluZ1hIUiI7CiBz
dGF0aWMgY29uc3QgY2hhciBjb25zb2xlTWVzc2FnZXNFbmFibGVkW10gPSAiY29uc29sZU1lc3Nh
Z2VzRW5hYmxlZCI7CiB9CiAKLUluc3BlY3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9yQ29uc29s
ZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yRE9NQWdlbnQqIGRv
bUFnZW50KQorSW5zcGVjdG9yQ29uc29sZUFnZW50OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0
YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICA6
IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQotICAgICwgbV9pbnNw
ZWN0b3JBZ2VudChpbnNwZWN0b3JBZ2VudCkKICAgICAsIG1faW5zcGVjdG9yU3RhdGUoc3RhdGUp
CiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0g
ICAgLCBtX2luc3BlY3RvckRPTUFnZW50KGRvbUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQog
ICAgICwgbV9wcmV2aW91c01lc3NhZ2UoMCkKICAgICAsIG1fZXhwaXJlZENvbnNvbGVNZXNzYWdl
Q291bnQoMCkKQEAgLTc1LDEwICs3MSw4IEBAIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6fkluc3Bl
Y3RvckNvbnNvbGVBZ2VudCgpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNw
ZWN0b3JDb25zb2xlQWdlbnQoMCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzID0gMDsKLSAg
ICBtX2luc3BlY3RvckFnZW50ID0gMDsKICAgICBtX2luc3BlY3RvclN0YXRlID0gMDsKICAgICBt
X2luamVjdGVkU2NyaXB0TWFuYWdlciA9IDA7Ci0gICAgbV9pbnNwZWN0b3JET01BZ2VudCA9IDA7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQpA
QCAtMTA2LDcgKzEwMCw2IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpjbGVhck1lc3Nh
Z2VzKEVycm9yU3RyaW5nKikKICAgICBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50ID0gMDsK
ICAgICBtX3ByZXZpb3VzTWVzc2FnZSA9IDA7CiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIt
PnJlbGVhc2VPYmplY3RHcm91cCgiY29uc29sZSIpOwotICAgIG1faW5zcGVjdG9yRE9NQWdlbnQt
PnJlbGVhc2VEYW5nbGluZ05vZGVzKCk7CiAgICAgaWYgKG1fZnJvbnRlbmQpCiAgICAgICAgIG1f
ZnJvbnRlbmQtPm1lc3NhZ2VzQ2xlYXJlZCgpOwogfQpAQCAtMTQwLDE0ICsxMzMsMTQgQEAgdm9p
ZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQogCiB2b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCiB7Ci0gICAgaWYgKCFtX2luc3BlY3RvckFnZW50LT5l
bmFibGVkKCkpCisgICAgaWYgKCFkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKICAgICBhZGRDb25zb2xlTWVzc2FnZShhZG9wdFB0cihuZXcgQ29uc29sZU1lc3NhZ2Uo
c291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgYXJndW1lbnRzLCBjYWxsU3RhY2spKSk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBz
Y3JpcHRJZCkKIHsKLSAgICBpZiAoIW1faW5zcGVjdG9yQWdlbnQtPmVuYWJsZWQoKSkKKyAgICBp
ZiAoIWRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGFkZENv
bnNvbGVNZXNzYWdlKGFkb3B0UHRyKG5ldyBDb25zb2xlTWVzc2FnZShzb3VyY2UsIHR5cGUsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzY3JpcHRJZCkpKTsKIH0KQEAgLTIxNiw3ICsyMDks
NyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQoRE9N
V2luZG93KiB3aW5kb3cpCiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpyZXNvdXJjZVJl
dHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBzZW5kVVJMLCB1bnNpZ25lZCBzZW5kTGluZU51bWJl
cikKIHsKLSAgICBpZiAoIW1faW5zcGVjdG9yQWdlbnQtPmVuYWJsZWQoKSkKKyAgICBpZiAoIWRl
dmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX2Zyb250
ZW5kICYmIG1faW5zcGVjdG9yU3RhdGUtPmdldEJvb2xlYW4oQ29uc29sZUFnZW50U3RhdGU6Om1v
bml0b3JpbmdYSFIpKSB7CiAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlhIUiBmaW5pc2hlZCBs
b2FkaW5nOiBcIiIgKyB1cmwgKyAiXCIuIjsKQEAgLTIyOSw3ICsyMjIsNyBAQCB2b2lkIEluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2ln
bmVkIGxvbmcgaWRlbgogCiB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCiB7Ci0gICAgaWYgKCFtX2luc3BlY3RvckFnZW50LT5lbmFibGVkKCkpCisgICAg
aWYgKCFkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCkgewpAQCAtMjQxLDcgKzIzNCw3IEBA
IHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSCiAKIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpk
aWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yKQogewotICAgIGlmICghbV9pbnNwZWN0b3JBZ2VudC0+ZW5hYmxlZCgpKQorICAg
IGlmICghZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAgICAgaWYg
KGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkpIC8vIFJlcG9ydCBmYWlsdXJlcyBvbmx5LgogICAgICAg
ICByZXR1cm47CkBAIC0yNTcsMTQgKzI1MCw2IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50
OjpzZXRNb25pdG9yaW5nWEhSRW5hYmxlZChFcnJvclN0cmluZyosIGJvb2wgZW5hYmxlZCkKICAg
ICBtX2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKENvbnNvbGVBZ2VudFN0YXRlOjptb25pdG9y
aW5nWEhSLCBlbmFibGVkKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZElu
c3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkKQotewotICAgIE5vZGUqIG5vZGUg
PSBtX2luc3BlY3RvckRPTUFnZW50LT5ub2RlRm9ySWQobm9kZUlkKTsKLSAgICBpZiAoIW5vZGUp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRT
Y3JpcHRIb3N0KCktPmFkZEluc3BlY3RlZE5vZGUobm9kZSk7Ci19Ci0KIHN0YXRpYyBib29sIGlz
R3JvdXBNZXNzYWdlKE1lc3NhZ2VUeXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIHR5cGUgPT0gU3Rh
cnRHcm91cE1lc3NhZ2VUeXBlCkBAIC0yNzQsNyArMjU5LDcgQEAgc3RhdGljIGJvb2wgaXNHcm91
cE1lc3NhZ2UoTWVzc2FnZVR5cGUgdHlwZSkKIAogdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6
OmFkZENvbnNvbGVNZXNzYWdlKFBhc3NPd25QdHI8Q29uc29sZU1lc3NhZ2U+IGNvbnNvbGVNZXNz
YWdlKQogewotICAgIEFTU0VSVChtX2luc3BlY3RvckFnZW50LT5lbmFibGVkKCkpOworICAgIEFT
U0VSVChkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpOwogICAgIEFTU0VSVF9BUkcoY29uc29sZU1l
c3NhZ2UsIGNvbnNvbGVNZXNzYWdlKTsKIAogICAgIGlmIChtX3ByZXZpb3VzTWVzc2FnZSAmJiAh
aXNHcm91cE1lc3NhZ2UobV9wcmV2aW91c01lc3NhZ2UtPnR5cGUoKSkgJiYgbV9wcmV2aW91c01l
c3NhZ2UtPmlzRXF1YWwoY29uc29sZU1lc3NhZ2UuZ2V0KCkpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggODBkOGViZGQyMmY4
OTc0NTc4MmUzMTgwY2ZkNDFkYjNlYzQ3ZDllMS4uZDFjNzU3Zjk3MjMyMGMyZjQ2OTUzYjI3ODlk
NTkxMzI1MzU3NDFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb25zb2xlQWdlbnQuaApAQCAtMzksOCArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIENvbnNvbGVNZXNzYWdlOwogY2xhc3MgRE9NV2luZG93OwotY2xhc3MgSW5zcGVjdG9y
QWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JET01BZ2VudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5k
OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CkBA
IC01NiwxMiArNTQsMTIgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBJbnNw
ZWN0b3JDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvckNv
bnNvbGVBZ2VudCk7CiBwdWJsaWM6Ci0gICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKLSAgICB+SW5zcGVjdG9yQ29uc29s
ZUFnZW50KCk7CisgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHZpcnR1YWwg
fkluc3BlY3RvckNvbnNvbGVBZ2VudCgpOwogCiAgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcq
KTsKICAgICB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKLSAgICB2b2lkIGNsZWFyTWVzc2Fn
ZXMoRXJyb3JTdHJpbmcqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJNZXNzYWdlcyhFcnJvclN0
cmluZyopOwogICAgIHZvaWQgcmVzZXQoKTsKICAgICB2b2lkIHJlc3RvcmUoKTsKICAgICB2b2lk
IHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKik7CkBAIC04NCwxNiArODIsMTYgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFN0
cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KTsKICNlbmRpZgogICAgIHZvaWQgc2V0TW9uaXRvcmluZ1hIUkVuYWJsZWQoRXJyb3JTdHJpbmcq
IGVycm9yLCBib29sIGVuYWJsZWQpOwotICAgIHZvaWQgYWRkSW5zcGVjdGVkTm9kZShFcnJvclN0
cmluZyosIGludCBub2RlSWQpOworICAgIHZpcnR1YWwgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKEVy
cm9yU3RyaW5nKiwgaW50IG5vZGVJZCkgPSAwOwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAg
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoUGFzc093blB0cjxDb25zb2xlTWVzc2FnZT4pOwogCisg
ICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSA9IDA7CisKICAgICBJbnN0
cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7Ci0gICAgSW5zcGVjdG9yQWdl
bnQqIG1faW5zcGVjdG9yQWdlbnQ7CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3Rh
dGU7CiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsK
LSAgICBJbnNwZWN0b3JET01BZ2VudCogbV9pbnNwZWN0b3JET01BZ2VudDsKICAgICBJbnNwZWN0
b3JGcm9udGVuZDo6Q29uc29sZSogbV9mcm9udGVuZDsKICAgICBDb25zb2xlTWVzc2FnZSogbV9w
cmV2aW91c01lc3NhZ2U7CiAgICAgVmVjdG9yPE93blB0cjxDb25zb2xlTWVzc2FnZT4gPiBtX2Nv
bnNvbGVNZXNzYWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA2Mjk4YmJjZDBhNDA3YThhYTdlNjIyMDQwMmNmNzhhZDVmMDk2
ODhiLi5kMjExYjRlMmIxNmFhNzZiZjI5NGVhMzViODIwMjZmZjkzZWY2OGZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC00Myw3
ICs0Myw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JDU1NBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgot
I2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRP
TUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIgpAQCAtNTUsMTIgKzU0LDEzIEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlQWdlbnQuaCIKLSNpbmNsdWRlICJJ
bnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJQ
YWdlQ29uc29sZUFnZW50LmgiCiAjaW5jbHVkZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIKKyNpbmNs
dWRlICJQYWdlUnVudGltZUFnZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNj
cmlwdE9iamVjdC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC02OCwzMSArNjgsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci0KLWNsYXNzIFBhZ2VSdW50aW1l
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsKLXB1YmxpYzoKLSAgICBQYWdl
UnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdlLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKLSAgICAgICAgOiBJbnNwZWN0b3JSdW50aW1l
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgICAg
ICAsIG1faW5zcGVjdGVkUGFnZShwYWdlKQotICAgICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2Vu
dCkgeyB9Ci0gICAgdmlydHVhbCB+UGFnZVJ1bnRpbWVBZ2VudCgpIHsgfQotCi1wcml2YXRlOgot
ICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlRm9yRnJhbWVJZChjb25zdCBTdHJp
bmcmIGZyYW1lSWQpCi0gICAgewotICAgICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+
ZnJhbWVGb3JJZChmcmFtZUlkKTsKLSAgICAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgICAgIHJl
dHVybiAwOwotICAgICAgICByZXR1cm4gbWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpOwotICAg
IH0KLSAgICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKSB7
IHJldHVybiBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgp
KTsgfQotICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKLSAgICBJbnNwZWN0b3JQYWdlQWdlbnQq
IG1fcGFnZUFnZW50OwotfTsKLQotfQotCiBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JD
b250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KQog
ICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50aW5nQWdl
bnRzKCkpKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyOjpjcmVhdGVGb3JQYWdlKCkpCkBAIC0xMDksNyArODQsNyBAQCBJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5z
cGVjdG9yQwogICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQoYWRvcHRQdHIobmV3IEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
cGFnZUFnZW50LmdldCgpLCBtX3N0YXRlLmdldCgpKSkpCiAgICAgLCBtX3Jlc291cmNlQWdlbnQo
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9wYWdlQWdlbnQuZ2V0KCksIGluc3BlY3RvckNsaWVudCwgbV9zdGF0ZS5nZXQoKSkpCiAg
ICAgLCBtX3J1bnRpbWVBZ2VudChhZG9wdFB0cihuZXcgUGFnZVJ1bnRpbWVBZ2VudChtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBwYWdl
LCBtX3BhZ2VBZ2VudC5nZXQoKSkpKQotICAgICwgbV9jb25zb2xlQWdlbnQoYWRvcHRQdHIobmV3
IEluc3BlY3RvckNvbnNvbGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5z
cGVjdG9yQWdlbnQuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmdldCgpLCBtX2RvbUFnZW50LmdldCgpKSkpCisgICAgLCBtX2NvbnNvbGVBZ2VudChhZG9wdFB0
cihuZXcgUGFnZUNvbnNvbGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5z
cGVjdG9yQWdlbnQuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmdldCgpLCBtX2RvbUFnZW50LmdldCgpKSkpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCiAgICAgLCBtX2RlYnVnZ2VyQWdlbnQoUGFnZURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2lu
c3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIHBhZ2UsIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmdldCgpKSkKICAgICAsIG1fZG9tRGVidWdnZXJBZ2VudChJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0
YXRlLmdldCgpLCBtX2RvbUFnZW50LmdldCgpLCBtX2RlYnVnZ2VyQWdlbnQuZ2V0KCksIG1faW5z
cGVjdG9yQWdlbnQuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcApvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAw
NjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVU
ZXh0RWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0
RWRpdG9yLmgKb2xkIG1vZGUgMTAwNzU1Cm5ldyBtb2RlIDEwMDY0NApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViNTUxOGRjYTE5
ZmEzYTdhMGFkN2RiZmIwZjEyMzgyODFmZjA2ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKQEAgLTAsMCArMSw4MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBhZ2VDb25zb2xlQWdlbnQuaCIKKworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJJ
bmplY3RlZFNjcmlwdEhvc3QuaCIKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIK
KyNpbmNsdWRlICJJbnNwZWN0b3JBZ2VudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFnZUNvbnNvbGVBZ2VudDo6UGFnZUNvbnNv
bGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckRPTUFnZW50KiBk
b21BZ2VudCkKKyAgICA6IEluc3BlY3RvckNvbnNvbGVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICwgbV9pbnNwZWN0b3JBZ2VudChp
bnNwZWN0b3JBZ2VudCkKKyAgICAsIG1faW5zcGVjdG9yRE9NQWdlbnQoZG9tQWdlbnQpCit7Cit9
CisKK1BhZ2VDb25zb2xlQWdlbnQ6On5QYWdlQ29uc29sZUFnZW50KCkKK3sKKyAgICBtX2luc3Bl
Y3RvckFnZW50ID0gMDsKKyAgICBtX2luc3BlY3RvckRPTUFnZW50ID0gMDsKK30KKwordm9pZCBQ
YWdlQ29uc29sZUFnZW50OjpjbGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZykK
K3sKKyAgICBtX2luc3BlY3RvckRPTUFnZW50LT5yZWxlYXNlRGFuZ2xpbmdOb2RlcygpOworICAg
IEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y2xlYXJNZXNzYWdlcyhlcnJvclN0cmluZyk7Cit9CisK
K3ZvaWQgUGFnZUNvbnNvbGVBZ2VudDo6YWRkSW5zcGVjdGVkTm9kZShFcnJvclN0cmluZyosIGlu
dCBub2RlSWQpCit7CisgICAgTm9kZSogbm9kZSA9IG1faW5zcGVjdG9yRE9NQWdlbnQtPm5vZGVG
b3JJZChub2RlSWQpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhvc3QoKS0+YWRkSW5zcGVjdGVkTm9k
ZShub2RlKTsKK30KKworYm9vbCBQYWdlQ29uc29sZUFnZW50OjpkZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKCkKK3sKKyAgICByZXR1cm4gbV9pbnNwZWN0b3JBZ2VudC0+ZW5hYmxlZCgpOworfQorCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
OTE0NzUyNzBlZmQ0YWUxZTM1MTMwMGE1MTYxMWVmYjkxZDIzYWExCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaApAQCAtMCwwICsx
LDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBQYWdlQ29uc29sZUFnZW50X2gKKyNkZWZpbmUgUGFnZUNvbnNvbGVBZ2Vu
dF9oCisKKyNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlQWdlbnQuaCIKKworI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yQWdlbnQ7
CitjbGFzcyBJbnNwZWN0b3JET01BZ2VudDsKKworY2xhc3MgUGFnZUNvbnNvbGVBZ2VudCA6IHB1
YmxpYyBJbnNwZWN0b3JDb25zb2xlQWdlbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBh
Z2VDb25zb2xlQWdlbnQpOworcHVibGljOgorICAgIFBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvckFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JET01BZ2VudCopOworICAgIHZpcnR1YWwgflBhZ2VDb25z
b2xlQWdlbnQoKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJNZXNzYWdlcyhF
cnJvclN0cmluZyopOworICAgIHZpcnR1YWwgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKEVycm9yU3Ry
aW5nKiwgaW50IG5vZGVJZCk7CisgICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4dHJhc0VuYWJs
ZWQoKTsKKworICAgIEluc3BlY3RvckFnZW50KiBtX2luc3BlY3RvckFnZW50OworICAgIEluc3Bl
Y3RvckRPTUFnZW50KiBtX2luc3BlY3RvckRPTUFnZW50OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKKworI2VuZGlmIC8vICFkZWZp
bmVkKFBhZ2VDb25zb2xlQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZURlYnVnZ2VyQWdlbnQuY3BwCm9sZCBtb2RlIDEwMDc1NQpuZXcgbW9kZSAxMDA2NDQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKb2xkIG1vZGUgMTAwNzU1
Cm5ldyBtb2RlIDEwMDY0NApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlZjU1NGU4M2M4OGJiNjQ1NDZkMTRjMWFhNTU2NzdlMTA0
MDlkNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lu
Y2x1ZGUgIlBhZ2VSdW50aW1lQWdlbnQuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNp
bmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiU2NyaXB0U3RhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdlUnVudGltZUFn
ZW50OjpQYWdlUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdl
KiBwYWdlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKKyAgICA6IEluc3BlY3RvclJ1
bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisg
ICAgLCBtX2luc3BlY3RlZFBhZ2UocGFnZSkKKyAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkK
K3sKK30KKworUGFnZVJ1bnRpbWVBZ2VudDo6flBhZ2VSdW50aW1lQWdlbnQoKQoreworfQorCitT
Y3JpcHRTdGF0ZSogUGFnZVJ1bnRpbWVBZ2VudDo6c2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0
IFN0cmluZyYgZnJhbWVJZCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+ZnJh
bWVGb3JJZChmcmFtZUlkKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gbWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpOworfQorCitTY3JpcHRTdGF0ZSog
UGFnZVJ1bnRpbWVBZ2VudDo6Z2V0RGVmYXVsdEluc3BlY3RlZFN0YXRlKCkKK3sKKyAgICByZXR1
cm4gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MjgyNzRlZmRjYjhiMTQxMzMyYTFlMDVhYWQxOTNiMjNmN2JkNDJlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuaApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBQYWdlUnVudGltZUFnZW50X2gKKyNkZWZpbmUgUGFnZVJ1bnRpbWVB
Z2VudF9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5zcGVjdG9yUnVu
dGltZUFnZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yUGFn
ZUFnZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgUGFnZVJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQgeworcHVibGljOgorICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIFBhZ2UqLCBJbnNwZWN0
b3JQYWdlQWdlbnQqKTsKKyAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50KCk7CisKK3ByaXZh
dGU6CisgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGVGb3JGcmFtZUlkKGNvbnN0
IFN0cmluZyYgZnJhbWVJZCk7CisgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogZ2V0RGVmYXVsdElu
c3BlY3RlZFN0YXRlKCk7CisgICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOworICAgIEluc3BlY3Rv
clBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorCisjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVj
dG9yUGFnZXJBZ2VudF9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29u
c29sZUFnZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmY4NzBjNTM5YWI5ZjVmYzA0NzFhOTgwZGM0YWMx
YjQ1NzhkYWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckNvbnNvbGVBZ2VudC5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIldvcmtlckNvbnNvbGVBZ2VudC5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXb3JrZXJDb25zb2xlQWdlbnQ6OldvcmtlckNv
bnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNw
ZWN0b3JTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQorICAgIDogSW5zcGVjdG9yQ29uc29sZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCit7Cit9CisKK1dvcmtlckNvbnNvbGVBZ2Vu
dDo6fldvcmtlckNvbnNvbGVBZ2VudCgpCit7Cit9CisKK3ZvaWQgV29ya2VyQ29uc29sZUFnZW50
OjphZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nKiBlcnJvciwgaW50KQoreworICAgICplcnJv
ciA9ICJhZGRJbnNwZWN0ZWROb2RlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHdvcmtlcnMiOworfQor
Citib29sIFdvcmtlckNvbnNvbGVBZ2VudDo6ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpCit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VyQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29u
c29sZUFnZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGViYjg4OGI3YTdlNWI3ZmY4ZmY2NGNmNmQxZmI0ZWIy
MDE4ZjFlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJDb25zb2xlQWdlbnQuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXb3JrZXJDb25zb2xlQWdl
bnRfaAorI2RlZmluZSBXb3JrZXJDb25zb2xlQWdlbnRfaAorCisjaW5jbHVkZSAiSW5zcGVjdG9y
Q29uc29sZUFnZW50LmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFdvcmtlckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JDb25z
b2xlQWdlbnQgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlckNvbnNvbGVBZ2VudCk7
CitwdWJsaWM6CisgICAgV29ya2VyQ29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJ
bnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHZpcnR1YWwgfldv
cmtlckNvbnNvbGVBZ2VudCgpOworCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBhZGRJbnNw
ZWN0ZWROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CisgICAgdmlydHVhbCBib29sIGRl
dmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCisKKyNlbmRpZiAvLyAhZGVmaW5lZChXb3JrZXJD
b25zb2xlQWdlbnRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1
Z2dlckFnZW50LmNwcApvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAwNjQ0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaApvbGQgbW9kZSAxMDA3NTUK
bmV3IG1vZGUgMTAwNjQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZTFmNDU5NzEwY2UwMWEzNjg5MGFkNzZj
NDM3NTAwYWY3MGZjNzgzNC4uZjg4ZmI1Y2ZjM2RiMTFhYzM2Mjk3NTRjNjk1YjRkMDQxMjA5ZTAx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmNwcApAQCAtNDAsMTMgKzQwLDE0IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRl
Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUgIldv
cmtlckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRl
ICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VyUmVwb3J0aW5nUHJveHku
aCIKKyNpbmNsdWRlICJXb3JrZXJSdW50aW1lQWdlbnQuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJl
YWQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC01NCwyNyArNTUsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSB7CiAKLWNsYXNzIFdvcmtlclJ1bnRpbWVB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JSdW50aW1lQWdlbnQgewotcHVibGljOgotICAgIFdvcmtl
clJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJ
bmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29ya2VyQ29udGV4
dCogd29ya2VyQ29udGV4dCkKLSAgICAgICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5zdHJ1
bWVudGluZ0FnZW50cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQotICAgICAgICAsIG1fd29ya2Vy
Q29udGV4dCh3b3JrZXJDb250ZXh0KSB7IH0KLSAgICB2aXJ0dWFsIH5Xb3JrZXJSdW50aW1lQWdl
bnQoKSB7IH0KLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0
ZUZvckZyYW1lSWQoY29uc3QgU3RyaW5nJikKLSAgICB7Ci0gICAgICAgIHJldHVybiAwOwotICAg
IH0KLQotICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIGdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSgp
Ci0gICAgewotICAgICAgICByZXR1cm4gc2NyaXB0U3RhdGVGcm9tV29ya2VyQ29udGV4dChtX3dv
cmtlckNvbnRleHQpOwotICAgIH0KLQotICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4
dDsKLX07Ci0KIGNsYXNzIFBhZ2VJbnNwZWN0b3JQcm94eSA6IHB1YmxpYyBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwgewogcHVibGljOgogICAgIGV4cGxpY2l0IFBhZ2VJbnNwZWN0b3JQcm94eShX
b3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0KSA6IG1fd29ya2VyQ29udGV4dCh3b3JrZXJDb250
ZXh0KSB7IH0KQEAgLTExNCw2ICs5NCw3IEBAIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4CiAgICAg
LCBtX2RlYnVnZ2VyQWdlbnQoV29ya2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgd29ya2VyQ29udGV4dCwgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKQogI2VuZGlmCiAgICAgLCBtX3J1bnRpbWVBZ2VudChhZG9w
dFB0cihuZXcgV29ya2VyUnVudGltZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHdvcmtlckNvbnRleHQpKSkKKyAgICAsIG1f
Y29uc29sZUFnZW50KGFkb3B0UHRyKG5ldyBXb3JrZXJDb25zb2xlQWdlbnQobV9pbnN0cnVtZW50
aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5n
ZXQoKSkpKQogewogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEhv
c3QoKS0+aW5pdCgwCiAgICAgICAgICwgMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggOWZmNTBiZTNjZDg4MDMzMWU0
ZjFmZjMzNWE4ZTExYTUzMjI1ODFjMy4uOWJlNDg1ZDVhNmM5ZTUxMTM2NjM5MDQ1ZTgxYzg5NWMw
Mzk4NDJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3Bl
Y3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5oCkBAIC00Niw2ICs0Niw3IEBAIGNsYXNzIEluamVjdGVkU2NyaXB0
TWFuYWdlcjsKIGNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CiAjZW5kaWYKIGNsYXNzIElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOworY2xhc3MgSW5zcGVjdG9yQ29uc29sZUFnZW50Owog
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWw7
CiBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb247CkBAIC04Miw2ICs4Myw3IEBAIHByaXZh
dGU6CiAgICAgT3duUHRyPEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+IG1fZGVidWdnZXJBZ2VudDsK
ICNlbmRpZgogICAgIE93blB0cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IG1fcnVudGltZUFnZW50
OworICAgIE93blB0cjxJbnNwZWN0b3JDb25zb2xlQWdlbnQ+IG1fY29uc29sZUFnZW50OwogCiAg
ICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbD4gbV9mcm9udGVuZENoYW5uZWw7CiAg
ICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kPiBtX2Zyb250ZW5kOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmY4YjEw
NmE4ZTIyMzNiYjk1OTNkYTljYzBlZWQ2OGM1ODY5YzhmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTAsMCArMSw2
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldvcmtlclJ1bnRpbWVBZ2VudC5o
IgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV29ya2VyUnVudGltZUFnZW50OjpXb3JrZXJSdW50aW1l
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFdvcmtlckNvbnRleHQqIHdvcmtl
ckNvbnRleHQpCisgICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgICwgbV93b3JrZXJDb250ZXh0KHdvcmtlckNv
bnRleHQpCit7Cit9CisKK1dvcmtlclJ1bnRpbWVBZ2VudDo6fldvcmtlclJ1bnRpbWVBZ2VudCgp
Cit7Cit9CisKK1NjcmlwdFN0YXRlKiBXb3JrZXJSdW50aW1lQWdlbnQ6OnNjcmlwdFN0YXRlRm9y
RnJhbWVJZChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiAwOworfQorCitTY3JpcHRTdGF0
ZSogV29ya2VyUnVudGltZUFnZW50OjpnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKQoreworICAg
IHJldHVybiBzY3JpcHRTdGF0ZUZyb21Xb3JrZXJDb250ZXh0KG1fd29ya2VyQ29udGV4dCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzk2ZDcxYzI4YjkwMmJmZTYzZmFmOTNiNjBjZTI1NjJlYjcwZTQyNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaApA
QCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXb3JrZXJSdW50aW1lQWdlbnRfaAorI2RlZmluZSBXb3Jr
ZXJSdW50aW1lQWdlbnRfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIklu
c3BlY3RvclJ1bnRpbWVBZ2VudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdv
cmtlckNvbnRleHQ7CisKK2NsYXNzIFdvcmtlclJ1bnRpbWVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0
b3JSdW50aW1lQWdlbnQgeworcHVibGljOgorICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgV29ya2VyQ29udGV4dCopOwor
ICAgIHZpcnR1YWwgfldvcmtlclJ1bnRpbWVBZ2VudCgpOworCitwcml2YXRlOgorICAgIHZpcnR1
YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlRm9yRnJhbWVJZChjb25zdCBTdHJpbmcmIGZyYW1l
SWQpOworICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIGdldERlZmF1bHRJbnNwZWN0ZWRTdGF0ZSgp
OworICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCisKKyNlbmRpZiAvLyAh
ZGVmaW5lZChJbnNwZWN0b3JQYWdlckFnZW50X2gpCg==
</data>
<flag name="review"
          id="115494"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>