<?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>110225</bug_id>
          
          <creation_ts>2013-02-19 07:50:26 -0800</creation_ts>
          <short_desc>REGRESSION(r142975): Introduces hard-to-reproduce crashes upon inspected page navigation on Mac (Requested by apavlov on #webkit).</short_desc>
          <delta_ts>2013-02-19 08:03:38 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>105828</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>apavlov</cc>
    
    <cc>pfeldman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>836393</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 07:50:26 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/142975 broke the build:
Introduces hard-to-reproduce crashes upon inspected page navigation on Mac (Requested by apavlov on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836395</commentid>
    <comment_count>1</comment_count>
      <attachid>189090</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 07:51:02 -0800</bug_when>
    <thetext>Created attachment 189090
ROLLOUT of r142975

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836403</commentid>
    <comment_count>2</comment_count>
      <attachid>189090</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 08:03:34 -0800</bug_when>
    <thetext>Comment on attachment 189090
ROLLOUT of r142975

Clearing flags on attachment: 189090

Committed r143333: &lt;http://trac.webkit.org/changeset/143333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836404</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-19 08:03:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189090</attachid>
            <date>2013-02-19 07:51:02 -0800</date>
            <delta_ts>2013-02-19 08:03:34 -0800</delta_ts>
            <desc>ROLLOUT of r142975</desc>
            <filename>bug-110225-20130219154723.patch</filename>
            <type>text/plain</type>
            <size>45382</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGJjYmRhNjVlYmMzN2I0
ZDI2OTRiOGM2MTIzNGVlZGQwYzFkYmFmNS4uMmQyZjk0MDY4MGUxMGQxN2QzNzE3YjVjZGRlMDg5
NjcxYjMxOGI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTAyLTE5ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQyOTc1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNDI5NzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDIyNQorCisgICAgICAgIEludHJvZHVjZXMgaGFyZC10by1yZXByb2R1Y2Ug
Y3Jhc2hlcyB1cG9uIGluc3BlY3RlZCBwYWdlCisgICAgICAgIG5hdmlnYXRpb24gb24gTWFjIChS
ZXF1ZXN0ZWQgYnkgYXBhdmxvdiBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVu
dFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50U3R5
bGVTaGVldENvbGxlY3Rpb246OnVwZGF0ZUFjdGl2ZVN0eWxlU2hlZXRzKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0
b3JDU1NBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Y2xlYXJG
cm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6ZW5hYmxlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpnZXRBbGxTdHlsZVNoZWV0cyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Y29sbGVjdFN0eWxlU2hlZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpiaW5kU3R5bGVTaGVldCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6dmlhSW5zcGVjdG9yU3R5bGVT
aGVldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6ZGV0ZWN0T3JpZ2lu
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvclJ1
bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAo
SW5zcGVjdG9yQ1NTQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
Q1NTU3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnBy
b3RvdHlwZS5nZXRWaWFJbnNwZWN0b3JSZXNvdXJjZUZvclJ1bGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlLik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUucmVx
dWVzdFN0eWxlU2hlZXRJZEZvclJlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NT
dHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZS5yZXF1ZXN0UmVzb3VyY2VVUkxGb3JT
dHlsZVNoZWV0SWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJj
ZUJpbmRpbmcucHJvdG90eXBlLl9zdHlsZVNoZWV0SWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUuX2xvYWRT
dHlsZVNoZWV0SGVhZGVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJl
c291cmNlQmluZGluZy5wcm90b3R5cGUuaGVhZGVyc0xvYWRlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUuX3JlcXVlc3RWaWFJ
bnNwZWN0b3JSZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJl
c291cmNlQmluZGluZy5wcm90b3R5cGUuX2dldE9yQ3JlYXRlSW5zcGVjdG9yUmVzb3VyY2UpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90
eXBlLl9yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFw
cGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5
cGUuX3N0eWxlU2hlZXRDaGFuZ2VkLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
QVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUuX3N0eWxlU2hlZXRDaGFuZ2VkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24ucHJvdG90eXBlLl9jcmVhdGVSdWxlT3Jp
Z2luTm9kZS5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0aWVz
U2VjdGlvbi5wcm90b3R5cGUuX2NyZWF0ZVJ1bGVPcmlnaW5Ob2RlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU3R5bGVDb250ZW50QmluZGluZy5wcm90b3R5cGUuY2FsbGJhY2spOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlN0eWxlQ29udGVudEJpbmRpbmcucHJvdG90eXBlLnNldFN0eWxlQ29udGVu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50QmluZGluZy5wcm90b3R5cGUu
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZUNvbnRlbnRCaW5kaW5nLnByb3RvdHlwZS5f
aW5uZXJTdHlsZVNoZWV0Q2hhbmdlZCk6CisKIDIwMTMtMDItMTkgIEp1bGllbiBDaGFmZnJhaXgg
IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuZGVyR3JpZDo6Y29tcHV0ZWRV
c2VkQnJlYWR0aE9mR3JpZFRyYWNrcyBjYW4gcmVhZCBwYXN0IG1fZ3JpZCdzIHNpemUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcApp
bmRleCBkMDZmZjk2NWJkN2NiMjI2MGI0NTE3ODY1Y2I0NTNlNDdmMGE5NDczLi4zYWMxZjVlYzRj
NzgyZjM2NjEwMWQ0ZjEyMzk4MGQwOTljMzdjYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCkBAIC00ODcsNyArNDg3LDYg
QEAgYm9vbCBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOjp1cGRhdGVBY3RpdmVTdHlsZVNo
ZWV0cyhVcGRhdGVGbGFnIHVwZGF0ZUZsYWcKICAgICAgICAgcmVzZXRDU1NGZWF0dXJlRmxhZ3Mo
KTsKICAgICB9CiAgICAgbV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cy5zd2FwKGFjdGl2ZUNTU1N0
eWxlU2hlZXRzKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFjdGl2ZVN0eWxlU2hl
ZXRzVXBkYXRlZChtX2RvY3VtZW50LCBtX3N0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3QsIGFj
dGl2ZVN0eWxlU2hlZXRzKTsKICAgICBtX3N0eWxlU2hlZXRzRm9yU3R5bGVTaGVldExpc3Quc3dh
cChhY3RpdmVTdHlsZVNoZWV0cyk7CiAKICAgICBtX3VzZXNSZW1Vbml0cyA9IHN0eWxlU2hlZXRz
VXNlUmVtVW5pdHMobV9hY3RpdmVBdXRob3JTdHlsZVNoZWV0cyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYzFjYjk4MDQ5ZTM3M2ZlODMzOWFlNWI5NmY4MGEx
YjM1ZjEwZThiMS4uY2JhMWVkZWJkYmU4MWJmZTE1ZGM3M2E5MzhiMDg3ZWM3NjAzOGJiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMjE2Myw3ICsyMTYzLDcg
QEAKICAgICB7CiAgICAgICAgICJkb21haW4iOiAiQ1NTIiwKICAgICAgICAgImhpZGRlbiI6IHRy
dWUsCi0gICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGRvbWFpbiBleHBvc2VzIENTUyByZWFk
L3dyaXRlIG9wZXJhdGlvbnMuIEFsbCBDU1Mgb2JqZWN0cyAoc3R5bGVzaGVldHMsIHJ1bGVzLCBh
bmQgc3R5bGVzKSBoYXZlIGFuIGFzc29jaWF0ZWQgPGNvZGU+aWQ8L2NvZGU+IHVzZWQgaW4gc3Vi
c2VxdWVudCBvcGVyYXRpb25zIG9uIHRoZSByZWxhdGVkIG9iamVjdC4gRWFjaCBvYmplY3QgdHlw
ZSBoYXMgYSBzcGVjaWZpYyA8Y29kZT5pZDwvY29kZT4gc3RydWN0dXJlLCBhbmQgdGhvc2UgYXJl
IG5vdCBpbnRlcmNoYW5nZWFibGUgYmV0d2VlbiBvYmplY3RzIG9mIGRpZmZlcmVudCBraW5kcy4g
Q1NTIG9iamVjdHMgY2FuIGJlIGxvYWRlZCB1c2luZyB0aGUgPGNvZGU+Z2V0KkZvck5vZGUoKTwv
Y29kZT4gY2FsbHMgKHdoaWNoIGFjY2VwdCBhIERPTSBub2RlIGlkKS4gQSBjbGllbnQgY2FuIGFs
c28gZGlzY292ZXIgYWxsIHRoZSBleGlzdGluZyBzdHlsZXNoZWV0cyB3aXRoIHRoZSA8Y29kZT5n
ZXRBbGxTdHlsZVNoZWV0cygpPC9jb2RlPiBtZXRob2QgKG9yIGtlZXBpbmcgdHJhY2sgb2YgdGhl
IDxjb2RlPnN0eWxlU2hlZXRBZGRlZDwvY29kZT4vPGNvZGU+c3R5bGVTaGVldFJlbW92ZWQ8L2Nv
ZGU+IGV2ZW50cykgYW5kIHN1YnNlcXVlbnRseSBsb2FkIHRoZSByZXF1aXJlZCBzdHlsZXNoZWV0
IGNvbnRlbnRzIHVzaW5nIHRoZSA8Y29kZT5nZXRTdHlsZVNoZWV0W1RleHRdKCk8L2NvZGU+IG1l
dGhvZHMuIiwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgZG9tYWluIGV4cG9zZXMgQ1NT
IHJlYWQvd3JpdGUgb3BlcmF0aW9ucy4gQWxsIENTUyBvYmplY3RzLCBsaWtlIHN0eWxlc2hlZXRz
LCBydWxlcywgYW5kIHN0eWxlcywgaGF2ZSBhbiBhc3NvY2lhdGVkIDxjb2RlPmlkPC9jb2RlPiB1
c2VkIGluIHN1YnNlcXVlbnQgb3BlcmF0aW9ucyBvbiB0aGUgcmVsYXRlZCBvYmplY3QuIEVhY2gg
b2JqZWN0IHR5cGUgaGFzIGEgc3BlY2lmaWMgPGNvZGU+aWQ8L2NvZGU+IHN0cnVjdHVyZSwgYW5k
IHRob3NlIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlIGJldHdlZW4gb2JqZWN0cyBvZiBkaWZmZXJl
bnQga2luZHMuIENTUyBvYmplY3RzIGNhbiBiZSBsb2FkZWQgdXNpbmcgdGhlIDxjb2RlPmdldCpG
b3JOb2RlKCk8L2NvZGU+IGNhbGxzICh3aGljaCBhY2NlcHQgYSBET00gbm9kZSBpZCkuIEFsdGVy
bmF0aXZlbHksIGEgY2xpZW50IGNhbiBkaXNjb3ZlciBhbGwgdGhlIGV4aXN0aW5nIHN0eWxlc2hl
ZXRzIHdpdGggdGhlIDxjb2RlPmdldEFsbFN0eWxlU2hlZXRzKCk8L2NvZGU+IG1ldGhvZCBhbmQg
c3Vic2VxdWVudGx5IGxvYWQgdGhlIHJlcXVpcmVkIHN0eWxlc2hlZXQgY29udGVudHMgdXNpbmcg
dGhlIDxjb2RlPmdldFN0eWxlU2hlZXRbVGV4dF0oKTwvY29kZT4gbWV0aG9kcy4iLAogICAgICAg
ICAidHlwZXMiOiBbCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIlN0eWxl
U2hlZXRJZCIsCkBAIC0yNTY5LDIwICsyNTY5LDYgQEAKICAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiRmlyZWQgd2hlbmV2ZXIgYSBzdHlsZXNoZWV0IGlzIGNoYW5nZWQgYXMgYSByZXN1
bHQgb2YgdGhlIGNsaWVudCBvcGVyYXRpb24uIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJzdHlsZVNoZWV0QWRkZWQiLAotICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhl
YWRlciIsICIkcmVmIjogIkNTU1N0eWxlU2hlZXRIZWFkZXIiLCAiZGVzY3JpcHRpb24iOiAiQWRk
ZWQgc3R5bGVzaGVldCBtZXRhaW5mby4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlZCB3aGVuZXZlciBhbiBhY3RpdmUgZG9jdW1lbnQg
c3R5bGVzaGVldCBpcyBhZGRlZC4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICJuYW1lIjogInN0eWxlU2hlZXRSZW1vdmVkIiwKLSAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZVNo
ZWV0SWQiLCAiJHJlZiI6ICJTdHlsZVNoZWV0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmll
ciBvZiB0aGUgcmVtb3ZlZCBzdHlsZXNoZWV0LiIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW5ldmVyIGFuIGFjdGl2ZSBkb2N1
bWVudCBzdHlsZXNoZWV0IGlzIHJlbW92ZWQuIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJuYW1lZEZsb3dDcmVhdGVkIiwKICAgICAgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJu
YW1lZEZsb3ciLCAiJHJlZiI6ICJOYW1lZEZsb3ciLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBO
YW1lZCBGbG93LiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAKaW5kZXggOWI5ZmEzZjUwMmFmN2FlYTQzYmI5N2E0NzdmYzQzNzZjMzM0NDdjMy4u
NmQ3MDVhZTFlZGVkZWVmYWRhOWEyZDAxMzJlNmFmZjdjZWYxM2M5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC01NCw3ICs1NCw2IEBA
CiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5oIgogI2luY2x1ZGUgIlN0eWxlUmVz
b2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKLSNpbmNsdWRlICJTdHlsZVNoZWV0Lmgi
CiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cu
aCIKIApAQCAtNTMwLDcgKzUyOSw2IEBAIEluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJCiAgICAgLCBt
X2Zyb250ZW5kKDApCiAgICAgLCBtX2RvbUFnZW50KGRvbUFnZW50KQogICAgICwgbV9sYXN0U3R5
bGVTaGVldElkKDEpCi0gICAgLCBtX2NyZWF0aW5nVmlhSW5zcGVjdG9yU3R5bGVTaGVldChmYWxz
ZSkKIHsKICAgICBtX2RvbUFnZW50LT5zZXRET01MaXN0ZW5lcih0aGlzKTsKIH0KQEAgLTU1Miw3
ICs1NTAsOCBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpjbGVhckZyb250ZW5kKCkKICAgICBB
U1NFUlQobV9mcm9udGVuZCk7CiAgICAgbV9mcm9udGVuZCA9IDA7CiAgICAgcmVzZXROb25QZXJz
aXN0ZW50RGF0YSgpOwotICAgIHN0b3BTZWxlY3RvclByb2ZpbGVySW1wbCgwLCBmYWxzZSk7Cisg
ICAgU3RyaW5nIGVycm9yU3RyaW5nOworICAgIHN0b3BTZWxlY3RvclByb2ZpbGVySW1wbCgmZXJy
b3JTdHJpbmcsIGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlzY2FyZEFn
ZW50KCkKQEAgLTU5NCwxMiArNTkzLDYgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nKikKIHsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKENTU0FnZW50U3RhdGU6
OmNzc0FnZW50RW5hYmxlZCwgdHJ1ZSk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJ
bnNwZWN0b3JDU1NBZ2VudCh0aGlzKTsKLQotICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8
VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4gPiBzdHlsZUluZm9zID0gVHlw
ZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+Ojpj
cmVhdGUoKTsKLSAgICBWZWN0b3I8SW5zcGVjdG9yU3R5bGVTaGVldCo+IHN0eWxlU2hlZXRzOwot
ICAgIGNvbGxlY3RBbGxTdHlsZVNoZWV0cyhzdHlsZVNoZWV0cyk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzdHlsZVNoZWV0cy5zaXplKCk7ICsraSkKLSAgICAgICAgbV9mcm9udGVuZC0+
c3R5bGVTaGVldEFkZGVkKHN0eWxlU2hlZXRzLmF0KGkpLT5idWlsZE9iamVjdEZvclN0eWxlU2hl
ZXRJbmZvKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpkaXNhYmxlKEVycm9yU3Ry
aW5nKikKQEAgLTY1OCwzOCArNjUxLDYgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6cmVnaW9u
TGF5b3V0VXBkYXRlZChXZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdywgaW50IGRvY3UKICAgICBt
X2Zyb250ZW5kLT5yZWdpb25MYXlvdXRVcGRhdGVkKGJ1aWxkT2JqZWN0Rm9yTmFtZWRGbG93KCZl
cnJvclN0cmluZywgbmFtZWRGbG93LCBkb2N1bWVudE5vZGVJZCkpOwogfQogCi12b2lkIEluc3Bl
Y3RvckNTU0FnZW50OjphY3RpdmVTdHlsZVNoZWV0c1VwZGF0ZWQoY29uc3QgVmVjdG9yPFJlZlB0
cjxTdHlsZVNoZWV0PiA+JiBvbGRTaGVldHMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVl
dD4gPiYgbmV3U2hlZXRzKQotewotICAgIEhhc2hTZXQ8Q1NTU3R5bGVTaGVldCo+IHJlbW92ZWRT
aGVldHM7Ci0gICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBvbGRTaGVldHMuc2l6ZSgpOyBp
IDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFN0eWxlU2hlZXQqIG9sZFNoZWV0ID0gb2xkU2hlZXRz
LmF0KGkpLmdldCgpOwotICAgICAgICBpZiAob2xkU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQot
ICAgICAgICAgICAgcmVtb3ZlZFNoZWV0cy5hZGQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+
KG9sZFNoZWV0KSk7Ci0gICAgfQotCi0gICAgSGFzaFNldDxDU1NTdHlsZVNoZWV0Kj4gYWRkZWRT
aGVldHM7Ci0gICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBuZXdTaGVldHMuc2l6ZSgpOyBp
IDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIFN0eWxlU2hlZXQqIG5ld1NoZWV0ID0gbmV3U2hlZXRz
LmF0KGkpLmdldCgpOwotICAgICAgICBpZiAoIW5ld1NoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBDU1NTdHlsZVNoZWV0KiBuZXdDU1NTaGVl
dCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihuZXdTaGVldCk7Ci0gICAgICAgIGlmIChy
ZW1vdmVkU2hlZXRzLmNvbnRhaW5zKG5ld0NTU1NoZWV0KSkKLSAgICAgICAgICAgIHJlbW92ZWRT
aGVldHMucmVtb3ZlKG5ld0NTU1NoZWV0KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYWRk
ZWRTaGVldHMuYWRkKG5ld0NTU1NoZWV0KTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlN0eWxlU2hlZXRJZD4gPiByZW1vdmVkSWRzID0g
VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OlN0eWxlU2hlZXRJZD46OmNyZWF0
ZSgpOwotICAgIGZvciAoSGFzaFNldDxDU1NTdHlsZVNoZWV0Kj46Oml0ZXJhdG9yIGl0ID0gcmVt
b3ZlZFNoZWV0cy5iZWdpbigpOyBpdCAhPSByZW1vdmVkU2hlZXRzLmVuZCgpOyArK2l0KSB7Ci0g
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0PiBpbnNwZWN0b3JTdHlsZVNoZWV0ID0g
bV9jc3NTdHlsZVNoZWV0VG9JbnNwZWN0b3JTdHlsZVNoZWV0LmdldCgqaXQpOwotICAgICAgICBB
U1NFUlQoaW5zcGVjdG9yU3R5bGVTaGVldCk7Ci0gICAgICAgIG1fZnJvbnRlbmQtPnN0eWxlU2hl
ZXRSZW1vdmVkKHVuYmluZFN0eWxlU2hlZXQoaW5zcGVjdG9yU3R5bGVTaGVldC5nZXQoKSkpOwot
ICAgIH0KLSAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OkNT
U1N0eWxlU2hlZXRIZWFkZXI+ID4gYWRkZWRIZWFkZXJzID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5
cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+OjpjcmVhdGUoKTsKLSAgICBmb3Ig
KEhhc2hTZXQ8Q1NTU3R5bGVTaGVldCo+OjppdGVyYXRvciBpdCA9IGFkZGVkU2hlZXRzLmJlZ2lu
KCk7IGl0ICE9IGFkZGVkU2hlZXRzLmVuZCgpOyArK2l0KQotICAgICAgICBtX2Zyb250ZW5kLT5z
dHlsZVNoZWV0QWRkZWQoYmluZFN0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+
KCppdCkpLT5idWlsZE9iamVjdEZvclN0eWxlU2hlZXRJbmZvKCkpOwotfQotCiBib29sIEluc3Bl
Y3RvckNTU0FnZW50Ojpmb3JjZVBzZXVkb1N0YXRlKEVsZW1lbnQqIGVsZW1lbnQsIENTU1NlbGVj
dG9yOjpQc2V1ZG9UeXBlIHBzZXVkb1R5cGUpCiB7CiAgICAgaWYgKG1fbm9kZUlkVG9Gb3JjZWRQ
c2V1ZG9TdGF0ZS5pc0VtcHR5KCkpCkBAIC03OTcsMTAgKzc1OCwxNSBAQCB2b2lkIEluc3BlY3Rv
ckNTU0FnZW50OjpnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGludCBubwogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0QWxsU3R5bGVTaGVldHMoRXJy
b3JTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OkNT
U1N0eWxlU2hlZXRIZWFkZXI+ID4mIHN0eWxlSW5mb3MpCiB7CiAgICAgc3R5bGVJbmZvcyA9IFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZVNoZWV0SGVhZGVyPjo6
Y3JlYXRlKCk7Ci0gICAgVmVjdG9yPEluc3BlY3RvclN0eWxlU2hlZXQqPiBzdHlsZVNoZWV0czsK
LSAgICBjb2xsZWN0QWxsU3R5bGVTaGVldHMoc3R5bGVTaGVldHMpOwotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc3R5bGVTaGVldHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHN0eWxlSW5mb3Mt
PmFkZEl0ZW0oc3R5bGVTaGVldHMuYXQoaSktPmJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldEluZm8o
KSk7CisgICAgVmVjdG9yPERvY3VtZW50Kj4gZG9jdW1lbnRzID0gbV9kb21BZ2VudC0+ZG9jdW1l
bnRzKCk7CisgICAgZm9yIChWZWN0b3I8RG9jdW1lbnQqPjo6aXRlcmF0b3IgaXQgPSBkb2N1bWVu
dHMuYmVnaW4oKTsgaXQgIT0gZG9jdW1lbnRzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIFN0eWxl
U2hlZXRMaXN0KiBsaXN0ID0gKCppdCktPnN0eWxlU2hlZXRzKCk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsaXN0LT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBTdHls
ZVNoZWV0KiBzdHlsZVNoZWV0ID0gbGlzdC0+aXRlbShpKTsKKyAgICAgICAgICAgIGlmIChzdHls
ZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAgICAgICAgICAgICBjb2xsZWN0U3R5bGVT
aGVldHMoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpLCBzdHlsZUluZm9z
LmdldCgpKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6
Z2V0U3R5bGVTaGVldChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgc3R5
bGVTaGVldElkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGVTaGVldEJvZHk+JiBz
dHlsZVNoZWV0T2JqZWN0KQpAQCAtMTA1NywyMyArMTAyMywxMCBAQCBpbnQgSW5zcGVjdG9yQ1NT
QWdlbnQ6OmRvY3VtZW50Tm9kZVdpdGhSZXF1ZXN0ZWRGbG93c0lkKERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICByZXR1cm4gZG9jdW1lbnROb2RlSWQ7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ1NTQWdl
bnQ6OmNvbGxlY3RBbGxTdHlsZVNoZWV0cyhWZWN0b3I8SW5zcGVjdG9yU3R5bGVTaGVldCo+JiBy
ZXN1bHQpCi17Ci0gICAgVmVjdG9yPERvY3VtZW50Kj4gZG9jdW1lbnRzID0gbV9kb21BZ2VudC0+
ZG9jdW1lbnRzKCk7Ci0gICAgZm9yIChWZWN0b3I8RG9jdW1lbnQqPjo6aXRlcmF0b3IgaXQgPSBk
b2N1bWVudHMuYmVnaW4oKTsgaXQgIT0gZG9jdW1lbnRzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAg
IFN0eWxlU2hlZXRMaXN0KiBsaXN0ID0gKCppdCktPnN0eWxlU2hlZXRzKCk7Ci0gICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBsaXN0LT5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgICAg
ICBTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gbGlzdC0+aXRlbShpKTsKLSAgICAgICAgICAgIGlm
IChzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKLSAgICAgICAgICAgICAgICBjb2xsZWN0
U3R5bGVTaGVldHMoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpLCByZXN1
bHQpOwotICAgICAgICB9Ci0gICAgfQotfQotCi12b2lkIEluc3BlY3RvckNTU0FnZW50Ojpjb2xs
ZWN0U3R5bGVTaGVldHMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgVmVjdG9yPEluc3BlY3Rv
clN0eWxlU2hlZXQqPiYgcmVzdWx0KQordm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Y29sbGVjdFN0
eWxlU2hlZXRzKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6Q1NTOjpDU1NTdHlsZVNoZWV0SGVhZGVyPiogcmVzdWx0KQogewogICAgIElu
c3BlY3RvclN0eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQgPSBiaW5kU3R5bGVTaGVldChz
dGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCkpOwotICAgIHJlc3VsdC5hcHBl
bmQoaW5zcGVjdG9yU3R5bGVTaGVldCk7CisgICAgcmVzdWx0LT5hZGRJdGVtKGluc3BlY3RvclN0
eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldEluZm8oKSk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMCwgc2l6ZSA9IHN0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwgc2l6ZTsgKytpKSB7
CiAgICAgICAgIENTU1J1bGUqIHJ1bGUgPSBzdHlsZVNoZWV0LT5pdGVtKGkpOwogICAgICAgICBp
ZiAocnVsZS0+dHlwZSgpID09IENTU1J1bGU6OklNUE9SVF9SVUxFKSB7CkBAIC0xMDkzLDIwICsx
MDQ2LDEwIEBAIEluc3BlY3RvclN0eWxlU2hlZXQqIEluc3BlY3RvckNTU0FnZW50OjpiaW5kU3R5
bGVTaGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0CiAgICAgICAgIGluc3BlY3RvclN0eWxl
U2hlZXQgPSBJbnNwZWN0b3JTdHlsZVNoZWV0OjpjcmVhdGUobV9kb21BZ2VudC0+cGFnZUFnZW50
KCksIGlkLCBzdHlsZVNoZWV0LCBkZXRlY3RPcmlnaW4oc3R5bGVTaGVldCwgZG9jdW1lbnQpLCBJ
bnNwZWN0b3JET01BZ2VudDo6ZG9jdW1lbnRVUkxTdHJpbmcoZG9jdW1lbnQpLCB0aGlzKTsKICAg
ICAgICAgbV9pZFRvSW5zcGVjdG9yU3R5bGVTaGVldC5zZXQoaWQsIGluc3BlY3RvclN0eWxlU2hl
ZXQpOwogICAgICAgICBtX2Nzc1N0eWxlU2hlZXRUb0luc3BlY3RvclN0eWxlU2hlZXQuc2V0KHN0
eWxlU2hlZXQsIGluc3BlY3RvclN0eWxlU2hlZXQpOwotICAgICAgICBpZiAobV9jcmVhdGluZ1Zp
YUluc3BlY3RvclN0eWxlU2hlZXQpCi0gICAgICAgICAgICBtX2RvY3VtZW50VG9JbnNwZWN0b3JT
dHlsZVNoZWV0LmFkZChkb2N1bWVudCwgaW5zcGVjdG9yU3R5bGVTaGVldCk7CiAgICAgfQogICAg
IHJldHVybiBpbnNwZWN0b3JTdHlsZVNoZWV0LmdldCgpOwogfQogCi1TdHJpbmcgSW5zcGVjdG9y
Q1NTQWdlbnQ6OnVuYmluZFN0eWxlU2hlZXQoSW5zcGVjdG9yU3R5bGVTaGVldCogaW5zcGVjdG9y
U3R5bGVTaGVldCkKLXsKLSAgICBTdHJpbmcgaWQgPSBpbnNwZWN0b3JTdHlsZVNoZWV0LT5pZCgp
OwotICAgIG1faWRUb0luc3BlY3RvclN0eWxlU2hlZXQucmVtb3ZlKGlkKTsKLSAgICBtX2Nzc1N0
eWxlU2hlZXRUb0luc3BlY3RvclN0eWxlU2hlZXQucmVtb3ZlKGluc3BlY3RvclN0eWxlU2hlZXQt
PnBhZ2VTdHlsZVNoZWV0KCkpOwotICAgIHJldHVybiBpZDsKLX0KLQogSW5zcGVjdG9yU3R5bGVT
aGVldCogSW5zcGVjdG9yQ1NTQWdlbnQ6OnZpYUluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIGNyZWF0ZUlmQWJzZW50KQogewogICAgIGlmICghZG9jdW1lbnQpIHsK
QEAgLTExMzMsMTUgKzEwNzYsMjEgQEAgSW5zcGVjdG9yU3R5bGVTaGVldCogSW5zcGVjdG9yQ1NT
QWdlbnQ6OnZpYUluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQqIGRvY3VtZW4KICAgICAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgICAgIElubGluZVN0eWxlT3ZlcnJpZGVTY29wZSBvdmVycmlk
ZVNjb3BlKGRvY3VtZW50KTsKLSAgICAgICAgbV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hl
ZXQgPSB0cnVlOwogICAgICAgICB0YXJnZXROb2RlLT5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQs
IGVjKTsKLSAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgYWRkZWQgc3R5bGVzaGVldCB3aWxs
IGdldCBib3VuZCB0aHJvdWdoIHRoZSB1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cygpIGludm9jYXRp
b24uCi0gICAgICAgIC8vIFdlIGp1c3QgbmVlZCB0byBwaWNrIHRoZSByZXNwZWN0aXZlIEluc3Bl
Y3RvclN0eWxlU2hlZXQgZnJvbSBtX2RvY3VtZW50VG9JbnNwZWN0b3JTdHlsZVNoZWV0LgotICAg
ICAgICBtX2NyZWF0aW5nVmlhSW5zcGVjdG9yU3R5bGVTaGVldCA9IGZhbHNlOwogICAgIH0KICAg
ICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBtX2RvY3VtZW50VG9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmdldChkb2N1bWVudCkuZ2V0KCk7CisgICAgU3R5bGVTaGVldExpc3Qq
IHN0eWxlU2hlZXRzID0gZG9jdW1lbnQtPnN0eWxlU2hlZXRzKCk7CisgICAgU3R5bGVTaGVldCog
c3R5bGVTaGVldCA9IHN0eWxlU2hlZXRzLT5pdGVtKHN0eWxlU2hlZXRzLT5sZW5ndGgoKSAtIDEp
OworICAgIGlmICghc3R5bGVTaGVldCB8fCAhc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkp
CisgICAgICAgIHJldHVybiAwOworICAgIENTU1N0eWxlU2hlZXQqIGNzc1N0eWxlU2hlZXQgPSBz
dGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCk7CisgICAgU3RyaW5nIGlkID0g
U3RyaW5nOjpudW1iZXIobV9sYXN0U3R5bGVTaGVldElkKyspOworICAgIGluc3BlY3RvclN0eWxl
U2hlZXQgPSBJbnNwZWN0b3JTdHlsZVNoZWV0OjpjcmVhdGUobV9kb21BZ2VudC0+cGFnZUFnZW50
KCksIGlkLCBjc3NTdHlsZVNoZWV0LCBUeXBlQnVpbGRlcjo6Q1NTOjpTdHlsZVNoZWV0T3JpZ2lu
OjpJbnNwZWN0b3IsIEluc3BlY3RvckRPTUFnZW50Ojpkb2N1bWVudFVSTFN0cmluZyhkb2N1bWVu
dCksIHRoaXMpOworICAgIG1faWRUb0luc3BlY3RvclN0eWxlU2hlZXQuc2V0KGlkLCBpbnNwZWN0
b3JTdHlsZVNoZWV0KTsKKyAgICBtX2Nzc1N0eWxlU2hlZXRUb0luc3BlY3RvclN0eWxlU2hlZXQu
c2V0KGNzc1N0eWxlU2hlZXQsIGluc3BlY3RvclN0eWxlU2hlZXQpOworICAgIG1fZG9jdW1lbnRU
b0luc3BlY3RvclN0eWxlU2hlZXQuc2V0KGRvY3VtZW50LCBpbnNwZWN0b3JTdHlsZVNoZWV0KTsK
KyAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldC5nZXQoKTsKIH0KIAogSW5zcGVjdG9yU3R5
bGVTaGVldCogSW5zcGVjdG9yQ1NTQWdlbnQ6OmFzc2VydFN0eWxlU2hlZXRGb3JJZChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkKQpAQCAtMTE1Niw5
ICsxMTA1LDYgQEAgSW5zcGVjdG9yU3R5bGVTaGVldCogSW5zcGVjdG9yQ1NTQWdlbnQ6OmFzc2Vy
dFN0eWxlU2hlZXRGb3JJZChFcnJvclN0cmluZyogZXJyb3IKIAogVHlwZUJ1aWxkZXI6OkNTUzo6
U3R5bGVTaGVldE9yaWdpbjo6RW51bSBJbnNwZWN0b3JDU1NBZ2VudDo6ZGV0ZWN0T3JpZ2luKENT
U1N0eWxlU2hlZXQqIHBhZ2VTdHlsZVNoZWV0LCBEb2N1bWVudCogb3duZXJEb2N1bWVudCkKIHsK
LSAgICBpZiAobV9jcmVhdGluZ1ZpYUluc3BlY3RvclN0eWxlU2hlZXQpCi0gICAgICAgIHJldHVy
biBUeXBlQnVpbGRlcjo6Q1NTOjpTdHlsZVNoZWV0T3JpZ2luOjpJbnNwZWN0b3I7Ci0KICAgICBU
eXBlQnVpbGRlcjo6Q1NTOjpTdHlsZVNoZWV0T3JpZ2luOjpFbnVtIG9yaWdpbiA9IFR5cGVCdWls
ZGVyOjpDU1M6OlN0eWxlU2hlZXRPcmlnaW46OlJlZ3VsYXI7CiAgICAgaWYgKHBhZ2VTdHlsZVNo
ZWV0ICYmICFwYWdlU3R5bGVTaGVldC0+b3duZXJOb2RlKCkgJiYgcGFnZVN0eWxlU2hlZXQtPmhy
ZWYoKS5pc0VtcHR5KCkpCiAgICAgICAgIG9yaWdpbiA9IFR5cGVCdWlsZGVyOjpDU1M6OlN0eWxl
U2hlZXRPcmlnaW46OlVzZXJfYWdlbnQ7CkBAIC0xMTg1LDcgKzExMzEsOCBAQCBQYXNzUmVmUHRy
PFR5cGVCdWlsZGVyOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVj
dEZvclJ1bGUoQ1NTUwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAgICByZXR1cm4gMDsK
ICAgICB9Ci0gICAgcmV0dXJuIGJpbmRTdHlsZVNoZWV0KHJ1bGUtPnBhcmVudFN0eWxlU2hlZXQo
KSktPmJ1aWxkT2JqZWN0Rm9yUnVsZShydWxlKTsKKyAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBp
bnNwZWN0b3JTdHlsZVNoZWV0ID0gYmluZFN0eWxlU2hlZXQocnVsZS0+cGFyZW50U3R5bGVTaGVl
dCgpKTsKKyAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldCA/IGluc3BlY3RvclN0eWxlU2hl
ZXQtPmJ1aWxkT2JqZWN0Rm9yUnVsZShydWxlKSA6IDA7CiB9CiAKIFBhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6OkNTU1J1bGU+ID4gSW5zcGVjdG9yQ1NTQWdl
bnQ6OmJ1aWxkQXJyYXlGb3JSdWxlTGlzdChDU1NSdWxlTGlzdCogcnVsZUxpc3QsIFN0eWxlUmVz
b2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCmluZGV4IGQzNWM5YmMzM2U0NDdjNmFiNDM5MzU4NmRiOTU5M2RhMDE5NTA0
MjYuLjE0M2U0NTRhYTk2YjAxNjgxOTgwMzE1MTBmZjU5NzM4YWYwZmVlMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCkBAIC0zNyw3ICszNyw2IEBA
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNiw3
ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93KERvY3VtZW50
KiwgV2ViS2l0TmFtZWRGbG93Kik7CiAgICAgdm9pZCBkaWRVcGRhdGVSZWdpb25MYXlvdXQoRG9j
dW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKICAgICB2b2lkIHJlZ2lvbkxheW91dFVwZGF0ZWQo
V2ViS2l0TmFtZWRGbG93KiwgaW50IGRvY3VtZW50Tm9kZUlkKTsKLSAgICB2b2lkIGFjdGl2ZVN0
eWxlU2hlZXRzVXBkYXRlZChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlU2hlZXQ+ID4mIG9sZFNo
ZWV0cywgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiBuZXdTaGVldHMpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGdldENvbXB1dGVkU3R5bGVGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50
IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpDU1ND
b21wdXRlZFN0eWxlUHJvcGVydHk+ID4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5saW5lU3R5
bGVzRm9yTm9kZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6
Q1NTOjpDU1NTdHlsZT4mIGlubGluZVN0eWxlLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NT
U3R5bGU+JiBhdHRyaWJ1dGVzKTsKQEAgLTE1MiwxMSArMTUwLDkgQEAgcHJpdmF0ZToKICAgICBJ
bnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGUqIGFzSW5zcGVjdG9yU3R5bGVTaGVldChF
bGVtZW50KiBlbGVtZW50KTsKICAgICBFbGVtZW50KiBlbGVtZW50Rm9ySWQoRXJyb3JTdHJpbmcq
LCBpbnQgbm9kZUlkKTsKICAgICBpbnQgZG9jdW1lbnROb2RlV2l0aFJlcXVlc3RlZEZsb3dzSWQo
RG9jdW1lbnQqKTsKLSAgICB2b2lkIGNvbGxlY3RBbGxTdHlsZVNoZWV0cyhWZWN0b3I8SW5zcGVj
dG9yU3R5bGVTaGVldCo+Jik7Ci0gICAgdm9pZCBjb2xsZWN0U3R5bGVTaGVldHMoQ1NTU3R5bGVT
aGVldCosIFZlY3RvcjxJbnNwZWN0b3JTdHlsZVNoZWV0Kj4mKTsKKyAgICB2b2lkIGNvbGxlY3RT
dHlsZVNoZWV0cyhDU1NTdHlsZVNoZWV0KiwgVHlwZUJ1aWxkZXI6OkFycmF5PFdlYkNvcmU6OlR5
cGVCdWlsZGVyOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+Kik7CiAKICAgICBJbnNwZWN0b3JT
dHlsZVNoZWV0KiBiaW5kU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0Kik7Ci0gICAgU3RyaW5nIHVu
YmluZFN0eWxlU2hlZXQoSW5zcGVjdG9yU3R5bGVTaGVldCopOwogICAgIEluc3BlY3RvclN0eWxl
U2hlZXQqIHZpYUluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQqLCBib29sIGNyZWF0ZUlmQWJz
ZW50KTsKICAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBhc3NlcnRTdHlsZVNoZWV0Rm9ySWQoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmKTsKICAgICBUeXBlQnVpbGRlcjo6Q1NTOjpTdHlsZVNo
ZWV0T3JpZ2luOjpFbnVtIGRldGVjdE9yaWdpbihDU1NTdHlsZVNoZWV0KiBwYWdlU3R5bGVTaGVl
dCwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpOwpAQCAtMTkwLDcgKzE4Niw2IEBAIHByaXZhdGU6
CiAgICAgT3duUHRyPFVwZGF0ZVJlZ2lvbkxheW91dFRhc2s+IG1fdXBkYXRlUmVnaW9uTGF5b3V0
VGFzazsKIAogICAgIGludCBtX2xhc3RTdHlsZVNoZWV0SWQ7Ci0gICAgYm9vbCBtX2NyZWF0aW5n
VmlhSW5zcGVjdG9yU3R5bGVTaGVldDsKIAogICAgIE93blB0cjxTZWxlY3RvclByb2ZpbGU+IG1f
Y3VycmVudFNlbGVjdG9yUHJvZmlsZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDdhNDQ2MzIzNmQ3NTMz
NDIwMDU1MjZiN2JmY2YzNjQxOWFlNmQ0OGMuLjVhYWFiMThhYzY3YzQyYTM4NjY4NzA3ZDhjZTU0
ZjI0ZTFlM2M1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0yNDQsMTIgKzI0NCw2IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnZhbGlkYXRlU3R5bGVBdHRySW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpCiAjZW5kaWYKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmFjdGl2ZVN0eWxlU2hlZXRzVXBkYXRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiBvbGRTaGVl
dHMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4gPiYgbmV3U2hlZXRzKQotewotICAg
IGlmIChJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JDU1NBZ2VudCgpKQotICAgICAgICBjc3NBZ2VudC0+YWN0aXZlU3R5bGVTaGVldHNV
cGRhdGVkKG9sZFNoZWV0cywgbmV3U2hlZXRzKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBET01XaW5kb3cqIHdpbmRvdykKIHsKICAgICBpZiAoSW5zcGVj
dG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNw
ZWN0b3JDb25zb2xlQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBlNmM3MTI4Y2U1OWI3YmEzZDRmZjM3ZjNh
MzY1ZDAwZGFiZjM1NDc2Li5mZjYzMDA1MTZlZjEwMzM0YjAwMjIxMDljZmVkYjM2ZjNkNjEyZjNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiV2ViU29ja2V0SGFuZHNoYWtl
UmVzcG9uc2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNl
ZFBhcmFtLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTgzLDcgKzgyLDYgQEAgY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFN0b3JhZ2VBcmVh
OwogY2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlUnVsZTsKLWNsYXNzIFN0eWxlU2hl
ZXQ7CiBjbGFzcyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OwogY2xhc3MgV29ya2VyQ29udGV4dDsK
IGNsYXNzIFdvcmtlckNvbnRleHRQcm94eTsKQEAgLTEyNCw3ICsxMjIsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgZGlkUmVtb3ZlRE9NQXR0cihEb2N1bWVudCosIEVsZW1lbnQqLCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUpOwogICAgIHN0YXRpYyB2b2lkIGNoYXJhY3RlckRhdGFNb2Rp
ZmllZChEb2N1bWVudCosIENoYXJhY3RlckRhdGEqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRJbnZh
bGlkYXRlU3R5bGVBdHRyKERvY3VtZW50KiwgTm9kZSopOwotICAgIHN0YXRpYyB2b2lkIGFjdGl2
ZVN0eWxlU2hlZXRzVXBkYXRlZChEb2N1bWVudCosIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVT
aGVldD4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4gPiYpOwogICAgIHN0YXRp
YyB2b2lkIGZyYW1lV2luZG93RGlzY2FyZGVkKEZyYW1lKiwgRE9NV2luZG93Kik7CiAgICAgc3Rh
dGljIHZvaWQgbWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoRG9jdW1lbnQqKTsKICAgICBzdGF0aWMg
dm9pZCBkaWRQdXNoU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBTaGFkb3dSb290Kik7CkBAIC0z
MjgsNyArMzI1LDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRSZW1vdmVET01BdHRy
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRWxlbWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSk7CiAgICAgc3RhdGljIHZvaWQgY2hhcmFjdGVyRGF0YU1vZGlmaWVkSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiwgQ2hhcmFjdGVyRGF0YSopOwogICAgIHN0YXRpYyB2b2lkIGRpZEludmFs
aWRhdGVTdHlsZUF0dHJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBOb2RlKik7Ci0gICAgc3Rh
dGljIHZvaWQgYWN0aXZlU3R5bGVTaGVldHNVcGRhdGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0
cjxTdHlsZVNoZWV0PiA+Jik7CiAgICAgc3RhdGljIHZvaWQgZnJhbWVXaW5kb3dEaXNjYXJkZWRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBET01XaW5kb3cqKTsKICAgICBzdGF0aWMgdm9pZCBt
ZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0
YXRpYyB2b2lkIGRpZFB1c2hTaGFkb3dSb290SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRWxl
bWVudCogaG9zdCwgU2hhZG93Um9vdCopOwpAQCAtNjIwLDE5ICs2MTYsNiBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEludmFsaWRhdGVTdHlsZUF0dHIoRG9jdW1l
bnQqIGRvY3VtZW50LAogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6YWN0aXZlU3R5bGVTaGVldHNVcGRhdGVkKERvY3VtZW50KiBkb2N1bWVudCwgY29u
c3QgVmVjdG9yPFJlZlB0cjxTdHlsZVNoZWV0PiA+JiBvbGRTaGVldHMsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8U3R5bGVTaGVldD4gPiYgbmV3U2hlZXRzKQotewotI2lmIEVOQUJMRShJTlNQRUNUT1Ip
Ci0gICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7Ci0gICAgaWYgKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAgICAgICBhY3RpdmVTdHlsZVNoZWV0c1VwZGF0ZWRJ
bXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIG9sZFNoZWV0cywgbmV3U2hlZXRzKTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKLSAgICBVTlVTRURfUEFSQU0ob2xkU2hlZXRzKTsK
LSAgICBVTlVTRURfUEFSQU0obmV3U2hlZXRzKTsKLSNlbmRpZgotfQotCiBpbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lV2luZG93RGlzY2FyZGVkKEZyYW1lKiBmcmFt
ZSwgRE9NV2luZG93KiBkb21XaW5kb3cpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpp
bmRleCBhNzU1YmE1ZjNmMzE3NjVhMmU5NjQzYTcxNzgwMDc0MDhmNmJjMDA3Li5mNDViMmY4ZDZi
YjA0NzFkNjMyY2IzOGFlN2YyMDI1MGIxMGNkYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCkBAIC03Myw5ICs3Myw3IEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnBhcnNlUnVsZU1hdGNoQXJyYXlQYXlsb2FkID0g
ZnVuY3Rpb24obWF0Y2hBcnJheSkKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZl
bnRzID0gewotICAgIFN0eWxlU2hlZXRBZGRlZDogIlN0eWxlU2hlZXRBZGRlZCIsCiAgICAgU3R5
bGVTaGVldENoYW5nZWQ6ICJTdHlsZVNoZWV0Q2hhbmdlZCIsCi0gICAgU3R5bGVTaGVldFJlbW92
ZWQ6ICJTdHlsZVNoZWV0UmVtb3ZlZCIsCiAgICAgTWVkaWFRdWVyeVJlc3VsdENoYW5nZWQ6ICJN
ZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZCIsCiAgICAgTmFtZWRGbG93Q3JlYXRlZDogIk5hbWVkRmxv
d0NyZWF0ZWQiLAogICAgIE5hbWVkRmxvd1JlbW92ZWQ6ICJOYW1lZEZsb3dSZW1vdmVkIiwKQEAg
LTM2MCwxNCArMzU4LDYgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48Q1NTQWdlbnQuQ1NT
U3R5bGVTaGVldEhlYWRlcj59Ci0gICAgICovCi0gICAgc3R5bGVTaGVldEhlYWRlcnM6IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX3Jlc291cmNl
QmluZGluZy5fc3R5bGVTaGVldElkVG9IZWFkZXIpOwotICAgIH0sCi0KLSAgICAvKioKICAgICAg
KiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCiAgICAgICovCiAgICAgX293bmVyRG9j
dW1lbnRJZDogZnVuY3Rpb24obm9kZUlkKQpAQCAtMzk0LDIwICszODQsNiBAQCBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5TdHlsZVNoZWV0
Q2hhbmdlZCwgeyBzdHlsZVNoZWV0SWQ6IHN0eWxlU2hlZXRJZCwgbWFqb3JDaGFuZ2U6IG1ham9y
Q2hhbmdlIH0pOwogICAgIH0sCiAKLSAgICBfc3R5bGVTaGVldEFkZGVkOiBmdW5jdGlvbihoZWFk
ZXIpCi0gICAgewotICAgICAgICB0aGlzLl9yZXNvdXJjZUJpbmRpbmcuX3NldEhlYWRlckZvclN0
eWxlU2hlZXRJZChoZWFkZXIuc3R5bGVTaGVldElkLCBoZWFkZXIpOwotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMu
U3R5bGVTaGVldEFkZGVkLCBoZWFkZXIpOwotICAgIH0sCi0KLSAgICBfc3R5bGVTaGVldFJlbW92
ZWQ6IGZ1bmN0aW9uKGlkKQotICAgIHsKLSAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuX3Jlc291
cmNlQmluZGluZy5fc3R5bGVTaGVldElkVG9IZWFkZXJbaWRdOwotICAgICAgICBjb25zb2xlLmFz
c2VydChoZWFkZXIpOwotICAgICAgICB0aGlzLl9yZXNvdXJjZUJpbmRpbmcuX3NldEhlYWRlckZv
clN0eWxlU2hlZXRJZChpZCwgbnVsbCk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5TdHlsZVNoZWV0UmVtb3Zl
ZCwgaGVhZGVyKTsKLSAgICB9LAotCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtDU1NBZ2VudC5O
YW1lZEZsb3d9IG5hbWVkRmxvd1BheWxvYWQKICAgICAgKi8KQEAgLTQ4NiwxMyArNDYyLDE1IEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNTU1J1bGV9IHJ1bGUKLSAgICAgKiBAcmV0dXJuIHs/
V2ViSW5zcGVjdG9yLlJlc291cmNlfQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1dlYkluc3Bl
Y3Rvci5SZXNvdXJjZSl9IGNhbGxiYWNrCiAgICAgICovCi0gICAgdmlhSW5zcGVjdG9yUmVzb3Vy
Y2VGb3JSdWxlOiBmdW5jdGlvbihydWxlKQorICAgIGdldFZpYUluc3BlY3RvclJlc291cmNlRm9y
UnVsZTogZnVuY3Rpb24ocnVsZSwgY2FsbGJhY2spCiAgICAgewotICAgICAgICBpZiAoIXJ1bGUu
aWQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291
cmNlQmluZGluZy5faW5zcGVjdG9yUmVzb3VyY2UocnVsZS5pZC5zdHlsZVNoZWV0SWQpOworICAg
ICAgICBpZiAoIXJ1bGUuaWQpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKG51bGwpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRoaXMuX3Jlc291cmNlQmluZGluZy5f
cmVxdWVzdFZpYUluc3BlY3RvclJlc291cmNlKHJ1bGUuaWQuc3R5bGVTaGVldElkLCBjYWxsYmFj
ayk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTIyOSw4MCArMTIwNywxMzYgQEAgV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcgPSBmdW5jdGlvbigpCiAKIFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAvKioK
LSAgICAgKiBAcGFyYW0ge0NTU0FnZW50LlN0eWxlU2hlZXRJZH0gc3R5bGVTaGVldElkCi0gICAg
ICogQHBhcmFtIHtDU1NBZ2VudC5DU1NTdHlsZVNoZWV0SGVhZGVyfSBoZWFkZXIKKyAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0gcmVzb3VyY2UKKyAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKD9DU1NBZ2VudC5TdHlsZVNoZWV0SWQpfSBjYWxsYmFjawogICAgICAqLwotICAgIF9z
ZXRIZWFkZXJGb3JTdHlsZVNoZWV0SWQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXRJZCwgaGVhZGVyKQor
ICAgIHJlcXVlc3RTdHlsZVNoZWV0SWRGb3JSZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UsIGNh
bGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIG9sZEhlYWRlciA9IHRoaXMuX3N0eWxlU2hlZXRJ
ZFRvSGVhZGVyW3N0eWxlU2hlZXRJZF07Ci0gICAgICAgIGlmIChvbGRIZWFkZXIpIHsKLSAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9zdHlsZVNoZWV0SWRUb0hlYWRlcltzdHlsZVNoZWV0SWRdOwot
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2ZyYW1lQW5kVVJMVG9TdHlsZVNoZWV0SWRbdGhpcy5f
aGVhZGVyS2V5KG9sZEhlYWRlcildOwotICAgICAgICB9Ci0gICAgICAgIGlmIChoZWFkZXIpIHsK
LSAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRJZFRvSGVhZGVyW3N0eWxlU2hlZXRJZF0gPSBo
ZWFkZXI7Ci0gICAgICAgICAgICBpZiAoaGVhZGVyLm9yaWdpbiA9PT0gImluc3BlY3RvciIpCi0g
ICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlSW5zcGVjdG9yUmVzb3VyY2UoaGVhZGVyKTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB0aGlzLl9mcmFtZUFuZFVSTFRvU3R5bGVT
aGVldElkW3RoaXMuX2hlYWRlcktleShoZWFkZXIpXSA9IGhlYWRlci5zdHlsZVNoZWV0SWQ7Cisg
ICAgICAgIGZ1bmN0aW9uIGlubmVyQ2FsbGJhY2soKQorICAgICAgICB7CisgICAgICAgICAgICBj
YWxsYmFjayh0aGlzLl9zdHlsZVNoZWV0SWRGb3JSZXNvdXJjZShyZXNvdXJjZSkpOwogICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBpZiAodGhpcy5fc3R5bGVTaGVldElkRm9yUmVzb3VyY2Uo
cmVzb3VyY2UpKQorICAgICAgICAgICAgaW5uZXJDYWxsYmFjay5jYWxsKHRoaXMpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sb2FkU3R5bGVTaGVldEhlYWRlcnMoaW5uZXJDYWxs
YmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtDU1NB
Z2VudC5TdHlsZVNoZWV0SWR9IHN0eWxlU2hlZXRJZAotICAgICAqIEByZXR1cm4gez9zdHJpbmd9
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKICAgICAgKi8KLSAg
ICByZXNvdXJjZVVSTEZvclN0eWxlU2hlZXRJZDogZnVuY3Rpb24oc3R5bGVTaGVldElkKQorICAg
IHJlcXVlc3RSZXNvdXJjZVVSTEZvclN0eWxlU2hlZXRJZDogZnVuY3Rpb24oc3R5bGVTaGVldElk
LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLl9zdHlsZVNoZWV0
SWRUb0hlYWRlcltzdHlsZVNoZWV0SWRdOwotICAgICAgICBpZiAoIWhlYWRlcikKLSAgICAgICAg
ICAgIHJldHVybiBudWxsOworICAgICAgICBmdW5jdGlvbiBpbm5lckNhbGxiYWNrKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuX3N0eWxlU2hlZXRJZFRvSGVhZGVy
W3N0eWxlU2hlZXRJZF07CisgICAgICAgICAgICBpZiAoIWhlYWRlcikgeworICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKG51bGwpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KIAotICAgICAgICB2YXIgZnJhbWUgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
ZnJhbWVGb3JJZChoZWFkZXIuZnJhbWVJZCk7Ci0gICAgICAgIGlmICghZnJhbWUpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIHZhciBmcmFtZSA9IFdlYkluc3BlY3Rvci5y
ZXNvdXJjZVRyZWVNb2RlbC5mcmFtZUZvcklkKGhlYWRlci5mcmFtZUlkKTsKKyAgICAgICAgICAg
IGlmICghZnJhbWUpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAgdmFyIHN0eWxlU2hlZXRV
UkwgPSBoZWFkZXIub3JpZ2luID09PSAiaW5zcGVjdG9yIiA/IHRoaXMuX3ZpYUluc3BlY3RvclJl
c291cmNlVVJMKGhlYWRlci5zb3VyY2VVUkwpIDogaGVhZGVyLnNvdXJjZVVSTDsKLSAgICAgICAg
cmV0dXJuIHN0eWxlU2hlZXRVUkw7CisgICAgICAgICAgICB2YXIgc3R5bGVTaGVldFVSTCA9IGhl
YWRlci5vcmlnaW4gPT09ICJpbnNwZWN0b3IiID8gdGhpcy5fdmlhSW5zcGVjdG9yUmVzb3VyY2VV
UkwoaGVhZGVyLnNvdXJjZVVSTCkgOiBoZWFkZXIuc291cmNlVVJMOworICAgICAgICAgICAgY2Fs
bGJhY2soc3R5bGVTaGVldFVSTCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh0
aGlzLl9zdHlsZVNoZWV0SWRUb0hlYWRlcltzdHlsZVNoZWV0SWRdKQorICAgICAgICAgICAgaW5u
ZXJDYWxsYmFjay5jYWxsKHRoaXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9s
b2FkU3R5bGVTaGVldEhlYWRlcnMoaW5uZXJDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAog
CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9IHJlc291cmNl
Ci0gICAgICogQHJldHVybiB7Q1NTQWdlbnQuU3R5bGVTaGVldElkfHVuZGVmaW5lZH0KKyAgICAg
KiBAcmV0dXJuIHtDU1NBZ2VudC5TdHlsZVNoZWV0SWR9CiAgICAgICovCi0gICAgc3R5bGVTaGVl
dElkRm9yUmVzb3VyY2U6IGZ1bmN0aW9uKHJlc291cmNlKQorICAgIF9zdHlsZVNoZWV0SWRGb3JS
ZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5f
ZnJhbWVBbmRVUkxUb1N0eWxlU2hlZXRJZFtyZXNvdXJjZS5mcmFtZUlkICsgIjoiICsgcmVzb3Vy
Y2UudXJsXTsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHshQ1NTQWdlbnQuQ1NT
U3R5bGVTaGVldEhlYWRlcn0gaGVhZGVyCi0gICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAq
IEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9IGNhbGxiYWNrCiAgICAgICovCi0gICAgX2hlYWRl
cktleTogZnVuY3Rpb24oaGVhZGVyKQorICAgIF9sb2FkU3R5bGVTaGVldEhlYWRlcnM6IGZ1bmN0
aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGhlYWRlci5mcmFtZUlkICsgIjoi
ICsgKGhlYWRlci5vcmlnaW4gPT09ICJpbnNwZWN0b3IiID8gdGhpcy5fdmlhSW5zcGVjdG9yUmVz
b3VyY2VVUkwoaGVhZGVyLnNvdXJjZVVSTCkgOiBoZWFkZXIuc291cmNlVVJMKTsKKyAgICAgICAg
LyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gZXJyb3IKKyAgICAgICAgICogQHBhcmFt
IHtBcnJheS48Q1NTQWdlbnQuQ1NTU3R5bGVTaGVldEhlYWRlcj59IGluZm9zCisgICAgICAgICAq
LworICAgICAgICBmdW5jdGlvbiBkaWRHZXRBbGxTdHlsZVNoZWV0cyhlcnJvciwgaW5mb3MpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIGNhbGxi
YWNrKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5mb3MubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICB2YXIgaW5mbyA9IGluZm9zW2ldOworICAgICAgICAgICAgICAgIGlmIChpbmZv
Lm9yaWdpbiA9PT0gImluc3BlY3RvciIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2V0
T3JDcmVhdGVJbnNwZWN0b3JSZXNvdXJjZShpbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRoaXMuX2ZyYW1lQW5k
VVJMVG9TdHlsZVNoZWV0SWRbaW5mby5mcmFtZUlkICsgIjoiICsgaW5mby5zb3VyY2VVUkxdID0g
aW5mby5zdHlsZVNoZWV0SWQ7CisgICAgICAgICAgICAgICAgdGhpcy5fc3R5bGVTaGVldElkVG9I
ZWFkZXJbaW5mby5zdHlsZVNoZWV0SWRdID0gaW5mbzsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGNhbGxiYWNrKG51bGwpOworICAgICAgICB9CisgICAgICAgIENTU0FnZW50LmdldEFsbFN0
eWxlU2hlZXRzKGRpZEdldEFsbFN0eWxlU2hlZXRzLmJpbmQodGhpcykpOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge0NTU0FnZW50LlN0eWxlU2hlZXRJZH0gc3R5bGVTaGVldElk
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLlJlc291cmNlKX0gY2FsbGJh
Y2sKKyAgICAgKi8KKyAgICBfcmVxdWVzdFZpYUluc3BlY3RvclJlc291cmNlOiBmdW5jdGlvbihz
dHlsZVNoZWV0SWQsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMu
X3N0eWxlU2hlZXRJZFRvSGVhZGVyW3N0eWxlU2hlZXRJZF07CisgICAgICAgIGlmIChoZWFkZXIp
IHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX2dldE9yQ3JlYXRlSW5zcGVjdG9yUmVzb3Vy
Y2UoaGVhZGVyKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBoZWFkZXJzTG9hZGVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGhlYWRl
ciA9IHRoaXMuX3N0eWxlU2hlZXRJZFRvSGVhZGVyW3N0eWxlU2hlZXRJZF07CisgICAgICAgICAg
ICBpZiAoaGVhZGVyKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX2dldE9yQ3JlYXRl
SW5zcGVjdG9yUmVzb3VyY2UoaGVhZGVyKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgY2FsbGJhY2sobnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fbG9hZFN0eWxl
U2hlZXRIZWFkZXJzKGhlYWRlcnNMb2FkZWQuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIC8q
KgogICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTU3R5bGVTaGVldEhlYWRlcn0gaGVhZGVyCisg
ICAgICogQHJldHVybiB7P1dlYkluc3BlY3Rvci5SZXNvdXJjZX0KICAgICAgKi8KLSAgICBfY3Jl
YXRlSW5zcGVjdG9yUmVzb3VyY2U6IGZ1bmN0aW9uKGhlYWRlcikKKyAgICBfZ2V0T3JDcmVhdGVJ
bnNwZWN0b3JSZXNvdXJjZTogZnVuY3Rpb24oaGVhZGVyKQogICAgIHsKICAgICAgICAgdmFyIGZy
YW1lID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmZyYW1lRm9ySWQoaGVhZGVyLmZy
YW1lSWQpOwogICAgICAgICBpZiAoIWZyYW1lKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CiAKICAgICAgICAgdmFyIHZpYUluc3BlY3RvclVSTCA9IHRoaXMu
X3ZpYUluc3BlY3RvclJlc291cmNlVVJMKGhlYWRlci5zb3VyY2VVUkwpOyAgICAKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQoIWZyYW1lLnJlc291cmNlRm9yVVJMKHZpYUluc3BlY3RvclVSTCkpOwor
ICAgICAgICB2YXIgaW5zcGVjdG9yUmVzb3VyY2UgPSBmcmFtZS5yZXNvdXJjZUZvclVSTCh2aWFJ
bnNwZWN0b3JVUkwpOworICAgICAgICBpZiAoaW5zcGVjdG9yUmVzb3VyY2UpCisgICAgICAgICAg
ICByZXR1cm4gaW5zcGVjdG9yUmVzb3VyY2U7CiAKICAgICAgICAgdmFyIHJlc291cmNlID0gZnJh
bWUucmVzb3VyY2VGb3JVUkwoaGVhZGVyLnNvdXJjZVVSTCk7CiAgICAgICAgIGlmICghcmVzb3Vy
Y2UpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fZnJhbWVBbmRVUkxUb1N0
eWxlU2hlZXRJZFt0aGlzLl9oZWFkZXJLZXkoaGVhZGVyKV0gPSBoZWFkZXIuc3R5bGVTaGVldElk
OwotICAgICAgICB2YXIgaW5zcGVjdG9yUmVzb3VyY2UgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291
cmNlKG51bGwsIHZpYUluc3BlY3RvclVSTCwgcmVzb3VyY2UuZG9jdW1lbnRVUkwsIHJlc291cmNl
LmZyYW1lSWQsIHJlc291cmNlLmxvYWRlcklkLCBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
dHlsZXNoZWV0LCAidGV4dC9jc3MiLCB0cnVlKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOwog
CisgICAgICAgIHRoaXMuX2ZyYW1lQW5kVVJMVG9TdHlsZVNoZWV0SWRbaGVhZGVyLmZyYW1lSWQg
KyAiOiIgKyB2aWFJbnNwZWN0b3JVUkxdID0gaGVhZGVyLnN0eWxlU2hlZXRJZDsKKyAgICAgICAg
dGhpcy5fc3R5bGVTaGVldElkVG9IZWFkZXJbaGVhZGVyLnN0eWxlU2hlZXRJZF0gPSBoZWFkZXI7
CisgICAgICAgIGluc3BlY3RvclJlc291cmNlID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZShu
dWxsLCB2aWFJbnNwZWN0b3JVUkwsIHJlc291cmNlLmRvY3VtZW50VVJMLCByZXNvdXJjZS5mcmFt
ZUlkLCByZXNvdXJjZS5sb2FkZXJJZCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVz
aGVldCwgInRleHQvY3NzIiwgdHJ1ZSk7CiAgICAgICAgIC8qKgogICAgICAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKD9zdHJpbmcsIGJvb2xlYW4sIHN0cmluZyl9IGNhbGxiYWNrCiAgICAgICAgICAq
LwpAQCAtMTMxNiwyMyArMTM1MCw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3Vy
Y2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgICAgICBpbnNwZWN0b3JSZXNv
dXJjZS5yZXF1ZXN0Q29udGVudCA9IG92ZXJyaWRlUmVxdWVzdENvbnRlbnQ7CiAgICAgICAgIGZy
YW1lLmFkZFJlc291cmNlKGluc3BlY3RvclJlc291cmNlKTsKLSAgICB9LAotCi0gICAgLyoqCi0g
ICAgICogQHBhcmFtIHtDU1NBZ2VudC5TdHlsZVNoZWV0SWR9IHN0eWxlU2hlZXRJZAotICAgICAq
IEByZXR1cm4gez9XZWJJbnNwZWN0b3IuUmVzb3VyY2V9Ci0gICAgICovCi0gICAgX2luc3BlY3Rv
clJlc291cmNlOiBmdW5jdGlvbihzdHlsZVNoZWV0SWQpCi0gICAgewotICAgICAgICB2YXIgaGVh
ZGVyID0gdGhpcy5fc3R5bGVTaGVldElkVG9IZWFkZXJbc3R5bGVTaGVldElkXTsKLSAgICAgICAg
aWYgKCFoZWFkZXIpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgdmFyIGZyYW1l
ID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmZyYW1lRm9ySWQoaGVhZGVyLmZyYW1l
SWQpOwotICAgICAgICBpZiAoIWZyYW1lKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAg
ICAgICAgdmFyIHZpYUluc3BlY3RvclVSTCA9IHRoaXMuX3ZpYUluc3BlY3RvclJlc291cmNlVVJM
KGhlYWRlci5zb3VyY2VVUkwpOwotICAgICAgICByZXR1cm4gZnJhbWUucmVzb3VyY2VGb3JVUkwo
dmlhSW5zcGVjdG9yVVJMKTsKKyAgICAgICAgcmV0dXJuIGluc3BlY3RvclJlc291cmNlOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTEzNTIsOSArMTM3MCw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICBfcmVzZXQ6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIC8vIE1haW4gZnJhbWUgbmF2aWdhdGlvbiAtIGNsZWFyIGhpc3Rv
cnkuCi0gICAgICAgIC8qKiBAdHlwZSB7IU9iamVjdC48c3RyaW5nLCAhQ1NTQWdlbnQuU3R5bGVT
aGVldElkPn0gKi8KICAgICAgICAgdGhpcy5fZnJhbWVBbmRVUkxUb1N0eWxlU2hlZXRJZCA9IHt9
OwotICAgICAgICAvKiogQHR5cGUgeyFPYmplY3QuPENTU0FnZW50LlN0eWxlU2hlZXRJZCwgIUNT
U0FnZW50LkNTU1N0eWxlU2hlZXRIZWFkZXI+fSAqLwogICAgICAgICB0aGlzLl9zdHlsZVNoZWV0
SWRUb0hlYWRlciA9IHt9OwogICAgIH0KIH0KQEAgLTEzODQsMjIgKzE0MDAsNiBAQCBXZWJJbnNw
ZWN0b3IuQ1NTRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTU3R5bGVTaGVldEhlYWRlcn0gaGVhZGVyCi0gICAgICov
Ci0gICAgc3R5bGVTaGVldEFkZGVkOiBmdW5jdGlvbihoZWFkZXIpCi0gICAgewotICAgICAgICB0
aGlzLl9jc3NNb2RlbC5fc3R5bGVTaGVldEFkZGVkKGhlYWRlcik7Ci0gICAgfSwKLQotICAgIC8q
KgotICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuU3R5bGVTaGVldElkfSBpZAotICAgICAqLwotICAg
IHN0eWxlU2hlZXRSZW1vdmVkOiBmdW5jdGlvbihpZCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Nz
c01vZGVsLl9zdHlsZVNoZWV0UmVtb3ZlZChpZCk7Ci0gICAgfSwKLQotICAgIC8qKgogICAgICAq
IEBwYXJhbSB7Q1NTQWdlbnQuTmFtZWRGbG93fSBuYW1lZEZsb3dQYXlsb2FkCiAgICAgICovCiAg
ICAgbmFtZWRGbG93Q3JlYXRlZDogZnVuY3Rpb24obmFtZWRGbG93UGF5bG9hZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5n
LmpzCmluZGV4IDM2NWFjNDViY2QyYjY1NGYyYzc1YTg5NjE0NDU0MTczY2JjOGZiMTcuLmU2YjEw
MTUyZjcxODU4YjhhZGZlZTQzNGZkNjMwYWEwMzVlNGY0NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcwpAQCAt
NzYsMTAgKzc2LDE0IEBAIFdlYkluc3BlY3Rvci5TQVNTU291cmNlTWFwcGluZy5wcm90b3R5cGUg
PSB7CiAKICAgICAgICAgaWYgKGlzQWRkaW5nUmV2aXNpb24pCiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIHZhciB1cmwgPSB0aGlzLl9jc3NNb2RlbC5yZXNvdXJjZUJpbmRpbmcoKS5yZXNv
dXJjZVVSTEZvclN0eWxlU2hlZXRJZChldmVudC5kYXRhLnN0eWxlU2hlZXRJZCk7Ci0gICAgICAg
IGlmICghdXJsKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl9jc3NNb2RlbC5z
ZXRTb3VyY2VNYXBwaW5nKHVybCwgbnVsbCk7CisgICAgICAgIHRoaXMuX2Nzc01vZGVsLnJlc291
cmNlQmluZGluZygpLnJlcXVlc3RSZXNvdXJjZVVSTEZvclN0eWxlU2hlZXRJZChldmVudC5kYXRh
LnN0eWxlU2hlZXRJZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisKKyAgICAgICAgZnVuY3Rpb24g
Y2FsbGJhY2sodXJsKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXVybCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0aGlzLl9jc3NNb2RlbC5zZXRTb3VyY2VNYXBw
aW5nKHVybCwgbnVsbCk7CisgICAgICAgIH0KICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5q
cwppbmRleCAwYjNlYmJkOTRmMDk1OWZkYzA3ZTdmNjdiMDJiMzNlMjUyZTJiY2M3Li5kNDM5ZDNh
ZTg4MTEyY2NjZjQxZmZiY2EzYmNlODQ0OTYyMjc3NzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKQEAgLTEx
OTYsMTEgKzExOTYsMTcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24ucHJv
dG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygidXNlciBzdHlsZXNoZWV0IikpOwogICAgICAgICBpZiAodGhp
cy5ydWxlLmlzVmlhSW5zcGVjdG9yKSB7CiAgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdl
Ykluc3BlY3Rvci5jc3NNb2RlbC52aWFJbnNwZWN0b3JSZXNvdXJjZUZvclJ1bGUodGhpcy5ydWxl
KTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZSkKLSAgICAgICAgICAgICAgICBlbGVtZW50LmFw
cGVuZENoaWxkKGxpbmtpZnlVbmNvcHlhYmxlKHJlc291cmNlLnVybCwgdGhpcy5ydWxlLnNvdXJj
ZUxpbmUpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlbGVtZW50LnRleHRD
b250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJ2aWEgaW5zcGVjdG9yIik7CisgICAgICAg
ICAgICAvKioKKyAgICAgICAgICAgICAqIEBwYXJhbSB7P1dlYkluc3BlY3Rvci5SZXNvdXJjZX0g
cmVzb3VyY2UKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2so
cmVzb3VyY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHJlc291cmNlKQor
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGxpbmtpZnlVbmNvcHlhYmxl
KHJlc291cmNlLnVybCwgdGhpcy5ydWxlLnNvdXJjZUxpbmUpKTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoInZpYSBpbnNwZWN0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRWaWFJbnNwZWN0b3JSZXNvdXJjZUZvclJ1bGUodGhp
cy5ydWxlLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgIHJldHVybiBlbGVtZW50
OwogICAgICAgICB9CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU3R5bGVzU291cmNlTWFwcGluZy5qcwppbmRleCA3MjY0MDUyNWQwYjgw
YjE4ODdhMjEyZjU4ZTNlZGY4OGM4OTVhZTY3Li5jNjhhZTVjNjdmNDEyMmNkMmZlZTIyZDdmM2Yx
ZmE3OTk3MTRmYmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZXNTb3VyY2VNYXBwaW5nLmpzCkBAIC0yMzksMTMgKzIzOSwzMSBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50QmluZGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB1c2VyQ2FsbGJhY2soIk5vIHJlc291cmNlIGZvdW5kOiAiICsgdWlTb3VyY2VDb2RlLnVybCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB0
aGlzLl9jc3NNb2RlbC5yZXNvdXJjZUJpbmRpbmcoKS5yZXF1ZXN0U3R5bGVTaGVldElkRm9yUmVz
b3VyY2UocmVzb3VyY2UsIGNhbGxiYWNrLmJpbmQodGhpcykpOwogCi0gICAgICAgIHZhciBzdHls
ZVNoZWV0SWQgPSB0aGlzLl9jc3NNb2RlbC5yZXNvdXJjZUJpbmRpbmcoKS5zdHlsZVNoZWV0SWRG
b3JSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgIGlmICghc3R5bGVTaGVldElkKSB7Ci0gICAg
ICAgICAgICB1c2VyQ2FsbGJhY2soIk5vIHN0eWxlc2hlZXQgZm91bmQ6ICIgKyByZXNvdXJjZS5m
cmFtZUlkICsgIjoiICsgcmVzb3VyY2UudXJsKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P0NTU0FnZW50LlN0eWxlU2hlZXRJZH0gc3R5bGVT
aGVldElkCisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhzdHlsZVNoZWV0
SWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghc3R5bGVTaGVldElkKSB7CisgICAgICAg
ICAgICAgICAgdXNlckNhbGxiYWNrKCJObyBzdHlsZXNoZWV0IGZvdW5kOiAiICsgcmVzb3VyY2Uu
ZnJhbWVJZCArICI6IiArIHJlc291cmNlLnVybCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aGlzLl9pbm5lclNldENvbnRlbnQoc3R5bGVT
aGVldElkLCBjb250ZW50LCBtYWpvckNoYW5nZSwgdXNlckNhbGxiYWNrLCBudWxsKTsKICAgICAg
ICAgfQorICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0NTU0FnZW50LlN0eWxlU2hl
ZXRJZH0gc3R5bGVTaGVldElkCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQKKyAgICAg
KiBAcGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/
c3RyaW5nKX0gdXNlckNhbGxiYWNrCisgICAgICovCisgICAgX2lubmVyU2V0Q29udGVudDogZnVu
Y3Rpb24oc3R5bGVTaGVldElkLCBjb250ZW50LCBtYWpvckNoYW5nZSwgdXNlckNhbGxiYWNrKQor
ICAgIHsKICAgICAgICAgdGhpcy5faXNTZXR0aW5nQ29udGVudCA9IHRydWU7CiAgICAgICAgIGZ1
bmN0aW9uIGNhbGxiYWNrKGVycm9yKQogICAgICAgICB7CkBAIC0yODQsMTggKzMwMiwyNSBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVDb250ZW50QmluZGluZy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgX2lubmVyU3R5bGVTaGVldENoYW5nZWQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXRJZCwgY29udGVu
dCkKICAgICB7Ci0gICAgICAgIHZhciBzdHlsZVNoZWV0VVJMID0gdGhpcy5fY3NzTW9kZWwucmVz
b3VyY2VCaW5kaW5nKCkucmVzb3VyY2VVUkxGb3JTdHlsZVNoZWV0SWQoc3R5bGVTaGVldElkKTsK
LSAgICAgICAgaWYgKHR5cGVvZiBzdHlsZVNoZWV0VVJMICE9PSAic3RyaW5nIikKLSAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gc3R5
bGVTaGVldFVSTAorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3R5bGVT
aGVldFVSTCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHR5cGVvZiBzdHlsZVNoZWV0VVJM
ICE9PSAic3RyaW5nIikKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHVy
aSA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy51cmlGb3JVUkwoc3R5bGVTaGVldFVSTCk7Ci0g
ICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNl
Q29kZUZvclVSSSh1cmkpOwotICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIHZhciB1cmkgPSBXZWJJbnNwZWN0b3IuZmlsZU1hcHBpbmcu
dXJpRm9yVVJMKHN0eWxlU2hlZXRVUkwpOworICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IFdlYkluc3BlY3Rvci53b3Jrc3BhY2UudWlTb3VyY2VDb2RlRm9yVVJJKHVyaSk7CisgICAgICAg
ICAgICBpZiAoIXVpU291cmNlQ29kZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgaWYgKHVpU291cmNlQ29kZS5zdHlsZUZpbGUoKSkKLSAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5zdHlsZUZpbGUoKS5hZGRSZXZpc2lvbihjb250ZW50KTsKLSAgICB9CisgICAgICAgICAgICBp
ZiAodWlTb3VyY2VDb2RlLnN0eWxlRmlsZSgpKQorICAgICAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5zdHlsZUZpbGUoKS5hZGRSZXZpc2lvbihjb250ZW50KTsKKyAgICAgICAgfQorCisgICAgICAg
IHRoaXMuX2Nzc01vZGVsLnJlc291cmNlQmluZGluZygpLnJlcXVlc3RSZXNvdXJjZVVSTEZvclN0
eWxlU2hlZXRJZChzdHlsZVNoZWV0SWQsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgIH0sCiB9
CiAKIC8qKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDYxNzI2ZGQ3ZTAyOTU5YTc4NjU5NjQxODlkODkxOTNmYmI1M2E5Mjcu
LjJjNTk2MGI3YzM1YWYzM2JhZGY4MzI0OGVmNzEzNzFlOTQ5YWY5MWYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMy0wMi0xOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0Mjk3NS4KKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTQyOTc1CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyMjUKKworICAgICAgICBJbnRy
b2R1Y2VzIGhhcmQtdG8tcmVwcm9kdWNlIGNyYXNoZXMgdXBvbiBpbnNwZWN0ZWQgcGFnZQorICAg
ICAgICBuYXZpZ2F0aW9uIG9uIE1hYyAoUmVxdWVzdGVkIGJ5IGFwYXZsb3Ygb24gI3dlYmtpdCku
CisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNlcy9zdHlsZXNoZWV0LXRyYWNr
aW5nLmNzczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlc2hlZXQt
dHJhY2tpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHls
ZXMvc3R5bGVzaGVldC10cmFja2luZy5odG1sOiBSZW1vdmVkLgorCiAyMDEzLTAyLTE5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmRlckdy
aWQ6OmNvbXB1dGVkVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MgY2FuIHJlYWQgcGFzdCBtX2dyaWQn
cyBzaXplCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Jlc291cmNl
cy9zdHlsZXNoZWV0LXRyYWNraW5nLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
cmVzb3VyY2VzL3N0eWxlc2hlZXQtdHJhY2tpbmcuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkMWFhNGNjY2ZhNGJjODgwOTA4YWIyYzY4NzA5ZDE5YTUzZDUyNzAxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMvcmVzb3VyY2VzL3N0eWxlc2hlZXQtdHJhY2tpbmcuY3NzCisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi1ib2R5IHsKLSAgICBib3JkZXI6IDFweCBzb2xpZCBncmVlbjsK
LX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzaGVldC10
cmFja2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxl
c2hlZXQtdHJhY2tpbmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3ZDhhNDY5ZjFiNjJmZDQ5M2M3ZGM3ZGZjM2JlNTY4ZTM1MzcwNDhiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzaGVldC10cmFja2luZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyNCArMCwwIEBACi1UZXN0cyB0aGF0IHRoZSBzdHlsZVNoZWV0QWRkZWQgYW5kIHN0eWxlU2hl
ZXRSZW1vdmVkIGV2ZW50cyBhcmUgcmVwb3J0ZWQgaW50byB0aGUgZnJvbnRlbmQuIEJ1ZyAxMDU4
MjguCi0KLVRleHQKLTIgaGVhZGVycyBrbm93bjoKLTA6Ci0gICAgVVJMPS4uLi9pbnNwZWN0b3Iv
c3R5bGVzL3Jlc291cmNlcy9zdHlsZXNoZWV0LXRyYWNraW5nLmNzcwotICAgIG9yaWdpbj1yZWd1
bGFyCi0xOgotICAgIFVSTD0uLi4vaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXNoZWV0LXRyYWNraW5n
Lmh0bWwKLSAgICBvcmlnaW49cmVndWxhcgotQWRkaW5nIHN0eWxlc2hlZXQuLi4KLVN0eWxlc2hl
ZXQgYWRkZWQ6Ci0gICAgVVJMPS4uLi9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlc2hlZXQtdHJhY2tp
bmcuaHRtbAotICAgIG9yaWdpbj1yZWd1bGFyCi1SZW1vdmluZyBzdHlsZXNoZWV0Li4uCi1TdHls
ZXNoZWV0IHJlbW92ZWQ6Ci0gICAgVVJMPS4uLi9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlc2hlZXQt
dHJhY2tpbmcuaHRtbAotICAgIG9yaWdpbj1yZWd1bGFyCi1BZGRpbmcgcnVsZS4uLgotU3R5bGVz
aGVldCBhZGRlZDoKLSAgICBVUkw9Li4uL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzaGVldC10cmFj
a2luZy5odG1sCi0gICAgb3JpZ2luPWluc3BlY3RvcgotUnVsZSBhZGRlZAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlc2hlZXQtdHJhY2tpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzaGVldC10cmFja2luZy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NmRlMjc4N2YyODJmNGE1OGIxZjhiN2M3OTAy
ZDIyZTYwYzBmMTA4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzaGVldC10cmFja2luZy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSJyZXNvdXJjZXMvc3R5bGVzaGVldC10cmFja2luZy5jc3MiIC8+Ci0KLTxzdHlsZT4KLWJvZHkg
ewotICAgIGZvbnQtc2l6ZTogMTJweDsKLX0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQ+Ci0KLWZ1bmN0
aW9uIGFkZFN0eWxlU2hlZXQoKQotewotICAgIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzdHlsZSIpOwotICAgIHN0eWxlRWxlbWVudC5pZCA9ICJzdHlsZSI7Ci0g
ICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpOwotfQotCi1mdW5jdGlv
biByZW1vdmVTdHlsZVNoZWV0KCkKLXsKLSAgICBkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZSIpKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgdmFyIGluc3BlY3RvclJlc291cmNlOwotCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5l
bCgiZWxlbWVudHMiKTsKLSAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuU3R5bGVTaGVldEFkZGVkLCBzdHls
ZVNoZWV0QWRkZWQsIG51bGwpOwotICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2ZW50cy5TdHlsZVNoZWV0UmVtb3Zl
ZCwgc3R5bGVTaGVldFJlbW92ZWQsIG51bGwpOwotICAgIHZhciBoZWFkZXJzID0gV2ViSW5zcGVj
dG9yLmNzc01vZGVsLnN0eWxlU2hlZXRIZWFkZXJzKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoaGVhZGVycy5sZW5ndGggKyAiIGhlYWRlcnMga25vd246Iik7Ci0gICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgKytpKQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdChpICsgIjpcbiIgKyBoZWFkZXJEYXRhKGhlYWRlcnNbaV0pKTsKLQotICAgIHN0ZXAx
KCk7Ci0KLSAgICBmdW5jdGlvbiBzdGVwMSgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQWRkaW5nIHN0eWxlc2hlZXQuLi4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgiYWRkU3R5bGVTaGVldCgpIiwgc3RlcDIpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJSZW1vdmluZyBzdHlsZXNoZWV0Li4uIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoInJlbW92ZVN0eWxlU2hlZXQoKSIsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRX
YWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzdGVwNCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
c3RlcDQobm9kZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRp
bmcgcnVsZS4uLiIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwuYWRkUnVsZShub2Rl
LmlkLCAiI2luc3BlY3RlZCIsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKTsKLQot
ICAgICAgICBmdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUnVsZSBhZGRlZCIpOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgICAgICBmdW5jdGlvbiBm
YWlsdXJlQ2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRmFpbGVkIHRvIGFkZCBydWxlLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0eWxl
U2hlZXRBZGRlZChldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBoZWFkZXIgPSBldmVudC5kYXRh
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGVzaGVldCBhZGRlZDpcbiIg
KyBoZWFkZXJEYXRhKGhlYWRlcikpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0eWxlU2hlZXRS
ZW1vdmVkKGV2ZW50KQotICAgIHsKLSAgICAgICAgdmFyIGhlYWRlciA9IGV2ZW50LmRhdGE7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTdHlsZXNoZWV0IHJlbW92ZWQ6XG4iICsg
aGVhZGVyRGF0YShoZWFkZXIpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBoZWFkZXJEYXRhKGhl
YWRlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiAiICAgIFVSTD0iICsgdHJpbVVSTChoZWFkZXIu
c291cmNlVVJMKSArICJcbiAgICBvcmlnaW49IiArIGhlYWRlci5vcmlnaW47Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gdHJpbVVSTCh1cmwpCi0gICAgewotICAgICAgICBpZiAoIXVybCkKLSAgICAg
ICAgICAgIHJldHVybiB1cmw7Ci0gICAgICAgIHZhciBsYXN0SW5kZXggPSB1cmwubGFzdEluZGV4
T2YoImluc3BlY3Rvci8iKTsKLSAgICAgICAgaWYgKGxhc3RJbmRleCA8IDApCi0gICAgICAgICAg
ICByZXR1cm4gdXJsOwotICAgICAgICByZXR1cm4gIi4uLi8iICsgdXJsLnN1YnN0cihsYXN0SW5k
ZXgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Ci08cD4KLVRlc3RzIHRoYXQgdGhlIHN0eWxlU2hlZXRBZGRlZCBhbmQgc3R5bGVTaGVl
dFJlbW92ZWQgZXZlbnRzIGFyZSByZXBvcnRlZCBpbnRvIHRoZSBmcm9udGVuZC4gPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTgyOCI+QnVnIDEwNTgy
ODwvYT4uCi08L3A+Ci0KLTxkaXYgaWQ9Imluc3BlY3RlZCI+VGV4dDwvZGl2PgotCi08L2JvZHk+
Ci08L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>