<?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>40297</bug_id>
          
          <creation_ts>2010-06-08 06:48:34 -0700</creation_ts>
          <short_desc>Web Inspector: extend ScriptDebugServer to support script source editing</short_desc>
          <delta_ts>2010-06-09 01:19:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235234</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-08 06:48:34 -0700</bug_when>
    <thetext>Extend ScriptDebugServer to support script source editing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235236</commentid>
    <comment_count>1</comment_count>
      <attachid>58135</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-08 06:55:09 -0700</bug_when>
    <thetext>Created attachment 58135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235242</commentid>
    <comment_count>2</comment_count>
      <attachid>58135</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-08 07:02:55 -0700</bug_when>
    <thetext>Comment on attachment 58135
Patch

Please file a bug on JSC on the missing functionality and add int into FIXME.

WebKit/chromium/src/js/DebuggerScript.js:47
 +  DebuggerScript.ScriptWorldType = {
Is this related?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235247</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-08 07:43:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 58135 [details])
&gt; Please file a bug on JSC on the missing functionality and add int into FIXME.
&gt; 
Filed: https://bugs.webkit.org/show_bug.cgi?id=40300

&gt; WebKit/chromium/src/js/DebuggerScript.js:47
&gt;  +  DebuggerScript.ScriptWorldType = {
&gt; Is this related?
Removed this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235251</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-08 07:53:34 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/bindings/js/ScriptDebugServer.cpp
	M	WebCore/bindings/js/ScriptDebugServer.h
	M	WebCore/bindings/v8/ScriptDebugServer.cpp
	M	WebCore/bindings/v8/ScriptDebugServer.h
	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/Script.js
	M	WebCore/inspector/front-end/ScriptsPanel.js
	M	WebCore/inspector/front-end/Settings.js
	M	WebCore/inspector/front-end/SourceView.js
	M	WebCore/inspector/front-end/TextViewer.js
	M	WebKit/chromium/ChangeLog
	M	WebKit/chromium/src/js/DebuggerScript.js
	M	WebKit/chromium/src/js/DevTools.js
	M	WebKit/chromium/src/js/InspectorControllerImpl.js
Committed r60843</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58135</attachid>
            <date>2010-06-08 06:55:09 -0700</date>
            <delta_ts>2010-06-09 01:19:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40297-20100608175506.patch</filename>
            <type>text/plain</type>
            <size>24214</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2M1N2RiY2E2YTk5NGRmNmQ3Nzc0NDQ1OTcxMTAxMTM5OTliMmM2My4uOTliYzE0M2YzNWRjNDA0
MjQwMmY1MzU0YWIzMjY1MDI5MGI2ZWMwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0wNi0wOCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRlbmQgU2NyaXB0
RGVidWdTZXJ2ZXIgdG8gc3VwcG9ydCBzY3JpcHQgc291cmNlIGVkaXRpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjk3CisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1Nl
cnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6ZWRpdFNjcmlw
dFNvdXJjZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6ZWRpdFNjcmlwdFNvdXJjZSk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kOjplZGl0
U2NyaXB0U291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmlkbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVEZWJ1Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjplZGl0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6OmN1cnJlbnRDYWxsRnJhbWVzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFBhdXNlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbnRpbnVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZDo6ZGlkRWRpdFNjcmlw
dFNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZS5jYW5FZGl0U2NyaXB0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5lZGl0U2NyaXB0U291cmNlLm15Y2FsbGJhY2spOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuZWRpdFNjcmlwdFNvdXJj
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlVmlldy5wcm90b3R5cGUuX2VkaXRMaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RleHRWaWV3ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFZpZXdl
ci5wcm90b3R5cGUuX2hhbmRsZURvdWJsZUNsaWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0Vmlld2VyLnByb3RvdHlwZS5fY29tbWl0RWRpdGluZ0xpbmUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKCNzY3JpcHRzLWZpbGVzIG9w
dGlvbi5leHRlbnNpb24tc2NyaXB0KToKKwogMjAxMC0wNi0wNyAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KICAgICAgICAgCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFt
dXJhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCAxNjJm
MzZkZjNiYmU3NDA2NzhhZTNlYTcwMTMwNTBmNTE1MTNhOTI2Li5hNzY3NjVhM2QyZDg1ZWQ5ZDcz
ODAwZTFkNjIzNmZkMTdlYjM4YmRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVn
U2VydmVyLmNwcApAQCAtMjM1LDYgKzIzNSwxMSBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpz
dGVwT3V0T2ZGdW5jdGlvbigpCiAgICAgbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzID0g
dHJ1ZTsKIH0KIAorYm9vbCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZWRpdFNjcmlwdFNvdXJjZShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmKQoreworICAgIHJldHVybiBmYWxzZTsK
K30KKwogSmF2YVNjcmlwdENhbGxGcmFtZSogU2NyaXB0RGVidWdTZXJ2ZXI6OmN1cnJlbnRDYWxs
RnJhbWUoKQogewogICAgIGlmICghbV9wYXVzZWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERl
YnVnU2VydmVyLmgKaW5kZXggM2Q5OWM3MDFhNDYyN2NhZjJhMWE0ZDQ2NDc0ZWJlMjBjZDVhNzRi
NS4uNzRlZGVlZWU3ZjZhMzY1M2ZiODQ4NzI3ZWZmMGQ4YTE1NDQwNGM0ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzdGVwT3ZlclN0YXRlbWVudCgpOwogICAgIHZvaWQgc3RlcE91dE9mRnVuY3Rpb24o
KTsKIAorICAgIGJvb2wgZWRpdFNjcmlwdFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBj
b25zdCBTdHJpbmcmIG5ld0NvbnRlbnQsIFN0cmluZyYgbmV3U291cmNlT3JFcnJvck1lc3NhZ2Up
OworCiAgICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKICAgICB2b2lkIHJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVyPiogPSAwKTsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBiM2FmZmYyZTBi
MTg0NTFmNWU1YjZiMDJmYzc0NGY4NmMxOGJkY2MwLi43OWI4ZDU0NjU2N2VjN2Q4MGYzMzQyNjc0
YTFiYmU5ZWM0YTY2MzEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERl
YnVnU2VydmVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVy
LmNwcApAQCAtMjU2LDYgKzI1Niw0MCBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzdGVwT3V0
T2ZGdW5jdGlvbigpCiAjZW5kaWYKIH0KIAorYm9vbCBTY3JpcHREZWJ1Z1NlcnZlcjo6ZWRpdFNj
cmlwdFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRl
bnQsIFN0cmluZyYgbmV3U291cmNlT3JFcnJvck1lc3NhZ2UpCit7CisjaWYgRU5BQkxFKFY4X1ND
UklQVF9ERUJVR19TRVJWRVIpCisgICAgZW5zdXJlRGVidWdnZXJTY3JpcHRDb21waWxlZCgpOwor
ICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKKworICAgIE93blB0cjx2ODo6Q29udGV4dDo6U2Nv
cGU+IGNvbnRleHRTY29wZTsKKyAgICBpZiAoIW1fcGF1c2VkUGFnZSkKKyAgICAgICAgY29udGV4
dFNjb3BlLnNldChuZXcgdjg6OkNvbnRleHQ6OlNjb3BlKHY4OjpEZWJ1Zzo6R2V0RGVidWdDb250
ZXh0KCkpKTsKKworICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IHY4OjpM
b2NhbDx2ODo6RnVuY3Rpb24+OjpDYXN0KG1fZGVidWdnZXJTY3JpcHQuZ2V0KCktPkdldCh2ODo6
U3RyaW5nOjpOZXcoImVkaXRTY3JpcHRTb3VyY2UiKSkpOworICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBhcmd2W10gPSB7IHY4U3RyaW5nKHNvdXJjZUlEKSwgdjhTdHJpbmcobmV3Q29udGVudCkg
fTsKKworICAgIHY4OjpUcnlDYXRjaCB0cnlDYXRjaDsKKyAgICB0cnlDYXRjaC5TZXRWZXJib3Nl
KGZhbHNlKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVzdWx0ID0gZnVuY3Rpb24tPkNh
bGwobV9kZWJ1Z2dlclNjcmlwdC5nZXQoKSwgMiwgYXJndik7CisgICAgaWYgKHRyeUNhdGNoLkhh
c0NhdWdodCgpKSB7CisgICAgICAgIHY4OjpMb2NhbDx2ODo6TWVzc2FnZT4gbWVzc2FnZSA9IHRy
eUNhdGNoLk1lc3NhZ2UoKTsKKyAgICAgICAgaWYgKCFtZXNzYWdlLklzRW1wdHkoKSkKKyAgICAg
ICAgICAgIG5ld1NvdXJjZU9yRXJyb3JNZXNzYWdlID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxP
clVuZGVmaW5lZENoZWNrKG1lc3NhZ2UtPkdldCgpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBBU1NFUlQoIXJlc3VsdC5Jc0VtcHR5KCkpOworICAgIG5ld1NvdXJjZU9yRXJy
b3JNZXNzYWdlID0gdG9XZWJDb3JlU3RyaW5nV2l0aE51bGxPclVuZGVmaW5lZENoZWNrKHJlc3Vs
dCk7CisKKyAgICAvLyBDYWxsIHN0YWNrIG1heSBoYXZlIGNoYW5nZWQgYWZ0ZXIgaWYgdGhlIGVk
aXRlZCBmdW5jdGlvbiB3YXMgb24gdGhlIHN0YWNrLgorICAgIGlmIChtX2N1cnJlbnRDYWxsRnJh
bWUpCisgICAgICAgIG1fY3VycmVudENhbGxGcmFtZS5jbGVhcigpOworICAgIHJldHVybiB0cnVl
OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogUGFzc1JlZlB0cjxKYXZh
U2NyaXB0Q2FsbEZyYW1lPiBTY3JpcHREZWJ1Z1NlcnZlcjo6Y3VycmVudENhbGxGcmFtZSgpCiB7
CiAgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
RGVidWdTZXJ2ZXIuaAppbmRleCA3YzhjNWNjYWIwMjdmMWFhNzM3MWFlMmNmNDE5YjBjNDRmZjI3
NGE5Li45NWJmNzExOTcyOTBkYjZmMDlkOWRjYmU0MTRjM2Y1MjZlNzA0YWQyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC03NCw2ICs3NCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN0ZXBPdmVyU3RhdGVtZW50KCk7CiAgICAgdm9pZCBzdGVwT3V0T2ZGdW5jdGlv
bigpOwogCisgICAgYm9vbCBlZGl0U2NyaXB0U291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSUQs
IGNvbnN0IFN0cmluZyYgbmV3Q29udGVudCwgU3RyaW5nJiBuZXdTb3VyY2VPckVycm9yTWVzc2Fn
ZSk7CisKICAgICB2b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpIHsgfQogICAgIHZv
aWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+KiA9IDAp
IHsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNw
cCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCmluZGV4IDM2ZjQxYjg4
ZDI1MjEzYjI5NWFmNjdhMGY1NmY2MTdmMmM0ZjFjOTcuLjhhNTU5ODYwYTNjNjgxMWMxMTQ5ZTJj
NGM3ODc5ZDcwOTVmZTI4ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3Bw
CkBAIC0yMTUsOSArMjE1LDExIEBAIHZvaWQgSW5zcGVjdG9yQmFja2VuZDo6c2V0UGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZShsb25nIHBhdXNlU3RhdGUpCiAgICAgICAgIGZyb250ZW5kLT51cGRhdGVQ
YXVzZU9uRXhjZXB0aW9uc1N0YXRlKFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5wYXVzZU9u
RXhjZXB0aW9uc1N0YXRlKCkpOwogfQogCi0jZW5kaWYKLQotI2lmIEVOQUJMRShKQVZBU0NSSVBU
X0RFQlVHR0VSKQordm9pZCBJbnNwZWN0b3JCYWNrZW5kOjplZGl0U2NyaXB0U291cmNlKGxvbmcg
Y2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcmIG5ld0NvbnRlbnQp
Cit7CisgICAgaWYgKG1faW5zcGVjdG9yQ29udHJvbGxlcikKKyAgICAgICAgbV9pbnNwZWN0b3JD
b250cm9sbGVyLT5lZGl0U2NyaXB0U291cmNlKGNhbGxJZCwgc291cmNlSUQsIG5ld0NvbnRlbnQp
OworfQogCiB2b2lkIEluc3BlY3RvckJhY2tlbmQ6OmVuYWJsZVByb2ZpbGVyKGJvb2wgYWx3YXlz
KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oCmluZGV4IDBlYjhlNGM0YTA0M2M5
Zjk4YjFjYWIzYWE1NTlkOTM0NGFlZDZkM2QuLjI0YmEwYzU5YzJhMTA1NmNkOWRkNGZmMzFlMGY1
OWYxYWY0N2MwMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgKQEAgLTg0LDEy
ICs4NCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVzZUluRGVidWdnZXIoKTsKICAgICB2b2lk
IHJlc3VtZURlYnVnZ2VyKCk7CiAKLSAgICB2b2lkIHNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUo
bG9uZyBwYXVzZVN0YXRlKTsKLQogICAgIHZvaWQgc3RlcE92ZXJTdGF0ZW1lbnRJbkRlYnVnZ2Vy
KCk7CiAgICAgdm9pZCBzdGVwSW50b1N0YXRlbWVudEluRGVidWdnZXIoKTsKICAgICB2b2lkIHN0
ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigpOwogCisgICAgdm9pZCBzZXRQYXVzZU9uRXhjZXB0
aW9uc1N0YXRlKGxvbmcgcGF1c2VTdGF0ZSk7CisKKyAgICB2b2lkIGVkaXRTY3JpcHRTb3VyY2Uo
bG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNvbnN0IFN0cmluZyYgbmV3Q29u
dGVudCk7CisKICAgICB2b2lkIGVuYWJsZVByb2ZpbGVyKGJvb2wgYWx3YXlzKTsKICAgICB2b2lk
IGRpc2FibGVQcm9maWxlcihib29sIGFsd2F5cyk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZC5pZGwKaW5kZXggZThjZmRiOTBkNDQyMzEyZWY1ODM1MjBlM2JmNjBkMDk2MDA1ODFm
Yy4uYzg5NGNhY2Y0MzU1ZDA3ZDRlNTk4ZGYwNTJiMDNhZjU4MTBkYzQ0NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5pZGwKQEAgLTY1LDYgKzY1LDggQEAgbW9kdWxlIGNvcmUg
ewogCiAgICAgICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShpbiBsb25nIHBhdXNl
T25FeGNlcHRpb25zU3RhdGUpOwogCisgICAgICAgIHZvaWQgZWRpdFNjcmlwdFNvdXJjZShpbiBs
b25nIGNhbGxJZCwgaW4gRE9NU3RyaW5nIHNvdXJjZUlELCBpbiBET01TdHJpbmcgbmV3Q29udGVu
dCk7CisKICAgICAgICAgdm9pZCBlbmFibGVQcm9maWxlcihpbiBib29sZWFuIGFsd2F5cyk7CiAg
ICAgICAgIHZvaWQgZGlzYWJsZVByb2ZpbGVyKGluIGJvb2xlYW4gYWx3YXlzKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA3YjJjZDdjYTIwMTg0M2Yy
ODE5NjJmYjFhYmY1MWU4ODYyOGJhNTQ5Li5hMzFkYmM0OTg1Nzk1M2UzNDYzZWIzMTZhYmIwYTY5
ZDgxNmYyNTU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtMTU4LDggKzE1OCw3IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xs
ZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCiAjaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCiAgICAgLCBtX2RlYnVnZ2VyRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
YXR0YWNoRGVidWdnZXJXaGVuU2hvd24oZmFsc2UpCi0jZW5kaWYKLSNpZiBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikKKyAgICAsIG1fcGF1c2VkU2NyaXB0U3RhdGUoMCkKICAgICAsIG1fcHJv
ZmlsZXJFbmFibGVkKCFXVEZfVVNFX0pTQykKICAgICAsIG1fcmVjb3JkaW5nVXNlckluaXRpYXRl
ZFByb2ZpbGUoZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJl
cigtMSkKQEAgLTE2MTIsMTEgKzE2MTEsMjIgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpk
aXNhYmxlRGVidWdnZXIoYm9vbCBhbHdheXMpCiAKICAgICBtX2RlYnVnZ2VyRW5hYmxlZCA9IGZh
bHNlOwogICAgIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24gPSBmYWxzZTsKKyAgICBtX3BhdXNl
ZFNjcmlwdFN0YXRlID0gMDsKIAogICAgIGlmIChtX2Zyb250ZW5kKQogICAgICAgICBtX2Zyb250
ZW5kLT5kZWJ1Z2dlcldhc0Rpc2FibGVkKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6ZWRpdFNjcmlwdFNvdXJjZShsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwg
Y29uc3QgU3RyaW5nJiBuZXdDb250ZW50KQoreworICAgIFN0cmluZyByZXN1bHQ7CisgICAgYm9v
bCBzdWNjZXNzID0gU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLmVkaXRTY3JpcHRTb3VyY2Uo
c291cmNlSUQsIG5ld0NvbnRlbnQsIHJlc3VsdCk7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gY2FsbEZyYW1lczsKKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgY2FsbEZyYW1l
cyA9IGN1cnJlbnRDYWxsRnJhbWVzKCk7CisgICAgbV9mcm9udGVuZC0+ZGlkRWRpdFNjcmlwdFNv
dXJjZShjYWxsSWQsIHN1Y2Nlc3MsIHJlc3VsdCwgY2FsbEZyYW1lcy5nZXQoKSk7Cit9CisKIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lRGVidWdnZXIoKQogewogICAgIGlmICghbV9k
ZWJ1Z2dlckVuYWJsZWQpCkBAIC0xNjI0LDYgKzE2MzQsMTggQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpyZXN1bWVEZWJ1Z2dlcigpCiAgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgp
LmNvbnRpbnVlUHJvZ3JhbSgpOwogfQogCitQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gSW5zcGVjdG9yQ29udHJvbGxlcjo6Y3VycmVudENhbGxGcmFtZXMoKQoreworICAgIGlmICgh
bV9wYXVzZWRTY3JpcHRTdGF0ZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgSW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0SG9zdC0+aW5qZWN0ZWRTY3JpcHRG
b3IobV9wYXVzZWRTY3JpcHRTdGF0ZSk7CisgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFs
dWUoKSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQorICAgIHJldHVybiBpbmplY3RlZFNjcmlwdC5jYWxsRnJhbWVzKCk7Cit9CisKIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0QnJlYWtwb2ludChjb25zdCBTdHJpbmcmIHNvdXJj
ZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBib29sIGVuYWJsZWQsIGNvbnN0IFN0cmluZyYgY29u
ZGl0aW9uKQogewogICAgIFNjcmlwdEJyZWFrcG9pbnQgYnJlYWtwb2ludChlbmFibGVkLCBjb25k
aXRpb24pOwpAQCAtMTY4MCwxNCArMTcwMiwxNSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZAog
CiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFBhdXNlKFNjcmlwdFN0YXRlKiBzY3JpcHRT
dGF0ZSkKIHsKLSAgICBBU1NFUlQoc2NyaXB0U3RhdGUpOwotICAgIEluamVjdGVkU2NyaXB0IGlu
amVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdEhvc3QtPmluamVjdGVkU2NyaXB0Rm9yKHNj
cmlwdFN0YXRlKTsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjYWxsRnJhbWVz
ID0gaW5qZWN0ZWRTY3JpcHQuY2FsbEZyYW1lcygpOworICAgIEFTU0VSVChzY3JpcHRTdGF0ZSAm
JiAhbV9wYXVzZWRTY3JpcHRTdGF0ZSk7CisgICAgbV9wYXVzZWRTY3JpcHRTdGF0ZSA9IHNjcmlw
dFN0YXRlOworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNhbGxGcmFtZXMgPSBj
dXJyZW50Q2FsbEZyYW1lcygpOwogICAgIG1fZnJvbnRlbmQtPnBhdXNlZFNjcmlwdChjYWxsRnJh
bWVzLmdldCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb250aW51ZSgp
CiB7CisgICAgbV9wYXVzZWRTY3JpcHRTdGF0ZSA9IDA7CiAgICAgbV9mcm9udGVuZC0+cmVzdW1l
ZFNjcmlwdCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5k
ZXggYmI2YzM4ODU1NTk4ZGViN2IzZTBiZTBlZTQzNTUyZjgzZDFiMjU1ZC4uYmRhMjdhZjQxNWI2
NjE4Yjk2YzI4ZDgzYTU1N2VjOTM1NTIwYmI0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaApAQCAtMjQxLDcgKzI0MSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNh
YmxlRGVidWdnZXIoYm9vbCBhbHdheXMgPSBmYWxzZSk7CiAgICAgYm9vbCBkZWJ1Z2dlckVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyRW5hYmxlZDsgfQogCisgICAgdm9pZCBlZGl0
U2NyaXB0U291cmNlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBT
dHJpbmcmIG5ld0NvbnRlbnQpOworCiAgICAgdm9pZCByZXN1bWVEZWJ1Z2dlcigpOworICAgIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjdXJyZW50Q2FsbEZyYW1lcygpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGRhdGEsIGludCBmaXJzdExpbmUsIFNjcmlw
dFdvcmxkVHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9y
TGluZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwpAQCAtMzU2LDYgKzM1OSw3IEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgYm9vbCBtX2RlYnVn
Z2VyRW5hYmxlZDsKICAgICBib29sIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd247CisgICAgU2Ny
aXB0U3RhdGUqIG1fcGF1c2VkU2NyaXB0U3RhdGU7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmlu
Zz4gbV9zb3VyY2VJRFRvVVJMOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTb3VyY2VCcmVha3BvaW50
cz4gbV9zdGlja3lCcmVha3BvaW50czsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmQuY3BwCmluZGV4IDM5MGVkYWJmOWY3YTFjY2FkMDc5NDI2N2NiMDQ2NDZiZDI5ZTY3OTQuLmEz
NjE4NTE4MzkzZjgwZmFlYjFjNGU5NDJjYWJjODJlMjllYzE0ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKQEAgLTM1NSw2ICszNTUsMjEgQEAgdm9pZCBJbnNwZWN0
b3JGcm9udGVuZDo6cmVzdW1lZFNjcmlwdCgpCiAgICAgY2FsbFNpbXBsZUZ1bmN0aW9uKCJyZXN1
bWVkU2NyaXB0Iik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZEVkaXRTY3JpcHRT
b3VyY2UobG9uZyBjYWxsSWQsIGJvb2wgc3VjY2VzcywgY29uc3QgU3RyaW5nJiByZXN1bHQsIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSogbmV3Q2FsbEZyYW1lcykKK3sKKyAgICBTY3JpcHRGdW5jdGlv
bkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOworICAgIGZ1bmN0aW9u
LmFwcGVuZEFyZ3VtZW50KCJkaWRFZGl0U2NyaXB0U291cmNlIik7CisgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQoY2FsbElkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzdWNjZXNz
KTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZXN1bHQpOworICAgIGlmIChzdWNjZXNz
ICYmIG5ld0NhbGxGcmFtZXMpIHsKKyAgICAgICAgU2NyaXB0VmFsdWUgbmV3Q2FsbEZyYW1lc1Zh
bHVlID0gU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKHNjcmlwdFN0YXRlKCksIG5ld0NhbGxGcmFt
ZXMpOworICAgICAgICBBU1NFUlQoIW5ld0NhbGxGcmFtZXNWYWx1ZSAuaGFzTm9WYWx1ZSgpKTsK
KyAgICAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQobmV3Q2FsbEZyYW1lc1ZhbHVlKTsKKyAg
ICB9CisgICAgZnVuY3Rpb24uY2FsbCgpOworfQorCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpw
cm9maWxlcldhc0VuYWJsZWQoKQogewogICAgIGNhbGxTaW1wbGVGdW5jdGlvbigicHJvZmlsZXJX
YXNFbmFibGVkIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCBiOWY4
N2VmYTA5MGIyYTY5Yjk4ZGI5ZWZjYzI3NTVhODVlMjMyNWVmLi42OWQ0YzRmZjk5NGI4Nzg3MDE5
ZWY0YjcxMzhiNmU4MTRiNmI3OTc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
LmgKQEAgLTk4LDYgKzk4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHBh
dXNlZFNjcmlwdChTZXJpYWxpemVkU2NyaXB0VmFsdWUqIGNhbGxGcmFtZXMpOwogICAgICAgICB2
b2lkIHJlc3VtZWRTY3JpcHQoKTsKIAorICAgICAgICB2b2lkIGRpZEVkaXRTY3JpcHRTb3VyY2Uo
bG9uZyBjYWxsSWQsIGJvb2wgc3VjY2VzcywgY29uc3QgU3RyaW5nJiByZXN1bHQsIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSogbmV3Q2FsbEZyYW1lcyk7CisKICAgICAgICAgdm9pZCBwcm9maWxlcldh
c0VuYWJsZWQoKTsKICAgICAgICAgdm9pZCBwcm9maWxlcldhc0Rpc2FibGVkKCk7CiAgICAgICAg
IHZvaWQgYWRkUHJvZmlsZUhlYWRlcihjb25zdCBTY3JpcHRWYWx1ZSYgcHJvZmlsZSk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwppbmRleCA1NmNhNDU3M2MyMjFlYmViMTdiM2Q4
ODAzMTg5MGEwOWMzNTI1YzA0Li40MmQ2ODUwOGU4M2MzMjRjZGViMDRlMTQxYmZlNWMxYzE5ZGRj
YzFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTUyLDYgKzUyLDEx
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHQuV29ybGRUeXBlID0gewogICAgIEVYVEVOU0lPTlNfV09S
TEQ6IDEKIH0KIAorV2ViSW5zcGVjdG9yLlNjcmlwdC5Xb3JsZFR5cGUgPSB7CisgICAgTUFJTl9X
T1JMRDogMCwKKyAgICBFWFRFTlNJT05TX1dPUkxEOiAxCit9CisKIFdlYkluc3BlY3Rvci5TY3Jp
cHQucHJvdG90eXBlID0gewogICAgIGdldCBsaW5lc0NvdW50KCkKICAgICB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCBmNmViYzQyNGU4MGNlYmIz
NjY0YTczY2UxMDAwMjg0ZjgyN2IyZGQ3Li5hYzY3YWJhMGIzNTk0ODI5NjYyNzU5ZWUwZjFlZDIz
YTFjOTUwOGZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKQEAgLTM0MSwxMCArMzQxLDEwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgY2FuRWRpdFNjcmlwdHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IHJldHVybiAhIUluc3BlY3RvckJhY2tlbmQuZWRpdFNjcmlwdFNvdXJjZTsKKyAgICAgICAgcmV0
dXJuIFByZWZlcmVuY2VzLmNhbkVkaXRTY3JpcHRTb3VyY2U7CiAgICAgfSwKIAotICAgIGVkaXRT
Y3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNvdXJjZUlELCBuZXdDb250ZW50LCBsaW5lLCBsaW5lc0Nv
dW50VG9TaGlmdCwgY2FsbGJhY2spCisgICAgZWRpdFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291
cmNlSUQsIG5ld0NvbnRlbnQsIGxpbmUsIGxpbmVzQ291bnRUb1NoaWZ0LCBjb21taXRFZGl0aW5n
Q2FsbGJhY2ssIGNhbmNlbEVkaXRpbmdDYWxsYmFjaykKICAgICB7CiAgICAgICAgIGlmICghdGhp
cy5jYW5FZGl0U2NyaXB0cygpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzU0LDEyICszNTQs
MTkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50
c1tpXSk7CiAKLSAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFjayhuZXdCb2R5KQorICAgICAgICBm
dW5jdGlvbiBteWNhbGxiYWNrKHN1Y2Nlc3MsIG5ld0JvZHlPckVycm9yTWVzc2FnZSwgY2FsbEZy
YW1lcykKICAgICAgICAgewotICAgICAgICAgICAgY2FsbGJhY2sobmV3Qm9keSk7CisgICAgICAg
ICAgICBpZiAoc3VjY2VzcykgeworICAgICAgICAgICAgICAgIGNvbW1pdEVkaXRpbmdDYWxsYmFj
ayhuZXdCb2R5T3JFcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGlmIChjYWxsRnJhbWVz
ICYmIGNhbGxGcmFtZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICB0aGlzLmRlYnVnZ2Vy
UGF1c2VkKGNhbGxGcmFtZXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBjYW5jZWxFZGl0aW5nQ2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
bG9nKG5ld0JvZHlPckVycm9yTWVzc2FnZSwgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VMZXZlbC5XYXJuaW5nKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2
YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzW2ldOwotICAgICAgICAgICAgICAgIGlmIChicmVh
a3BvaW50LmxpbmUgPj0gbGluZSkKKyAgICAgICAgICAgICAgICBpZiAoc3VjY2VzcyAmJiBicmVh
a3BvaW50LmxpbmUgPj0gbGluZSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5saW5l
ICs9IGxpbmVzQ291bnRUb1NoaWZ0OwogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5icmVh
a3BvaW50TWFuYWdlci5hZGRCcmVha3BvaW50KGJyZWFrcG9pbnQpOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGI5YjVmNzU3MTQ3ZTI4
NjcxNTA1ZGVkMDVjOGIzMjIwNTA0NDYwMDcuLjk3YmUxNjNiNTMwYThhZTkzNzcyNjk4N2I3MTUx
M2U4YWE3ODkyYTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0
aW5ncy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAg
LTMwLDYgKzMwLDcgQEAKIAogCiB2YXIgUHJlZmVyZW5jZXMgPSB7CisgICAgY2FuRWRpdFNjcmlw
dFNvdXJjZTogZmFsc2UsCiAgICAgbWF4SW5saW5lVGV4dENoaWxkTGVuZ3RoOiA4MCwKICAgICBt
aW5Db25zb2xlSGVpZ2h0OiA3NSwKICAgICBtaW5TaWRlYmFyV2lkdGg6IDEwMCwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKaW5kZXggNDNmZDZmNjg4MmVmYTkwMmZi
YTJlYmZlNmEzOWNiZWY3ZDVhOGMwNy4uZTRkN2ZlZGRiMDM2NjJlMzc0NWFhMjAxNDdhNTc5MjQ1
MjRiYmY4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZp
ZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKQEAg
LTEzNSw3ICsxMzUsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5yZW1vdmVCcmVha3BvaW50KGJy
ZWFrcG9pbnQpOwogICAgIH0sCiAKLSAgICBfZWRpdExpbmU6IGZ1bmN0aW9uKGxpbmUsIG5ld0Nv
bnRlbnQpCisgICAgX2VkaXRMaW5lOiBmdW5jdGlvbihsaW5lLCBuZXdDb250ZW50LCBjYW5jZWxF
ZGl0aW5nQ2FsbGJhY2spCiAgICAgewogICAgICAgICB2YXIgbGluZXMgPSBbXTsKICAgICAgICAg
dmFyIHRleHRNb2RlbCA9IHRoaXMuc291cmNlRnJhbWUudGV4dE1vZGVsOwpAQCAtMTQ3LDcgKzE0
Nyw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQog
CiAgICAgICAgIHZhciBsaW5lc0NvdW50VG9TaGlmdCA9IG5ld0NvbnRlbnQuc3BsaXQoIlxuIiku
bGVuZ3RoIC0gMTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmVkaXRTY3Jp
cHRTb3VyY2UodGhpcy5fc291cmNlSURGb3JMaW5lKGxpbmUpLCBsaW5lcy5qb2luKCJcbiIpLCBs
aW5lLCBsaW5lc0NvdW50VG9TaGlmdCwgdGhpcy5fZWRpdExpbmVDb21wbGV0ZS5iaW5kKHRoaXMp
KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmVkaXRTY3JpcHRTb3VyY2Uo
dGhpcy5fc291cmNlSURGb3JMaW5lKGxpbmUpLCBsaW5lcy5qb2luKCJcbiIpLCBsaW5lLCBsaW5l
c0NvdW50VG9TaGlmdCwgdGhpcy5fZWRpdExpbmVDb21wbGV0ZS5iaW5kKHRoaXMpLCBjYW5jZWxF
ZGl0aW5nQ2FsbGJhY2spOwogICAgIH0sCiAKICAgICBfZWRpdExpbmVDb21wbGV0ZTogZnVuY3Rp
b24obmV3Qm9keSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0
Vmlld2VyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKaW5k
ZXggY2QwNjA3MjJmMmYyNmMyZmIzN2Q0YWU1ZTI2ZjUwNmU2MWY1NTNjNy4uNDcwOWE1OTNlMWZh
MzgyZTY5MzFkZmFjM2ZmMDBkM2JiZjYxOTE1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RleHRWaWV3ZXIuanMKQEAgLTI2MCwxMiArMjYwLDE0IEBAIFdlYkluc3BlY3Rvci5UZXh0
Vmlld2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsgIC8vIERvIG5vdCB0cmln
Z2VyIGVkaXRpbmcgZnJvbSBsaW5lIG51bWJlcnMuCiAKICAgICAgICAgdmFyIG9sZENvbnRlbnQg
PSBsaW5lUm93Lmxhc3RDaGlsZC5pbm5lckhUTUw7Ci0gICAgICAgIHRoaXMuX2VkaXRpbmdMaW5l
ID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyhsaW5lUm93Lmxhc3RDaGlsZCwgdGhpcy5fY29t
bWl0RWRpdGluZ0xpbmUuYmluZCh0aGlzLCBsaW5lUm93LmxpbmVOdW1iZXIsIGxpbmVSb3cubGFz
dENoaWxkKSwgdGhpcy5fY2FuY2VsRWRpdGluZ0xpbmUuYmluZCh0aGlzLCBsaW5lUm93Lmxhc3RD
aGlsZCwgb2xkQ29udGVudCksIG51bGwsIHRydWUpOworICAgICAgICB2YXIgY2FuY2VsRWRpdGlu
Z0NhbGxiYWNrID0gdGhpcy5fY2FuY2VsRWRpdGluZ0xpbmUuYmluZCh0aGlzLCBsaW5lUm93Lmxh
c3RDaGlsZCwgb2xkQ29udGVudCk7CisgICAgICAgIHZhciBjb21taXRFZGl0aW5nQ2FsbGJhY2sg
PSB0aGlzLl9jb21taXRFZGl0aW5nTGluZS5iaW5kKHRoaXMsIGxpbmVSb3cubGluZU51bWJlciwg
bGluZVJvdy5sYXN0Q2hpbGQsIGNhbmNlbEVkaXRpbmdDYWxsYmFjayk7CisgICAgICAgIHRoaXMu
X2VkaXRpbmdMaW5lID0gV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyhsaW5lUm93Lmxhc3RDaGls
ZCwgY29tbWl0RWRpdGluZ0NhbGxiYWNrLCBjYW5jZWxFZGl0aW5nQ2FsbGJhY2ssIG51bGwsIHRy
dWUpOwogICAgIH0sCiAKLSAgICBfY29tbWl0RWRpdGluZ0xpbmU6IGZ1bmN0aW9uKGxpbmVOdW1i
ZXIsIGVsZW1lbnQpCisgICAgX2NvbW1pdEVkaXRpbmdMaW5lOiBmdW5jdGlvbihsaW5lTnVtYmVy
LCBlbGVtZW50LCBjYW5jZWxFZGl0aW5nQ2FsbGJhY2spCiAgICAgewotICAgICAgICB0aGlzLl9l
ZGl0Q2FsbGJhY2sobGluZU51bWJlciwgZWxlbWVudC50ZXh0Q29udGVudCkKKyAgICAgICAgdGhp
cy5fZWRpdENhbGxiYWNrKGxpbmVOdW1iZXIsIGVsZW1lbnQudGV4dENvbnRlbnQsIGNhbmNlbEVk
aXRpbmdDYWxsYmFjayk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9lZGl0aW5nTGluZTsKICAgICB9
LAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IDYzNWY2
Yjc5NzdmNDI0M2Y1YTBjYjQyMTBlNmQ1NDVhYWM3OTU2ZTYuLjNlMDFjNjkxNWY4MTQyZDdkNGEz
ZmRjYTBjNzZiMGQwNWQ1ODI0YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuY3NzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuY3NzCkBAIC0yMzU1LDYgKzIzNTUsMTAgQEAgYnV0dG9uLmVuYWJsZS10b2dnbGUtc3Rh
dHVzLWJhci1pdGVtLnRvZ2dsZWQtb24gLmdseXBoIHsKICAgICBjb2xvcjogcmdiKDcwLCAxMzQs
IDI0MCk7CiB9CiAKKyNzY3JpcHRzLWZpbGVzIG9wdGlvbi5leHRlbnNpb24tc2NyaXB0IHsKKyAg
ICBjb2xvcjogcmdiKDcwLCAxMzQsIDI0MCk7Cit9CisKICNzY3JpcHRzLWZ1bmN0aW9ucyB7CiAg
ICAgbWF4LXdpZHRoOiAxNTBweDsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA4MmMyZTc3MzQ5MDhmZjBm
MmY3NmFiYzNjM2ExN2UwOGIwODdjZmQuLmViMzNkMWY2N2MzYTI2YzdjYTJlMmUxMmIzZTdjMjJm
MTU2ZTg5MmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEwLTA2LTA4ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dGVuZCBTY3JpcHRE
ZWJ1Z1NlcnZlciB0byBzdXBwb3J0IHNjcmlwdCBzb3VyY2UgZWRpdGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAyOTcKKworICAgICAgICAqIHNy
Yy9qcy9EZWJ1Z2dlckFnZW50LmpzOgorICAgICAgICAoZGV2dG9vbHMuU2NyaXB0SW5mby5wcm90
b3R5cGUud29ybGRUeXBlKToKKyAgICAgICAgKiBzcmMvanMvRGVidWdnZXJTY3JpcHQuanM6Cisg
ICAgICAgIChkZWJ1Z2dlclNjcmlwdENvbnN0cnVjdG9yLkRlYnVnZ2VyU2NyaXB0LmVkaXRTY3Jp
cHRTb3VyY2UpOgorICAgICAgICAqIHNyYy9qcy9EZXZUb29scy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5sb2FkZWQpOgorICAgICAgICAqIHNyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1w
bC5qczoKKyAgICAgICAgKGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsKToKKwogMjAxMC0w
Ni0wNyAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSmlhbiBMaS4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVi
dWdnZXJBZ2VudC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJBZ2VudC5qcwpp
bmRleCA0ODdmMmIxYWZlNTRhZjEwOWQ3NTU2OTczNDgwYTI2ZjkxMDI2MmFkLi5jMWRiNjI2MzRi
MzViMWRmMmIzMjVhODlmYTAyNjRkZWM2MzcxM2Y4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0RlYnVnZ2VyQWdlbnQuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9E
ZWJ1Z2dlckFnZW50LmpzCkBAIC0xMjY1LDYgKzEyNjUsMTQgQEAgZGV2dG9vbHMuU2NyaXB0SW5m
by5wcm90b3R5cGUud29ybGRUeXBlID0gZnVuY3Rpb24oKQogfTsKIAogCitkZXZ0b29scy5TY3Jp
cHRJbmZvLnByb3RvdHlwZS53b3JsZFR5cGUgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKHRoaXMu
Y29udGV4dFR5cGVfID09PSAiaW5qZWN0ZWQiKQorICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LlNjcmlwdC5Xb3JsZFR5cGUuRVhURU5TSU9OU19XT1JMRDsKKyAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLlNjcmlwdC5Xb3JsZFR5cGUuTUFJTl9XT1JMRDsKK307CisKKwogLyoqCiAgKiBAcGFyYW0g
e251bWJlcn0gbGluZSAwLWJhc2VkIGxpbmUgbnVtYmVyIGluIHRoZSBzY3JpcHQuCiAgKiBAcmV0
dXJuIHs/ZGV2dG9vbHMuQnJlYWtwb2ludEluZm99IEluZm9ybWF0aW9uIG9uIGEgYnJlYWtwb2lu
dCBhdCB0aGUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3Jp
cHQuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCmluZGV4IGNl
MzBkZTA2MjA5Y2RkMzNlMjVlMzZhZjliODM1YjgyZDgwOWZjODAuLjY1ZmQwYmQ5ZTljOTM1ZTVh
OWMxODBhYWY3NzhkODEyNjM2OTM4MmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvRGVidWdnZXJTY3JpcHQuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dl
clNjcmlwdC5qcwpAQCAtNDQsNiArNDQsMTEgQEAgRGVidWdnZXJTY3JpcHQuU2NyaXB0V29ybGRU
eXBlID0gewogICAgIEV4dGVuc2lvbnNXb3JsZCA6IDEKIH07CiAKK0RlYnVnZ2VyU2NyaXB0LlNj
cmlwdFdvcmxkVHlwZSA9IHsKKyAgICBNYWluV29ybGQgOiAwLAorICAgIEV4dGVuc2lvbnNXb3Js
ZCA6IDEKK307CisKIERlYnVnZ2VyU2NyaXB0Ll9wYXVzZU9uRXhjZXB0aW9uc1N0YXRlID0gRGVi
dWdnZXJTY3JpcHQuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnM7
CiBEZWJ1Zy5jbGVhckJyZWFrT25FeGNlcHRpb24oKTsKIERlYnVnLmNsZWFyQnJlYWtPblVuY2F1
Z2h0RXhjZXB0aW9uKCk7CkBAIC0xNzAsNiArMTc1LDI0IEBAIERlYnVnZ2VyU2NyaXB0LnN0ZXBP
dXRPZkZ1bmN0aW9uID0gZnVuY3Rpb24oZXhlY1N0YXRlKQogICAgIGV4ZWNTdGF0ZS5wcmVwYXJl
U3RlcChEZWJ1Zy5TdGVwQWN0aW9uLlN0ZXBPdXQsIDEpOwogfQogCitEZWJ1Z2dlclNjcmlwdC5l
ZGl0U2NyaXB0U291cmNlID0gZnVuY3Rpb24oc2NyaXB0SWQsIG5ld1NvdXJjZSkKK3sKKyAgICB2
YXIgc2NyaXB0cyA9IERlYnVnLnNjcmlwdHMoKTsKKyAgICB2YXIgc2NyaXB0VG9FZGl0ID0gbnVs
bDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgaWYgKHNjcmlwdHNbaV0uaWQgPT0gc2NyaXB0SWQpIHsKKyAgICAgICAgICAgIHNjcmlwdFRv
RWRpdCA9IHNjcmlwdHNbaV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
KyAgICBpZiAoIXNjcmlwdFRvRWRpdCkKKyAgICAgICAgdGhyb3coIlNjcmlwdCBub3QgZm91bmQi
KTsKKworICAgIHZhciBjaGFuZ2VMb2cgPSBbXTsKKyAgICBEZWJ1Zy5MaXZlRWRpdC5TZXRTY3Jp
cHRTb3VyY2Uoc2NyaXB0VG9FZGl0LCBuZXdTb3VyY2UsIGNoYW5nZUxvZyk7CisgICAgcmV0dXJu
IHNjcmlwdFRvRWRpdC5zb3VyY2U7Cit9CisKIERlYnVnZ2VyU2NyaXB0LmNsZWFyQnJlYWtwb2lu
dHMgPSBmdW5jdGlvbihleGVjU3RhdGUsIGFyZ3MpCiB7CiAgICAgZm9yICh2YXIga2V5IGluIERl
YnVnZ2VyU2NyaXB0Ll9icmVha3BvaW50cykgewpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9qcy9EZXZUb29scy5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGV2VG9vbHMuanMK
aW5kZXggMTExZDNhYjdmMmYxNzc1MTQyY2E5N2NkYTZhNDU3OGY1NjBhYWY2NC4uYzg1YmM3ZGNj
ZmNlMjZjZmE3MjdjYWFiODQ4MDMwYjRhYmM2MmZlYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9qcy9EZXZUb29scy5qcworKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRv
b2xzLmpzCkBAIC0xODMsNiArMTgzLDggQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9u
KCkKICAgICBQcmVmZXJlbmNlcy5oZWFwUHJvZmlsZXJQcmVzZW50ID0gdHJ1ZTsKICAgICBQcmVm
ZXJlbmNlcy5kZWJ1Z2dlckFsd2F5c0VuYWJsZWQgPSB0cnVlOwogICAgIFByZWZlcmVuY2VzLnBy
b2ZpbGVyQWx3YXlzRW5hYmxlZCA9IHRydWU7CisgICAgUHJlZmVyZW5jZXMuY2FuRWRpdFNjcmlw
dFNvdXJjZSA9IHRydWU7CisKICAgICBSZW1vdGVEZWJ1Z2dlckFnZW50LnNldERlYnVnZ2VyU2Ny
aXB0U291cmNlKCIoIiArIGRlYnVnZ2VyU2NyaXB0Q29uc3RydWN0b3IgKyAiKSgpOyIpOwogIAog
ICAgIG9sZExvYWRlZC5jYWxsKHRoaXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMv
SW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMKaW5kZXggODZmODg1YTYwY2QwY2FlMWE1MTQyNWQ2
MTQ3YmQ2YjlkNDU2YTFiYi4uOWYxMzhiNDg2OWI3ZTQzMmQ4Zjc4NmI0M2Q4MGYzZDAzYjg5ZWM4
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVy
SW1wbC5qcworKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJ
bXBsLmpzCkBAIC05Myw2ICs5Myw3IEBAIGRldnRvb2xzLkluc3BlY3RvckJhY2tlbmRJbXBsID0g
ZnVuY3Rpb24oKQogCiAgICAgaWYgKHdpbmRvdy52OFNjcmlwdERlYnVnU2VydmVyRW5hYmxlZCkg
ewogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImRpc2FibGVE
ZWJ1Z2dlciIpOworICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8o
ImVkaXRTY3JpcHRTb3VyY2UiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVy
RGVsZWdhdGVfKCJlbmFibGVEZWJ1Z2dlciIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNv
bnRyb2xsZXJEZWxlZ2F0ZV8oInNldEJyZWFrcG9pbnQiKTsKICAgICB0aGlzLmluc3RhbGxJbnNw
ZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJyZW1vdmVCcmVha3BvaW50Iik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>