<?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>35720</bug_id>
          
          <creation_ts>2010-03-03 22:59:01 -0800</creation_ts>
          <short_desc>Web Inspector: Remove two last synchronous calls from InspectorFrontend to InspectorBackend.</short_desc>
          <delta_ts>2010-03-04 10:56:55 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>195903</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-03 22:59:01 -0800</bug_when>
    <thetext>This removes searchingForNode and pauseOnExceptionsState synchronous query methods and makes us 100% async. Now we can easily go for debugger over HTTP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195905</commentid>
    <comment_count>1</comment_count>
      <attachid>49989</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-03 23:15:08 -0800</bug_when>
    <thetext>Created attachment 49989
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196138</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-04 10:56:55 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorBackend.cpp
	M	WebCore/inspector/InspectorBackend.h
	M	WebCore/inspector/InspectorBackend.idl
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorController.h
	M	WebCore/inspector/InspectorFrontend.cpp
	M	WebCore/inspector/InspectorFrontend.h
	M	WebCore/inspector/front-end/ElementsPanel.js
	M	WebCore/inspector/front-end/InspectorBackendStub.js
	M	WebCore/inspector/front-end/ScriptsPanel.js
	M	WebCore/inspector/front-end/inspector.js
	M	WebKit/chromium/ChangeLog
	M	WebKit/chromium/src/js/DevTools.js
	M	WebKit/chromium/src/js/InspectorControllerImpl.js
Committed r55537</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49989</attachid>
            <date>2010-03-03 23:15:08 -0800</date>
            <delta_ts>2010-03-04 02:45:59 -0800</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>search_node_pause_state</filename>
            <type>text/plain</type>
            <size>27198</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmI5MmRiMS4uMGM3NTkzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiw1MyBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSB0d28gbGFzdCBz
