<?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>90855</bug_id>
          
          <creation_ts>2012-07-10 00:43:43 -0700</creation_ts>
          <short_desc>Web Inspector: Refactor resource revisions before moving to UISourceCode.</short_desc>
          <delta_ts>2012-07-10 09:23:24 -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>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665542</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-10 00:43:43 -0700</bug_when>
    <thetext>Resource revisions should be moved to UISourceCode as UISourceCode is now the only object that could be edited.
This patch makes all necessary changes to revisions implementation before moving it to UISourceCode.

 - Revisions are now persisted based on mainFrame.loaderId, not resource.loaderId which makes filtering out stale persisted revisions easier.
 - Restoring revisions from local storage is separated from filtering out stale persisted revisions.
 - Resource._clearRevisionHistory and Resource._restoreRevisions are not static anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665668</commentid>
    <comment_count>1</comment_count>
      <attachid>151440</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-10 05:08:07 -0700</bug_when>
    <thetext>Created attachment 151440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665672</commentid>
    <comment_count>2</comment_count>
      <attachid>151441</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-10 05:13:05 -0700</bug_when>
    <thetext>Created attachment 151441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665770</commentid>
    <comment_count>3</comment_count>
      <attachid>151441</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-10 08:27:18 -0700</bug_when>
    <thetext>Comment on attachment 151441
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=151441&amp;action=review

&gt; Source/WebCore/inspector/front-end/Resource.js:257
&gt; +            this.addRevision(window.localStorage[historyItems[i].key], new Date(historyItems[i].timestamp), true);

localStorage check is missing.

&gt; Source/WebCore/inspector/front-end/Resource.js:491
&gt; +                delete window.localStorage[historyItem.key];

check for window.localStorage missing.

&gt; Source/WebCore/inspector/front-end/Resource.js:498
&gt; +        window.localStorage[&quot;revision-history&quot;] = JSON.stringify(filteredRegistry);

ditto

&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:335
&gt; +        this._addFrame(frame);

The order of calls here is extremely sensitive. Either reload scenario or navigation between renderers might go off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665778</commentid>
    <comment_count>4</comment_count>
      <attachid>151464</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-10 08:46:27 -0700</bug_when>
    <thetext>Created attachment 151464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665781</commentid>
    <comment_count>5</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-10 08:47:46 -0700</bug_when>
    <thetext>&gt; localStorage check is missing.
Done.

&gt; &gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:335
&gt; &gt; +        this._addFrame(frame);
&gt; 
&gt; The order of calls here is extremely sensitive. Either reload scenario or navigation between renderers might go off.
I am only removing obsolete code here and move this._addFrame(frame) call which could be moved safely. I checked all the FrameAdded event listeners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665803</commentid>
    <comment_count>6</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-10 09:23:24 -0700</bug_when>
    <thetext>Committed r122229: &lt;http://trac.webkit.org/changeset/122229&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151440</attachid>
            <date>2012-07-10 05:08:07 -0700</date>
            <delta_ts>2012-07-10 05:12:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90855-20120710160806.patch</filename>
            <type>text/plain</type>
            <size>15595</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWIyZjBjZWVhYjczMDgx
