<?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>69351</bug_id>
          
          <creation_ts>2011-10-04 10:40:54 -0700</creation_ts>
          <short_desc>Web Inspector: make ResourceView(s) compile</short_desc>
          <delta_ts>2011-10-05 04:59:47 -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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</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>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>477714</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-04 10:40:54 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477721</commentid>
    <comment_count>1</comment_count>
      <attachid>109645</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-04 10:44:25 -0700</bug_when>
    <thetext>Created attachment 109645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477771</commentid>
    <comment_count>2</comment_count>
      <attachid>109655</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-04 11:14:17 -0700</bug_when>
    <thetext>Created attachment 109655
[Patch] More ResourceViews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478231</commentid>
    <comment_count>3</comment_count>
      <attachid>109655</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-05 01:56:18 -0700</bug_when>
    <thetext>Comment on attachment 109655
[Patch] More ResourceViews.

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

&gt; Source/WebCore/inspector/front-end/ResourceHeadersView.js:328
&gt; +        if (typeof headersLength === &quot;number&quot;) {

Extract all this block into a separate method and call it explicitly where needed instead of doing this odd check here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478238</commentid>
    <comment_count>4</comment_count>
      <attachid>109655</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 02:20:01 -0700</bug_when>
    <thetext>Comment on attachment 109655
[Patch] More ResourceViews.

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

&gt;&gt; Source/WebCore/inspector/front-end/ResourceHeadersView.js:328

&gt; 
&gt; Extract all this block into a separate method and call it explicitly where needed instead of doing this odd check here.

This method has 6 fields and 6 refresh methods that update corresponding fields. I would not want to split one of them into two parts for the following reasons:
- Call site might get confused on whether it should call both methods of only one
- This is a classical render(title, opt_subtitle). Not sure why call site should have two methods for this case
- Imagine title owning subtitle element, how would you allow title to position (define location of) subtitle element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478248</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 03:00:17 -0700</bug_when>
    <thetext>&gt; Extract all this block into a separate method and call it explicitly where needed instead of doing this odd check here.

Does this mean that the change suggested in required in order to let this patch in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478249</commentid>
    <comment_count>6</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-05 03:01:12 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 109655 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109655&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/inspector/front-end/ResourceHeadersView.js:328
&gt; 
&gt; &gt; 
&gt; &gt; Extract all this block into a separate method and call it explicitly where needed instead of doing this odd check here.
&gt; 
&gt; This method has 6 fields and 6 refresh methods that update corresponding fields. I would not want to split one of them into two parts for the following reasons:
&gt; - Call site might get confused on whether it should call both methods of only one
Method name should eliminate such confusion.

&gt; - This is a classical render(title, opt_subtitle). Not sure why call site should have two methods for this case
Because it is a different than a public method on TreeElement or such in that it is a private method which is called from two places: at first with 3 params, at second 2 params and because of that you have to an id block to the method which could well be avoided.

&gt; - Imagine title owning subtitle element, how would you allow title to position (define location of) subtitle element
Extract title creation into a separate method that would return a container where to insert the subtitle?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478250</commentid>
    <comment_count>7</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-05 03:06:01 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; Extract all this block into a separate method and call it explicitly where needed instead of doing this odd check here.
&gt; 
&gt; Does this mean that the change suggested in required in order to let this patch in?

Although it would make the inspector code more clear, I wouldn&apos;t block this patch  if you have a principal disagreement on this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478278</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-05 04:59:47 -0700</bug_when>
    <thetext>Landed as http://svn.webkit.org/repository/webkit/trunk@96695</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109645</attachid>
            <date>2011-10-04 10:44:25 -0700</date>
            <delta_ts>2011-10-04 11:14:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69351-20111004214423.patch</filename>
            <type>text/plain</type>
            <size>11956</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY2MDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMjIxNDIzZjRjOWE4MzVi
NTU2MTk2MjhlNmVjNmI3YTYxNzMwNGE0Li45NDVhYTdiNDAzN2YxMjBhNDI1MzMzMWE3NDlmMTgx
NTE1N2M1ZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTEtMTAtMDQgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1ha2UgUmVzb3VyY2VWaWV3KHMpIGNvbXBpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2g6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Gb250Vmlldy5wcm90b3R5cGUuX2NyZWF0ZUNvbnRlbnRJZk5lZWRlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuSW1hZ2VWaWV3LnByb3RvdHlwZS5fY3JlYXRlQ29udGVudElmTmVlZGVkLm9uSW1hZ2VM
b2FkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbWFnZVZpZXcucHJvdG90eXBlLl9jcmVhdGVD
b250ZW50SWZOZWVkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkltYWdlVmlldy5wcm90b3R5
cGUuX29wZW5Jbk5ld1RhYik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTb3VyY2VGcmFtZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanM6CisgICAgICAgIChOdW1iZXIuc2Vjb25kc1Rv
U3RyaW5nKToKKyAgICAgICAgKE51bWJlci5ieXRlc1RvU3RyaW5nKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKworMjAxMS0xMC0wNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSBT
b3VyY2VGcmFtZSBjb21waWxlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjkzNDUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnNoIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUt
ZnJvbnQtZW5kLnNoCmluZGV4IGM2MmJiYWYzMjRkMzliNjYxOWRiNWQ3OGE1NWM1YjM1MDY4YWY3
NzEuLjNiODZlZWI3MGM4ZGJlYWNhM2ZiMTAwMGQ5Yzk1ZDczZTM3NjBhZTQgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKQEAgLTkzLDExICs5Mywx
NCBAQCBqYXZhIC1qYXIgfi9jbG9zdXJlL2NvbXBpbGVyLmphciAtLWNvbXBpbGF0aW9uX2xldmVs
IFNJTVBMRV9PUFRJTUlaQVRJT05TIC0td2FybgogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzIFwKICAgICAgICAgLS1qcyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcuanMgXAotICAgIC0tbW9kdWxlIGpz
bW9kdWxlX2luc3BlY3Rvcjo3OmpzbW9kdWxlX3Nkayxqc21vZHVsZV91aSBcCisgICAgLS1tb2R1
bGUganNtb2R1bGVfaW5zcGVjdG9yOjEwOmpzbW9kdWxlX3Nkayxqc21vZHVsZV91aSBcCiAgICAg
ICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2Fn
ZS5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b25zb2xlVmlldy5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Gb250Vmlldy5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzIFwKICAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFBvcG92ZXJI
ZWxwZXIuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzIFwKICAgICAgICAgLS1qcyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIFwKICAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTWFuYWdl
ci5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250
Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMK
aW5kZXggYTliN2FhYmUwMDFmMGI4ZThjYjYzYTJiZDYzNTVlYmVjOTM2OTE1Ni4uNzYwYzc1YTE4
MTBiNjc3YTZiZDVkYzk3NTAwZmU3MGY2M2YwYTExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCkBAIC0yNiw2ICsyNiwxMCBAQAogICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCisvKioKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3
fQorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5Gb250VmlldyA9IGZ1bmN0aW9u
KHJlc291cmNlKQogewogICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcuY2FsbCh0aGlzLCBy
ZXNvdXJjZSk7CkBAIC01OCwxNiArNjIsMTYgQEAgV2ViSW5zcGVjdG9yLkZvbnRWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgICAgICB0aGlzLmZvbnRQcmV2aWV3RWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlzLmZvbnRQcmV2aWV3RWxlbWVudC5pbm5l
ckhUTUwgPSBXZWJJbnNwZWN0b3IuRm9udFZpZXcuX2ZvbnRJbm5lckhUTUw7Ci0gICAgICAgIHRo
aXMuZm9udFByZXZpZXdFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJmb250LWZhbWlseSIsIHVu
aXF1ZUZvbnROYW1lLCBudWxsKTsKLSAgICAgICAgdGhpcy5mb250UHJldmlld0VsZW1lbnQuc3R5
bGUuc2V0UHJvcGVydHkoInZpc2liaWxpdHkiLCAiaGlkZGVuIiwgbnVsbCk7CisgICAgICAgIHRo
aXMuZm9udFByZXZpZXdFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJmb250LWZhbWlseSIsIHVu
aXF1ZUZvbnROYW1lKTsKKyAgICAgICAgdGhpcy5mb250UHJldmlld0VsZW1lbnQuc3R5bGUuc2V0
UHJvcGVydHkoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAKICAgICAgICAgdGhpcy5fZHVtbXlF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIHRoaXMuX2R1
bW15RWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgIHRoaXMuX2R1
bW15RWxlbWVudC5zdHlsZS56SW5kZXggPSAiLTEiOwogICAgICAgICB0aGlzLl9kdW1teUVsZW1l
bnQuc3R5bGUuZGlzcGxheSA9ICJpbmxpbmUiOwogICAgICAgICB0aGlzLl9kdW1teUVsZW1lbnQu
c3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwotICAgICAgICB0aGlzLl9kdW1teUVsZW1lbnQu
c3R5bGUuc2V0UHJvcGVydHkoImZvbnQtZmFtaWx5IiwgdW5pcXVlRm9udE5hbWUsIG51bGwpOwot
ICAgICAgICB0aGlzLl9kdW1teUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImZvbnQtc2l6ZSIs
IFdlYkluc3BlY3Rvci5Gb250Vmlldy5fbWVhc3VyZUZvbnRTaXplICsgInB4IiwgbnVsbCk7Cisg
ICAgICAgIHRoaXMuX2R1bW15RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiZm9udC1mYW1pbHki
LCB1bmlxdWVGb250TmFtZSk7CisgICAgICAgIHRoaXMuX2R1bW15RWxlbWVudC5zdHlsZS5zZXRQ
cm9wZXJ0eSgiZm9udC1zaXplIiwgV2ViSW5zcGVjdG9yLkZvbnRWaWV3Ll9tZWFzdXJlRm9udFNp
emUgKyAicHgiKTsKICAgICAgICAgdGhpcy5fZHVtbXlFbGVtZW50LmlubmVySFRNTCA9IFdlYklu
c3BlY3Rvci5Gb250Vmlldy5fZm9udElubmVySFRNTDsKIAogICAgICAgICB0aGlzLmVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5mb250UHJldmlld0VsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcwppbmRleCA2OTE1NDhhYTM0NWMxZTEz
NjBkYmMyYWVhYzc4Y2U5NThmNTA5NjM5Li43MGZlMDQyOWIzYzg3NzU0NmIzN2VkYmI1ODZmMzli
MGYxN2E2YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0ltYWdlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lt
YWdlVmlldy5qcwpAQCAtMjYsNiArMjYsMTAgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoqCisg
KiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlJlc291cmNlVmlld30KKyAqIEBjb25zdHJ1Y3Rvcgor
ICovCiBXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB7CiAgICAg
V2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5jYWxsKHRoaXMsIHJlc291cmNlKTsKQEAgLTEwMSw3
ICsxMDUsNyBAQCBXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGluZm9MaXN0RWxlbWVudC5hcHBlbmRDaGlsZChkdCk7CiAgICAgICAgICAgICB2YXIgZGQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkZCIpOwogICAgICAgICAgICAgdmFyIGV4dGVybmFs
UmVzb3VyY2UgPSB0cnVlOwotICAgICAgICAgICAgZGQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9y
LmxpbmtpZnlVUkxBc05vZGUodGhpcy5yZXNvdXJjZS51cmwsIG51bGwsIG51bGwsIGV4dGVybmFs
UmVzb3VyY2UpKTsKKyAgICAgICAgICAgIGRkLmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5r
aWZ5VVJMQXNOb2RlKHRoaXMucmVzb3VyY2UudXJsLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZXh0
ZXJuYWxSZXNvdXJjZSkpOwogICAgICAgICAgICAgaW5mb0xpc3RFbGVtZW50LmFwcGVuZENoaWxk
KGRkKTsKIAogICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKGluZm9MaXN0
RWxlbWVudCk7CkBAIC0xMzYsNyArMTQwLDcgQEAgV2ViSW5zcGVjdG9yLkltYWdlVmlldy5wcm90
b3R5cGUgPSB7CiAKICAgICBfb3BlbkluTmV3VGFiOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5vcGVuUmVzb3VyY2UodGhpcy5yZXNvdXJjZS51cmwsIGZhbHNl
KTsKKyAgICAgICAgUGFnZUFnZW50Lm9wZW4odGhpcy5yZXNvdXJjZS51cmwsIHRydWUpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVmlldy5qcwppbmRleCBmZGE4NTExYjFkOWI0NWM2MTVhYjJlNGJjN2MwZmE2MWJmMzQyYmQ4
Li40MzYxODNmNzY2MDZjOTU0YzRkZDM5YTcxM2ZjNjBhNmRlNzE2M2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcwpAQCAtMjcs
NiArMjcsMTAgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoqCisgKiBAZXh0ZW5kcyB7V2ViSW5z
cGVjdG9yLlZpZXd9CisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLlJlc291cmNl
VmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNhbGwo
dGhpcyk7CkBAIC03MCw5ICs3NCwxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3Lm5vblNv
dXJjZVZpZXdGb3JSZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlKQogICAgIH0KIH0KIAorLyoq
CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfQorICogQGNvbnN0cnVjdG9y
CisgKi8KIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNvdXJjZUZyYW1lID0gZnVuY3Rpb24ocmVzb3Vy
Y2UpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLmNhbGwodGhpcywgbmV3IFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlKHJlc291cmNlKSwgcmVzb3VyY2UudXJsKTsKKyAg
ICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWVEZWxlZ2F0ZS5zdHViLCByZXNvdXJjZS51cmwpOwogICAgIHRoaXMuX3Jlc291cmNlID0g
cmVzb3VyY2U7CiB9CiAKQEAgLTExOCw2ICsxMjYsMTAgQEAgV2ViSW5zcGVjdG9yLkVkaXRhYmxl
UmVzb3VyY2VTb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKHJlc291cmNlKQogICAgIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVNvdXJjZUZyYW1lLmNhbGwodGhpcywgcmVzb3VyY2UpOwogfQogCisvKioKKyAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VTb3VyY2VGcmFtZX0KKyAqIEBjb25zdHJ1
Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuRWRpdGFibGVSZXNvdXJjZVNvdXJjZUZyYW1lLnByb3Rv
dHlwZSA9IHsKICAgICBjYW5FZGl0U291cmNlOiBmdW5jdGlvbigpCiAgICAgewpAQCAtMTYxLDYg
KzE3MywxMCBAQCBXZWJJbnNwZWN0b3IuRWRpdGFibGVSZXNvdXJjZVNvdXJjZUZyYW1lLnByb3Rv
dHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkVkaXRhYmxlUmVzb3VyY2VTb3VyY2VGcmFtZS5wcm90
b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlJlc291cmNlU291cmNlRnJhbWUucHJvdG90
eXBlOwogCisvKioKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VTb3VyY2VGcmFt
ZX0KKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZpc2lvblNv
dXJjZUZyYW1lID0gZnVuY3Rpb24ocmV2aXNpb24pCiB7CiAgICAgV2ViSW5zcGVjdG9yLlJlc291
cmNlU291cmNlRnJhbWUuY2FsbCh0aGlzLCByZXZpc2lvbi5yZXNvdXJjZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCA0OTlh
YmY2ZTRiOWU3MzUzNThmOWVlZWU1OWNhODk4M2RkMDBlMjY4Li4wOWY4MjY3NWQxNmMwZDc0YTMz
MjQ1Y2ZkNzRkZDdkMTJkMWQ4MmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTk5MiwzICs5OTIsOCBAQCBXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGUgPSB7CiAKICAgICBzdWdnZXN0ZWRGaWxl
TmFtZTogZnVuY3Rpb24oKSB7IH0KIH0KKworLyoqCisgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9u
LgorICovCitXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5zdHViID0gT2JqZWN0LmNy
ZWF0ZShXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCmluZGV4IGQ2NTZkMzZl
ZmM0OWY4OTE4OGYyN2FhMmI1OGUzNzg3NjFmZWYzNmIuLjlmMmE4MjFmN2MxYTkzYzMxMzNiNWZl
NmE1OTlmZWYxNjliYTcwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVUlVdGlscy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1VJVXRpbHMuanMKQEAgLTM5NiwzICszOTYsNTIgQEAgV2ViSW5zcGVjdG9yLnN0YXJ0RWRp
dGluZyA9IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbmZpZykKICAgICB9OwogfQogCitOdW1iZXIuc2Vj
b25kc1RvU3RyaW5nID0gZnVuY3Rpb24oc2Vjb25kcywgaGlnaGVyUmVzb2x1dGlvbikKK3sKKyAg
ICBpZiAoc2Vjb25kcyA9PT0gMCkKKyAgICAgICAgcmV0dXJuICIwIjsKKworICAgIHZhciBtcyA9
IHNlY29uZHMgKiAxMDAwOworICAgIGlmIChoaWdoZXJSZXNvbHV0aW9uICYmIG1zIDwgMTAwMCkK
KyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4zZm1zIiwgbXMpOworICAg
IGVsc2UgaWYgKG1zIDwgMTAwMCkKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiJS4wZm1zIiwgbXMpOworCisgICAgaWYgKHNlY29uZHMgPCA2MCkKKyAgICAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4yZnMiLCBzZWNvbmRzKTsKKworICAgIHZhciBtaW51
dGVzID0gc2Vjb25kcyAvIDYwOworICAgIGlmIChtaW51dGVzIDwgNjApCisgICAgICAgIHJldHVy
biBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMWZtaW4iLCBtaW51dGVzKTsKKworICAgIHZhciBo
b3VycyA9IG1pbnV0ZXMgLyA2MDsKKyAgICBpZiAoaG91cnMgPCAyNCkKKyAgICAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4xZmhycyIsIGhvdXJzKTsKKworICAgIHZhciBkYXlz
ID0gaG91cnMgLyAyNDsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjFmIGRh
eXMiLCBkYXlzKTsKK30KKworLyoqCisgKiBAcGFyYW0ge2Jvb2xlYW49fSBoaWdoZXJSZXNvbHV0
aW9uCisgKi8KK051bWJlci5ieXRlc1RvU3RyaW5nID0gZnVuY3Rpb24oYnl0ZXMsIGhpZ2hlclJl
c29sdXRpb24pCit7CisgICAgaWYgKHR5cGVvZiBoaWdoZXJSZXNvbHV0aW9uID09PSAidW5kZWZp
bmVkIikKKyAgICAgICAgaGlnaGVyUmVzb2x1dGlvbiA9IHRydWU7CisKKyAgICBpZiAoYnl0ZXMg
PCAxMDI0KQorICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjBmQiIsIGJ5
dGVzKTsKKworICAgIHZhciBraWxvYnl0ZXMgPSBieXRlcyAvIDEwMjQ7CisgICAgaWYgKGhpZ2hl
clJlc29sdXRpb24gJiYga2lsb2J5dGVzIDwgMTAyNCkKKyAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiJS4yZktCIiwga2lsb2J5dGVzKTsKKyAgICBlbHNlIGlmIChraWxvYnl0
ZXMgPCAxMDI0KQorICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjBmS0Ii
LCBraWxvYnl0ZXMpOworCisgICAgdmFyIG1lZ2FieXRlcyA9IGtpbG9ieXRlcyAvIDEwMjQ7Cisg
ICAgaWYgKGhpZ2hlclJlc29sdXRpb24pCisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIiUuMmZNQiIsIG1lZ2FieXRlcyk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCIlLjBmTUIiLCBtZWdhYnl0ZXMpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA2YWNlNzFlY2I1
MzBjMmUxZjA5ZDVhY2I2ZmJjNDkwZTFlMTU4MjA2Li4xMmY1MmEwZmYzNmIxNzZhOGMyZDY5MGY5
ZDJjNTc5NzU2MDM3NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcwpAQCAtMTQxMCw1MCArMTQxMCwzIEBAIFdlYkluc3BlY3Rvci5QYW5l
bEhpc3RvcnkucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9oaXN0b3J5SXRlcmF0b3IgPSB0
aGlzLl9oaXN0b3J5Lmxlbmd0aCAtIDE7CiAgICAgfQogfQotCi1OdW1iZXIuc2Vjb25kc1RvU3Ry
aW5nID0gZnVuY3Rpb24oc2Vjb25kcywgaGlnaGVyUmVzb2x1dGlvbikKLXsKLSAgICBpZiAoc2Vj
b25kcyA9PT0gMCkKLSAgICAgICAgcmV0dXJuICIwIjsKLQotICAgIHZhciBtcyA9IHNlY29uZHMg
KiAxMDAwOwotICAgIGlmIChoaWdoZXJSZXNvbHV0aW9uICYmIG1zIDwgMTAwMCkKLSAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4zZm1zIiwgbXMpOwotICAgIGVsc2UgaWYg
KG1zIDwgMTAwMCkKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4wZm1z
IiwgbXMpOwotCi0gICAgaWYgKHNlY29uZHMgPCA2MCkKLSAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiJS4yZnMiLCBzZWNvbmRzKTsKLQotICAgIHZhciBtaW51dGVzID0gc2Vj
b25kcyAvIDYwOwotICAgIGlmIChtaW51dGVzIDwgNjApCi0gICAgICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIiUuMWZtaW4iLCBtaW51dGVzKTsKLQotICAgIHZhciBob3VycyA9IG1p
bnV0ZXMgLyA2MDsKLSAgICBpZiAoaG91cnMgPCAyNCkKLSAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiJS4xZmhycyIsIGhvdXJzKTsKLQotICAgIHZhciBkYXlzID0gaG91cnMg
LyAyNDsKLSAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjFmIGRheXMiLCBkYXlz
KTsKLX0KLQotTnVtYmVyLmJ5dGVzVG9TdHJpbmcgPSBmdW5jdGlvbihieXRlcywgaGlnaGVyUmVz
b2x1dGlvbikKLXsKLSAgICBpZiAodHlwZW9mIGhpZ2hlclJlc29sdXRpb24gPT09ICJ1bmRlZmlu
ZWQiKQotICAgICAgICBoaWdoZXJSZXNvbHV0aW9uID0gdHJ1ZTsKLQotICAgIGlmIChieXRlcyA8
IDEwMjQpCi0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMGZCIiwgYnl0
ZXMpOwotCi0gICAgdmFyIGtpbG9ieXRlcyA9IGJ5dGVzIC8gMTAyNDsKLSAgICBpZiAoaGlnaGVy
UmVzb2x1dGlvbiAmJiBraWxvYnl0ZXMgPCAxMDI0KQotICAgICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCIlLjJmS0IiLCBraWxvYnl0ZXMpOwotICAgIGVsc2UgaWYgKGtpbG9ieXRl
cyA8IDEwMjQpCi0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMGZLQiIs
IGtpbG9ieXRlcyk7Ci0KLSAgICB2YXIgbWVnYWJ5dGVzID0ga2lsb2J5dGVzIC8gMTAyNDsKLSAg
ICBpZiAoaGlnaGVyUmVzb2x1dGlvbikKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiJS4yZk1CIiwgbWVnYWJ5dGVzKTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIiUuMGZNQiIsIG1lZ2FieXRlcyk7Ci19Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109655</attachid>
            <date>2011-10-04 11:14:17 -0700</date>
            <delta_ts>2011-10-05 03:06:47 -0700</delta_ts>
            <desc>[Patch] More ResourceViews.</desc>
            <filename>bug-69351-20111004221415.patch</filename>
            <type>text/plain</type>
            <size>27748</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY2MDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMjIxNDIzZjRjOWE4MzVi
NTU2MTk2MjhlNmVjNmI3YTYxNzMwNGE0Li5lNmRlZTlhOWU1YTkyZmEyMTc4N2Y1YmM3ZWE4NDQ0
YmZmMTU4ZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDcgQEAKIDIwMTEtMTAtMDQgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1ha2UgUmVzb3VyY2VWaWV3KHMpIGNvbXBpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2g6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVzVGFibGUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ29va2llc1RhYmxlLnByb3RvdHlwZS5fc29ydENvb2tpZXMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanM6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbXB0eVZpZXcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9G
b250Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb250Vmlldy5wcm90b3R5cGUuX2Ny
ZWF0ZUNvbnRlbnRJZk5lZWRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFn
ZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3LnByb3RvdHlwZS5fY3Jl
YXRlQ29udGVudElmTmVlZGVkLm9uSW1hZ2VMb2FkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5J
bWFnZVZpZXcucHJvdG90eXBlLl9jcmVhdGVDb250ZW50SWZOZWVkZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkltYWdlVmlldy5wcm90b3R5cGUuX29wZW5Jbk5ld1RhYik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrSXRlbVZpZXcuanM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZUNvb2tpZXNWaWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VIVE1MVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZUhUTUxWaWV3LnByb3RvdHlwZS5oaWRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlSGVhZGVyc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJlc2hQYXJtcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUuX3JlZnJlc2hIZWFkZXJzVGl0
bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlSGVhZGVyc1ZpZXcucHJvdG90eXBl
Ll9yZWZyZXNoSGVhZGVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJz
Vmlldy5wcm90b3R5cGUuX3JlZnJlc2hIZWFkZXJzVGV4dCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlSlNPTlZpZXcucGFyc2VKU09OLldlYkluc3BlY3Rvci5SZXNvdXJjZUpTT05WaWV3LnBh
cnNlSlNPTlApOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VQcmV2aWV3
Vmlldy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUmVzcG9uc2VW
aWV3LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVGltaW5nVmlldy5jcmVhdGVUaW1p
bmdUYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTb3VyY2VGcmFtZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RhYmJlZFBhbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9V
SVV0aWxzLmpzOgorICAgICAgICAoTnVtYmVyLnNlY29uZHNUb1N0cmluZyk6CisgICAgICAgIChO
dW1iZXIuYnl0ZXNUb1N0cmluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanM6CisKKzIwMTEtMTAtMDQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUu
Y29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgU291cmNlRnJhbWUgY29tcGlsZS4K
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzQ1CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5z
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaAppbmRleCBj
NjJiYmFmMzI0ZDM5YjY2MTlkYjVkNzhhNTVjNWIzNTA2OGFmNzcxLi4xMzc3NDM2YTcyZDViMjJj
Nzg4MGEyZWIwOGJlNDcxOGQ0MjRkZmNjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnNoCkBAIC02NSwxMCArNjUsMTEgQEAgamF2YSAtamFyIH4vY2xv
c3VyZS9jb21waWxlci5qYXIgLS1jb21waWxhdGlvbl9sZXZlbCBTSU1QTEVfT1BUSU1JWkFUSU9O
UyAtLXdhcm4KICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcyBcCi0gICAgLS1tb2R1bGUganNtb2R1
bGVfdWk6Mjc6anNtb2R1bGVfY29tbW9uIFwKKyAgICAtLW1vZHVsZSBqc21vZHVsZV91aToyODpq
c21vZHVsZV9jb21tb24gXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ2hlY2tib3guanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29sb3IuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29udGV4dE1lbnUuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llc1RhYmxlLmpzIFwKICAgICAgICAgLS1q
cyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzIFwKICAgICAg
ICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcyBcCiAg
ICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcu
anMgXApAQCAtOTMsMTEgKzk0LDIyIEBAIGphdmEgLWphciB+L2Nsb3N1cmUvY29tcGlsZXIuamFy
IC0tY29tcGlsYXRpb25fbGV2ZWwgU0lNUExFX09QVElNSVpBVElPTlMgLS13YXJuCiAgICAgICAg
IC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Ub29sYmFyLmpzIFwKICAg
ICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMg
XAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5q
cyBcCi0gICAgLS1tb2R1bGUganNtb2R1bGVfaW5zcGVjdG9yOjc6anNtb2R1bGVfc2RrLGpzbW9k
dWxlX3VpIFwKKyAgICAtLW1vZHVsZSBqc21vZHVsZV9pbnNwZWN0b3I6MTg6anNtb2R1bGVfc2Rr
LGpzbW9kdWxlX3VpIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzIFwKKyAgICAgICAgLS1qcyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcyBcCiAgICAgICAg
IC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4
dE1hbmFnZXIuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya0l0ZW1WaWV3LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFBvcG92ZXJIZWxwZXIuanMgXAogICAgICAgICAtLWpz
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rp
b24uanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VDb29raWVzVmlldy5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhlYWRlcnNWaWV3LmpzIFwKKyAgICAgICAgLS1qcyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSFRNTFZpZXcuanMgXAor
ICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VK
U09OVmlldy5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3LmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUmVzcG9uc2VWaWV3LmpzIFwKKyAgICAgICAg
LS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmll
dy5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZVZpZXcuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlRnJhbWUuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNYW5hZ2VyLmpzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tpZXNUYWJsZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29va2llc1RhYmxlLmpzCmluZGV4IDJkMWNiNmE3NWM0
ODUwYzc4M2I2NzJjMzJlYzBiMjU1ZGM5OWZjM2EuLjNlZjJjOGI1NGViMWVlNTU5N2YyNmE1OTFj
MmYwNDBlNzVlNDI5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29va2llc1RhYmxlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29va2llc1RhYmxlLmpzCkBAIC0yOCw2ICsyOCwxMSBAQAogICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtmdW5jdGlvbihQYWdlQWdlbnQu
Q29va2llKT19IGRlbGV0ZUNhbGxiYWNrCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCk9fSByZWZyZXNo
Q2FsbGJhY2sKKyAqLwogV2ViSW5zcGVjdG9yLkNvb2tpZXNUYWJsZSA9IGZ1bmN0aW9uKGNvb2tp
ZURvbWFpbiwgZXhwYW5kYWJsZSwgZGVsZXRlQ2FsbGJhY2ssIHJlZnJlc2hDYWxsYmFjaykKIHsK
ICAgICB0aGlzLl9jb29raWVEb21haW4gPSBjb29raWVEb21haW47CkBAIC0xNjQsNyArMTY5LDcg
QEAgV2ViSW5zcGVjdG9yLkNvb2tpZXNUYWJsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAog
ICAgICAgICB2YXIgY29tcGFyYXRvcjsKLSAgICAgICAgc3dpdGNoIChwYXJzZUludCh0aGlzLl9k
YXRhR3JpZC5zb3J0Q29sdW1uSWRlbnRpZmllcikpIHsKKyAgICAgICAgc3dpdGNoIChwYXJzZUlu
dCh0aGlzLl9kYXRhR3JpZC5zb3J0Q29sdW1uSWRlbnRpZmllciwgMTApKSB7CiAgICAgICAgICAg
ICBjYXNlIDA6IGNvbXBhcmF0b3IgPSBsb2NhbGVDb21wYXJlLmJpbmQodGhpcywgIm5hbWUiKTsg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlIDE6IGNvbXBhcmF0b3IgPSBsb2NhbGVDb21wYXJlLmJp
bmQodGhpcywgInZhbHVlIik7IGJyZWFrOwogICAgICAgICAgICAgY2FzZSAyOiBjb21wYXJhdG9y
ID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJkb21haW4iKTsgYnJlYWs7CkBAIC0xNzksNiAr
MTg0LDkgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZXNUYWJsZS5wcm90b3R5cGUgPSB7CiAgICAgICAg
IGNvb2tpZXMuc29ydChjb21wYXJhdG9yKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtQYWdlQWdlbnQuQ29va2llfSBjb29raWUKKyAgICAgKi8KICAgICBfY3JlYXRlR3JpZE5v
ZGU6IGZ1bmN0aW9uKGNvb2tpZSkKICAgICB7CiAgICAgICAgIHZhciBkYXRhID0ge307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwppbmRleCBhZTAz
NTEyZjc1ZDU0NTI0ZDcxOTFkOTMwOWYxOWFlMTA5Y2Q3YTQ1Li40ZTRhMTI5YWEwNWU2YTMyYTdl
MTkxYmM2MzViOWE0MDJkZDFjYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRGF0YUdyaWQuanMKQEAgLTEwMzYsNiArMTAzNiw3IEBAIFdlYkluc3BlY3Rvci5E
YXRhR3JpZC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5
cGU7CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmpl
Y3R9CisgKiBAcGFyYW0ge2Jvb2xlYW49fSBoYXNDaGlsZHJlbgogICovCiBXZWJJbnNwZWN0b3Iu
RGF0YUdyaWROb2RlID0gZnVuY3Rpb24oZGF0YSwgaGFzQ2hpbGRyZW4pCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCmluZGV4IDQxOTA0YWNj
NzY5ZjBkNWYxZDMyNzczZTQyOGJkNjQ4YjkwZDJiZGQuLmZiMDMyMWU1ZDk3NWZmMWU5MjIxOTA4
YmVlMTgwNzIxODNkMDY4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRW1wdHlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRW1wdHlWaWV3LmpzCkBAIC0zOSw2ICszOSw5IEBAIFdlYkluc3BlY3Rvci5FbXB0eVZp
ZXcgPSBmdW5jdGlvbih0ZXh0KQogfQogCiBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3LnByb3RvdHlw
ZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnQ9fSBwYXJlbnRFbGVtZW50Cisg
ICAgICovCiAgICAgc2hvdzogZnVuY3Rpb24ocGFyZW50RWxlbWVudCkKICAgICB7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5zaG93LmNhbGwodGhpcywgcGFyZW50RWxlbWVu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRW
aWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcwpp
bmRleCBhOWI3YWFiZTAwMWYwYjhlOGNiNjNhMmJkNjM1NWViZWM5MzY5MTU2Li43NjBjNzVhMTgx
MGI2NzdhNmJkNWRjOTc1MDBmZTcwZjYzZjBhMTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZvbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRm9udFZpZXcuanMKQEAgLTI2LDYgKzI2LDEwIEBACiAgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKKy8qKgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXd9
CisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLkZvbnRWaWV3ID0gZnVuY3Rpb24o
cmVzb3VyY2UpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5jYWxsKHRoaXMsIHJl
c291cmNlKTsKQEAgLTU4LDE2ICs2MiwxNiBAQCBXZWJJbnNwZWN0b3IuRm9udFZpZXcucHJvdG90
eXBlID0gewogCiAgICAgICAgIHRoaXMuZm9udFByZXZpZXdFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIHRoaXMuZm9udFByZXZpZXdFbGVtZW50LmlubmVy
SFRNTCA9IFdlYkluc3BlY3Rvci5Gb250Vmlldy5fZm9udElubmVySFRNTDsKLSAgICAgICAgdGhp
cy5mb250UHJldmlld0VsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImZvbnQtZmFtaWx5IiwgdW5p
cXVlRm9udE5hbWUsIG51bGwpOwotICAgICAgICB0aGlzLmZvbnRQcmV2aWV3RWxlbWVudC5zdHls
ZS5zZXRQcm9wZXJ0eSgidmlzaWJpbGl0eSIsICJoaWRkZW4iLCBudWxsKTsKKyAgICAgICAgdGhp
cy5mb250UHJldmlld0VsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoImZvbnQtZmFtaWx5IiwgdW5p
cXVlRm9udE5hbWUpOworICAgICAgICB0aGlzLmZvbnRQcmV2aWV3RWxlbWVudC5zdHlsZS5zZXRQ
cm9wZXJ0eSgidmlzaWJpbGl0eSIsICJoaWRkZW4iKTsKIAogICAgICAgICB0aGlzLl9kdW1teUVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgdGhpcy5fZHVt
bXlFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgdGhpcy5fZHVt
bXlFbGVtZW50LnN0eWxlLnpJbmRleCA9ICItMSI7CiAgICAgICAgIHRoaXMuX2R1bW15RWxlbWVu
dC5zdHlsZS5kaXNwbGF5ID0gImlubGluZSI7CiAgICAgICAgIHRoaXMuX2R1bW15RWxlbWVudC5z
dHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7Ci0gICAgICAgIHRoaXMuX2R1bW15RWxlbWVudC5z
dHlsZS5zZXRQcm9wZXJ0eSgiZm9udC1mYW1pbHkiLCB1bmlxdWVGb250TmFtZSwgbnVsbCk7Ci0g
ICAgICAgIHRoaXMuX2R1bW15RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiZm9udC1zaXplIiwg
V2ViSW5zcGVjdG9yLkZvbnRWaWV3Ll9tZWFzdXJlRm9udFNpemUgKyAicHgiLCBudWxsKTsKKyAg
ICAgICAgdGhpcy5fZHVtbXlFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJmb250LWZhbWlseSIs
IHVuaXF1ZUZvbnROYW1lKTsKKyAgICAgICAgdGhpcy5fZHVtbXlFbGVtZW50LnN0eWxlLnNldFBy
b3BlcnR5KCJmb250LXNpemUiLCBXZWJJbnNwZWN0b3IuRm9udFZpZXcuX21lYXN1cmVGb250U2l6
ZSArICJweCIpOwogICAgICAgICB0aGlzLl9kdW1teUVsZW1lbnQuaW5uZXJIVE1MID0gV2ViSW5z
cGVjdG9yLkZvbnRWaWV3Ll9mb250SW5uZXJIVE1MOwogCiAgICAgICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLmZvbnRQcmV2aWV3RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSW1hZ2VWaWV3LmpzCmluZGV4IDY5MTU0OGFhMzQ1YzFlMTM2
MGRiYzJhZWFjNzhjZTk1OGY1MDk2MzkuLjcwZmUwNDI5YjNjODc3NTQ2YjM3ZWRiYjU4NmYzOWIw
ZjE3YTZiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SW1hZ2VWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW1h
Z2VWaWV3LmpzCkBAIC0yNiw2ICsyNiwxMCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3fQorICogQGNvbnN0cnVjdG9yCisg
Ki8KIFdlYkluc3BlY3Rvci5JbWFnZVZpZXcgPSBmdW5jdGlvbihyZXNvdXJjZSkKIHsKICAgICBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LmNhbGwodGhpcywgcmVzb3VyY2UpOwpAQCAtMTAxLDcg
KzEwNSw3IEBAIFdlYkluc3BlY3Rvci5JbWFnZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgaW5mb0xpc3RFbGVtZW50LmFwcGVuZENoaWxkKGR0KTsKICAgICAgICAgICAgIHZhciBkZCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRkIik7CiAgICAgICAgICAgICB2YXIgZXh0ZXJuYWxS
ZXNvdXJjZSA9IHRydWU7Ci0gICAgICAgICAgICBkZC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3Iu
bGlua2lmeVVSTEFzTm9kZSh0aGlzLnJlc291cmNlLnVybCwgbnVsbCwgbnVsbCwgZXh0ZXJuYWxS
ZXNvdXJjZSkpOworICAgICAgICAgICAgZGQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtp
ZnlVUkxBc05vZGUodGhpcy5yZXNvdXJjZS51cmwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBleHRl
cm5hbFJlc291cmNlKSk7CiAgICAgICAgICAgICBpbmZvTGlzdEVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZGQpOwogCiAgICAgICAgICAgICB0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQoaW5mb0xpc3RF
bGVtZW50KTsKQEAgLTEzNiw3ICsxNDAsNyBAQCBXZWJJbnNwZWN0b3IuSW1hZ2VWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgIF9vcGVuSW5OZXdUYWI6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLm9wZW5SZXNvdXJjZSh0aGlzLnJlc291cmNlLnVybCwgZmFsc2Up
OworICAgICAgICBQYWdlQWdlbnQub3Blbih0aGlzLnJlc291cmNlLnVybCwgdHJ1ZSk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtJdGVtVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya0l0ZW1WaWV3LmpzCmluZGV4IDZlZmIxYWVhYzI2N2Q2MzE4ZGI2ZjFjOTM3Zjk0OTk5Mjdl
ODI1YWUuLjMxNTdkYTZkMjliYWUzZTViMjE2MDdkZmVlNWI0ZDA4YzkzYTc2YjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0l0ZW1WaWV3
LmpzCkBAIC0yOCw2ICsyOCwxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuVGFiYmVkUGFuZX0KKyAqIEBjb25zdHJ1Y3RvcgorICovCiBX
ZWJJbnNwZWN0b3IuTmV0d29ya0l0ZW1WaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB7CiAgICAg
V2ViSW5zcGVjdG9yLlRhYmJlZFBhbmUuY2FsbCh0aGlzKTsKQEAgLTYzLDYgKzY3LDkgQEAgV2Vi
SW5zcGVjdG9yLk5ldHdvcmtJdGVtVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Nl
bGVjdFRhYigpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZz19IHRh
YklkCisgICAgICovCiAgICAgX3NlbGVjdFRhYjogZnVuY3Rpb24odGFiSWQpCiAgICAgewogICAg
ICAgICBpZiAoIXRhYklkKQpAQCAtODQsNiArOTEsMTAgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtJ
dGVtVmlldy5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5OZXR3b3JrSXRlbVZpZXcucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lLnByb3RvdHlwZTsKIAor
LyoqCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlJlc291cmNlVmlld30KKyAqIEBjb25zdHJ1
Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb250ZW50VmlldyA9IGZ1bmN0aW9uKHJl
c291cmNlKQogewogICAgIFdlYkluc3BlY3Rvci5SZXNvdXJjZVZpZXcuY2FsbCh0aGlzLCByZXNv
dXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlQ29va2llc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlQ29va2llc1ZpZXcuanMKaW5kZXggZjA3ZTdlNGE0MjRmMGMyOGQ3ODZmYzU4MDY1
NzM5ZGZiNzE5YWJlMS4uNWVmNTU5OGNlOWRhYzNhMmIxZmVjMWM2NjYxMDJjYzE1ZDA1MTVmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUNv
b2tpZXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VDb29raWVzVmlldy5qcwpAQCAtMjgsNiArMjgsMTAgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAorLyoqCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBAY29uc3RydWN0
b3IKKyAqLwogV2ViSW5zcGVjdG9yLlJlc291cmNlQ29va2llc1ZpZXcgPSBmdW5jdGlvbihyZXNv
dXJjZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhUTUxWaWV3LmpzCmlu
ZGV4IDA2NjNiY2I5NjE5M2RmODc3NDZjYTNkOTdkYjVmMGY4MGNlOTZjNzcuLjkzM2ZmODQ3MzNh
OThmMDY1MjhlM2U3MDQzNTE2YTlhMmJjYjNlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIVE1MVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSFRNTFZpZXcuanMKQEAgLTI4LDYgKzI4
LDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlJlc291cmNlVmlld30KKyAqLwogV2ViSW5zcGVjdG9yLlJl
c291cmNlSFRNTFZpZXcgPSBmdW5jdGlvbihyZXNvdXJjZSkKIHsKICAgICBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VWaWV3LmNhbGwodGhpcywgcmVzb3VyY2UpOwpAQCAtNDgsNyArNTIsNyBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VIVE1MVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICBoaWRlOiBmdW5j
dGlvbihwYXJlbnRFbGVtZW50KQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlc291cmNl
Vmlldy5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMsIHBhcmVudEVsZW1lbnQpOworICAgICAgICBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7CiAgICAg
ICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogICAgIH0sCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIZWFkZXJzVmlldy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VIZWFkZXJzVmll
dy5qcwppbmRleCAzOWZmMDgxOTBlYTVmZDA0OWI1OGFjMzkzM2QyYzliMzQ3NTVkNDE0Li5mM2U2
Zjg3NzQ0YmFmOWFkNDVlMzFmMzdiMGU5MGMzNDVjMzllMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSGVhZGVyc1ZpZXcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUhlYWRlcnNWaWV3Lmpz
CkBAIC0yOCw2ICsyOCwxMCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuVmlld30KKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VIZWFkZXJzVmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogewogICAgIFdlYkluc3Bl
Y3Rvci5WaWV3LmNhbGwodGhpcyk7CkBAIC0yMTksNyArMjIzLDcgQEAgV2ViSW5zcGVjdG9yLlJl
c291cmNlSGVhZGVyc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIHZhbHVlRXNj
YXBlZCA9IHRoaXMuX2RlY29kZVJlcXVlc3RQYXJhbWV0ZXJzID8gdGhpcy5fZGVjb2RlVVJJQ29t
cG9uZW50KHZhbHVlKSA6IHZhbHVlLmVzY2FwZUhUTUwoKTsKICAgICAgICAgICAgIHZhciBuYW1l
RXNjYXBlZCA9IHRoaXMuX2RlY29kZVJlcXVlc3RQYXJhbWV0ZXJzID8gdGhpcy5fZGVjb2RlVVJJ
Q29tcG9uZW50KG5hbWUpIDogbmFtZS5lc2NhcGVIVE1MKCk7CiAKLSAgICAgICAgICAgIHZhciB0
aXRsZSA9ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4iICsgbmFtZUVzY2FwZWQgKyAiOjwv
ZGl2PiI7CisgICAgICAgICAgICB0aXRsZSA9ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4i
ICsgbmFtZUVzY2FwZWQgKyAiOjwvZGl2PiI7CiAgICAgICAgICAgICB0aXRsZSArPSAiPGRpdiBj
bGFzcz1cImhlYWRlci12YWx1ZSBzb3VyY2UtY29kZVwiPiIgKyB2YWx1ZUVzY2FwZWQgKyAiPC9k
aXY+IjsKIAogICAgICAgICAgICAgdmFyIHBhcm1UcmVlRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVu
dChudWxsLCBudWxsLCBmYWxzZSk7CkBAIC0zMTMsMTIgKzMxNywxNSBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VIZWFkZXJzVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0g
ICAgX3JlZnJlc2hIZWFkZXJzVGl0bGU6IGZ1bmN0aW9uKHRpdGxlLCBoZWFkZXJzVHJlZUVsZW1l
bnQsIGlzSGVhZGVyc1RleHRTaG93biwgaGVhZGVyc0xlbmd0aCkKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge251bWJlcj19IGhlYWRlcnNMZW5ndGgKKyAgICAgKi8KKyAgICBfcmVmcmVzaEhlYWRl
cnNUaXRsZTogZnVuY3Rpb24odGl0bGUsIGhlYWRlcnNUcmVlRWxlbWVudCwgaGVhZGVyc0xlbmd0
aCkKICAgICB7CiAgICAgICAgIGhlYWRlcnNUcmVlRWxlbWVudC5saXN0SXRlbUVsZW1lbnQucmVt
b3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgaGVhZGVyc1RyZWVFbGVtZW50Lmxpc3RJdGVtRWxlbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aXRsZSkpOwogCi0gICAgICAg
IGlmICghaXNIZWFkZXJzVGV4dFNob3duKSB7CisgICAgICAgIGlmICh0eXBlb2YgaGVhZGVyc0xl
bmd0aCA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgIHZhciBoZWFkZXJDb3VudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgICAgIGhlYWRlckNvdW50LmFkZFN0
eWxlQ2xhc3MoImhlYWRlci1jb3VudCIpOwogICAgICAgICAgICAgaGVhZGVyQ291bnQudGV4dENv
bnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiAoJWQpIiwgaGVhZGVyc0xlbmd0aCk7CkBA
IC0zMzEsMTAgKzMzOCwxMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VIZWFkZXJzVmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGhlYWRlcnNUcmVlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwog
CiAgICAgICAgIHZhciBsZW5ndGggPSBoZWFkZXJzLmxlbmd0aDsKLSAgICAgICAgdGhpcy5fcmVm
cmVzaEhlYWRlcnNUaXRsZSh0aXRsZSwgaGVhZGVyc1RyZWVFbGVtZW50LCBmYWxzZSwgbGVuZ3Ro
KTsKKyAgICAgICAgdGhpcy5fcmVmcmVzaEhlYWRlcnNUaXRsZSh0aXRsZSwgaGVhZGVyc1RyZWVF
bGVtZW50LCBsZW5ndGgpOwogICAgICAgICBoZWFkZXJzVHJlZUVsZW1lbnQuaGlkZGVuID0gIWxl
bmd0aDsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgdmFyIHRpdGxlID0gIjxkaXYgY2xhc3M9XCJoZWFkZXItbmFtZVwiPiIgKyBoZWFkZXJz
W2ldLmhlYWRlci5lc2NhcGVIVE1MKCkgKyAiOjwvZGl2PiI7CisgICAgICAgICAgICB0aXRsZSA9
ICI8ZGl2IGNsYXNzPVwiaGVhZGVyLW5hbWVcIj4iICsgaGVhZGVyc1tpXS5oZWFkZXIuZXNjYXBl
SFRNTCgpICsgIjo8L2Rpdj4iOwogICAgICAgICAgICAgdGl0bGUgKz0gIjxkaXYgY2xhc3M9XCJo
ZWFkZXItdmFsdWUgc291cmNlLWNvZGVcIj4iICsgaGVhZGVyc1tpXS52YWx1ZS5lc2NhcGVIVE1M
KCkgKyAiPC9kaXY+IgogCiAgICAgICAgICAgICB2YXIgaGVhZGVyVHJlZUVsZW1lbnQgPSBuZXcg
VHJlZUVsZW1lbnQobnVsbCwgbnVsbCwgZmFsc2UpOwpAQCAtMzQ0LDcgKzM1MSw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZUhlYWRlcnNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChhZGRpdGlvbmFsUm93KSB7Ci0gICAgICAgICAgICB2YXIgdGl0bGUgPSAiPGRp
diBjbGFzcz1cImhlYWRlci1uYW1lXCI+IiArIGFkZGl0aW9uYWxSb3cuaGVhZGVyLmVzY2FwZUhU
TUwoKSArICI6PC9kaXY+IjsKKyAgICAgICAgICAgIHRpdGxlID0gIjxkaXYgY2xhc3M9XCJoZWFk
ZXItbmFtZVwiPiIgKyBhZGRpdGlvbmFsUm93LmhlYWRlci5lc2NhcGVIVE1MKCkgKyAiOjwvZGl2
PiI7CiAgICAgICAgICAgICB0aXRsZSArPSAiPGRpdiBjbGFzcz1cImhlYWRlci12YWx1ZSBzb3Vy
Y2UtY29kZVwiPiIgKyBhZGRpdGlvbmFsUm93LnZhbHVlLmVzY2FwZUhUTUwoKSArICI8L2Rpdj4i
CiAKICAgICAgICAgICAgIHZhciBoZWFkZXJUcmVlRWxlbWVudCA9IG5ldyBUcmVlRWxlbWVudChu
dWxsLCBudWxsLCBmYWxzZSk7CkBAIC0zNTgsNyArMzY1LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlSGVhZGVyc1ZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaGVhZGVyc1RyZWVF
bGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAgdGhpcy5fcmVmcmVzaEhlYWRlcnNU
aXRsZSh0aXRsZSwgaGVhZGVyc1RyZWVFbGVtZW50LCB0cnVlKTsKKyAgICAgICAgdGhpcy5fcmVm
cmVzaEhlYWRlcnNUaXRsZSh0aXRsZSwgaGVhZGVyc1RyZWVFbGVtZW50KTsKICAgICAgICAgdmFy
IGhlYWRlclRyZWVFbGVtZW50ID0gbmV3IFRyZWVFbGVtZW50KG51bGwsIG51bGwsIGZhbHNlKTsK
ICAgICAgICAgaGVhZGVyVHJlZUVsZW1lbnQuc2VsZWN0YWJsZSA9IGZhbHNlOwogICAgICAgICBo
ZWFkZXJzVHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaGVhZGVyVHJlZUVsZW1lbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZUpTT05WaWV3
LmpzCmluZGV4IGY5MWExODJlZmI4ZmI5MTA5MWZiNzQzYmNiYTRjMWViNDJlODU4NzEuLmRkMzZk
YjlkZTM5NWIyYWQyNGIxOWQyYjYwMDc0MjRhN2Q1Mzc5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VKU09OVmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlSlNPTlZpZXcuanMKQEAgLTI4
LDYgKzI4LDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8qKgorICogQGV4dGVuZHMge1dl
Ykluc3BlY3Rvci5SZXNvdXJjZVZpZXd9CisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVj
dG9yLlJlc291cmNlSlNPTlZpZXcgPSBmdW5jdGlvbihyZXNvdXJjZSwgcGFyc2VkSlNPTikKIHsK
ICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LmNhbGwodGhpcywgcmVzb3VyY2UpOwpAQCAt
NjMsNyArNjcsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VKU09OVmlldy5wYXJzZUpTT05QID0g
ZnVuY3Rpb24odGV4dCkKIAogICAgIHZhciBwcmVmaXggPSB0ZXh0LnN1YnN0cmluZygwLCBzdGFy
dCArIDEpOwogICAgIHZhciBzdWZmaXggPSB0ZXh0LnN1YnN0cmluZyhlbmQpOwotICAgIHZhciB0
ZXh0ID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQgKyAxLCBlbmQpOworICAgIHRleHQgPSB0ZXh0LnN1
YnN0cmluZyhzdGFydCArIDEsIGVuZCk7CiAKICAgICB0cnkgewogICAgICAgICByZXR1cm4gbmV3
IFdlYkluc3BlY3Rvci5QYXJzZWRKU09OKEpTT04ucGFyc2UodGV4dCksIHByZWZpeCwgc3VmZml4
KTsKQEAgLTEwMSw2ICsxMDUsOSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VKU09OVmlldy5wcm90
b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZUpTT05WaWV3LnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LnByb3RvdHlwZTsKIAorLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLlBhcnNlZEpTT04gPSBmdW5jdGlvbihkYXRh
LCBwcmVmaXgsIHN1ZmZpeCkKIHsKICAgICB0aGlzLmRhdGEgPSBkYXRhOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVByZXZpZXdWaWV3
LmpzCmluZGV4IDJmZWIxYTUwMmFhNTRjMWI1YmUxNzM4MGEzMmRiODVkMTNkZmU3NjMuLjZiNjJi
M2EzMzhkZGZiMjQ5MmI3ZGZmOGQwM2VhNDUwZTIyN2Y4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VQcmV2aWV3Vmlldy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUHJldmlld1ZpZXcuanMK
QEAgLTI4LDYgKzI4LDEwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8qKgorICogQGV4dGVu
ZHMge1dlYkluc3BlY3Rvci5SZXNvdXJjZUNvbnRlbnRWaWV3fQorICogQGNvbnN0cnVjdG9yCisg
Ki8KIFdlYkluc3BlY3Rvci5SZXNvdXJjZVByZXZpZXdWaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2Us
IHJlc3BvbnNlVmlldykKIHsKICAgICBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDb250ZW50Vmlldy5j
YWxsKHRoaXMsIHJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlUmVzcG9uc2VWaWV3LmpzCmluZGV4IGY3MzQyNzJhZThk
ZmJlYTU5NGI3NzFlYjZjMWQxZTg4ZjVlYTYwM2IuLjQ5MTQ1N2VhMmQzMjRkMWRhOTBkYjM2MjY4
ZWMyOWFkN2I0OWRlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VSZXNwb25zZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZVJlc3BvbnNlVmlldy5qcwpAQCAtMjgsNiArMjgsMTAgQEAK
ICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoqCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlJl
c291cmNlQ29udGVudFZpZXd9CisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLlJl
c291cmNlUmVzcG9uc2VWaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB7CiAgICAgV2ViSW5zcGVj
dG9yLlJlc291cmNlQ29udGVudFZpZXcuY2FsbCh0aGlzLCByZXNvdXJjZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVGltaW5nVmlldy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3
LmpzCmluZGV4IGNiMzZkNGQyMzI5MGIwZTIxYjhkM2I2NzllODFkM2IwNDk4ZDM3ZGIuLmVjM2Zk
MWEzN2MwNmYzYTFmZmEzZDljNTE1NTQ2MDg2NzlhM2JlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUaW1pbmdWaWV3LmpzCkBA
IC0yOCw2ICsyOCwxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuVmlld30KKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUaW1pbmdWaWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiB7CiAgICAgV2ViSW5zcGVj
dG9yLlZpZXcuY2FsbCh0aGlzKTsKQEAgLTc2LDcgKzgwLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlVGltaW5nVmlldy5jcmVhdGVUaW1pbmdUYWJsZSA9IGZ1bmN0aW9uKHJlc291cmNlKQogICAg
IHZhciB0YWJsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAg
IHZhciByb3dzID0gW107CiAKLSAgICBmdW5jdGlvbiBhZGRSb3codGl0bGUsIGNsYXNzTmFtZSwg
c3RhcnQsIGVuZCwgY29sb3IpCisgICAgZnVuY3Rpb24gYWRkUm93KHRpdGxlLCBjbGFzc05hbWUs
IHN0YXJ0LCBlbmQpCiAgICAgewogICAgICAgICB2YXIgcm93ID0ge307CiAgICAgICAgIHJvdy50
aXRsZSA9IHRpdGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVmlldy5qcwppbmRleCBmZGE4NTExYjFkOWI0NWM2MTVhYjJlNGJjN2MwZmE2MWJm
MzQyYmQ4Li40MzYxODNmNzY2MDZjOTU0YzRkZDM5YTcxM2ZjNjBhNmRlNzE2M2NhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcwpA
QCAtMjcsNiArMjcsMTAgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoqCisgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlZpZXd9CisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLlJl
c291cmNlVmlldyA9IGZ1bmN0aW9uKHJlc291cmNlKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3
LmNhbGwodGhpcyk7CkBAIC03MCw5ICs3NCwxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3
Lm5vblNvdXJjZVZpZXdGb3JSZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlKQogICAgIH0KIH0K
IAorLyoqCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lfQorICogQGNvbnN0
cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNvdXJjZUZyYW1lID0gZnVuY3Rpb24o
cmVzb3VyY2UpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLmNhbGwodGhpcywgbmV3
IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlKHJlc291cmNlKSwgcmVzb3VyY2UudXJs
KTsKKyAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWVEZWxlZ2F0ZS5zdHViLCByZXNvdXJjZS51cmwpOwogICAgIHRoaXMuX3Jlc291
cmNlID0gcmVzb3VyY2U7CiB9CiAKQEAgLTExOCw2ICsxMjYsMTAgQEAgV2ViSW5zcGVjdG9yLkVk
aXRhYmxlUmVzb3VyY2VTb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKHJlc291cmNlKQogICAgIFdlYklu
c3BlY3Rvci5SZXNvdXJjZVNvdXJjZUZyYW1lLmNhbGwodGhpcywgcmVzb3VyY2UpOwogfQogCisv
KioKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VTb3VyY2VGcmFtZX0KKyAqIEBj
b25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuRWRpdGFibGVSZXNvdXJjZVNvdXJjZUZyYW1l
LnByb3RvdHlwZSA9IHsKICAgICBjYW5FZGl0U291cmNlOiBmdW5jdGlvbigpCiAgICAgewpAQCAt
MTYxLDYgKzE3MywxMCBAQCBXZWJJbnNwZWN0b3IuRWRpdGFibGVSZXNvdXJjZVNvdXJjZUZyYW1l
LnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkVkaXRhYmxlUmVzb3VyY2VTb3VyY2VGcmFt
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlJlc291cmNlU291cmNlRnJhbWUu
cHJvdG90eXBlOwogCisvKioKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VTb3Vy
Y2VGcmFtZX0KKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZp
c2lvblNvdXJjZUZyYW1lID0gZnVuY3Rpb24ocmV2aXNpb24pCiB7CiAgICAgV2ViSW5zcGVjdG9y
LlJlc291cmNlU291cmNlRnJhbWUuY2FsbCh0aGlzLCByZXZpc2lvbi5yZXNvdXJjZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRl
eCA0OTlhYmY2ZTRiOWU3MzUzNThmOWVlZWU1OWNhODk4M2RkMDBlMjY4Li4wOWY4MjY3NWQxNmMw
ZDc0YTMzMjQ1Y2ZkNzRkZDdkMTJkMWQ4MmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTk5MiwzICs5OTIsOCBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGUgPSB7CiAKICAgICBzdWdnZXN0
ZWRGaWxlTmFtZTogZnVuY3Rpb24oKSB7IH0KIH0KKworLyoqCisgKiBEZWZhdWx0IGltcGxlbWVu
dGF0aW9uLgorICovCitXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5zdHViID0gT2Jq
ZWN0LmNyZWF0ZShXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5l
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRQYW5lLmpzCmlu
ZGV4IGMzZjRmZDAzMjFlM2Q3NjM3OWU2ZDUxZGM1NGE4NjkxODQzOGE2OTQuLmFmMTM1NWNiNjI3
ODkzMDZiOGM0Nzk4ZGViNDI5YjY1YjQyZDNjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZFBhbmUuanMKQEAgLTMxLDYgKzMxLDcgQEAKIC8qKgog
ICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5WaWV3fQogICogQGNvbnN0cnVjdG9yCisgKiBAcGFy
YW0ge0VsZW1lbnQ9fSBlbGVtZW50CiAgKi8KIFdlYkluc3BlY3Rvci5UYWJiZWRQYW5lID0gZnVu
Y3Rpb24oZWxlbWVudCkKIHsKQEAgLTU1LDYgKzU2LDkgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZFBh
bmUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl90YWJzW2lkXSA9IHsgdGFiRWxlbWVudDog
dGFiRWxlbWVudCwgdmlldzogdmlldyB9OwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge2Jvb2xlYW49fSB1c2VyR2VzdHVyZQorICAgICAqLwogICAgIHNlbGVjdFRhYjogZnVuY3Rp
b24oaWQsIHVzZXJHZXN0dXJlKQogICAgIHsKICAgICAgICAgaWYgKCEoaWQgaW4gdGhpcy5fdGFi
cykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRp
bHMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKaW5k
ZXggZDY1NmQzNmVmYzQ5Zjg5MTg4ZjI3YWEyYjU4ZTM3ODc2MWZlZjM2Yi4uOGVjOTM4ZGU0NzMw
NmYyZDI4MjRjOWIwZDcxNjZhYTIwYWE2YmVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVUlVdGlscy5qcwpAQCAtMzk2LDMgKzM5Niw1NSBAQCBXZWJJbnNwZWN0
b3Iuc3RhcnRFZGl0aW5nID0gZnVuY3Rpb24oZWxlbWVudCwgY29uZmlnKQogICAgIH07CiB9CiAK
Ky8qKgorICogQHBhcmFtIHtib29sZWFuPX0gaGlnaGVyUmVzb2x1dGlvbgorICovCitOdW1iZXIu
c2Vjb25kc1RvU3RyaW5nID0gZnVuY3Rpb24oc2Vjb25kcywgaGlnaGVyUmVzb2x1dGlvbikKK3sK
KyAgICBpZiAoc2Vjb25kcyA9PT0gMCkKKyAgICAgICAgcmV0dXJuICIwIjsKKworICAgIHZhciBt
cyA9IHNlY29uZHMgKiAxMDAwOworICAgIGlmIChoaWdoZXJSZXNvbHV0aW9uICYmIG1zIDwgMTAw
MCkKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4zZm1zIiwgbXMpOwor
ICAgIGVsc2UgaWYgKG1zIDwgMTAwMCkKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiJS4wZm1zIiwgbXMpOworCisgICAgaWYgKHNlY29uZHMgPCA2MCkKKyAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4yZnMiLCBzZWNvbmRzKTsKKworICAgIHZhciBt
aW51dGVzID0gc2Vjb25kcyAvIDYwOworICAgIGlmIChtaW51dGVzIDwgNjApCisgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMWZtaW4iLCBtaW51dGVzKTsKKworICAgIHZh
ciBob3VycyA9IG1pbnV0ZXMgLyA2MDsKKyAgICBpZiAoaG91cnMgPCAyNCkKKyAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4xZmhycyIsIGhvdXJzKTsKKworICAgIHZhciBk
YXlzID0gaG91cnMgLyAyNDsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjFm
IGRheXMiLCBkYXlzKTsKK30KKworLyoqCisgKiBAcGFyYW0ge2Jvb2xlYW49fSBoaWdoZXJSZXNv
bHV0aW9uCisgKi8KK051bWJlci5ieXRlc1RvU3RyaW5nID0gZnVuY3Rpb24oYnl0ZXMsIGhpZ2hl
clJlc29sdXRpb24pCit7CisgICAgaWYgKHR5cGVvZiBoaWdoZXJSZXNvbHV0aW9uID09PSAidW5k
ZWZpbmVkIikKKyAgICAgICAgaGlnaGVyUmVzb2x1dGlvbiA9IHRydWU7CisKKyAgICBpZiAoYnl0
ZXMgPCAxMDI0KQorICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjBmQiIs
IGJ5dGVzKTsKKworICAgIHZhciBraWxvYnl0ZXMgPSBieXRlcyAvIDEwMjQ7CisgICAgaWYgKGhp
Z2hlclJlc29sdXRpb24gJiYga2lsb2J5dGVzIDwgMTAyNCkKKyAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiJS4yZktCIiwga2lsb2J5dGVzKTsKKyAgICBlbHNlIGlmIChraWxv
Ynl0ZXMgPCAxMDI0KQorICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjBm
S0IiLCBraWxvYnl0ZXMpOworCisgICAgdmFyIG1lZ2FieXRlcyA9IGtpbG9ieXRlcyAvIDEwMjQ7
CisgICAgaWYgKGhpZ2hlclJlc29sdXRpb24pCisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIiUuMmZNQiIsIG1lZ2FieXRlcyk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjBmTUIiLCBtZWdhYnl0ZXMpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA2YWNlNzFl
Y2I1MzBjMmUxZjA5ZDVhY2I2ZmJjNDkwZTFlMTU4MjA2Li4xMmY1MmEwZmYzNmIxNzZhOGMyZDY5
MGY5ZDJjNTc5NzU2MDM3NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMTQxMCw1MCArMTQxMCwzIEBAIFdlYkluc3BlY3Rvci5Q
YW5lbEhpc3RvcnkucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9oaXN0b3J5SXRlcmF0b3Ig
PSB0aGlzLl9oaXN0b3J5Lmxlbmd0aCAtIDE7CiAgICAgfQogfQotCi1OdW1iZXIuc2Vjb25kc1Rv
U3RyaW5nID0gZnVuY3Rpb24oc2Vjb25kcywgaGlnaGVyUmVzb2x1dGlvbikKLXsKLSAgICBpZiAo
c2Vjb25kcyA9PT0gMCkKLSAgICAgICAgcmV0dXJuICIwIjsKLQotICAgIHZhciBtcyA9IHNlY29u
ZHMgKiAxMDAwOwotICAgIGlmIChoaWdoZXJSZXNvbHV0aW9uICYmIG1zIDwgMTAwMCkKLSAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4zZm1zIiwgbXMpOwotICAgIGVsc2Ug
aWYgKG1zIDwgMTAwMCkKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4w
Zm1zIiwgbXMpOwotCi0gICAgaWYgKHNlY29uZHMgPCA2MCkKLSAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiJS4yZnMiLCBzZWNvbmRzKTsKLQotICAgIHZhciBtaW51dGVzID0g
c2Vjb25kcyAvIDYwOwotICAgIGlmIChtaW51dGVzIDwgNjApCi0gICAgICAgIHJldHVybiBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIiUuMWZtaW4iLCBtaW51dGVzKTsKLQotICAgIHZhciBob3VycyA9
IG1pbnV0ZXMgLyA2MDsKLSAgICBpZiAoaG91cnMgPCAyNCkKLSAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiJS4xZmhycyIsIGhvdXJzKTsKLQotICAgIHZhciBkYXlzID0gaG91
cnMgLyAyNDsKLSAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlLjFmIGRheXMiLCBk
YXlzKTsKLX0KLQotTnVtYmVyLmJ5dGVzVG9TdHJpbmcgPSBmdW5jdGlvbihieXRlcywgaGlnaGVy
UmVzb2x1dGlvbikKLXsKLSAgICBpZiAodHlwZW9mIGhpZ2hlclJlc29sdXRpb24gPT09ICJ1bmRl
ZmluZWQiKQotICAgICAgICBoaWdoZXJSZXNvbHV0aW9uID0gdHJ1ZTsKLQotICAgIGlmIChieXRl
cyA8IDEwMjQpCi0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMGZCIiwg
Ynl0ZXMpOwotCi0gICAgdmFyIGtpbG9ieXRlcyA9IGJ5dGVzIC8gMTAyNDsKLSAgICBpZiAoaGln
aGVyUmVzb2x1dGlvbiAmJiBraWxvYnl0ZXMgPCAxMDI0KQotICAgICAgICByZXR1cm4gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCIlLjJmS0IiLCBraWxvYnl0ZXMpOwotICAgIGVsc2UgaWYgKGtpbG9i
eXRlcyA8IDEwMjQpCi0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMGZL
QiIsIGtpbG9ieXRlcyk7Ci0KLSAgICB2YXIgbWVnYWJ5dGVzID0ga2lsb2J5dGVzIC8gMTAyNDsK
LSAgICBpZiAoaGlnaGVyUmVzb2x1dGlvbikKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiJS4yZk1CIiwgbWVnYWJ5dGVzKTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiUuMGZNQiIsIG1lZ2FieXRlcyk7Ci19Cg==
</data>
<flag name="review"
          id="106941"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>