eW5jaHJvbm91cyBjYWxscyBmcm9tIGZyb250LWVuZCB0byBJbnNwZWN0b3JCYWNrZW5kLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTcyMAorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQmFja2VuZDo6ZW5hYmxlU2VhcmNoaW5nRm9yTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kOjpkaXNhYmxlU2VhcmNoaW5nRm9yTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kOjpzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpzZXRXaW5kb3dWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRvcmxs
ZXI6OnNldFNlYXJjaGluZ0Zvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6cG9wdWxhdGVTY3JpcHRPYmplY3RzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6c2VhcmNoaW5nRm9y
Tm9kZVdhc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmQ6OnNl
YXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZDo6dXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kLmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLmdldCBzdGF0dXNC
YXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUu
aGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUucmVz
ZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnNlYXJj
aGluZ0Zvck5vZGVXYXNFbmFibGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZS5zZWFyY2hpbmdGb3JOb2RlV2FzRGlzYWJsZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9ub2RlU2VhcmNoQnV0dG9uQ2xpY2tl
ZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kU3R1Yi5q
czoKKyAgICAgICAgKC5XZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuZFN0dWIucHJvdG90eXBl
LmVuYWJsZVNlYXJjaGluZ0Zvck5vZGUpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0
b3JCYWNrZW5kU3R1Yi5wcm90b3R5cGUuZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUpOgorICAgICAg
ICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JCYWNrZW5kU3R1Yi5wcm90b3R5cGUuc2V0UGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmdldCBzdGF0dXNCYXJJdGVtcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS51cGRhdGVQYXVz
ZU9uRXhjZXB0aW9uc1N0YXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlLl91cGRhdGVEZWJ1Z2dlckJ1dHRvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZVBhdXNlT25FeGNlcHRpb25zKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5zZWFyY2hpbmdGb3JOb2RlV2FzRW5hYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
c2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci51cGRh
dGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKToKKworMjAxMC0wMy0wMyAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDbGlja2luZyBvbiBhbiBlcnJvciBzaG91
bGQgdGFrZSBtZSB0byB0aGUgZXJyb3IKIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NjAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckJhY2tlbmQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5j
cHAKaW5kZXggNTY5MWZkYi4uODRmZWE1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQmFja2VuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5jcHAKQEAgLTkxLDE3ICs5MSwxNiBAQCB2b2lkIEluc3BlY3RvckJhY2tlbmQ6OnN0b3Jl
TGFzdEFjdGl2ZVBhbmVsKGNvbnN0IFN0cmluZyYgcGFuZWxOYW1lKQogICAgICAgICBtX2luc3Bl
Y3RvckNvbnRyb2xsZXItPnN0b3JlTGFzdEFjdGl2ZVBhbmVsKHBhbmVsTmFtZSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yQmFja2VuZDo6dG9nZ2xlTm9kZVNlYXJjaCgpCit2b2lkIEluc3BlY3RvckJh
Y2tlbmQ6OmVuYWJsZVNlYXJjaGluZ0Zvck5vZGUoKQogewogICAgIGlmIChtX2luc3BlY3RvckNv
bnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+dG9nZ2xlU2VhcmNoRm9y
Tm9kZUluUGFnZSgpOworICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnNldFNlYXJjaGlu
Z0Zvck5vZGUodHJ1ZSk7CiB9CiAKLWJvb2wgSW5zcGVjdG9yQmFja2VuZDo6c2VhcmNoaW5nRm9y
Tm9kZSgpCit2b2lkIEluc3BlY3RvckJhY2tlbmQ6OmRpc2FibGVTZWFyY2hpbmdGb3JOb2RlKCkK
IHsKICAgICBpZiAobV9pbnNwZWN0b3JDb250cm9sbGVyKQotICAgICAgICByZXR1cm4gbV9pbnNw
ZWN0b3JDb250cm9sbGVyLT5zZWFyY2hpbmdGb3JOb2RlSW5QYWdlKCk7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBtX2luc3BlY3RvckNvbnRyb2xsZXItPnNldFNlYXJjaGluZ0Zvck5vZGUo
ZmFsc2UpOwogfQogCiB2b2lkIEluc3BlY3RvckJhY2tlbmQ6OmVuYWJsZVJlc291cmNlVHJhY2tp
bmcoYm9vbCBhbHdheXMpCkBAIC0yMDksMTQgKzIwOCwxMSBAQCB2b2lkIEluc3BlY3RvckJhY2tl
bmQ6OnN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigpCiAgICAgU2NyaXB0RGVidWdTZXJ2ZXI6
OnNoYXJlZCgpLnN0ZXBPdXRPZkZ1bmN0aW9uKCk7CiB9CiAKLWxvbmcgSW5zcGVjdG9yQmFja2Vu
ZDo6cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSgpCi17Ci0gICAgcmV0dXJuIFNjcmlwdERlYnVnU2Vy
dmVyOjpzaGFyZWQoKS5wYXVzZU9uRXhjZXB0aW9uc1N0YXRlKCk7Ci19Ci0KIHZvaWQgSW5zcGVj
dG9yQmFja2VuZDo6c2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShsb25nIHBhdXNlU3RhdGUpCiB7
CiAgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnNldFBhdXNlT25FeGNlcHRpb25zU3Rh
dGUoc3RhdGljX2Nhc3Q8U2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25FeGNlcHRpb25zU3RhdGU+
KHBhdXNlU3RhdGUpKTsKKyAgICBpZiAoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kID0gaW5z
cGVjdG9yRnJvbnRlbmQoKSkKKyAgICAgICAgZnJvbnRlbmQtPnVwZGF0ZVBhdXNlT25FeGNlcHRp
b25zU3RhdGUoU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnBhdXNlT25FeGNlcHRpb25zU3Rh
dGUoKSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oCmluZGV4
IDE2MjBlNTAuLjZiODFhOTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKQEAg
LTYxLDggKzYxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChj
b25zdCBTdHJpbmcmIHBhbmVsTmFtZSk7CiAKLSAgICB2b2lkIHRvZ2dsZU5vZGVTZWFyY2goKTsK
LSAgICBib29sIHNlYXJjaGluZ0Zvck5vZGUoKTsKKyAgICB2b2lkIGVuYWJsZVNlYXJjaGluZ0Zv
ck5vZGUoKTsKKyAgICB2b2lkIGRpc2FibGVTZWFyY2hpbmdGb3JOb2RlKCk7CiAKICAgICB2b2lk
IGVuYWJsZVJlc291cmNlVHJhY2tpbmcoYm9vbCBhbHdheXMpOwogICAgIHZvaWQgZGlzYWJsZVJl
c291cmNlVHJhY2tpbmcoYm9vbCBhbHdheXMpOwpAQCAtODQsNyArODQsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwYXVzZUluRGVidWdnZXIoKTsKICAgICB2b2lkIHJlc3VtZURlYnVnZ2VyKCk7CiAK
LSAgICBsb25nIHBhdXNlT25FeGNlcHRpb25zU3RhdGUoKTsKICAgICB2b2lkIHNldFBhdXNlT25F
eGNlcHRpb25zU3RhdGUobG9uZyBwYXVzZVN0YXRlKTsKIAogICAgIHZvaWQgc3RlcE92ZXJTdGF0
ZW1lbnRJbkRlYnVnZ2VyKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsCmlu
ZGV4IDYzMWI3Y2EuLjcyNmY4ODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckJhY2tlbmQuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQu
aWRsCkBAIC0zNiw4ICszNiw4IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICB2b2lkIHNhdmVG
cm9udGVuZFNldHRpbmdzKGluIERPTVN0cmluZyBzZXR0aW5ncyk7CiAKLSAgICAgICAgdm9pZCB0
b2dnbGVOb2RlU2VhcmNoKCk7Ci0gICAgICAgIGJvb2xlYW4gc2VhcmNoaW5nRm9yTm9kZSgpOwor
ICAgICAgICB2b2lkIGVuYWJsZVNlYXJjaGluZ0Zvck5vZGUoKTsKKyAgICAgICAgdm9pZCBkaXNh
YmxlU2VhcmNoaW5nRm9yTm9kZSgpOwogCiAgICAgICAgIHZvaWQgZW5hYmxlUmVzb3VyY2VUcmFj
a2luZyhpbiBib29sZWFuIGFsd2F5cyk7CiAgICAgICAgIHZvaWQgZGlzYWJsZVJlc291cmNlVHJh
Y2tpbmcoaW4gYm9vbGVhbiBhbHdheXMpOwpAQCAtNjMsNyArNjMsNiBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIHZvaWQgc3RlcEludG9TdGF0ZW1lbnRJbkRlYnVnZ2VyKCk7CiAgICAgICAgIHZv
aWQgc3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2VyKCk7CiAKLSAgICAgICAgbG9uZyBwYXVzZU9u
RXhjZXB0aW9uc1N0YXRlKCk7CiAgICAgICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZShpbiBsb25nIHBhdXNlT25FeGNlcHRpb25zU3RhdGUpOwogCiAgICAgICAgIHZvaWQgZW5hYmxl
UHJvZmlsZXIoaW4gYm9vbGVhbiBhbHdheXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA2ZDg1OWVjLi5jNjNiYjJiIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzIxLDggKzMyMSw3IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6c2V0V2luZG93VmlzaWJsZShib29sIHZpc2libGUsIGJvb2wgYXR0YWNo
ZWQpCiAgICAgICAgIGlmIChkZWJ1Z2dlcldhc0VuYWJsZWQpCiAgICAgICAgICAgICBtX2F0dGFj
aERlYnVnZ2VyV2hlblNob3duID0gdHJ1ZTsKICNlbmRpZgotICAgICAgICBpZiAobV9zZWFyY2hp
bmdGb3JOb2RlKQotICAgICAgICAgICAgdG9nZ2xlU2VhcmNoRm9yTm9kZUluUGFnZSgpOworICAg
ICAgICBzZXRTZWFyY2hpbmdGb3JOb2RlKGZhbHNlKTsKICAgICAgICAgcmVzZXRTY3JpcHRPYmpl
Y3RzKCk7CiAgICAgICAgIHN0b3BUaW1lbGluZVByb2ZpbGVyKCk7CiAgICAgfQpAQCAtNDc1LDE2
ICs0NzQsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0b3JlTGFzdEFjdGl2ZVBhbmVs
KGNvbnN0IFN0cmluZyYgcGFuZWxOYW1lKQogICAgIHNldFNldHRpbmcobGFzdEFjdGl2ZVBhbmVs
U2V0dGluZ05hbWUsIHBhbmVsTmFtZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
dG9nZ2xlU2VhcmNoRm9yTm9kZUluUGFnZSgpCi17Ci0gICAgaWYgKCFlbmFibGVkKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fc2VhcmNoaW5nRm9yTm9kZSA9ICFtX3NlYXJjaGluZ0Zvck5v
ZGU7Ci0gICAgaWYgKCFtX3NlYXJjaGluZ0Zvck5vZGUpCi0gICAgICAgIGhpZGVIaWdobGlnaHQo
KTsKLX0KLQogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjptb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkKQogewogICAgIGlmICghZW5h
YmxlZCgpIHx8ICFtX3NlYXJjaGluZ0Zvck5vZGUpCkBAIC01MjgsNiArNTE3LDIxIEBAIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6d2luZG93U2NyaXB0T2JqZWN0QXZhaWxhYmxlKCkKICAgICBT
Y3JpcHRHbG9iYWxPYmplY3Q6OnNldChtX2Zyb250ZW5kU2NyaXB0U3RhdGUsICJJbnNwZWN0b3JG
cm9udGVuZEhvc3QiLCBtX2luc3BlY3RvckZyb250ZW5kSG9zdC5nZXQoKSk7CiB9CiAKK3ZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0U2VhcmNoaW5nRm9yTm9kZShib29sIGVuYWJsZWQpCit7
CisgICAgaWYgKG1fc2VhcmNoaW5nRm9yTm9kZSA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47
CisgICAgbV9zZWFyY2hpbmdGb3JOb2RlID0gZW5hYmxlZDsKKyAgICBpZiAoIW1fc2VhcmNoaW5n
Rm9yTm9kZSkKKyAgICAgICAgaGlkZUhpZ2hsaWdodCgpOworICAgIGlmIChtX2Zyb250ZW5kKSB7
CisgICAgICAgIGlmIChlbmFibGVkKQorICAgICAgICAgICAgbV9mcm9udGVuZC0+c2VhcmNoaW5n
Rm9yTm9kZVdhc0VuYWJsZWQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9mcm9udGVu
ZC0+c2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7CisgICAgfQorfQorCiB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnNjcmlwdE9iamVjdFJlYWR5KCkKIHsKICAgICBBU1NFUlQobV9mcm9u
dGVuZFNjcmlwdFN0YXRlKTsKQEAgLTY3MSw2ICs2NzUsMTAgQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKQogICAgICAgICBtX2Zyb250ZW5kLT5yZXNv
dXJjZVRyYWNraW5nV2FzRW5hYmxlZCgpOwogICAgIGlmIChtX3Byb2ZpbGVyRW5hYmxlZCkKICAg
ICAgICAgbV9mcm9udGVuZC0+cHJvZmlsZXJXYXNFbmFibGVkKCk7CisgICAgaWYgKG1fc2VhcmNo
aW5nRm9yTm9kZSkKKyAgICAgICAgbV9mcm9udGVuZC0+c2VhcmNoaW5nRm9yTm9kZVdhc0VuYWJs
ZWQoKTsKKyAgICBlbHNlCisgICAgICAgIG1fZnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5vZGVXYXNE
aXNhYmxlZCgpOwogCiAgICAgUmVzb3VyY2VzTWFwOjppdGVyYXRvciByZXNvdXJjZXNFbmQgPSBt
X3Jlc291cmNlcy5lbmQoKTsKICAgICBmb3IgKFJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSByZXNvdXJjZXNFbmQ7ICsraXQpCkBAIC02ODQsNiAr
NjkyLDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cG9wdWxhdGVTY3JpcHRPYmplY3Rz
KCkKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWVzc2FnZUNvdW50OyArK2kpCiAgICAg
ICAgIG1fY29uc29sZU1lc3NhZ2VzW2ldLT5hZGRUb0NvbnNvbGUobV9mcm9udGVuZC5nZXQoKSk7
CiAKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKKyAgICBpZiAobV9kZWJ1Z2dlckVu
YWJsZWQpCisgICAgICAgIG1fZnJvbnRlbmQtPnVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGUo
U2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKSk7Cisj
ZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgRGF0YWJhc2VSZXNvdXJjZXNNYXA6Oml0
ZXJhdG9yIGRhdGFiYXNlc0VuZCA9IG1fZGF0YWJhc2VSZXNvdXJjZXMuZW5kKCk7CiAgICAgZm9y
IChEYXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX2RhdGFiYXNlUmVzb3VyY2Vz
LmJlZ2luKCk7IGl0ICE9IGRhdGFiYXNlc0VuZDsgKytpdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAppbmRleCA1MDBiMGRmLi42YWI1ZTg5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xNDcsNyArMTQ3LDYgQEAgcHVibGljOgogICAg
IHZvaWQgYXR0YWNoV2luZG93KCk7CiAgICAgdm9pZCBkZXRhY2hXaW5kb3coKTsKIAotICAgIHZv
aWQgdG9nZ2xlU2VhcmNoRm9yTm9kZUluUGFnZSgpOwogICAgIGJvb2wgc2VhcmNoaW5nRm9yTm9k
ZUluUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VhcmNoaW5nRm9yTm9kZTsgfQogICAgIHZvaWQg
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1v
ZGlmaWVyRmxhZ3MpOwogICAgIHZvaWQgaGFuZGxlTW91c2VQcmVzc09uTm9kZShOb2RlKik7CkBA
IC0yNTgsNyArMjU3LDExIEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEluc3BlY3RvckJh
Y2tlbmQ7CiAgICAgZnJpZW5kIGNsYXNzIEluc3BlY3RvckZyb250ZW5kSG9zdDsKICAgICBmcmll
bmQgY2xhc3MgSW5qZWN0ZWRTY3JpcHRIb3N0OworCiAgICAgLy8gRm9sbG93aW5nIGFyZSB1c2Vk
IGZyb20gSW5zcGVjdG9yQmFja2VuZCBhbmQgaW50ZXJuYWxseS4KKworICAgIHZvaWQgc2V0U2Vh
cmNoaW5nRm9yTm9kZShib29sIGVuYWJsZWQpOworCiAgICAgdm9pZCBzY3JpcHRPYmplY3RSZWFk
eSgpOwogICAgIHZvaWQgbW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0OwogICAg
IHZvaWQgc2V0QXR0YWNoZWRXaW5kb3coYm9vbCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZC5jcHAKaW5kZXggYjMzZWE2YS4uZjNiNDg1ZiAxMDA3NTUKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kLmNwcApAQCAtMjI2LDYgKzIyNiwyNSBAQCB2b2lkIEluc3BlY3RvckZy
b250ZW5kOjpyZXNvdXJjZVRyYWNraW5nV2FzRGlzYWJsZWQoKQogICAgIGNhbGxTaW1wbGVGdW5j
dGlvbigicmVzb3VyY2VUcmFja2luZ1dhc0Rpc2FibGVkIik7CiB9CiAKKwordm9pZCBJbnNwZWN0
b3JGcm9udGVuZDo6c2VhcmNoaW5nRm9yTm9kZVdhc0VuYWJsZWQoKQoreworICAgIGNhbGxTaW1w
bGVGdW5jdGlvbigic2VhcmNoaW5nRm9yTm9kZVdhc0VuYWJsZWQiKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JGcm9udGVuZDo6c2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCkKK3sKKyAgICBjYWxs
U2ltcGxlRnVuY3Rpb24oInNlYXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCIpOworfQorCit2b2lk
IEluc3BlY3RvckZyb250ZW5kOjp1cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKGxvbmcgc3Rh
dGUpCit7CisgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAi
ZGlzcGF0Y2giKTsgCisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInVwZGF0ZVBhdXNlT25F
eGNlcHRpb25zU3RhdGUiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzdGF0ZSk7Cisg
ICAgZnVuY3Rpb24uY2FsbCgpOworfQorCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjp0aW1lbGlu
ZVByb2ZpbGVyV2FzU3RhcnRlZCgpCiB7CiAgICAgY2FsbFNpbXBsZUZ1bmN0aW9uKCJ0aW1lbGlu
ZVByb2ZpbGVyV2FzU3RhcnRlZCIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgK
aW5kZXggZmEwOWViYS4uMTIxY2Q5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZC5oCkBAIC03Niw2ICs3NiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
cmVzb3VyY2VUcmFja2luZ1dhc0VuYWJsZWQoKTsKICAgICAgICAgdm9pZCByZXNvdXJjZVRyYWNr
aW5nV2FzRGlzYWJsZWQoKTsKIAorICAgICAgICB2b2lkIHNlYXJjaGluZ0Zvck5vZGVXYXNFbmFi
bGVkKCk7CisgICAgICAgIHZvaWQgc2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7CisKKyAg
ICAgICAgdm9pZCB1cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKGxvbmcgc3RhdGUpOworCiAj
aWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgICAgIHZvaWQgYXR0YWNoRGVidWdn
ZXJXaGVuU2hvd24oKTsKICAgICAgICAgdm9pZCBkZWJ1Z2dlcldhc0VuYWJsZWQoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggODk3ZmRkMS4u
MzNhNWEzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKQEAgLTU4LDEwICs1OCw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rp
b24oKQogICAgICAgICB0aGlzLnBhbmVsLnVwZGF0ZVByb3BlcnRpZXMoKTsKICAgICAgICAgdGhp
cy5wYW5lbC51cGRhdGVFdmVudExpc3RlbmVycygpOwogCi0gICAgICAgIGlmIChJbnNwZWN0b3JC
YWNrZW5kLnNlYXJjaGluZ0Zvck5vZGUoKSkgewotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC50b2dnbGVOb2RlU2VhcmNoKCk7Ci0gICAgICAgICAgICB0aGlzLnBhbmVsLm5vZGVTZWFyY2hC
dXR0b24udG9nZ2xlZCA9IGZhbHNlOwotICAgICAgICB9CiAgICAgICAgIGlmICh0aGlzLl9mb2N1
c2VkRE9NTm9kZSkKICAgICAgICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldCh0aGlzLl9m
b2N1c2VkRE9NTm9kZS5pbmplY3RlZFNjcmlwdElkKS5hZGRJbnNwZWN0ZWROb2RlKHRoaXMuX2Zv
Y3VzZWRET01Ob2RlLmlkLCBmdW5jdGlvbigpIHt9KTsKICAgICB9OwpAQCAtMTAyLDEwICs5OCw4
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuc2lk
ZWJhclJlc2l6ZUVsZW1lbnQuY2xhc3NOYW1lID0gInNpZGViYXItcmVzaXplci12ZXJ0aWNhbCI7
CiAgICAgdGhpcy5zaWRlYmFyUmVzaXplRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRv
d24iLCB0aGlzLnJpZ2h0U2lkZWJhclJlc2l6ZXJEcmFnU3RhcnQuYmluZCh0aGlzKSwgZmFsc2Up
OwogCi0gICAgdGhpcy5ub2RlU2VhcmNoQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNC
YXJCdXR0b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWxlY3QgYW4gZWxlbWVudCBpbiB0aGUg
cGFnZSB0byBpbnNwZWN0IGl0LiIpLCAibm9kZS1zZWFyY2gtc3RhdHVzLWJhci1pdGVtIik7Ci0g
ICAgdGhpcy5ub2RlU2VhcmNoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
bm9kZVNlYXJjaEJ1dHRvbkNsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwotCi0gICAgdGhpcy5z
ZWFyY2hpbmdGb3JOb2RlID0gZmFsc2U7CisgICAgdGhpcy5fbm9kZVNlYXJjaEJ1dHRvbiA9IG5l
dyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vs
ZWN0IGFuIGVsZW1lbnQgaW4gdGhlIHBhZ2UgdG8gaW5zcGVjdCBpdC4iKSwgIm5vZGUtc2VhcmNo
LXN0YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX25vZGVTZWFyY2hCdXR0b24uYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl9ub2RlU2VhcmNoQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMp
LCBmYWxzZSk7CiAKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jb250ZW50RWxl
bWVudCk7CiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2lkZWJhckVsZW1lbnQp
OwpAQCAtMTI2LDcgKzEyMCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlw
ZSA9IHsKIAogICAgIGdldCBzdGF0dXNCYXJJdGVtcygpCiAgICAgewotICAgICAgICByZXR1cm4g
W3RoaXMubm9kZVNlYXJjaEJ1dHRvbi5lbGVtZW50LCB0aGlzLmNydW1ic0VsZW1lbnRdOworICAg
ICAgICByZXR1cm4gW3RoaXMuX25vZGVTZWFyY2hCdXR0b24uZWxlbWVudCwgdGhpcy5jcnVtYnNF
bGVtZW50XTsKICAgICB9LAogCiAgICAgZ2V0IGRlZmF1bHRGb2N1c2VkRWxlbWVudCgpCkBAIC0x
NTQsMTEgKzE0OCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7CiAK
ICAgICAgICAgV2ViSW5zcGVjdG9yLmhvdmVyZWRET01Ob2RlID0gbnVsbDsKLQotICAgICAgICBp
ZiAoSW5zcGVjdG9yQmFja2VuZC5zZWFyY2hpbmdGb3JOb2RlKCkpIHsKLSAgICAgICAgICAgIElu
c3BlY3RvckJhY2tlbmQudG9nZ2xlTm9kZVNlYXJjaCgpOwotICAgICAgICAgICAgdGhpcy5ub2Rl
U2VhcmNoQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKLSAgICAgICAgfQorICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmRpc2FibGVTZWFyY2hpbmdGb3JOb2RlKCk7CiAgICAgfSwKIAogICAgIHJlc2l6
ZTogZnVuY3Rpb24oKQpAQCAtMTg1LDExICsxNzUsNiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLmhvdmVyZWRET01Ob2Rl
ID0gbnVsbDsKIAotICAgICAgICBpZiAoSW5zcGVjdG9yQmFja2VuZC5zZWFyY2hpbmdGb3JOb2Rl
KCkpIHsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQudG9nZ2xlTm9kZVNlYXJjaCgpOwot
ICAgICAgICAgICAgdGhpcy5ub2RlU2VhcmNoQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKLSAgICAg
ICAgfQotCiAgICAgICAgIHRoaXMucmVjZW50bHlNb2RpZmllZE5vZGVzID0gW107CiAKICAgICAg
ICAgZGVsZXRlIHRoaXMuY3VycmVudFF1ZXJ5OwpAQCAtMjcxLDYgKzI1NiwxNiBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIEluamVjdGVkU2NyaXB0
QWNjZXNzLmdldERlZmF1bHQoKS5wZXJmb3JtU2VhcmNoKHdoaXRlc3BhY2VUcmltbWVkUXVlcnks
IGZ1bmN0aW9uKCkge30pOwogICAgIH0sCiAKKyAgICBzZWFyY2hpbmdGb3JOb2RlV2FzRW5hYmxl
ZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fbm9kZVNlYXJjaEJ1dHRvbi50b2dn
bGVkID0gdHJ1ZTsKKyAgICB9LAorCisgICAgc2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9ub2RlU2VhcmNoQnV0dG9uLnRvZ2dsZWQg
PSBmYWxzZTsKKyAgICB9LAorCiAgICAgX3VwZGF0ZU1hdGNoZXNDb3VudDogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZVNlYXJjaE1hdGNoZXNDb3VudCh0aGlz
Ll9zZWFyY2hSZXN1bHRzLmxlbmd0aCwgdGhpcyk7CkBAIC0xMTA4LDkgKzExMDMsMTAgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX25vZGVTZWFyY2hC
dXR0b25DbGlja2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQudG9nZ2xlTm9kZVNlYXJjaCgpOwotCi0gICAgICAgIHRoaXMubm9kZVNlYXJjaEJ1dHRv
bi50b2dnbGVkID0gSW5zcGVjdG9yQmFja2VuZC5zZWFyY2hpbmdGb3JOb2RlKCk7CisgICAgICAg
IGlmICghdGhpcy5fbm9kZVNlYXJjaEJ1dHRvbi50b2dnbGVkKQorICAgICAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5lbmFibGVTZWFyY2hpbmdGb3JOb2RlKCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUoKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JC
YWNrZW5kU3R1Yi5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNr
ZW5kU3R1Yi5qcwppbmRleCA1Y2VmMGI3Li5jZWY5OThjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yQmFja2VuZFN0dWIuanMKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckJhY2tlbmRTdHViLmpzCkBAIC0xMzMsNiArMTMz
LDE3IEBAIFdlYkluc3BlY3Rvci5JbnNwZWN0b3JCYWNrZW5kU3R1Yi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyYWNraW5nV2FzRGlzYWJsZWQoKTsKICAgICB9
LAogCisKKyAgICBlbmFibGVTZWFyY2hpbmdGb3JOb2RlOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoaW5nRm9yTm9kZVdhc0VuYWJsZWQoKTsKKyAgICB9LAor
CisgICAgZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IFdlYkluc3BlY3Rvci5zZWFyY2hpbmdGb3JOb2RlV2FzRGlzYWJsZWQoKTsKKyAgICB9LAorCiAg
ICAgcmVsb2FkUGFnZTogZnVuY3Rpb24oKQogICAgIHsKICAgICB9LApAQCAtMTY5LDEzICsxODAs
OSBAQCBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuZFN0dWIucHJvdG90eXBlID0gewogICAg
IHsKICAgICB9LAogCi0gICAgcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZTogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfSwKLQogICAgIHNldFBhdXNlT25FeGNlcHRpb25z
U3RhdGU6IGZ1bmN0aW9uKHZhbHVlKQogICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0
ZVBhdXNlT25FeGNlcHRpb25zU3RhdGUodmFsdWUpOwogICAgIH0sCiAKICAgICByZXN1bWVEZWJ1
Z2dlcjogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKaW5kZXggYzVlNTI3Ni4uNTEyNTg1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0xNjAsOCArMTYwLDkgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbiA9IG5l
dyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKCIiLCAiZW5hYmxlLXRvZ2dsZS1zdGF0dXMt
YmFyLWl0ZW0iKTsKICAgICB0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX3RvZ2dsZURlYnVnZ2luZy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAg
ICB0aGlzLnBhdXNlT25FeGNlcHRpb25CdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0Jh
ckJ1dHRvbigiIiwgInNjcmlwdHMtcGF1c2Utb24tZXhjZXB0aW9ucy1zdGF0dXMtYmFyLWl0ZW0i
LCAzKTsKLSAgICB0aGlzLnBhdXNlT25FeGNlcHRpb25CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0aGlzLl90b2dnbGVQYXVzZU9uRXhjZXB0aW9ucy5iaW5kKHRoaXMpLCBmYWxzZSk7
CisgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rh
dHVzQmFyQnV0dG9uKCIiLCAic2NyaXB0cy1wYXVzZS1vbi1leGNlcHRpb25zLXN0YXR1cy1iYXIt
aXRlbSIsIDMpOworICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVQYXVzZU9uRXhjZXB0aW9ucy5iaW5kKHRoaXMpLCBm
YWxzZSk7CisgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5zdGF0ZSA9IFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2Vw
dGlvbnM7CiAKICAgICB0aGlzLl9zaG9ydGN1dHMgPSB7fTsKICAgICB2YXIgaGFuZGxlciwgc2hv
cnRjdXQ7CkBAIC0yMTYsNyArMjE3LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAKICAgICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIFt0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi5lbGVtZW50LCB0aGlzLnBhdXNlT25FeGNlcHRp
b25CdXR0b24uZWxlbWVudF07CisgICAgICAgIHJldHVybiBbdGhpcy5lbmFibGVUb2dnbGVCdXR0
b24uZWxlbWVudCwgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5lbGVtZW50XTsKICAgICB9
LAogCiAgICAgZ2V0IGRlZmF1bHRGb2N1c2VkRWxlbWVudCgpCkBAIC03OTEsMTcgKzc5MiwxNiBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKICAgICB9LAogICAgIAotICAgIF91cGRhdGVQYXVzZU9uRXhjZXB0
aW9uc0J1dHRvbjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKEluc3BlY3RvckJhY2tl
bmQucGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSgpID09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpCi0gICAgICAgICAg
ICB0aGlzLnBhdXNlT25FeGNlcHRpb25CdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkRvbid0IHBhdXNlIG9uIGV4Y2VwdGlvbnMuXG5DbGljayB0byBQYXVzZSBvbiBhbGwgZXhj
ZXB0aW9ucy4iKTsKLSAgICAgICAgZWxzZSBpZiAoSW5zcGVjdG9yQmFja2VuZC5wYXVzZU9uRXhj
ZXB0aW9uc1N0YXRlKCkgPT0gV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0
aW9uc1N0YXRlLlBhdXNlT25BbGxFeGNlcHRpb25zKQotICAgICAgICAgICAgdGhpcy5wYXVzZU9u
RXhjZXB0aW9uQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVzZSBvbiBh
bGwgZXhjZXB0aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuIik7
Ci0gICAgICAgIGVsc2UgaWYgKEluc3BlY3RvckJhY2tlbmQucGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZSgpID09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Q
YXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKQotICAgICAgICAgICAgdGhpcy5wYXVzZU9uRXhjZXB0
aW9uQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVzZSBvbiB1bmNhdWdo
dCBleGNlcHRpb25zLlxuQ2xpY2sgdG8gTm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMuIik7Ci0gICAg
ICAgIAotICAgICAgICB0aGlzLnBhdXNlT25FeGNlcHRpb25CdXR0b24uc3RhdGUgPSBJbnNwZWN0
b3JCYWNrZW5kLnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKTsKLSAgICAgICAgCisgICAgdXBkYXRl
UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZTogZnVuY3Rpb24ocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSkK
KyAgICB7CisgICAgICAgIGlmIChwYXVzZU9uRXhjZXB0aW9uc1N0YXRlID09IFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlv
bnMpCisgICAgICAgICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnRpdGxlID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJEb24ndCBwYXVzZSBvbiBleGNlcHRpb25zLlxuQ2xpY2sgdG8g
UGF1c2Ugb24gYWxsIGV4Y2VwdGlvbnMuIik7CisgICAgICAgIGVsc2UgaWYgKHBhdXNlT25FeGNl
cHRpb25zU3RhdGUgPT0gV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9u
c1N0YXRlLlBhdXNlT25BbGxFeGNlcHRpb25zKQorICAgICAgICAgICAgdGhpcy5fcGF1c2VPbkV4
Y2VwdGlvbkJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGF1c2Ugb24gYWxs
IGV4Y2VwdGlvbnMuXG5DbGljayB0byBQYXVzZSBvbiB1bmNhdWdodCBleGNlcHRpb25zLiIpOwor
ICAgICAgICBlbHNlIGlmIChwYXVzZU9uRXhjZXB0aW9uc1N0YXRlID09IFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRp
b25zKQorICAgICAgICAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi50aXRsZSA9IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUGF1c2Ugb24gdW5jYXVnaHQgZXhjZXB0aW9ucy5cbkNsaWNr
IHRvIE5vdCBwYXVzZSBvbiBleGNlcHRpb25zLiIpOworCisgICAgICAgIHRoaXMuX3BhdXNlT25F
eGNlcHRpb25CdXR0b24uc3RhdGUgPSBwYXVzZU9uRXhjZXB0aW9uc1N0YXRlOwogICAgIH0sCiAK
ICAgICBfdXBkYXRlRGVidWdnZXJCdXR0b25zOiBmdW5jdGlvbigpCkBAIC04MDksMTcgKzgwOSwx
NSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYg
KHRoaXMuX2RlYnVnZ2VyRW5hYmxlZCkgewogICAgICAgICAgICAgdGhpcy5lbmFibGVUb2dnbGVC
dXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlYnVnZ2luZyBlbmFibGVkLiBD
bGljayB0byBkaXNhYmxlLiIpOwogICAgICAgICAgICAgdGhpcy5lbmFibGVUb2dnbGVCdXR0b24u
dG9nZ2xlZCA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLnBhdXNlT25FeGNlcHRpb25CdXR0b24u
dmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9u
LnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5wYW5lbEVuYWJsZXJWaWV3LnZpc2li
bGUgPSBmYWxzZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9n
Z2xlQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEZWJ1Z2dpbmcgZGlzYWJs
ZWQuIENsaWNrIHRvIGVuYWJsZS4iKTsKICAgICAgICAgICAgIHRoaXMuZW5hYmxlVG9nZ2xlQnV0
dG9uLnRvZ2dsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHRoaXMucGF1c2VPbkV4Y2VwdGlvbkJ1
dHRvbi52aXNpYmxlID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9u
QnV0dG9uLnZpc2libGUgPSBmYWxzZTsKICAgICAgICAgICAgIHRoaXMucGFuZWxFbmFibGVyVmll
dy52aXNpYmxlID0gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX3VwZGF0ZVBhdXNl
T25FeGNlcHRpb25zQnV0dG9uKCk7Ci0KICAgICAgICAgaWYgKHRoaXMuX3BhdXNlZCkgewogICAg
ICAgICAgICAgdGhpcy5wYXVzZUJ1dHRvbi5hZGRTdHlsZUNsYXNzKCJwYXVzZWQiKTsKIApAQCAt
OTA0LDggKzkwMiw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
CiAgICAgX3RvZ2dsZVBhdXNlT25FeGNlcHRpb25zOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoKEluc3BlY3RvckJh
Y2tlbmQucGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSgpICsgMSkgJSB0aGlzLnBhdXNlT25FeGNlcHRp
b25CdXR0b24uc3RhdGVzKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNC
dXR0b24oKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRQYXVzZU9uRXhjZXB0aW9uc1N0
YXRlKCh0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnN0YXRlICsgMSkgJSB0aGlzLl9wYXVz
ZU9uRXhjZXB0aW9uQnV0dG9uLnN0YXRlcyk7CiAgICAgfSwKIAogICAgIF90b2dnbGVQYXVzZTog
ZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXgg
OWY0MzUzNy4uN2VjZGZkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCkBAIC0xMTk5LDYgKzExOTksMTcgQEAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJhY2tpbmdX
YXNEaXNhYmxlZCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnBhbmVscy5yZXNvdXJjZXMucmVzb3Vy
Y2VUcmFja2luZ1dhc0Rpc2FibGVkKCk7CiB9CiAKKworV2ViSW5zcGVjdG9yLnNlYXJjaGluZ0Zv
ck5vZGVXYXNFbmFibGVkID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMucGFuZWxzLmVsZW1lbnRz
LnNlYXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7Cit9CisKK1dlYkluc3BlY3Rvci5zZWFyY2hp
bmdGb3JOb2RlV2FzRGlzYWJsZWQgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5wYW5lbHMuZWxl
bWVudHMuc2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7Cit9CisKIFdlYkluc3BlY3Rvci5h
dHRhY2hEZWJ1Z2dlcldoZW5TaG93biA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLnBhbmVscy5z
Y3JpcHRzLmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CkBAIC0xMjA5LDYgKzEyMjAsMTEgQEAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyV2FzRW5hYmxlZCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnBh
bmVscy5zY3JpcHRzLmRlYnVnZ2VyV2FzRW5hYmxlZCgpOwogfQogCitXZWJJbnNwZWN0b3IudXBk
YXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9IGZ1bmN0aW9uKHBhdXNlT25FeGNlcHRpb25zU3Rh
dGUpCit7CisgICAgdGhpcy5wYW5lbHMuc2NyaXB0cy51cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0
YXRlKHBhdXNlT25FeGNlcHRpb25zU3RhdGUpOworfQorCiBXZWJJbnNwZWN0b3IuZGVidWdnZXJX
YXNEaXNhYmxlZCA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLnBhbmVscy5zY3JpcHRzLmRlYnVn
Z2VyV2FzRGlzYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM2N2VjOGYuLjU4ODMxZGIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMiw2ICsyLDE4IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHR3byBsYXN0IHN5bmNocm9u
b3VzIGNhbGxzIGZyb20gZnJvbnQtZW5kIHRvIEluc3BlY3RvckJhY2tlbmQuCisgICAgICAgIAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU3MjAKKwor
ICAgICAgICAqIHNyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qczoKKyAgICAgICAgKGRl
dnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsKToKKyAgICAgICAgKGRldnRvb2xzLkluc3BlY3Rv
ckJhY2tlbmRJbXBsLnByb3RvdHlwZS5zZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKToKKworMjAx
MC0wMy0wMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW1vdmUgc3luYyBhY2Nlc3MgdG8gcmVzb3VyY2VUcmFja2luZ0VuYWJsZWQuCiAKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NjkzCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9qcy9EZXZUb29scy5qcwppbmRleCAwMDkxMjgxLi4xZTkyODhmIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvRGV2VG9vbHMuanMKQEAgLTE1NiwxNSArMTU2LDcgQEAgZGV2dG9vbHMuVG9vbHNBZ2VudC5w
cm90b3R5cGUuZXZhbHVhdGUgPSBmdW5jdGlvbihleHByKQogICogQHBhcmFtIHtzdHJpbmd9IHRl
eHQKICAqLwogZnVuY3Rpb24gZGVidWdQcmludCh0ZXh0KSB7Ci0gICAgdmFyIGNvbnNvbGUgPSBX
ZWJJbnNwZWN0b3IuY29uc29sZTsKLSAgICBpZiAoY29uc29sZSkgewotICAgICAgICBjb25zb2xl
LmFkZE1lc3NhZ2UobmV3IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSgKLSAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpTLAotICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxvZywKLSAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nLAotICAgICAg
ICAgICAgMSwgImNocm9tZTovL2RldnRvb2xzLzxpbnRlcm5hbD4iLCB1bmRlZmluZWQsIC0xLCB0
ZXh0KSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGFsZXJ0KHRleHQpOworICAgIFdlYkluc3BlY3Rv
ci5sb2codGV4dCk7CiB9CiAKIApAQCAtMzY4LDIwICszNjAsNiBAQCBJbmplY3RlZFNjcmlwdEFj
Y2Vzcy5wcm90b3R5cGUuZXZhbHVhdGVJbkNhbGxGcmFtZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZUlk
LCBjb2RlLAogCiAoZnVuY3Rpb24oKQogewotdmFyIG9yaWcgPSBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UucHJvdG90eXBlLnNldE1lc3NhZ2VCb2R5OwotV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLnByb3RvdHlwZS5zZXRNZXNzYWdlQm9keSA9IGZ1bmN0aW9uKGFyZ3MpCi17Ci0gICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGlmICh0eXBl
b2YgYXJnc1tpXSA9PT0gInN0cmluZyIpCi0gICAgICAgICAgICBhcmdzW2ldID0gV2ViSW5zcGVj
dG9yLk9iamVjdFByb3h5LndyYXBQcmltaXRpdmVWYWx1ZShhcmdzW2ldKTsKLSAgICB9Ci0gICAg
b3JpZy5jYWxsKHRoaXMsIGFyZ3MpOwotfTsKLX0pKCk7Ci0KLQotKGZ1bmN0aW9uKCkKLXsKIHZh
ciBvcmlnID0gSW5qZWN0ZWRTY3JpcHRBY2Nlc3MucHJvdG90eXBlLmdldENvbXBsZXRpb25zOwog
SW5qZWN0ZWRTY3JpcHRBY2Nlc3MucHJvdG90eXBlLmdldENvbXBsZXRpb25zID0gZnVuY3Rpb24o
ZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUluc3BlY3RvckNvbW1hbmRMaW5lQVBJLCBjYWxsRnJh
bWVJZCwgcmVwb3J0Q29tcGxldGlvbnMpCiB7CkBAIC0zOTMsMTYgKzM3MSw2IEBAIEluamVjdGVk
U2NyaXB0QWNjZXNzLnByb3RvdHlwZS5nZXRDb21wbGV0aW9ucyA9IGZ1bmN0aW9uKGV4cHJlc3Np
b25TdHJpbmcsIGluY2x1CiB9KSgpOwogCiAKLShmdW5jdGlvbigpCi17Ci1XZWJJbnNwZWN0b3Iu
RWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX25vZGVTZWFyY2hCdXR0b25DbGlja2VkID0gZnVuY3Rp
b24oIGV2ZW50KQotewotICAgIEluc3BlY3RvckJhY2tlbmQudG9nZ2xlTm9kZVNlYXJjaCgpOwot
ICAgIHRoaXMubm9kZVNlYXJjaEJ1dHRvbi50b2dnbGVkID0gIXRoaXMubm9kZVNlYXJjaEJ1dHRv
bi50b2dnbGVkOwotfTsKLX0pKCk7Ci0KLQogLy8gV2UgbmVlZCB0byBoYXZlIGEgcGxhY2UgZm9y
IHBvc3Rwb25lZCB0YXNrcwogLy8gd2hpY2ggc2hvdWxkIGJlIGV4ZWN1dGVkIHdoZW4gYWxsIHRo
ZSBtZXNzYWdlcyBiZXR3ZWVuIGFnZW50IGFuZCBmcm9udGVuZAogLy8gYXJlIHByb2Nlc3NlZC4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlcklt
cGwuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpz
CmluZGV4IDdmYmZiNjQuLmQ4ZGU1NTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9q
cy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcwpAQCAtNDMsOCArNDMsMTAgQEAgZGV2dG9vbHMu
SW5zcGVjdG9yQmFja2VuZEltcGwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5pbnN0YWxsSW5zcGVj
dG9yQ29udHJvbGxlckRlbGVnYXRlXygiZGVsZXRlQ29va2llIik7CiAgICAgdGhpcy5pbnN0YWxs
SW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZGlkRXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVu
ZCIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImRpc2Fi
bGVSZXNvdXJjZVRyYWNraW5nIik7CisgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxl
ckRlbGVnYXRlXygiZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUiKTsKICAgICB0aGlzLmluc3RhbGxJ
bnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJkaXNhYmxlVGltZWxpbmUiKTsKICAgICB0aGlz
Lmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJlbmFibGVSZXNvdXJjZVRyYWNr
aW5nIik7CisgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZW5h
YmxlU2VhcmNoaW5nRm9yTm9kZSIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xs
ZXJEZWxlZ2F0ZV8oImVuYWJsZVRpbWVsaW5lIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9y
Q29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q2hpbGROb2RlcyIpOwogICAgIHRoaXMuaW5zdGFsbElu
c3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldENvb2tpZXMiKTsKQEAgLTcyLDIwICs3NCw2
IEBAIGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBX
ZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuCiAKIAogLyoqCi0gKiB7QGluaGVyaXREb2N9Lgot
ICovCi1kZXZ0b29scy5JbnNwZWN0b3JCYWNrZW5kSW1wbC5wcm90b3R5cGUudG9nZ2xlTm9kZVNl
YXJjaCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuZFN0
dWIucHJvdG90eXBlLnRvZ2dsZU5vZGVTZWFyY2guY2FsbCh0aGlzKTsKLSAgICB0aGlzLmNhbGxJ
bnNwZWN0b3JDb250cm9sbGVyXy5jYWxsKHRoaXMsICJ0b2dnbGVOb2RlU2VhcmNoIik7Ci0gICAg
aWYgKCF0aGlzLnNlYXJjaGluZ0Zvck5vZGUoKSkgewotICAgICAgICAvLyBUaGlzIGlzIGNhbGxl
ZCBmcm9tIEVsZW1lbnRzUGFuZWwgdHJlZU91dGxpbmUncyBmb2N1c05vZGVDaGFuZ2VkKCkuCi0g
ICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5hY3RpdmF0ZVdpbmRvdygpOwotICAgIH0KLX07
Ci0KLQotLyoqCiAgKiBAb3ZlcnJpZGUKICAqLwogZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZElt
cGwucHJvdG90eXBlLmRlYnVnZ2VyRW5hYmxlZCA9IGZ1bmN0aW9uKCkKQEAgLTE2NiwxNiArMTU0
LDEwIEBAIGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsLnByb3RvdHlwZS5zZXRQYXVzZU9u
RXhjZXB0aW9uc1N0YXRlID0gZnVuY3Rpb24oc3RhCiAgICAgdGhpcy5fc2V0UGF1c2VPbkV4Y2Vw
dGlvbnNTdGF0ZSA9IHN0YXRlOwogICAgIC8vIFRPRE8oeXVyeXMpOiBzdXBwb3J0IGFsbCB0aHJl
ZSBzdGF0ZXMuIFNlZSBodHRwOi8vY3JidWcuY29tLzMyODc3CiAgICAgdmFyIGVuYWJsZWQgPSAo
c3RhdGUgIT09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpOwotICAgIHJldHVybiBkZXZ0b29scy50b29scy5nZXRE
ZWJ1Z2dlckFnZW50KCkuc2V0UGF1c2VPbkV4Y2VwdGlvbnMoZW5hYmxlZCk7CisgICAgV2ViSW5z
cGVjdG9yLnVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGUoZW5hYmxlZCA/IFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNl
cHRpb25zIDogV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRl
LkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7CisgICAgZGV2dG9vbHMudG9vbHMuZ2V0RGVidWdnZXJB
Z2VudCgpLnNldFBhdXNlT25FeGNlcHRpb25zKGVuYWJsZWQpOwogfTsKIAotLyoqCi0gKiBAb3Zl
cnJpZGUKLSAqLwotZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwucHJvdG90eXBlLnBhdXNl
T25FeGNlcHRpb25zU3RhdGUgPSBmdW5jdGlvbigpCi17Ci0gICAgcmV0dXJuICh0aGlzLl9zZXRQ
YXVzZU9uRXhjZXB0aW9uc1N0YXRlIHx8IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpOwotfTsKIAogLyoqCiAgKiBA
b3ZlcnJpZGUK
</data>
<flag name="review"
          id="33008"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>