OTNiZTQyNDc4Y2QyYzA1NjEzMDAxOTVkNC4uNzU0NWZlMjNmNjk1ZjBjZjM1YmM3NDQ3YzJlZmZm
N2EzNWQ3NDcyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA3LTEwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJlZmFjdG9yIHJlc291cmNlIHJldmlzaW9ucyBiZWZvcmUgbW92aW5nIHRvIFVJU291cmNl
Q29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
ODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2
aXNpb25zIGFyZSBub3cgcGVyc2lzdGVkIGJhc2VkIG9uIG1haW5GcmFtZS5sb2FkZXJJZCwgbm90
IHJlc291cmNlLmxvYWRlcklkIHdoaWNoIG1ha2VzIGZpbHRlcmluZyBvdXQgc3RhbGUgcGVyc2lz
dGVkIHJldmlzaW9ucyBlYXNpZXIuCisgICAgICAgIFJlc3RvcmluZyByZXZpc2lvbnMgZnJvbSBs
b2NhbCBzdG9yYWdlIGlzIHNlcGFyYXRlZCBmcm9tIGZpbHRlcmluZyBvdXQgc3RhbGUgcGVyc2lz
dGVkIHJldmlzaW9ucy4KKyAgICAgICAgUmVzb3VyY2UuX2NsZWFyUmV2aXNpb25IaXN0b3J5IGFu
ZCBSZXNvdXJjZS5fcmVzdG9yZVJldmlzaW9ucyBhcmUgbm90IHN0YXRpYyBhbnltb3JlLgorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90
eXBlLmFkZFJldmlzaW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5
cGUuX3Jlc3RvcmVSZXZpc2lvbkhpc3RvcnkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlLnByb3RvdHlwZS5fY2xlYXJSZXZpc2lvbkhpc3RvcnkpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlLnByb3RvdHlwZS5jYW5vbmljYWxNaW1lVHlwZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLnJldmVydEFuZENsZWFySGlzdG9yeS5jbGVhckhp
c3RvcnkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5yZXZlcnRB
bmRDbGVhckhpc3RvcnkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXZpc2lvbi5fcmV2aXNpb25IaXN0b3J5UmVnaXN0cnkpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9lbnN1cmVTdGFsZVJldmlzaW9uc0ZpbGV0ZXJl
ZE91dC5wZXJzaXN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXZpc2lvbi5fZW5zdXJlU3Rh
bGVSZXZpc2lvbnNGaWxldGVyZWRPdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9u
LnByb3RvdHlwZS5fcGVyc2lzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVRyZWVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5wcm90b3R5cGUuX3Byb2Nlc3NDYWNoZWRSZXNvdXJjZXMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fYWRkRnJhbWVzUmVjdXJzaXZlbHkpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qczoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLl9yZXZpc2lvbkFkZGVkKToKKwogMjAx
Mi0wNy0xMCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bS1NYWNdIEZvcm0gcmVsYXRlZCBsYXlvdXQgdGVzdHMgY2F1c2UgdGltZW91dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKaW5kZXgg
MjQxYjQxNWU3YTJiNTBhNWEwOTc3YTM3NzMwZTg3YzFjODExNWM4YS4uNWJmMTg4NDdlMDk1NWVi
YWYxNDFkODJiZjI5YjBkZGY3OTY2NzNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCkBAIC01NiwxMDggKzU2LDggQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlID0gZnVuY3Rpb24ocmVxdWVzdCwgdXJsLCBkb2N1bWVudFVSTCwgZnJhbWVJZCwg
bG9hZGVySWQsIHQKICAgICB0aGlzLl9wZW5kaW5nQ29udGVudENhbGxiYWNrcyA9IFtdOwogICAg
IGlmICh0aGlzLl9yZXF1ZXN0ICYmICF0aGlzLl9yZXF1ZXN0LmZpbmlzaGVkKQogICAgICAgICB0
aGlzLl9yZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0
LkV2ZW50cy5GaW5pc2hlZExvYWRpbmcsIHRoaXMuX3JlcXVlc3RGaW5pc2hlZCwgdGhpcyk7Ci19
Ci0KLVdlYkluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5ID0gZnVu
Y3Rpb24oKQotewotICAgIGlmICghV2ViSW5zcGVjdG9yLlJlc291cmNlLl9yZXNvdXJjZVJldmlz
aW9uUmVnaXN0cnlPYmplY3QpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsK
LSAgICAgICAgICAgIHZhciByZXNvdXJjZUhpc3RvcnkgPSB3aW5kb3cubG9jYWxTdG9yYWdlWyJy
ZXNvdXJjZS1oaXN0b3J5Il07Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5T2JqZWN0ID0gcmVz
b3VyY2VIaXN0b3J5ID8gSlNPTi5wYXJzZShyZXNvdXJjZUhpc3RvcnkpIDoge307Ci0gICAgICAg
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNl
Ll9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnlPYmplY3QgPSB7fTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jlc291cmNl
UmV2aXNpb25SZWdpc3RyeU9iamVjdCA9IHt9OwotICAgIH0KLSAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLlJlc291cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnlPYmplY3Q7Ci19Ci0KLVdlYklu
c3BlY3Rvci5SZXNvdXJjZS5yZXN0b3JlUmV2aXNpb25zID0gZnVuY3Rpb24oKQotewotICAgIHZh
ciByZWdpc3RyeSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lz
dHJ5KCk7Ci0gICAgdmFyIGZpbHRlcmVkUmVnaXN0cnkgPSB7fTsKLSAgICBmb3IgKHZhciB1cmwg
aW4gcmVnaXN0cnkpIHsKLSAgICAgICAgdmFyIGhpc3RvcnlJdGVtcyA9IHJlZ2lzdHJ5W3VybF07
Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTCh1cmwp
OwotCi0gICAgICAgIHZhciBmaWx0ZXJlZEhpc3RvcnlJdGVtcyA9IFtdOwotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaGlzdG9yeUl0ZW1zICYmIGkgPCBoaXN0b3J5SXRlbXMubGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgICAgIHZhciBoaXN0b3J5SXRlbSA9IGhpc3RvcnlJdGVtc1tpXTsKLSAgICAg
ICAgICAgIGlmIChyZXNvdXJjZSAmJiBoaXN0b3J5SXRlbS5sb2FkZXJJZCA9PT0gcmVzb3VyY2Uu
bG9hZGVySWQpIHsKLSAgICAgICAgICAgICAgICByZXNvdXJjZS5hZGRSZXZpc2lvbih3aW5kb3cu
bG9jYWxTdG9yYWdlW2hpc3RvcnlJdGVtLmtleV0sIG5ldyBEYXRlKGhpc3RvcnlJdGVtLnRpbWVz
dGFtcCksIHRydWUpOwotICAgICAgICAgICAgICAgIGZpbHRlcmVkSGlzdG9yeUl0ZW1zLnB1c2go
aGlzdG9yeUl0ZW0pOwotICAgICAgICAgICAgICAgIGZpbHRlcmVkUmVnaXN0cnlbdXJsXSA9IGZp
bHRlcmVkSGlzdG9yeUl0ZW1zOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAg
ZGVsZXRlIHdpbmRvdy5sb2NhbFN0b3JhZ2VbaGlzdG9yeUl0ZW0ua2V5XTsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jlc291cmNlUmV2aXNpb25SZWdpc3Ry
eU9iamVjdCA9IGZpbHRlcmVkUmVnaXN0cnk7Ci0KLSAgICBmdW5jdGlvbiBwZXJzaXN0KCkKLSAg
ICB7Ci0gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbInJlc291cmNlLWhpc3RvcnkiXSA9IEpT
T04uc3RyaW5naWZ5KGZpbHRlcmVkUmVnaXN0cnkpOwotICAgIH0KLQotICAgIC8vIFNjaGVkdWxl
IGFzeW5jIHN0b3JhZ2UuCi0gICAgc2V0VGltZW91dChwZXJzaXN0LCAwKTsKLX0KLQotLyoqCi0g
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9ufSByZXZpc2lvbgotICovCi1X
ZWJJbnNwZWN0b3IuUmVzb3VyY2UucGVyc2lzdFJldmlzaW9uID0gZnVuY3Rpb24ocmV2aXNpb24p
Ci17Ci0gICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAocmV2aXNpb24ucmVzb3VyY2UudXJsLnN0YXJ0c1dpdGgoImluc3BlY3RvcjovLyIpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICB2YXIgcmVzb3VyY2UgPSByZXZpc2lvbi5yZXNvdXJjZTsK
LSAgICB2YXIgdXJsID0gcmVzb3VyY2UudXJsOwotICAgIHZhciBsb2FkZXJJZCA9IHJlc291cmNl
LmxvYWRlcklkOwotICAgIHZhciB0aW1lc3RhbXAgPSByZXZpc2lvbi50aW1lc3RhbXAuZ2V0VGlt
ZSgpOwotICAgIHZhciBrZXkgPSAicmVzb3VyY2UtaGlzdG9yeXwiICsgdXJsICsgInwiICsgbG9h
ZGVySWQgKyAifCIgKyB0aW1lc3RhbXA7Ci0gICAgdmFyIGNvbnRlbnQgPSByZXZpc2lvbi5fY29u
dGVudDsKLQotICAgIHZhciByZWdpc3RyeSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3Vy
Y2VSZXZpc2lvblJlZ2lzdHJ5KCk7Ci0KLSAgICB2YXIgaGlzdG9yeUl0ZW1zID0gcmVnaXN0cnlb
cmVzb3VyY2UudXJsXTsKLSAgICBpZiAoIWhpc3RvcnlJdGVtcykgewotICAgICAgICBoaXN0b3J5
SXRlbXMgPSBbXTsKLSAgICAgICAgcmVnaXN0cnlbcmVzb3VyY2UudXJsXSA9IGhpc3RvcnlJdGVt
czsKLSAgICB9Ci0gICAgaGlzdG9yeUl0ZW1zLnB1c2goe3VybDogdXJsLCBsb2FkZXJJZDogbG9h
ZGVySWQsIHRpbWVzdGFtcDogdGltZXN0YW1wLCBrZXk6IGtleX0pOwotCi0gICAgZnVuY3Rpb24g
cGVyc2lzdCgpCi0gICAgewotICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlW2tleV0gPSBjb250
ZW50OwotICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlWyJyZXNvdXJjZS1oaXN0b3J5Il0gPSBK
U09OLnN0cmluZ2lmeShyZWdpc3RyeSk7Ci0gICAgfQotCi0gICAgLy8gU2NoZWR1bGUgYXN5bmMg
c3RvcmFnZS4KLSAgICBzZXRUaW1lb3V0KHBlcnNpc3QsIDApOwotfQotCi0vKioKLSAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSByZXNvdXJjZQotICovCi1XZWJJbnNwZWN0b3IuUmVz
b3VyY2UuX2NsZWFyUmVzb3VyY2VIaXN0b3J5ID0gZnVuY3Rpb24ocmVzb3VyY2UpCi17Ci0gICAg
aWYgKCF3aW5kb3cubG9jYWxTdG9yYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAocmVz
b3VyY2UudXJsLnN0YXJ0c1dpdGgoImluc3BlY3RvcjovLyIpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICB2YXIgcmVnaXN0cnkgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jlc291cmNlUmV2aXNp
b25SZWdpc3RyeSgpOwotICAgIHZhciBoaXN0b3J5SXRlbXMgPSByZWdpc3RyeVtyZXNvdXJjZS51
cmxdOwotICAgIGZvciAodmFyIGkgPSAwOyBoaXN0b3J5SXRlbXMgJiYgaSA8IGhpc3RvcnlJdGVt
cy5sZW5ndGg7ICsraSkKLSAgICAgICAgZGVsZXRlIHdpbmRvdy5sb2NhbFN0b3JhZ2VbaGlzdG9y
eUl0ZW1zW2ldLmtleV07Ci0gICAgZGVsZXRlIHJlZ2lzdHJ5W3Jlc291cmNlLnVybF07Ci0gICAg
d2luZG93LmxvY2FsU3RvcmFnZVsicmVzb3VyY2UtaGlzdG9yeSJdID0gSlNPTi5zdHJpbmdpZnko
cmVnaXN0cnkpOworICAgIAorICAgIHRoaXMuX3Jlc3RvcmVSZXZpc2lvbkhpc3RvcnkoKTsKIH0K
IAogV2ViSW5zcGVjdG9yLlJlc291cmNlLkV2ZW50cyA9IHsKQEAgLTMzOSwxNSArMjM5LDM3IEBA
IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAobGFz
dFJldmlzaW9uLl9jb250ZW50ID09PSBjb250ZW50KQogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQotICAgICAgICB2YXIgcmV2aXNpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291
cmNlUmV2aXNpb24odGhpcywgY29udGVudCwgdGltZXN0YW1wIHx8IG5ldyBEYXRlKCkpOworICAg
ICAgICB2YXIgcmV2aXNpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlJldmlzaW9uKHRoaXMsIGNvbnRl
bnQsIHRpbWVzdGFtcCB8fCBuZXcgRGF0ZSgpKTsKICAgICAgICAgdGhpcy5oaXN0b3J5LnB1c2go
cmV2aXNpb24pOwogCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5FdmVudHMuUmV2aXNpb25BZGRlZCwgcmV2aXNpb24pOwogICAgICAg
ICBpZiAoIXJlc3RvcmluZ0hpc3RvcnkpCi0gICAgICAgICAgICByZXZpc2lvbi5fcGVyc2lzdFJl
dmlzaW9uKCk7CisgICAgICAgICAgICByZXZpc2lvbi5fcGVyc2lzdCgpOwogICAgICAgICBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQ29udGVudENvbW1p
dHRlZCwgeyByZXNvdXJjZTogdGhpcywgY29udGVudDogY29udGVudCB9KTsKICAgICB9LAogCisg
ICAgX3Jlc3RvcmVSZXZpc2lvbkhpc3Rvcnk6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5SZXZpc2lvbi5fZW5zdXJlU3RhbGVSZXZpc2lvbnNGaWxldGVyZWRPdXQoKTsK
KyAgICAgICAgdmFyIHJlZ2lzdHJ5ID0gV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhp
c3RvcnlSZWdpc3RyeSgpOworICAgICAgICB2YXIgaGlzdG9yeUl0ZW1zID0gcmVnaXN0cnlbdGhp
cy51cmxdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaGlzdG9yeUl0ZW1zICYmIGkgPCBoaXN0
b3J5SXRlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLmFkZFJldmlzaW9uKHdpbmRv
dy5sb2NhbFN0b3JhZ2VbaGlzdG9yeUl0ZW1zW2ldLmtleV0sIG5ldyBEYXRlKGhpc3RvcnlJdGVt
c1tpXS50aW1lc3RhbXApLCB0cnVlKTsKKyAgICB9LAorCisgICAgX2NsZWFyUmV2aXNpb25IaXN0
b3J5OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2Up
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHJlZ2lzdHJ5ID0gV2ViSW5zcGVj
dG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeSgpOworICAgICAgICB2YXIgaGlz
dG9yeUl0ZW1zID0gcmVnaXN0cnlbdGhpcy51cmxdOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aGlzdG9yeUl0ZW1zICYmIGkgPCBoaXN0b3J5SXRlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAg
ICBkZWxldGUgd2luZG93LmxvY2FsU3RvcmFnZVtoaXN0b3J5SXRlbXNbaV0ua2V5XTsKKyAgICAg
ICAgZGVsZXRlIHJlZ2lzdHJ5W3RoaXMudXJsXTsKKyAgICAgICAgd2luZG93LmxvY2FsU3RvcmFn
ZVsicmV2aXNpb24taGlzdG9yeSJdID0gSlNPTi5zdHJpbmdpZnkocmVnaXN0cnkpOworICAgIH0s
CisgICAKICAgICAvKioKICAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQogICAgICAqLwpAQCAtMzgx
LDYgKzMwMywxMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogCiAgICAg
Y2Fub25pY2FsTWltZVR5cGU6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAKKyAgICAgIAorICAg
ICAgCisgICAgICAKKyAgICAgIAorICAgICAgCiAgICAgICAgIHJldHVybiB0aGlzLnR5cGUuY2Fu
b25pY2FsTWltZVR5cGUoKSB8fCB0aGlzLm1pbWVUeXBlOwogICAgIH0sCiAKQEAgLTQ4NCw3ICs0
MTIsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1
bmN0aW9uIGNsZWFySGlzdG9yeSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5fY2xlYXJSZXNvdXJjZUhpc3RvcnkodGhpcyk7CisgICAgICAgICAgICB0aGlz
Ll9jbGVhclJldmlzaW9uSGlzdG9yeSgpOwogICAgICAgICAgICAgdGhpcy5oaXN0b3J5ID0gW107
CiAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICB9CkBAIC01MjYsMTQgKzQ1NCw2MSBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rv
ci5PYmplY3QucHJvdG90eXBlOwogICogQHBhcmFtIHs/c3RyaW5nfHVuZGVmaW5lZH0gY29udGVu
dAogICogQHBhcmFtIHtEYXRlfSB0aW1lc3RhbXAKICAqLwotV2ViSW5zcGVjdG9yLlJlc291cmNl
UmV2aXNpb24gPSBmdW5jdGlvbihyZXNvdXJjZSwgY29udGVudCwgdGltZXN0YW1wKQorV2ViSW5z
cGVjdG9yLlJldmlzaW9uID0gZnVuY3Rpb24ocmVzb3VyY2UsIGNvbnRlbnQsIHRpbWVzdGFtcCkK
IHsKICAgICB0aGlzLl9yZXNvdXJjZSA9IHJlc291cmNlOwogICAgIHRoaXMuX2NvbnRlbnQgPSBj
b250ZW50OwogICAgIHRoaXMuX3RpbWVzdGFtcCA9IHRpbWVzdGFtcDsKIH0KIAotV2ViSW5zcGVj
dG9yLlJlc291cmNlUmV2aXNpb24ucHJvdG90eXBlID0geworV2ViSW5zcGVjdG9yLlJldmlzaW9u
Ll9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeSA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoIVdlYklu
c3BlY3Rvci5SZXZpc2lvbi5fcmV2aXNpb25IaXN0b3J5UmVnaXN0cnlPYmplY3QpIHsKKyAgICAg
ICAgaWYgKHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKKyAgICAgICAgICAgIHZhciByZXZpc2lvbkhp
c3RvcnkgPSB3aW5kb3cubG9jYWxTdG9yYWdlWyJyZXZpc2lvbi1oaXN0b3J5Il07CisgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5SZXZpc2lvbi5fcmV2aXNp
b25IaXN0b3J5UmVnaXN0cnlPYmplY3QgPSByZXZpc2lvbkhpc3RvcnkgPyBKU09OLnBhcnNlKHJl
dmlzaW9uSGlzdG9yeSkgOiB7fTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3JldmlzaW9uSGlzdG9yeVJlZ2lzdHJ5T2Jq
ZWN0ID0ge307CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeU9iamVjdCA9IHt9Owor
ICAgIH0KKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlS
ZWdpc3RyeU9iamVjdDsKK30KKworV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9lbnN1cmVTdGFsZVJl
dmlzaW9uc0ZpbGV0ZXJlZE91dCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoV2ViSW5zcGVjdG9y
LlJldmlzaW9uLl9zdGFsZVJldmlzaW9uc0ZpbHRlcmVkT3V0KQorICAgICAgICByZXR1cm47Cisg
ICAgV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9zdGFsZVJldmlzaW9uc0ZpbHRlcmVkT3V0ID0gdHJ1
ZTsKKyAgICAKKyAgICB2YXIgcmVnaXN0cnkgPSBXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3Jldmlz
aW9uSGlzdG9yeVJlZ2lzdHJ5KCk7CisgICAgdmFyIGZpbHRlcmVkUmVnaXN0cnkgPSB7fTsKKyAg
ICBmb3IgKHZhciB1cmwgaW4gcmVnaXN0cnkpIHsKKyAgICAgICAgdmFyIGhpc3RvcnlJdGVtcyA9
IHJlZ2lzdHJ5W3VybF07CisgICAgICAgIHZhciBmaWx0ZXJlZEhpc3RvcnlJdGVtcyA9IFtdOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaGlzdG9yeUl0ZW1zICYmIGkgPCBoaXN0b3J5SXRlbXMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBoaXN0b3J5SXRlbSA9IGhpc3RvcnlJdGVt
c1tpXTsKKyAgICAgICAgICAgIGlmIChoaXN0b3J5SXRlbS5sb2FkZXJJZCA9PT0gV2ViSW5zcGVj
dG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5sb2FkZXJJZCkgeworICAgICAgICAgICAg
ICAgIGZpbHRlcmVkSGlzdG9yeUl0ZW1zLnB1c2goaGlzdG9yeUl0ZW0pOworICAgICAgICAgICAg
ICAgIGZpbHRlcmVkUmVnaXN0cnlbdXJsXSA9IGZpbHRlcmVkSGlzdG9yeUl0ZW1zOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvdy5sb2NhbFN0b3JhZ2Vb
aGlzdG9yeUl0ZW0ua2V5XTsKKyAgICAgICAgfQorICAgIH0KKyAgICBXZWJJbnNwZWN0b3IuUmV2
aXNpb24uX3JldmlzaW9uSGlzdG9yeVJlZ2lzdHJ5T2JqZWN0ID0gZmlsdGVyZWRSZWdpc3RyeTsK
KworICAgIGZ1bmN0aW9uIHBlcnNpc3QoKQorICAgIHsKKyAgICAgICAgd2luZG93LmxvY2FsU3Rv
cmFnZVsicmV2aXNpb24taGlzdG9yeSJdID0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWRSZWdpc3Ry
eSk7CisgICAgfQorCisgICAgLy8gU2NoZWR1bGUgYXN5bmMgc3RvcmFnZS4KKyAgICBzZXRUaW1l
b3V0KHBlcnNpc3QsIDApOworfQorCitXZWJJbnNwZWN0b3IuUmV2aXNpb24ucHJvdG90eXBlID0g
ewogICAgIC8qKgogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SZXNvdXJjZX0KICAgICAg
Ki8KQEAgLTYwMyw4ICs1NzgsMzUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlUmV2aXNpb24ucHJv
dG90eXBlID0gewogICAgICAgICBjYWxsYmFjayhbXSk7CiAgICAgfSwKIAotICAgIF9wZXJzaXN0
UmV2aXNpb246IGZ1bmN0aW9uKCkKKyAgICBfcGVyc2lzdDogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnBlcnNpc3RSZXZpc2lvbih0aGlzKTsKKyAgICAg
ICAgaWYgKCF3aW5kb3cubG9jYWxTdG9yYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHZhciB1cmwgPSB0aGlzLmNvbnRlbnRVUkwoKTsKKyAgICAgICAgaWYgKHVybC5zdGFydHNX
aXRoKCJpbnNwZWN0b3I6Ly8iKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIg
bG9hZGVySWQgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwubWFpbkZyYW1lLmxvYWRl
cklkOworICAgICAgICB2YXIgdGltZXN0YW1wID0gdGhpcy50aW1lc3RhbXAuZ2V0VGltZSgpOwor
ICAgICAgICB2YXIga2V5ID0gInJldmlzaW9uLWhpc3Rvcnl8IiArIHVybCArICJ8IiArIGxvYWRl
cklkICsgInwiICsgdGltZXN0YW1wOworCisgICAgICAgIHZhciByZWdpc3RyeSA9IFdlYkluc3Bl
Y3Rvci5SZXZpc2lvbi5fcmV2aXNpb25IaXN0b3J5UmVnaXN0cnkoKTsKKworICAgICAgICB2YXIg
aGlzdG9yeUl0ZW1zID0gcmVnaXN0cnlbdXJsXTsKKyAgICAgICAgaWYgKCFoaXN0b3J5SXRlbXMp
IHsKKyAgICAgICAgICAgIGhpc3RvcnlJdGVtcyA9IFtdOworICAgICAgICAgICAgcmVnaXN0cnlb
dXJsXSA9IGhpc3RvcnlJdGVtczsKKyAgICAgICAgfQorICAgICAgICBoaXN0b3J5SXRlbXMucHVz
aCh7dXJsOiB1cmwsIGxvYWRlcklkOiBsb2FkZXJJZCwgdGltZXN0YW1wOiB0aW1lc3RhbXAsIGtl
eToga2V5fSk7CisKKyAgICAgICAgZnVuY3Rpb24gcGVyc2lzdCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Vba2V5XSA9IHRoaXMuX2NvbnRlbnQ7CisgICAgICAg
ICAgICB3aW5kb3cubG9jYWxTdG9yYWdlWyJyZXZpc2lvbi1oaXN0b3J5Il0gPSBKU09OLnN0cmlu
Z2lmeShyZWdpc3RyeSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBTY2hlZHVsZSBhc3luYyBz
dG9yYWdlLgorICAgICAgICBzZXRUaW1lb3V0KHBlcnNpc3QuYmluZCh0aGlzKSwgMCk7CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVRyZWVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VUcmVlTW9kZWwuanMKaW5kZXggYTAyYzFmMDY4OTVkMjEwNDY3Nzc0YjAzYmZlMTY3ZDhh
MDViZDJmZC4uZjU0MjY0OTRiYzE5MjYxODYxMzY3OTlmYzM1YmNjMDk2MDViZTFmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2Rl
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJl
ZU1vZGVsLmpzCkBAIC05Myw4ICs5Myw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2FkZEZyYW1lc1JlY3Vyc2l2ZWx5KG51bGws
IG1haW5GcmFtZVBheWxvYWQpOwogICAgICAgICB0aGlzLl9kaXNwYXRjaEluc3BlY3RlZFVSTENo
YW5nZWQoKTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuQ2FjaGVkUmVzb3VyY2VzTG9hZGVkKTsK
LSAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnJlc3RvcmVSZXZpc2lvbnMoKTsKLQogICAg
ICAgICB0aGlzLl9jYWNoZWRSZXNvdXJjZXNQcm9jZXNzZWQgPSB0cnVlOwogICAgIH0sCiAKQEAg
LTMzNCwyMyArMzMyLDE2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgZnJhbWVQYXlsb2FkID0gZnJhbWVUcmVlUGF5bG9h
ZC5mcmFtZTsKICAgICAgICAgdmFyIGZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVGcmFtZSh0aGlzLCBwYXJlbnRGcmFtZSwgZnJhbWVQYXlsb2FkKTsKKyAgICAgICAgdGhpcy5f
YWRkRnJhbWUoZnJhbWUpOwogCi0gICAgICAgIC8vIENyZWF0ZSBmcmFtZSByZXNvdXJjZS4KICAg
ICAgICAgdmFyIGZyYW1lUmVzb3VyY2UgPSB0aGlzLl9jcmVhdGVSZXNvdXJjZUZyb21GcmFtZVBh
eWxvYWQoZnJhbWVQYXlsb2FkLCBmcmFtZVBheWxvYWQudXJsLCBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUeXBlcy5Eb2N1bWVudCwgZnJhbWVQYXlsb2FkLm1pbWVUeXBlKTsKLQorICAgICAgICBmcmFt
ZS5hZGRSZXNvdXJjZShmcmFtZVJlc291cmNlKTsKICAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZy
YW1lKCkpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCA9IGZyYW1l
UmVzb3VyY2UudXJsOwogCi0gICAgICAgIHRoaXMuX2FkZEZyYW1lKGZyYW1lKTsKLSAgICAgICAg
ZnJhbWUuYWRkUmVzb3VyY2UoZnJhbWVSZXNvdXJjZSk7Ci0KICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGZyYW1lVHJlZVBheWxvYWQuY2hpbGRGcmFtZXMgJiYgaSA8IGZyYW1lVHJlZVBheWxvYWQu
Y2hpbGRGcmFtZXMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9hZGRGcmFtZXNSZWN1
cnNpdmVseShmcmFtZSwgZnJhbWVUcmVlUGF5bG9hZC5jaGlsZEZyYW1lc1tpXSk7CiAKLSAgICAg
ICAgaWYgKCFmcmFtZVRyZWVQYXlsb2FkLnJlc291cmNlcykKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICAvLyBDcmVhdGUgZnJhbWUgc3VicmVzb3VyY2VzLgogICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGZyYW1lVHJlZVBheWxvYWQucmVzb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAg
ICAgICAgICAgICB2YXIgc3VicmVzb3VyY2UgPSBmcmFtZVRyZWVQYXlsb2FkLnJlc291cmNlc1tp
XTsKICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlRnJvbUZy
YW1lUGF5bG9hZChmcmFtZVBheWxvYWQsIHN1YnJlc291cmNlLnVybCwgV2ViSW5zcGVjdG9yLnJl
c291cmNlVHlwZXNbc3VicmVzb3VyY2UudHlwZV0sIHN1YnJlc291cmNlLm1pbWVUeXBlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0
b3J5Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25I
aXN0b3J5Vmlldy5qcwppbmRleCAyNWE5MGU3Yzc2NTI2NzM1M2EyNjBlZTk4OTdjZWJkYTgyMzVi
MTU3Li5mYWQyY2IxNDM0OGNiOWNiYzVkOWVhNzBlNjZlMzRhMmM0MmZlMzgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3Rv
cnlWaWV3LmpzCkBAIC0xNzQsOCArMTc0LDggQEAgV2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9y
eVZpZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHkKIC8q
KgogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7VHJlZUVsZW1lbnR9Ci0gKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9ufSByZXZpc2lvbgotICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VSZXZpc2lvbn0gYmFzZVJldmlzaW9uCisgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5SZXZpc2lvbn0gcmV2aXNpb24KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJldmlz
aW9ufSBiYXNlUmV2aXNpb24KICAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dSZXZlcnQKICAqLwog
V2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVRyZWVFbGVtZW50ID0gZnVuY3Rpb24ocmV2aXNp
b24sIGJhc2VSZXZpc2lvbiwgYWxsb3dSZXZlcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCmluZGV4IDhiOWZmNjQ0ZjBhMDAwNWY0
ZTc0OTUyM2U0M2JjOGM0M2M2NjM5ZDcuLjQ5ZTVlMzEwYjA5NTA4ZTMzODAxNTNmNzdkZDMzZGM1
YjJkN2UwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VUlTb3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VUlTb3VyY2VDb2RlLmpzCkBAIC0xMzgsNyArMTM4LDcgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZS5wcm90b3R5cGUgPSB7CiAKICAgICBfcmV2aXNpb25BZGRlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICB2YXIgcmV2aXNpb24gPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5S
ZXNvdXJjZVJldmlzaW9ufSAqLyBldmVudC5kYXRhOworICAgICAgICB2YXIgcmV2aXNpb24gPSAv
KiogQHR5cGUge1dlYkluc3BlY3Rvci5SZXZpc2lvbn0gKi8gZXZlbnQuZGF0YTsKICAgICAgICAg
dGhpcy5jb250ZW50Q2hhbmdlZChyZXZpc2lvbi5jb250ZW50IHx8ICIiLCB0aGlzLl9yZXNvdXJj
ZS5jYW5vbmljYWxNaW1lVHlwZSgpKTsKICAgICB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151441</attachid>
            <date>2012-07-10 05:13:05 -0700</date>
            <delta_ts>2012-07-10 08:46:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90855-20120710161303.patch</filename>
            <type>text/plain</type>
            <size>15413</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWIyZjBjZWVhYjczMDgx
OTNiZTQyNDc4Y2QyYzA1NjEzMDAxOTVkNC4uMDJkZGNjNDhhNWM3MTVjYTU4NjhlZmYyODdmNzZm
MmM0ZGNjNDEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA3LTEwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJlZmFjdG9yIHJlc291cmNlIHJldmlzaW9ucyBiZWZvcmUgbW92aW5nIHRvIFVJU291cmNl
Q29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
ODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2
aXNpb25zIGFyZSBub3cgcGVyc2lzdGVkIGJhc2VkIG9uIG1haW5GcmFtZS5sb2FkZXJJZCwgbm90
IHJlc291cmNlLmxvYWRlcklkIHdoaWNoIG1ha2VzIGZpbHRlcmluZyBvdXQgc3RhbGUgcGVyc2lz
dGVkIHJldmlzaW9ucyBlYXNpZXIuCisgICAgICAgIFJlc3RvcmluZyByZXZpc2lvbnMgZnJvbSBs
b2NhbCBzdG9yYWdlIGlzIHNlcGFyYXRlZCBmcm9tIGZpbHRlcmluZyBvdXQgc3RhbGUgcGVyc2lz
dGVkIHJldmlzaW9ucy4KKyAgICAgICAgUmVzb3VyY2UuX2NsZWFyUmV2aXNpb25IaXN0b3J5IGFu
ZCBSZXNvdXJjZS5fcmVzdG9yZVJldmlzaW9ucyBhcmUgbm90IHN0YXRpYyBhbnltb3JlLgorICAg
ICAgICBSZW5hbWVkIGxvY2FsU3RvcmFnZSBmaWVsZCBmb3IgcGVyc2lzdGluZyByZXZpc2lvbnM6
ICJyZXNvdXJjZS1oaXN0b3J5IiAtPiAicmV2aXNpb24taGlzdG9yeSIKKworICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5hZGRSZXZp
c2lvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9yZXN0b3Jl
UmV2aXNpb25IaXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5
cGUuX2NsZWFyUmV2aXNpb25IaXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5wcm90b3R5cGUucmV2ZXJ0QW5kQ2xlYXJIaXN0b3J5LmNsZWFySGlzdG9yeSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLnJldmVydEFuZENsZWFySGlzdG9yeSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmV2aXNpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmV2aXNpb24uX2Vuc3VyZVN0YWxlUmV2aXNpb25zRmlsZXRlcmVkT3V0LnBlcnNpc3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9lbnN1cmVTdGFsZVJldmlzaW9uc0ZpbGV0
ZXJlZE91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmV2aXNpb24ucHJvdG90eXBlLl9wZXJz
aXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fcHJv
Y2Vzc0NhY2hlZFJlc291cmNlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwucHJvdG90eXBlLl9hZGRGcmFtZXNSZWN1cnNpdmVseSk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZS5wcm90b3R5cGUuX3JldmlzaW9uQWRkZWQpOgorCiAyMDEyLTA3LTEwICBZb3NoaWZ1
bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtLU1hY10g
Rm9ybSByZWxhdGVkIGxheW91dCB0ZXN0cyBjYXVzZSB0aW1lb3V0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwppbmRleCAyNDFiNDE1ZTdhMmI1MGE1
YTA5NzdhMzc3MzBlODdjMWM4MTE1YzhhLi4zZDM3ZDBkOGJhZjM5NmRjOTg0Y2U2OTQxODljYTkw
NTM0MGE5ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2UuanMKQEAgLTU2LDEwOCArNTYsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UgPSBmdW5j
dGlvbihyZXF1ZXN0LCB1cmwsIGRvY3VtZW50VVJMLCBmcmFtZUlkLCBsb2FkZXJJZCwgdAogICAg
IHRoaXMuX3BlbmRpbmdDb250ZW50Q2FsbGJhY2tzID0gW107CiAgICAgaWYgKHRoaXMuX3JlcXVl
c3QgJiYgIXRoaXMuX3JlcXVlc3QuZmluaXNoZWQpCiAgICAgICAgIHRoaXMuX3JlcXVlc3QuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3QuRXZlbnRzLkZpbmlzaGVk
TG9hZGluZywgdGhpcy5fcmVxdWVzdEZpbmlzaGVkLCB0aGlzKTsKLX0KLQotV2ViSW5zcGVjdG9y
LlJlc291cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnkgPSBmdW5jdGlvbigpCi17Ci0gICAg
aWYgKCFXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jlc291cmNlUmV2aXNpb25SZWdpc3RyeU9iamVj
dCkgewotICAgICAgICBpZiAod2luZG93LmxvY2FsU3RvcmFnZSkgewotICAgICAgICAgICAgdmFy
IHJlc291cmNlSGlzdG9yeSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2VbInJlc291cmNlLWhpc3Rvcnki
XTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291
cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnlPYmplY3QgPSByZXNvdXJjZUhpc3RvcnkgPyBK
U09OLnBhcnNlKHJlc291cmNlSGlzdG9yeSkgOiB7fTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jlc291cmNlUmV2aXNp
b25SZWdpc3RyeU9iamVjdCA9IHt9OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5
T2JqZWN0ID0ge307Ci0gICAgfQotICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jl
c291cmNlUmV2aXNpb25SZWdpc3RyeU9iamVjdDsKLX0KLQotV2ViSW5zcGVjdG9yLlJlc291cmNl
LnJlc3RvcmVSZXZpc2lvbnMgPSBmdW5jdGlvbigpCi17Ci0gICAgdmFyIHJlZ2lzdHJ5ID0gV2Vi
SW5zcGVjdG9yLlJlc291cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnkoKTsKLSAgICB2YXIg
ZmlsdGVyZWRSZWdpc3RyeSA9IHt9OwotICAgIGZvciAodmFyIHVybCBpbiByZWdpc3RyeSkgewot
ICAgICAgICB2YXIgaGlzdG9yeUl0ZW1zID0gcmVnaXN0cnlbdXJsXTsKLSAgICAgICAgdmFyIHJl
c291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHVybCk7Ci0KLSAgICAgICAgdmFy
IGZpbHRlcmVkSGlzdG9yeUl0ZW1zID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBoaXN0
b3J5SXRlbXMgJiYgaSA8IGhpc3RvcnlJdGVtcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
dmFyIGhpc3RvcnlJdGVtID0gaGlzdG9yeUl0ZW1zW2ldOwotICAgICAgICAgICAgaWYgKHJlc291
cmNlICYmIGhpc3RvcnlJdGVtLmxvYWRlcklkID09PSByZXNvdXJjZS5sb2FkZXJJZCkgewotICAg
ICAgICAgICAgICAgIHJlc291cmNlLmFkZFJldmlzaW9uKHdpbmRvdy5sb2NhbFN0b3JhZ2VbaGlz
dG9yeUl0ZW0ua2V5XSwgbmV3IERhdGUoaGlzdG9yeUl0ZW0udGltZXN0YW1wKSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICAgICAgZmlsdGVyZWRIaXN0b3J5SXRlbXMucHVzaChoaXN0b3J5SXRlbSk7Ci0g
ICAgICAgICAgICAgICAgZmlsdGVyZWRSZWdpc3RyeVt1cmxdID0gZmlsdGVyZWRIaXN0b3J5SXRl
bXM7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBkZWxldGUgd2luZG93Lmxv
Y2FsU3RvcmFnZVtoaXN0b3J5SXRlbS5rZXldOwotICAgICAgICB9Ci0gICAgfQotICAgIFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5T2JqZWN0ID0gZmlsdGVy
ZWRSZWdpc3RyeTsKLQotICAgIGZ1bmN0aW9uIHBlcnNpc3QoKQotICAgIHsKLSAgICAgICAgd2lu
ZG93LmxvY2FsU3RvcmFnZVsicmVzb3VyY2UtaGlzdG9yeSJdID0gSlNPTi5zdHJpbmdpZnkoZmls
dGVyZWRSZWdpc3RyeSk7Ci0gICAgfQotCi0gICAgLy8gU2NoZWR1bGUgYXN5bmMgc3RvcmFnZS4K
LSAgICBzZXRUaW1lb3V0KHBlcnNpc3QsIDApOwotfQotCi0vKioKLSAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlJlc291cmNlUmV2aXNpb259IHJldmlzaW9uCi0gKi8KLVdlYkluc3BlY3Rvci5SZXNv
dXJjZS5wZXJzaXN0UmV2aXNpb24gPSBmdW5jdGlvbihyZXZpc2lvbikKLXsKLSAgICBpZiAoIXdp
bmRvdy5sb2NhbFN0b3JhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChyZXZpc2lvbi5y
ZXNvdXJjZS51cmwuc3RhcnRzV2l0aCgiaW5zcGVjdG9yOi8vIikpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHZhciByZXNvdXJjZSA9IHJldmlzaW9uLnJlc291cmNlOwotICAgIHZhciB1cmwgPSBy
ZXNvdXJjZS51cmw7Ci0gICAgdmFyIGxvYWRlcklkID0gcmVzb3VyY2UubG9hZGVySWQ7Ci0gICAg
dmFyIHRpbWVzdGFtcCA9IHJldmlzaW9uLnRpbWVzdGFtcC5nZXRUaW1lKCk7Ci0gICAgdmFyIGtl
eSA9ICJyZXNvdXJjZS1oaXN0b3J5fCIgKyB1cmwgKyAifCIgKyBsb2FkZXJJZCArICJ8IiArIHRp
bWVzdGFtcDsKLSAgICB2YXIgY29udGVudCA9IHJldmlzaW9uLl9jb250ZW50OwotCi0gICAgdmFy
IHJlZ2lzdHJ5ID0gV2ViSW5zcGVjdG9yLlJlc291cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0
cnkoKTsKLQotICAgIHZhciBoaXN0b3J5SXRlbXMgPSByZWdpc3RyeVtyZXNvdXJjZS51cmxdOwot
ICAgIGlmICghaGlzdG9yeUl0ZW1zKSB7Ci0gICAgICAgIGhpc3RvcnlJdGVtcyA9IFtdOwotICAg
ICAgICByZWdpc3RyeVtyZXNvdXJjZS51cmxdID0gaGlzdG9yeUl0ZW1zOwotICAgIH0KLSAgICBo
aXN0b3J5SXRlbXMucHVzaCh7dXJsOiB1cmwsIGxvYWRlcklkOiBsb2FkZXJJZCwgdGltZXN0YW1w
OiB0aW1lc3RhbXAsIGtleToga2V5fSk7Ci0KLSAgICBmdW5jdGlvbiBwZXJzaXN0KCkKLSAgICB7
Ci0gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Vba2V5XSA9IGNvbnRlbnQ7Ci0gICAgICAgIHdp
bmRvdy5sb2NhbFN0b3JhZ2VbInJlc291cmNlLWhpc3RvcnkiXSA9IEpTT04uc3RyaW5naWZ5KHJl
Z2lzdHJ5KTsKLSAgICB9Ci0KLSAgICAvLyBTY2hlZHVsZSBhc3luYyBzdG9yYWdlLgotICAgIHNl
dFRpbWVvdXQocGVyc2lzdCwgMCk7Ci19Ci0KLS8qKgotICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
UmVzb3VyY2V9IHJlc291cmNlCi0gKi8KLVdlYkluc3BlY3Rvci5SZXNvdXJjZS5fY2xlYXJSZXNv
dXJjZUhpc3RvcnkgPSBmdW5jdGlvbihyZXNvdXJjZSkKLXsKLSAgICBpZiAoIXdpbmRvdy5sb2Nh
bFN0b3JhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChyZXNvdXJjZS51cmwuc3RhcnRz
V2l0aCgiaW5zcGVjdG9yOi8vIikpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZhciByZWdpc3Ry
eSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5KCk7Ci0g
ICAgdmFyIGhpc3RvcnlJdGVtcyA9IHJlZ2lzdHJ5W3Jlc291cmNlLnVybF07Ci0gICAgZm9yICh2
YXIgaSA9IDA7IGhpc3RvcnlJdGVtcyAmJiBpIDwgaGlzdG9yeUl0ZW1zLmxlbmd0aDsgKytpKQot
ICAgICAgICBkZWxldGUgd2luZG93LmxvY2FsU3RvcmFnZVtoaXN0b3J5SXRlbXNbaV0ua2V5XTsK
LSAgICBkZWxldGUgcmVnaXN0cnlbcmVzb3VyY2UudXJsXTsKLSAgICB3aW5kb3cubG9jYWxTdG9y
YWdlWyJyZXNvdXJjZS1oaXN0b3J5Il0gPSBKU09OLnN0cmluZ2lmeShyZWdpc3RyeSk7CisgICAg
CisgICAgdGhpcy5fcmVzdG9yZVJldmlzaW9uSGlzdG9yeSgpOwogfQogCiBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2UuRXZlbnRzID0gewpAQCAtMzM5LDE1ICsyMzksMzcgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmIChsYXN0UmV2aXNpb24uX2NvbnRl
bnQgPT09IGNvbnRlbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAg
ICAgIHZhciByZXZpc2lvbiA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZpc2lvbih0aGlz
LCBjb250ZW50LCB0aW1lc3RhbXAgfHwgbmV3IERhdGUoKSk7CisgICAgICAgIHZhciByZXZpc2lv
biA9IG5ldyBXZWJJbnNwZWN0b3IuUmV2aXNpb24odGhpcywgY29udGVudCwgdGltZXN0YW1wIHx8
IG5ldyBEYXRlKCkpOwogICAgICAgICB0aGlzLmhpc3RvcnkucHVzaChyZXZpc2lvbik7CiAKICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNl
LkV2ZW50cy5SZXZpc2lvbkFkZGVkLCByZXZpc2lvbik7CiAgICAgICAgIGlmICghcmVzdG9yaW5n
SGlzdG9yeSkKLSAgICAgICAgICAgIHJldmlzaW9uLl9wZXJzaXN0UmV2aXNpb24oKTsKKyAgICAg
ICAgICAgIHJldmlzaW9uLl9wZXJzaXN0KCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VDb250ZW50Q29tbWl0dGVkLCB7IHJlc291cmNl
OiB0aGlzLCBjb250ZW50OiBjb250ZW50IH0pOwogICAgIH0sCiAKKyAgICBfcmVzdG9yZVJldmlz
aW9uSGlzdG9yeTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlJldmlz
aW9uLl9lbnN1cmVTdGFsZVJldmlzaW9uc0ZpbGV0ZXJlZE91dCgpOworICAgICAgICB2YXIgcmVn
aXN0cnkgPSBXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3JldmlzaW9uSGlzdG9yeVJlZ2lzdHJ5KCk7
CisgICAgICAgIHZhciBoaXN0b3J5SXRlbXMgPSByZWdpc3RyeVt0aGlzLnVybF07CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBoaXN0b3J5SXRlbXMgJiYgaSA8IGhpc3RvcnlJdGVtcy5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIHRoaXMuYWRkUmV2aXNpb24od2luZG93LmxvY2FsU3RvcmFnZVto
aXN0b3J5SXRlbXNbaV0ua2V5XSwgbmV3IERhdGUoaGlzdG9yeUl0ZW1zW2ldLnRpbWVzdGFtcCks
IHRydWUpOworICAgIH0sCisKKyAgICBfY2xlYXJSZXZpc2lvbkhpc3Rvcnk6IGZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIGlmICghd2luZG93LmxvY2FsU3RvcmFnZSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICB2YXIgcmVnaXN0cnkgPSBXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3Jl
dmlzaW9uSGlzdG9yeVJlZ2lzdHJ5KCk7CisgICAgICAgIHZhciBoaXN0b3J5SXRlbXMgPSByZWdp
c3RyeVt0aGlzLnVybF07CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBoaXN0b3J5SXRlbXMgJiYg
aSA8IGhpc3RvcnlJdGVtcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSB3aW5kb3cu
bG9jYWxTdG9yYWdlW2hpc3RvcnlJdGVtc1tpXS5rZXldOworICAgICAgICBkZWxldGUgcmVnaXN0
cnlbdGhpcy51cmxdOworICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlWyJyZXZpc2lvbi1oaXN0
b3J5Il0gPSBKU09OLnN0cmluZ2lmeShyZWdpc3RyeSk7CisgICAgfSwKKyAgIAogICAgIC8qKgog
ICAgICAqIEByZXR1cm4gez9zdHJpbmd9CiAgICAgICovCkBAIC00ODQsNyArNDA2LDcgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBjbGVh
ckhpc3RvcnkoKQogICAgICAgICB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2Uu
X2NsZWFyUmVzb3VyY2VIaXN0b3J5KHRoaXMpOworICAgICAgICAgICAgdGhpcy5fY2xlYXJSZXZp
c2lvbkhpc3RvcnkoKTsKICAgICAgICAgICAgIHRoaXMuaGlzdG9yeSA9IFtdOwogICAgICAgICAg
ICAgY2FsbGJhY2soKTsKICAgICAgICAgfQpAQCAtNTI2LDE0ICs0NDgsNjEgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnBy
b3RvdHlwZTsKICAqIEBwYXJhbSB7P3N0cmluZ3x1bmRlZmluZWR9IGNvbnRlbnQKICAqIEBwYXJh
bSB7RGF0ZX0gdGltZXN0YW1wCiAgKi8KLVdlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9uID0g
ZnVuY3Rpb24ocmVzb3VyY2UsIGNvbnRlbnQsIHRpbWVzdGFtcCkKK1dlYkluc3BlY3Rvci5SZXZp
c2lvbiA9IGZ1bmN0aW9uKHJlc291cmNlLCBjb250ZW50LCB0aW1lc3RhbXApCiB7CiAgICAgdGhp
cy5fcmVzb3VyY2UgPSByZXNvdXJjZTsKICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDsKICAg
ICB0aGlzLl90aW1lc3RhbXAgPSB0aW1lc3RhbXA7CiB9CiAKLVdlYkluc3BlY3Rvci5SZXNvdXJj
ZVJldmlzaW9uLnByb3RvdHlwZSA9IHsKK1dlYkluc3BlY3Rvci5SZXZpc2lvbi5fcmV2aXNpb25I
aXN0b3J5UmVnaXN0cnkgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKCFXZWJJbnNwZWN0b3IuUmV2
aXNpb24uX3JldmlzaW9uSGlzdG9yeVJlZ2lzdHJ5T2JqZWN0KSB7CisgICAgICAgIGlmICh3aW5k
b3cubG9jYWxTdG9yYWdlKSB7CisgICAgICAgICAgICB2YXIgcmV2aXNpb25IaXN0b3J5ID0gd2lu
ZG93LmxvY2FsU3RvcmFnZVsicmV2aXNpb24taGlzdG9yeSJdOworICAgICAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3JldmlzaW9uSGlzdG9yeVJl
Z2lzdHJ5T2JqZWN0ID0gcmV2aXNpb25IaXN0b3J5ID8gSlNPTi5wYXJzZShyZXZpc2lvbkhpc3Rv
cnkpIDoge307CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeU9iamVjdCA9IHt9Owor
ICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5S
ZXZpc2lvbi5fcmV2aXNpb25IaXN0b3J5UmVnaXN0cnlPYmplY3QgPSB7fTsKKyAgICB9CisgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5SZXZpc2lvbi5fcmV2aXNpb25IaXN0b3J5UmVnaXN0cnlPYmpl
Y3Q7Cit9CisKK1dlYkluc3BlY3Rvci5SZXZpc2lvbi5fZW5zdXJlU3RhbGVSZXZpc2lvbnNGaWxl
dGVyZWRPdXQgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKFdlYkluc3BlY3Rvci5SZXZpc2lvbi5f
c3RhbGVSZXZpc2lvbnNGaWx0ZXJlZE91dCkKKyAgICAgICAgcmV0dXJuOworICAgIFdlYkluc3Bl
Y3Rvci5SZXZpc2lvbi5fc3RhbGVSZXZpc2lvbnNGaWx0ZXJlZE91dCA9IHRydWU7CisgICAgCisg
ICAgdmFyIHJlZ2lzdHJ5ID0gV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlS
ZWdpc3RyeSgpOworICAgIHZhciBmaWx0ZXJlZFJlZ2lzdHJ5ID0ge307CisgICAgZm9yICh2YXIg
dXJsIGluIHJlZ2lzdHJ5KSB7CisgICAgICAgIHZhciBoaXN0b3J5SXRlbXMgPSByZWdpc3RyeVt1
cmxdOworICAgICAgICB2YXIgZmlsdGVyZWRIaXN0b3J5SXRlbXMgPSBbXTsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGhpc3RvcnlJdGVtcyAmJiBpIDwgaGlzdG9yeUl0ZW1zLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICB2YXIgaGlzdG9yeUl0ZW0gPSBoaXN0b3J5SXRlbXNbaV07CisgICAg
ICAgICAgICBpZiAoaGlzdG9yeUl0ZW0ubG9hZGVySWQgPT09IFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5tYWluRnJhbWUubG9hZGVySWQpIHsKKyAgICAgICAgICAgICAgICBmaWx0ZXJl
ZEhpc3RvcnlJdGVtcy5wdXNoKGhpc3RvcnlJdGVtKTsKKyAgICAgICAgICAgICAgICBmaWx0ZXJl
ZFJlZ2lzdHJ5W3VybF0gPSBmaWx0ZXJlZEhpc3RvcnlJdGVtczsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIGRlbGV0ZSB3aW5kb3cubG9jYWxTdG9yYWdlW2hpc3RvcnlJdGVt
LmtleV07CisgICAgICAgIH0KKyAgICB9CisgICAgV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZp
c2lvbkhpc3RvcnlSZWdpc3RyeU9iamVjdCA9IGZpbHRlcmVkUmVnaXN0cnk7CisKKyAgICBmdW5j
dGlvbiBwZXJzaXN0KCkKKyAgICB7CisgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbInJldmlz
aW9uLWhpc3RvcnkiXSA9IEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkUmVnaXN0cnkpOworICAgIH0K
KworICAgIC8vIFNjaGVkdWxlIGFzeW5jIHN0b3JhZ2UuCisgICAgc2V0VGltZW91dChwZXJzaXN0
LCAwKTsKK30KKworV2ViSW5zcGVjdG9yLlJldmlzaW9uLnByb3RvdHlwZSA9IHsKICAgICAvKioK
ICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9CiAgICAgICovCkBAIC02MDMs
OCArNTcyLDM1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9uLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgY2FsbGJhY2soW10pOwogICAgIH0sCiAKLSAgICBfcGVyc2lzdFJldmlzaW9uOiBm
dW5jdGlvbigpCisgICAgX3BlcnNpc3Q6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5wZXJzaXN0UmV2aXNpb24odGhpcyk7CisgICAgICAgIGlmICghd2lu
ZG93LmxvY2FsU3RvcmFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgdXJs
ID0gdGhpcy5jb250ZW50VVJMKCk7CisgICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgiaW5zcGVj
dG9yOi8vIikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGxvYWRlcklkID0g
V2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5sb2FkZXJJZDsKKyAgICAg
ICAgdmFyIHRpbWVzdGFtcCA9IHRoaXMudGltZXN0YW1wLmdldFRpbWUoKTsKKyAgICAgICAgdmFy
IGtleSA9ICJyZXZpc2lvbi1oaXN0b3J5fCIgKyB1cmwgKyAifCIgKyBsb2FkZXJJZCArICJ8IiAr
IHRpbWVzdGFtcDsKKworICAgICAgICB2YXIgcmVnaXN0cnkgPSBXZWJJbnNwZWN0b3IuUmV2aXNp
b24uX3JldmlzaW9uSGlzdG9yeVJlZ2lzdHJ5KCk7CisKKyAgICAgICAgdmFyIGhpc3RvcnlJdGVt
cyA9IHJlZ2lzdHJ5W3VybF07CisgICAgICAgIGlmICghaGlzdG9yeUl0ZW1zKSB7CisgICAgICAg
ICAgICBoaXN0b3J5SXRlbXMgPSBbXTsKKyAgICAgICAgICAgIHJlZ2lzdHJ5W3VybF0gPSBoaXN0
b3J5SXRlbXM7CisgICAgICAgIH0KKyAgICAgICAgaGlzdG9yeUl0ZW1zLnB1c2goe3VybDogdXJs
LCBsb2FkZXJJZDogbG9hZGVySWQsIHRpbWVzdGFtcDogdGltZXN0YW1wLCBrZXk6IGtleX0pOwor
CisgICAgICAgIGZ1bmN0aW9uIHBlcnNpc3QoKQorICAgICAgICB7CisgICAgICAgICAgICB3aW5k
b3cubG9jYWxTdG9yYWdlW2tleV0gPSB0aGlzLl9jb250ZW50OworICAgICAgICAgICAgd2luZG93
LmxvY2FsU3RvcmFnZVsicmV2aXNpb24taGlzdG9yeSJdID0gSlNPTi5zdHJpbmdpZnkocmVnaXN0
cnkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2NoZWR1bGUgYXN5bmMgc3RvcmFnZS4KKyAg
ICAgICAgc2V0VGltZW91dChwZXJzaXN0LmJpbmQodGhpcyksIDApOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9k
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1v
ZGVsLmpzCmluZGV4IGEwMmMxZjA2ODk1ZDIxMDQ2Nzc3NGIwM2JmZTE2N2Q4YTA1YmQyZmQuLmY1
NDI2NDk0YmMxOTI2MTg2MTM2Nzk5ZmMzNWJjYzA5NjA1YmUxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwpA
QCAtOTMsOCArOTMsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9hZGRGcmFtZXNSZWN1cnNpdmVseShudWxsLCBtYWluRnJhbWVQ
YXlsb2FkKTsKICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnNwZWN0ZWRVUkxDaGFuZ2VkKCk7CiAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCk7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZS5yZXN0b3JlUmV2aXNpb25zKCk7Ci0KICAgICAgICAgdGhpcy5f
Y2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkID0gdHJ1ZTsKICAgICB9LAogCkBAIC0zMzQsMjMgKzMz
MiwxNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAg
IHsKICAgICAgICAgdmFyIGZyYW1lUGF5bG9hZCA9IGZyYW1lVHJlZVBheWxvYWQuZnJhbWU7CiAg
ICAgICAgIHZhciBmcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUodGhp
cywgcGFyZW50RnJhbWUsIGZyYW1lUGF5bG9hZCk7CisgICAgICAgIHRoaXMuX2FkZEZyYW1lKGZy
YW1lKTsKIAotICAgICAgICAvLyBDcmVhdGUgZnJhbWUgcmVzb3VyY2UuCiAgICAgICAgIHZhciBm
cmFtZVJlc291cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2VGcm9tRnJhbWVQYXlsb2FkKGZyYW1l
UGF5bG9hZCwgZnJhbWVQYXlsb2FkLnVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuRG9j
dW1lbnQsIGZyYW1lUGF5bG9hZC5taW1lVHlwZSk7Ci0KKyAgICAgICAgZnJhbWUuYWRkUmVzb3Vy
Y2UoZnJhbWVSZXNvdXJjZSk7CiAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQogICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkwgPSBmcmFtZVJlc291cmNlLnVy
bDsKIAotICAgICAgICB0aGlzLl9hZGRGcmFtZShmcmFtZSk7Ci0gICAgICAgIGZyYW1lLmFkZFJl
c291cmNlKGZyYW1lUmVzb3VyY2UpOwotCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBmcmFtZVRy
ZWVQYXlsb2FkLmNoaWxkRnJhbWVzICYmIGkgPCBmcmFtZVRyZWVQYXlsb2FkLmNoaWxkRnJhbWVz
Lmxlbmd0aDsgKytpKQogICAgICAgICAgICAgdGhpcy5fYWRkRnJhbWVzUmVjdXJzaXZlbHkoZnJh
bWUsIGZyYW1lVHJlZVBheWxvYWQuY2hpbGRGcmFtZXNbaV0pOwogCi0gICAgICAgIGlmICghZnJh
bWVUcmVlUGF5bG9hZC5yZXNvdXJjZXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
Ly8gQ3JlYXRlIGZyYW1lIHN1YnJlc291cmNlcy4KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBmcmFtZVRyZWVQYXlsb2FkLnJlc291cmNlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAg
dmFyIHN1YnJlc291cmNlID0gZnJhbWVUcmVlUGF5bG9hZC5yZXNvdXJjZXNbaV07CiAgICAgICAg
ICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9jcmVhdGVSZXNvdXJjZUZyb21GcmFtZVBheWxvYWQo
ZnJhbWVQYXlsb2FkLCBzdWJyZXNvdXJjZS51cmwsIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVz
W3N1YnJlc291cmNlLnR5cGVdLCBzdWJyZXNvdXJjZS5taW1lVHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcu
anMKaW5kZXggMjVhOTBlN2M3NjUyNjczNTNhMjYwZWU5ODk3Y2ViZGE4MjM1YjE1Ny4uZmFkMmNi
MTQzNDhjYjljYmM1ZDllYTcwZTY2ZTM0YTJjNDJmZTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0b3J5Vmlldy5qcwpA
QCAtMTc0LDggKzE3NCw4IEBAIFdlYkluc3BlY3Rvci5SZXZpc2lvbkhpc3RvcnlWaWV3LnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5CiAvKioKICAqIEBjb25z
dHJ1Y3RvcgogICogQGV4dGVuZHMge1RyZWVFbGVtZW50fQotICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuUmVzb3VyY2VSZXZpc2lvbn0gcmV2aXNpb24KLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJl
c291cmNlUmV2aXNpb259IGJhc2VSZXZpc2lvbgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmV2
aXNpb259IHJldmlzaW9uCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXZpc2lvbn0gYmFzZVJl
dmlzaW9uCiAgKiBAcGFyYW0ge2Jvb2xlYW59IGFsbG93UmV2ZXJ0CiAgKi8KIFdlYkluc3BlY3Rv
ci5SZXZpc2lvbkhpc3RvcnlUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHJldmlzaW9uLCBiYXNlUmV2
aXNpb24sIGFsbG93UmV2ZXJ0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1VJU291cmNlQ29kZS5qcwppbmRleCA4YjlmZjY0NGYwYTAwMDVmNGU3NDk1MjNlNDNi
YzhjNDNjNjYzOWQ3Li40OWU1ZTMxMGIwOTUwOGUzMzgwMTUzZjc3ZGQzM2RjNWIyZDdlMDk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29k
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29k
ZS5qcwpAQCAtMTM4LDcgKzEzOCw3IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90
eXBlID0gewogCiAgICAgX3JldmlzaW9uQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgdmFyIHJldmlzaW9uID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZp
c2lvbn0gKi8gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIHJldmlzaW9uID0gLyoqIEB0eXBlIHtX
ZWJJbnNwZWN0b3IuUmV2aXNpb259ICovIGV2ZW50LmRhdGE7CiAgICAgICAgIHRoaXMuY29udGVu
dENoYW5nZWQocmV2aXNpb24uY29udGVudCB8fCAiIiwgdGhpcy5fcmVzb3VyY2UuY2Fub25pY2Fs
TWltZVR5cGUoKSk7CiAgICAgfSwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151464</attachid>
            <date>2012-07-10 08:46:27 -0700</date>
            <delta_ts>2012-07-10 09:02:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90855-20120710194625.patch</filename>
            <type>text/plain</type>
            <size>15478</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWIyZjBjZWVhYjczMDgx
OTNiZTQyNDc4Y2QyYzA1NjEzMDAxOTVkNC4uMDJkZGNjNDhhNWM3MTVjYTU4NjhlZmYyODdmNzZm
MmM0ZGNjNDEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA3LTEwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJlZmFjdG9yIHJlc291cmNlIHJldmlzaW9ucyBiZWZvcmUgbW92aW5nIHRvIFVJU291cmNl
Q29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
ODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV2
aXNpb25zIGFyZSBub3cgcGVyc2lzdGVkIGJhc2VkIG9uIG1haW5GcmFtZS5sb2FkZXJJZCwgbm90
IHJlc291cmNlLmxvYWRlcklkIHdoaWNoIG1ha2VzIGZpbHRlcmluZyBvdXQgc3RhbGUgcGVyc2lz
dGVkIHJldmlzaW9ucyBlYXNpZXIuCisgICAgICAgIFJlc3RvcmluZyByZXZpc2lvbnMgZnJvbSBs
b2NhbCBzdG9yYWdlIGlzIHNlcGFyYXRlZCBmcm9tIGZpbHRlcmluZyBvdXQgc3RhbGUgcGVyc2lz
dGVkIHJldmlzaW9ucy4KKyAgICAgICAgUmVzb3VyY2UuX2NsZWFyUmV2aXNpb25IaXN0b3J5IGFu
ZCBSZXNvdXJjZS5fcmVzdG9yZVJldmlzaW9ucyBhcmUgbm90IHN0YXRpYyBhbnltb3JlLgorICAg
ICAgICBSZW5hbWVkIGxvY2FsU3RvcmFnZSBmaWVsZCBmb3IgcGVyc2lzdGluZyByZXZpc2lvbnM6
ICJyZXNvdXJjZS1oaXN0b3J5IiAtPiAicmV2aXNpb24taGlzdG9yeSIKKworICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5hZGRSZXZp
c2lvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9yZXN0b3Jl
UmV2aXNpb25IaXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5
cGUuX2NsZWFyUmV2aXNpb25IaXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5wcm90b3R5cGUucmV2ZXJ0QW5kQ2xlYXJIaXN0b3J5LmNsZWFySGlzdG9yeSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLnJldmVydEFuZENsZWFySGlzdG9yeSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmV2aXNpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmV2aXNpb24uX2Vuc3VyZVN0YWxlUmV2aXNpb25zRmlsZXRlcmVkT3V0LnBlcnNpc3QpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9lbnN1cmVTdGFsZVJldmlzaW9uc0ZpbGV0
ZXJlZE91dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmV2aXNpb24ucHJvdG90eXBlLl9wZXJz
aXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fcHJv
Y2Vzc0NhY2hlZFJlc291cmNlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwucHJvdG90eXBlLl9hZGRGcmFtZXNSZWN1cnNpdmVseSk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlWaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZS5wcm90b3R5cGUuX3JldmlzaW9uQWRkZWQpOgorCiAyMDEyLTA3LTEwICBZb3NoaWZ1
bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtLU1hY10g
Rm9ybSByZWxhdGVkIGxheW91dCB0ZXN0cyBjYXVzZSB0aW1lb3V0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwppbmRleCAyNDFiNDE1ZTdhMmI1MGE1
YTA5NzdhMzc3MzBlODdjMWM4MTE1YzhhLi45YTVmOTE0Njg0YTBlMmYyZDkwYmQ5MzQwY2YxZmNl
MTA3NjdlYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2UuanMKQEAgLTU2LDEwOCArNTYsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UgPSBmdW5j
dGlvbihyZXF1ZXN0LCB1cmwsIGRvY3VtZW50VVJMLCBmcmFtZUlkLCBsb2FkZXJJZCwgdAogICAg
IHRoaXMuX3BlbmRpbmdDb250ZW50Q2FsbGJhY2tzID0gW107CiAgICAgaWYgKHRoaXMuX3JlcXVl
c3QgJiYgIXRoaXMuX3JlcXVlc3QuZmluaXNoZWQpCiAgICAgICAgIHRoaXMuX3JlcXVlc3QuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3QuRXZlbnRzLkZpbmlzaGVk
TG9hZGluZywgdGhpcy5fcmVxdWVzdEZpbmlzaGVkLCB0aGlzKTsKLX0KLQotV2ViSW5zcGVjdG9y
LlJlc291cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnkgPSBmdW5jdGlvbigpCi17Ci0gICAg
aWYgKCFXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jlc291cmNlUmV2aXNpb25SZWdpc3RyeU9iamVj
dCkgewotICAgICAgICBpZiAod2luZG93LmxvY2FsU3RvcmFnZSkgewotICAgICAgICAgICAgdmFy
IHJlc291cmNlSGlzdG9yeSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2VbInJlc291cmNlLWhpc3Rvcnki
XTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291
cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnlPYmplY3QgPSByZXNvdXJjZUhpc3RvcnkgPyBK
U09OLnBhcnNlKHJlc291cmNlSGlzdG9yeSkgOiB7fTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jlc291cmNlUmV2aXNp
b25SZWdpc3RyeU9iamVjdCA9IHt9OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5
T2JqZWN0ID0ge307Ci0gICAgfQotICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuX3Jl
c291cmNlUmV2aXNpb25SZWdpc3RyeU9iamVjdDsKLX0KLQotV2ViSW5zcGVjdG9yLlJlc291cmNl
LnJlc3RvcmVSZXZpc2lvbnMgPSBmdW5jdGlvbigpCi17Ci0gICAgdmFyIHJlZ2lzdHJ5ID0gV2Vi
SW5zcGVjdG9yLlJlc291cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0cnkoKTsKLSAgICB2YXIg
ZmlsdGVyZWRSZWdpc3RyeSA9IHt9OwotICAgIGZvciAodmFyIHVybCBpbiByZWdpc3RyeSkgewot
ICAgICAgICB2YXIgaGlzdG9yeUl0ZW1zID0gcmVnaXN0cnlbdXJsXTsKLSAgICAgICAgdmFyIHJl
c291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHVybCk7Ci0KLSAgICAgICAgdmFy
IGZpbHRlcmVkSGlzdG9yeUl0ZW1zID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBoaXN0
b3J5SXRlbXMgJiYgaSA8IGhpc3RvcnlJdGVtcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
dmFyIGhpc3RvcnlJdGVtID0gaGlzdG9yeUl0ZW1zW2ldOwotICAgICAgICAgICAgaWYgKHJlc291
cmNlICYmIGhpc3RvcnlJdGVtLmxvYWRlcklkID09PSByZXNvdXJjZS5sb2FkZXJJZCkgewotICAg
ICAgICAgICAgICAgIHJlc291cmNlLmFkZFJldmlzaW9uKHdpbmRvdy5sb2NhbFN0b3JhZ2VbaGlz
dG9yeUl0ZW0ua2V5XSwgbmV3IERhdGUoaGlzdG9yeUl0ZW0udGltZXN0YW1wKSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICAgICAgZmlsdGVyZWRIaXN0b3J5SXRlbXMucHVzaChoaXN0b3J5SXRlbSk7Ci0g
ICAgICAgICAgICAgICAgZmlsdGVyZWRSZWdpc3RyeVt1cmxdID0gZmlsdGVyZWRIaXN0b3J5SXRl
bXM7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBkZWxldGUgd2luZG93Lmxv
Y2FsU3RvcmFnZVtoaXN0b3J5SXRlbS5rZXldOwotICAgICAgICB9Ci0gICAgfQotICAgIFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5T2JqZWN0ID0gZmlsdGVy
ZWRSZWdpc3RyeTsKLQotICAgIGZ1bmN0aW9uIHBlcnNpc3QoKQotICAgIHsKLSAgICAgICAgd2lu
ZG93LmxvY2FsU3RvcmFnZVsicmVzb3VyY2UtaGlzdG9yeSJdID0gSlNPTi5zdHJpbmdpZnkoZmls
dGVyZWRSZWdpc3RyeSk7Ci0gICAgfQotCi0gICAgLy8gU2NoZWR1bGUgYXN5bmMgc3RvcmFnZS4K
LSAgICBzZXRUaW1lb3V0KHBlcnNpc3QsIDApOwotfQotCi0vKioKLSAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlJlc291cmNlUmV2aXNpb259IHJldmlzaW9uCi0gKi8KLVdlYkluc3BlY3Rvci5SZXNv
dXJjZS5wZXJzaXN0UmV2aXNpb24gPSBmdW5jdGlvbihyZXZpc2lvbikKLXsKLSAgICBpZiAoIXdp
bmRvdy5sb2NhbFN0b3JhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChyZXZpc2lvbi5y
ZXNvdXJjZS51cmwuc3RhcnRzV2l0aCgiaW5zcGVjdG9yOi8vIikpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHZhciByZXNvdXJjZSA9IHJldmlzaW9uLnJlc291cmNlOwotICAgIHZhciB1cmwgPSBy
ZXNvdXJjZS51cmw7Ci0gICAgdmFyIGxvYWRlcklkID0gcmVzb3VyY2UubG9hZGVySWQ7Ci0gICAg
dmFyIHRpbWVzdGFtcCA9IHJldmlzaW9uLnRpbWVzdGFtcC5nZXRUaW1lKCk7Ci0gICAgdmFyIGtl
eSA9ICJyZXNvdXJjZS1oaXN0b3J5fCIgKyB1cmwgKyAifCIgKyBsb2FkZXJJZCArICJ8IiArIHRp
bWVzdGFtcDsKLSAgICB2YXIgY29udGVudCA9IHJldmlzaW9uLl9jb250ZW50OwotCi0gICAgdmFy
IHJlZ2lzdHJ5ID0gV2ViSW5zcGVjdG9yLlJlc291cmNlLl9yZXNvdXJjZVJldmlzaW9uUmVnaXN0
cnkoKTsKLQotICAgIHZhciBoaXN0b3J5SXRlbXMgPSByZWdpc3RyeVtyZXNvdXJjZS51cmxdOwot
ICAgIGlmICghaGlzdG9yeUl0ZW1zKSB7Ci0gICAgICAgIGhpc3RvcnlJdGVtcyA9IFtdOwotICAg
ICAgICByZWdpc3RyeVtyZXNvdXJjZS51cmxdID0gaGlzdG9yeUl0ZW1zOwotICAgIH0KLSAgICBo
aXN0b3J5SXRlbXMucHVzaCh7dXJsOiB1cmwsIGxvYWRlcklkOiBsb2FkZXJJZCwgdGltZXN0YW1w
OiB0aW1lc3RhbXAsIGtleToga2V5fSk7Ci0KLSAgICBmdW5jdGlvbiBwZXJzaXN0KCkKLSAgICB7
Ci0gICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Vba2V5XSA9IGNvbnRlbnQ7Ci0gICAgICAgIHdp
bmRvdy5sb2NhbFN0b3JhZ2VbInJlc291cmNlLWhpc3RvcnkiXSA9IEpTT04uc3RyaW5naWZ5KHJl
Z2lzdHJ5KTsKLSAgICB9Ci0KLSAgICAvLyBTY2hlZHVsZSBhc3luYyBzdG9yYWdlLgotICAgIHNl
dFRpbWVvdXQocGVyc2lzdCwgMCk7Ci19Ci0KLS8qKgotICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
UmVzb3VyY2V9IHJlc291cmNlCi0gKi8KLVdlYkluc3BlY3Rvci5SZXNvdXJjZS5fY2xlYXJSZXNv
dXJjZUhpc3RvcnkgPSBmdW5jdGlvbihyZXNvdXJjZSkKLXsKLSAgICBpZiAoIXdpbmRvdy5sb2Nh
bFN0b3JhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChyZXNvdXJjZS51cmwuc3RhcnRz
V2l0aCgiaW5zcGVjdG9yOi8vIikpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZhciByZWdpc3Ry
eSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5fcmVzb3VyY2VSZXZpc2lvblJlZ2lzdHJ5KCk7Ci0g
ICAgdmFyIGhpc3RvcnlJdGVtcyA9IHJlZ2lzdHJ5W3Jlc291cmNlLnVybF07Ci0gICAgZm9yICh2
YXIgaSA9IDA7IGhpc3RvcnlJdGVtcyAmJiBpIDwgaGlzdG9yeUl0ZW1zLmxlbmd0aDsgKytpKQot
ICAgICAgICBkZWxldGUgd2luZG93LmxvY2FsU3RvcmFnZVtoaXN0b3J5SXRlbXNbaV0ua2V5XTsK
LSAgICBkZWxldGUgcmVnaXN0cnlbcmVzb3VyY2UudXJsXTsKLSAgICB3aW5kb3cubG9jYWxTdG9y
YWdlWyJyZXNvdXJjZS1oaXN0b3J5Il0gPSBKU09OLnN0cmluZ2lmeShyZWdpc3RyeSk7CisgICAg
CisgICAgdGhpcy5fcmVzdG9yZVJldmlzaW9uSGlzdG9yeSgpOwogfQogCiBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2UuRXZlbnRzID0gewpAQCAtMzM5LDE1ICsyMzksNDAgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmIChsYXN0UmV2aXNpb24uX2NvbnRl
bnQgPT09IGNvbnRlbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAg
ICAgIHZhciByZXZpc2lvbiA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZpc2lvbih0aGlz
LCBjb250ZW50LCB0aW1lc3RhbXAgfHwgbmV3IERhdGUoKSk7CisgICAgICAgIHZhciByZXZpc2lv
biA9IG5ldyBXZWJJbnNwZWN0b3IuUmV2aXNpb24odGhpcywgY29udGVudCwgdGltZXN0YW1wIHx8
IG5ldyBEYXRlKCkpOwogICAgICAgICB0aGlzLmhpc3RvcnkucHVzaChyZXZpc2lvbik7CiAKICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNl
LkV2ZW50cy5SZXZpc2lvbkFkZGVkLCByZXZpc2lvbik7CiAgICAgICAgIGlmICghcmVzdG9yaW5n
SGlzdG9yeSkKLSAgICAgICAgICAgIHJldmlzaW9uLl9wZXJzaXN0UmV2aXNpb24oKTsKKyAgICAg
ICAgICAgIHJldmlzaW9uLl9wZXJzaXN0KCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VDb250ZW50Q29tbWl0dGVkLCB7IHJlc291cmNl
OiB0aGlzLCBjb250ZW50OiBjb250ZW50IH0pOwogICAgIH0sCiAKKyAgICBfcmVzdG9yZVJldmlz
aW9uSGlzdG9yeTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cubG9jYWxT
dG9yYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFdlYkluc3BlY3Rvci5SZXZp
c2lvbi5fZW5zdXJlU3RhbGVSZXZpc2lvbnNGaWxldGVyZWRPdXQoKTsKKyAgICAgICAgdmFyIHJl
Z2lzdHJ5ID0gV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeSgp
OworICAgICAgICB2YXIgaGlzdG9yeUl0ZW1zID0gcmVnaXN0cnlbdGhpcy51cmxdOworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaGlzdG9yeUl0ZW1zICYmIGkgPCBoaXN0b3J5SXRlbXMubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICB0aGlzLmFkZFJldmlzaW9uKHdpbmRvdy5sb2NhbFN0b3JhZ2Vb
aGlzdG9yeUl0ZW1zW2ldLmtleV0sIG5ldyBEYXRlKGhpc3RvcnlJdGVtc1tpXS50aW1lc3RhbXAp
LCB0cnVlKTsKKyAgICB9LAorCisgICAgX2NsZWFyUmV2aXNpb25IaXN0b3J5OiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgdmFyIHJlZ2lzdHJ5ID0gV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9y
ZXZpc2lvbkhpc3RvcnlSZWdpc3RyeSgpOworICAgICAgICB2YXIgaGlzdG9yeUl0ZW1zID0gcmVn
aXN0cnlbdGhpcy51cmxdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaGlzdG9yeUl0ZW1zICYm
IGkgPCBoaXN0b3J5SXRlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBkZWxldGUgd2luZG93
LmxvY2FsU3RvcmFnZVtoaXN0b3J5SXRlbXNbaV0ua2V5XTsKKyAgICAgICAgZGVsZXRlIHJlZ2lz
dHJ5W3RoaXMudXJsXTsKKyAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZVsicmV2aXNpb24taGlz
dG9yeSJdID0gSlNPTi5zdHJpbmdpZnkocmVnaXN0cnkpOworICAgIH0sCisgICAKICAgICAvKioK
ICAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQogICAgICAqLwpAQCAtNDg0LDcgKzQwOSw3IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rpb24gY2xl
YXJIaXN0b3J5KCkKICAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNl
Ll9jbGVhclJlc291cmNlSGlzdG9yeSh0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2NsZWFyUmV2
aXNpb25IaXN0b3J5KCk7CiAgICAgICAgICAgICB0aGlzLmhpc3RvcnkgPSBbXTsKICAgICAgICAg
ICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0KQEAgLTUyNiwxNCArNDUxLDY0IEBAIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5w
cm90b3R5cGU7CiAgKiBAcGFyYW0gez9zdHJpbmd8dW5kZWZpbmVkfSBjb250ZW50CiAgKiBAcGFy
YW0ge0RhdGV9IHRpbWVzdGFtcAogICovCi1XZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZpc2lvbiA9
IGZ1bmN0aW9uKHJlc291cmNlLCBjb250ZW50LCB0aW1lc3RhbXApCitXZWJJbnNwZWN0b3IuUmV2
aXNpb24gPSBmdW5jdGlvbihyZXNvdXJjZSwgY29udGVudCwgdGltZXN0YW1wKQogewogICAgIHRo
aXMuX3Jlc291cmNlID0gcmVzb3VyY2U7CiAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7CiAg
ICAgdGhpcy5fdGltZXN0YW1wID0gdGltZXN0YW1wOwogfQogCi1XZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VSZXZpc2lvbi5wcm90b3R5cGUgPSB7CitXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3JldmlzaW9u
SGlzdG9yeVJlZ2lzdHJ5ID0gZnVuY3Rpb24oKQoreworICAgIGlmICghV2ViSW5zcGVjdG9yLlJl
dmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3RyeU9iamVjdCkgeworICAgICAgICBpZiAod2lu
ZG93LmxvY2FsU3RvcmFnZSkgeworICAgICAgICAgICAgdmFyIHJldmlzaW9uSGlzdG9yeSA9IHdp
bmRvdy5sb2NhbFN0b3JhZ2VbInJldmlzaW9uLWhpc3RvcnkiXTsKKyAgICAgICAgICAgIHRyeSB7
CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlS
ZWdpc3RyeU9iamVjdCA9IHJldmlzaW9uSGlzdG9yeSA/IEpTT04ucGFyc2UocmV2aXNpb25IaXN0
b3J5KSA6IHt9OworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5SZXZpc2lvbi5fcmV2aXNpb25IaXN0b3J5UmVnaXN0cnlPYmplY3QgPSB7fTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
UmV2aXNpb24uX3JldmlzaW9uSGlzdG9yeVJlZ2lzdHJ5T2JqZWN0ID0ge307CisgICAgfQorICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3JldmlzaW9uSGlzdG9yeVJlZ2lzdHJ5T2Jq
ZWN0OworfQorCitXZWJJbnNwZWN0b3IuUmV2aXNpb24uX2Vuc3VyZVN0YWxlUmV2aXNpb25zRmls
ZXRlcmVkT3V0ID0gZnVuY3Rpb24oKQoreworICAgIGlmICghd2luZG93LmxvY2FsU3RvcmFnZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFdlYkluc3BlY3Rvci5SZXZpc2lvbi5fc3RhbGVS
ZXZpc2lvbnNGaWx0ZXJlZE91dCkKKyAgICAgICAgcmV0dXJuOworICAgIFdlYkluc3BlY3Rvci5S
ZXZpc2lvbi5fc3RhbGVSZXZpc2lvbnNGaWx0ZXJlZE91dCA9IHRydWU7CisgICAgCisgICAgdmFy
IHJlZ2lzdHJ5ID0gV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhpc3RvcnlSZWdpc3Ry
eSgpOworICAgIHZhciBmaWx0ZXJlZFJlZ2lzdHJ5ID0ge307CisgICAgZm9yICh2YXIgdXJsIGlu
IHJlZ2lzdHJ5KSB7CisgICAgICAgIHZhciBoaXN0b3J5SXRlbXMgPSByZWdpc3RyeVt1cmxdOwor
ICAgICAgICB2YXIgZmlsdGVyZWRIaXN0b3J5SXRlbXMgPSBbXTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGhpc3RvcnlJdGVtcyAmJiBpIDwgaGlzdG9yeUl0ZW1zLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgaGlzdG9yeUl0ZW0gPSBoaXN0b3J5SXRlbXNbaV07CisgICAgICAgICAg
ICBpZiAoaGlzdG9yeUl0ZW0ubG9hZGVySWQgPT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVN
b2RlbC5tYWluRnJhbWUubG9hZGVySWQpIHsKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZEhpc3Rv
cnlJdGVtcy5wdXNoKGhpc3RvcnlJdGVtKTsKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZFJlZ2lz
dHJ5W3VybF0gPSBmaWx0ZXJlZEhpc3RvcnlJdGVtczsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIGRlbGV0ZSB3aW5kb3cubG9jYWxTdG9yYWdlW2hpc3RvcnlJdGVtLmtleV07
CisgICAgICAgIH0KKyAgICB9CisgICAgV2ViSW5zcGVjdG9yLlJldmlzaW9uLl9yZXZpc2lvbkhp
c3RvcnlSZWdpc3RyeU9iamVjdCA9IGZpbHRlcmVkUmVnaXN0cnk7CisKKyAgICBmdW5jdGlvbiBw
ZXJzaXN0KCkKKyAgICB7CisgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbInJldmlzaW9uLWhp
c3RvcnkiXSA9IEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkUmVnaXN0cnkpOworICAgIH0KKworICAg
IC8vIFNjaGVkdWxlIGFzeW5jIHN0b3JhZ2UuCisgICAgc2V0VGltZW91dChwZXJzaXN0LCAwKTsK
K30KKworV2ViSW5zcGVjdG9yLlJldmlzaW9uLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAg
KiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9CiAgICAgICovCkBAIC02MDMsOCArNTc4
LDM1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9uLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgY2FsbGJhY2soW10pOwogICAgIH0sCiAKLSAgICBfcGVyc2lzdFJldmlzaW9uOiBmdW5jdGlv
bigpCisgICAgX3BlcnNpc3Q6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZS5wZXJzaXN0UmV2aXNpb24odGhpcyk7CisgICAgICAgIGlmICghd2luZG93Lmxv
Y2FsU3RvcmFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgdXJsID0gdGhp
cy5jb250ZW50VVJMKCk7CisgICAgICAgIGlmICh1cmwuc3RhcnRzV2l0aCgiaW5zcGVjdG9yOi8v
IikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIGxvYWRlcklkID0gV2ViSW5z
cGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLm1haW5GcmFtZS5sb2FkZXJJZDsKKyAgICAgICAgdmFy
IHRpbWVzdGFtcCA9IHRoaXMudGltZXN0YW1wLmdldFRpbWUoKTsKKyAgICAgICAgdmFyIGtleSA9
ICJyZXZpc2lvbi1oaXN0b3J5fCIgKyB1cmwgKyAifCIgKyBsb2FkZXJJZCArICJ8IiArIHRpbWVz
dGFtcDsKKworICAgICAgICB2YXIgcmVnaXN0cnkgPSBXZWJJbnNwZWN0b3IuUmV2aXNpb24uX3Jl
dmlzaW9uSGlzdG9yeVJlZ2lzdHJ5KCk7CisKKyAgICAgICAgdmFyIGhpc3RvcnlJdGVtcyA9IHJl
Z2lzdHJ5W3VybF07CisgICAgICAgIGlmICghaGlzdG9yeUl0ZW1zKSB7CisgICAgICAgICAgICBo
aXN0b3J5SXRlbXMgPSBbXTsKKyAgICAgICAgICAgIHJlZ2lzdHJ5W3VybF0gPSBoaXN0b3J5SXRl
bXM7CisgICAgICAgIH0KKyAgICAgICAgaGlzdG9yeUl0ZW1zLnB1c2goe3VybDogdXJsLCBsb2Fk
ZXJJZDogbG9hZGVySWQsIHRpbWVzdGFtcDogdGltZXN0YW1wLCBrZXk6IGtleX0pOworCisgICAg
ICAgIGZ1bmN0aW9uIHBlcnNpc3QoKQorICAgICAgICB7CisgICAgICAgICAgICB3aW5kb3cubG9j
YWxTdG9yYWdlW2tleV0gPSB0aGlzLl9jb250ZW50OworICAgICAgICAgICAgd2luZG93LmxvY2Fs
U3RvcmFnZVsicmV2aXNpb24taGlzdG9yeSJdID0gSlNPTi5zdHJpbmdpZnkocmVnaXN0cnkpOwor
ICAgICAgICB9CisKKyAgICAgICAgLy8gU2NoZWR1bGUgYXN5bmMgc3RvcmFnZS4KKyAgICAgICAg
c2V0VGltZW91dChwZXJzaXN0LmJpbmQodGhpcyksIDApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpz
CmluZGV4IGEwMmMxZjA2ODk1ZDIxMDQ2Nzc3NGIwM2JmZTE2N2Q4YTA1YmQyZmQuLjk2NTE1ODYx
ZmNiY2NiNDZmODU5NDIyNzUzODhjMTIxOTE4MDFkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwpAQCAtOTMs
OCArOTMsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLl9hZGRGcmFtZXNSZWN1cnNpdmVseShudWxsLCBtYWluRnJhbWVQYXlsb2Fk
KTsKICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnNwZWN0ZWRVUkxDaGFuZ2VkKCk7CiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVN
b2RlbC5FdmVudFR5cGVzLkNhY2hlZFJlc291cmNlc0xvYWRlZCk7Ci0gICAgICAgIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZS5yZXN0b3JlUmV2aXNpb25zKCk7Ci0KICAgICAgICAgdGhpcy5fY2FjaGVk
UmVzb3VyY2VzUHJvY2Vzc2VkID0gdHJ1ZTsKICAgICB9LAogCkBAIC0zMzQsMjMgKzMzMiwxNiBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgIHsKICAg
ICAgICAgdmFyIGZyYW1lUGF5bG9hZCA9IGZyYW1lVHJlZVBheWxvYWQuZnJhbWU7CiAgICAgICAg
IHZhciBmcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWUodGhpcywgcGFy
ZW50RnJhbWUsIGZyYW1lUGF5bG9hZCk7CisgICAgICAgIHRoaXMuX2FkZEZyYW1lKGZyYW1lKTsK
IAotICAgICAgICAvLyBDcmVhdGUgZnJhbWUgcmVzb3VyY2UuCiAgICAgICAgIHZhciBmcmFtZVJl
c291cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2VGcm9tRnJhbWVQYXlsb2FkKGZyYW1lUGF5bG9h
ZCwgZnJhbWVQYXlsb2FkLnVybCwgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuRG9jdW1lbnQs
IGZyYW1lUGF5bG9hZC5taW1lVHlwZSk7Ci0KICAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1l
KCkpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCA9IGZyYW1lUmVz
b3VyY2UudXJsOwotCi0gICAgICAgIHRoaXMuX2FkZEZyYW1lKGZyYW1lKTsKICAgICAgICAgZnJh
bWUuYWRkUmVzb3VyY2UoZnJhbWVSZXNvdXJjZSk7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGZyYW1lVHJlZVBheWxvYWQuY2hpbGRGcmFtZXMgJiYgaSA8IGZyYW1lVHJlZVBheWxvYWQuY2hp
bGRGcmFtZXMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9hZGRGcmFtZXNSZWN1cnNp
dmVseShmcmFtZSwgZnJhbWVUcmVlUGF5bG9hZC5jaGlsZEZyYW1lc1tpXSk7CiAKLSAgICAgICAg
aWYgKCFmcmFtZVRyZWVQYXlsb2FkLnJlc291cmNlcykKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICAvLyBDcmVhdGUgZnJhbWUgc3VicmVzb3VyY2VzLgogICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGZyYW1lVHJlZVBheWxvYWQucmVzb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAgICAg
ICAgICAgICB2YXIgc3VicmVzb3VyY2UgPSBmcmFtZVRyZWVQYXlsb2FkLnJlc291cmNlc1tpXTsK
ICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlRnJvbUZyYW1l
UGF5bG9hZChmcmFtZVBheWxvYWQsIHN1YnJlc291cmNlLnVybCwgV2ViSW5zcGVjdG9yLnJlc291
cmNlVHlwZXNbc3VicmVzb3VyY2UudHlwZV0sIHN1YnJlc291cmNlLm1pbWVUeXBlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0b3J5
Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmV2aXNpb25IaXN0
b3J5Vmlldy5qcwppbmRleCAyNWE5MGU3Yzc2NTI2NzM1M2EyNjBlZTk4OTdjZWJkYTgyMzViMTU3
Li5mYWQyY2IxNDM0OGNiOWNiYzVkOWVhNzBlNjZlMzRhMmM0MmZlMzgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JldmlzaW9uSGlzdG9yeVZpZXcuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXZpc2lvbkhpc3RvcnlW
aWV3LmpzCkBAIC0xNzQsOCArMTc0LDggQEAgV2ViSW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVZp
ZXcucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHkKIC8qKgog
ICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7VHJlZUVsZW1lbnR9Ci0gKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9ufSByZXZpc2lvbgotICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VSZXZpc2lvbn0gYmFzZVJldmlzaW9uCisgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5SZXZpc2lvbn0gcmV2aXNpb24KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJldmlzaW9u
fSBiYXNlUmV2aXNpb24KICAqIEBwYXJhbSB7Ym9vbGVhbn0gYWxsb3dSZXZlcnQKICAqLwogV2Vi
SW5zcGVjdG9yLlJldmlzaW9uSGlzdG9yeVRyZWVFbGVtZW50ID0gZnVuY3Rpb24ocmV2aXNpb24s
IGJhc2VSZXZpc2lvbiwgYWxsb3dSZXZlcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzCmluZGV4IDhiOWZmNjQ0ZjBhMDAwNWY0ZTc0
OTUyM2U0M2JjOGM0M2M2NjM5ZDcuLjQ5ZTVlMzEwYjA5NTA4ZTMzODAxNTNmNzdkZDMzZGM1YjJk
N2UwOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzCkBAIC0xMzgsNyArMTM4LDcgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZS5wcm90b3R5cGUgPSB7CiAKICAgICBfcmV2aXNpb25BZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAg
ICAgewotICAgICAgICB2YXIgcmV2aXNpb24gPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5SZXNv
dXJjZVJldmlzaW9ufSAqLyBldmVudC5kYXRhOworICAgICAgICB2YXIgcmV2aXNpb24gPSAvKiog
QHR5cGUge1dlYkluc3BlY3Rvci5SZXZpc2lvbn0gKi8gZXZlbnQuZGF0YTsKICAgICAgICAgdGhp
cy5jb250ZW50Q2hhbmdlZChyZXZpc2lvbi5jb250ZW50IHx8ICIiLCB0aGlzLl9yZXNvdXJjZS5j
YW5vbmljYWxNaW1lVHlwZSgpKTsKICAgICB9LAogCg==
</data>
<flag name="review"
          id="159925"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>