<?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>60163</bug_id>
          
          <creation_ts>2011-05-04 05:59:04 -0700</creation_ts>
          <short_desc>Web Inspector: fix incremental html highlight.</short_desc>
          <delta_ts>2011-05-13 08:30:35 -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 Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>aandrey</cc>
    
    <cc>aandrey</cc>
    
    <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>397847</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-05-04 05:59:04 -0700</bug_when>
    <thetext>Web Inspector: fix incremental html highlight.

SourceHTMLTokenizer is declared to be stateless, however it uses _internalJavaScriptTokenizer and _internalCSSTokenizer fields as a part of its state.
This makes incremental highlighting impossible, since SourceHTMLTokenizer state can not be fully restored from stringified state used by highlighter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397850</commentid>
    <comment_count>1</comment_count>
      <attachid>92224</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-05-04 06:00:04 -0700</bug_when>
    <thetext>Created attachment 92224
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397854</commentid>
    <comment_count>2</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-05-04 06:05:27 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=92224&amp;action=review

&gt; Source/WebCore/inspector/front-end/SourceHTMLTokenizer.js:149
&gt; +        return WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer(&quot;text/javascript&quot;);

wrong MIME type

&gt; Source/WebCore/inspector/front-end/SourceHTMLTokenizer.re2js:148
&gt; +        return WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer(&quot;text/javascript&quot;);

same</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397856</commentid>
    <comment_count>3</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-05-04 06:06:56 -0700</bug_when>
    <thetext>I did not work with this code very closely, so you&apos;ll probably want to wait for somebody else&apos;s review :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397867</commentid>
    <comment_count>4</comment_count>
      <attachid>92228</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-05-04 06:13:14 -0700</bug_when>
    <thetext>Created attachment 92228
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399414</commentid>
    <comment_count>5</comment_count>
      <attachid>92228</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-06 01:15:48 -0700</bug_when>
    <thetext>Comment on attachment 92228
Patch.

This patch causes many tests failures:


  inspector/console/command-line-api-inspect.html = TEXT
  inspector/debugger/debugger-breakpoints-not-activated-on-reload.html = TEXT
  inspector/debugger/debugger-cyclic-ref.html = TEXT
  inspector/debugger/debugger-eval-on-call-frame.html = TEXT

Regressions: Unexpected tests timed out : (14)
  http/tests/appcache/remove-cache.html = TIMEOUT
  http/tests/inspector/inspect-iframe-from-different-domain.html = TIMEOUT
  http/tests/inspector/network/download.html = TIMEOUT
  inspector/console/command-line-api.html = TIMEOUT
  inspector/console/console-api-on-call-frame.html = TIMEOUT
  inspector/console/console-assert.html = TIMEOUT
  inspector/console/console-clear.html = TIMEOUT
  inspector/console/console-command-clear.html = TIMEOUT
  inspector/console/console-dir-global.html = TIMEOUT
  inspector/debugger/debugger-eval-while-paused.html = TIMEOUT
  inspector/debugger/debugger-expand-scope.html = TIMEOUT
  inspector/debugger/debugger-no-nested-pause.html = TIMEOUT
  inspector/debugger/debugger-pause-in-eval-script.html = TIMEOUT
  inspector/debugger/debugger-pause-on-breakpoint.html = TIMEOUT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399442</commentid>
    <comment_count>6</comment_count>
      <attachid>92565</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-05-06 02:25:19 -0700</bug_when>
    <thetext>Created attachment 92565
Patch.

Also fix the bug with tokenizer.initialCondition being modified after tokenizer.condition = tokenizer.initialCondition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399444</commentid>
    <comment_count>7</comment_count>
      <attachid>92565</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-05-06 02:44:16 -0700</bug_when>
    <thetext>Comment on attachment 92565
Patch.

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

&gt; Source/WebCore/inspector/front-end/SourceCSSTokenizer.js:125
&gt; +    get initialCondition()

As initialCondition now returns new object on each call it would make sense to rename it to createInitialCondition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399446</commentid>
    <comment_count>8</comment_count>
      <attachid>92566</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-05-06 03:16:50 -0700</bug_when>
    <thetext>Created attachment 92566
Patch.

get initialCondition -&gt; createInitialCondition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403565</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-05-13 08:30:35 -0700</bug_when>
    <thetext>Committed r86430: &lt;http://trac.webkit.org/changeset/86430&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92224</attachid>
            <date>2011-05-04 06:00:04 -0700</date>
            <delta_ts>2011-05-04 06:13:14 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10114</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5OGU3YmY2Li41OTIyNDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTEtMDUtMDQgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZml4IGluY3JlbWVudGFsIGh0bWwgaGlnaGxpZ2h0LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxNjMKKworICAgICAgICBTb3VyY2VI
VE1MVG9rZW5pemVyIGlzIGRlY2xhcmVkIHRvIGJlIHN0YXRlbGVzcywgaG93ZXZlciBpdCB1c2Vz
IF9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIgYW5kCisgICAgICAgIF9pbnRlcm5hbENTU1Rv
a2VuaXplciBmaWVsZHMgYXMgYSBwYXJ0IG9mIGl0cyBzdGF0ZS4gVGhpcyBtYWtlcyBpbmNyZW1l
bnRhbCBoaWdobGlnaHRpbmcgaW1wb3NzaWJsZSwKKyAgICAgICAgc2luY2UgU291cmNlSFRNTFRv
a2VuaXplciBzdGF0ZSBjYW4gbm90IGJlIGZ1bGx5IHJlc3RvcmVkIGZyb20gc3RyaW5naWZpZWQg
c3RhdGUgdXNlZCBieSBoaWdobGlnaHRlci4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlSFRNTFRva2VuaXplci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VI
VE1MVG9rZW5pemVyLnByb3RvdHlwZS5zZXQgbGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuZ2V0IF9pbnRlcm5hbEphdmFTY3JpcHRUb2tl
bml6ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90
eXBlLmdldCBfaW50ZXJuYWxDU1NUb2tlbml6ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnNjcmlwdFN0YXJ0ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnN0eWxlU2hlZXRTdGFydGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5u
ZXh0VG9rZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2Vu
aXplci5yZTJqczoKKwogMjAxMS0wNS0wMyAgTHVrZSBNYWNwaGVyc29uICAgPG1hY3BoZXJzb25A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRv
a2VuaXplci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRN
TFRva2VuaXplci5qcwppbmRleCBlODE1ZTU5Li5hOGRlZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpz
CkBAIC0xLDQgKzEsNCBAQAotLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBBcHIg
MTQgMTU6NTM6MTkgMjAxMSAqLworLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFdlZCBN
YXkgIDQgMTY6NDg6MDIgMjAxMSAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTc3LDEzICs3NywxMyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplciA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgIHNldCBsaW5lKGxpbmUpIHsKLSAg
ICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcikgeworICAgICAgICBp
ZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbikg
ewogICAgICAgICAgICAgdmFyIG1hdGNoID0gLzxcL3NjcmlwdC9pLmV4ZWMobGluZSk7CiAgICAg
ICAgICAgICBpZiAobWF0Y2gpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFT
Y3JpcHRUb2tlbml6ZXIubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KTsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplci5saW5lID0gbGluZTsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pbnRlcm5h
bENTU1Rva2VuaXplcikgeworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmRpdGlvbi5pbnRl
cm5hbENTU1Rva2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgdmFyIG1hdGNoID0gLzxc
L3N0eWxlL2kuZXhlYyhsaW5lKTsKICAgICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAg
ICAgICAgIHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmxpbmUgPSBsaW5lLnN1YnN0cmluZygw
LCBtYXRjaC5pbmRleCk7CkBAIC0xMzksMTIgKzEzOSwxOSBAQCBXZWJJbnNwZWN0b3IuU291cmNl
SFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiAiaHRtbC1hdHRyaWJ1
dGUtdmFsdWUiOwogICAgIH0sCiAKKyAgICBnZXQgX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
cigpCisgICAgeworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5S
ZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0Iik7Cisg
ICAgfSwKKworICAgIGdldCBfaW50ZXJuYWxDU1NUb2tlbml6ZXIoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2Uo
KS5nZXRUb2tlbml6ZXIoInRleHQvamF2YXNjcmlwdCIpOworICAgIH0sCisKICAgICBzY3JpcHRT
dGFydGVkOiBmdW5jdGlvbihjdXJzb3IpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplcikgewotICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5n
ZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0Iik7Ci0gICAgICAgICAg
ICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uID0g
dGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247Ci0gICAg
ICAgIH0KKyAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
ckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFsQ29u
ZGl0aW9uOwogICAgIH0sCiAKICAgICBzY3JpcHRFbmRlZDogZnVuY3Rpb24oY3Vyc29yKQpAQCAt
MTUzLDEwICsxNjAsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUgPSB7CiAKICAgICBzdHlsZVNoZWV0U3RhcnRlZDogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplcikgewotICAgICAgICAgICAg
dGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIgPSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVy
LlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2NzcyIpOwotICAgICAg
ICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uID0gdGhp
cy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKLSAgICAgICAgfQorICAg
ICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlz
Ll9pbnRlcm5hbENTU1Rva2VuaXplci5pbml0aWFsQ29uZGl0aW9uOwogICAgIH0sCiAKICAgICBz
dHlsZVNoZWV0RW5kZWQ6IGZ1bmN0aW9uKGN1cnNvcikKQEAgLTE2NSw3ICsxNjksNyBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAKICAgICBuZXh0VG9r
ZW46IGZ1bmN0aW9uKGN1cnNvcikKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9pbnRlcm5hbEph
dmFTY3JpcHRUb2tlbml6ZXIpIHsKKyAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5h
bEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24pIHsKICAgICAgICAgICAgIC8vIFJlLXNldCBs
aW5lIHRvIGZvcmNlIDwvc2NyaXB0PiBkZXRlY3Rpb24gZmlyc3QuCiAgICAgICAgICAgICB0aGlz
LmxpbmUgPSB0aGlzLl9saW5lOwogICAgICAgICAgICAgaWYgKGN1cnNvciAhPT0gdGhpcy5faW50
ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLl9saW5lLmxlbmd0aCkgewpAQCAtMTc2LDggKzE4MCw4
IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29u
ZGl0aW9uID0gdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmNvbmRpdGlvbjsKICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJz
b3IgIT09IHRoaXMuX2xpbmUubGVuZ3RoKQotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9p
bnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXI7Ci0gICAgICAgIH0gZWxzZSBpZiAodGhpcy5faW50
ZXJuYWxDU1NUb2tlbml6ZXIpIHsKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY29uZGl0
aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbjsKKyAgICAgICAgfSBlbHNl
IGlmICh0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24pIHsKICAg
ICAgICAgICAgIC8vIFJlLXNldCBsaW5lIHRvIGZvcmNlIDwvc3R5bGU+IGRldGVjdGlvbiBmaXJz
dC4KICAgICAgICAgICAgIHRoaXMubGluZSA9IHRoaXMuX2xpbmU7CiAgICAgICAgICAgICBpZiAo
Y3Vyc29yICE9PSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5fbGluZS5sZW5ndGgpIHsKQEAg
LTE4OCw3ICsxOTIsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5p
emVyQ29uZGl0aW9uID0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuY29uZGl0aW9uOwogICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNv
ciAhPT0gdGhpcy5fbGluZS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2lu
dGVybmFsQ1NTVG9rZW5pemVyOworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25kaXRp
b24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb247CiAgICAgICAgIH0KIAogICAgICAgICB2
YXIgY3Vyc29yT25FbnRlciA9IGN1cnNvcjsKQEAgLTU4NSw2ICs1ODksNyBAQCBjYXNlIDgzOgog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1s
LXRhZyI7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlv
biA9IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMOworICAgICAgICAgICAgICAgICAgICB0
aGlzLnN0eWxlRW5kZWQoY3Vyc29yIC0gNyk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
dXJzb3I7CiAgICAgICAgICAgICAgICAgfQogLyogKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiogKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcwppbmRleCAxN2MyMGI2Li41YzgyNjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhU
TUxUb2tlbml6ZXIucmUyanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzCkBAIC03NiwxMyArNzYsMTMgQEAgV2ViSW5zcGVj
dG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5Tb3Vy
Y2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICBzZXQgbGluZShsaW5lKSB7Ci0gICAg
ICAgIGlmICh0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIpIHsKKyAgICAgICAgaWYg
KHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24pIHsK
ICAgICAgICAgICAgIHZhciBtYXRjaCA9IC88XC9zY3JpcHQvaS5leGVjKGxpbmUpOwogICAgICAg
ICAgICAgaWYgKG1hdGNoKSB7CiAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2Ny
aXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBtYXRjaC5pbmRleCk7CiAgICAg
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRU
b2tlbml6ZXIubGluZSA9IGxpbmU7Ci0gICAgICAgIH0gZWxzZSBpZiAodGhpcy5faW50ZXJuYWxD
U1NUb2tlbml6ZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9jb25kaXRpb24uaW50ZXJu
YWxDU1NUb2tlbml6ZXJDb25kaXRpb24pIHsKICAgICAgICAgICAgIHZhciBtYXRjaCA9IC88XC9z
dHlsZS9pLmV4ZWMobGluZSk7CiAgICAgICAgICAgICBpZiAobWF0Y2gpIHsKICAgICAgICAgICAg
ICAgICB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwg
bWF0Y2guaW5kZXgpOwpAQCAtMTM4LDEyICsxMzgsMTkgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhU
TUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gImh0bWwtYXR0cmlidXRl
LXZhbHVlIjsKICAgICB9LAogCisgICAgZ2V0IF9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVn
aXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvamF2YXNjcmlwdCIpOworICAg
IH0sCisKKyAgICBnZXQgX2ludGVybmFsQ1NTVG9rZW5pemVyKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCku
Z2V0VG9rZW5pemVyKCJ0ZXh0L2phdmFzY3JpcHQiKTsKKyAgICB9LAorCiAgICAgc2NyaXB0U3Rh
cnRlZDogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5h
bEphdmFTY3JpcHRUb2tlbml6ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNj
cmlwdFRva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0
SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICAgICAg
dGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbiA9IHRo
aXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFsQ29uZGl0aW9uOwotICAgICAg
ICB9CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJD
b25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuaW5pdGlhbENvbmRp
dGlvbjsKICAgICB9LAogCiAgICAgc2NyaXB0RW5kZWQ6IGZ1bmN0aW9uKGN1cnNvcikKQEAgLTE1
MiwxMCArMTU5LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBl
ID0gewogCiAgICAgc3R5bGVTaGVldFN0YXJ0ZWQ6IGZ1bmN0aW9uKGN1cnNvcikKICAgICB7Ci0g
ICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKLSAgICAgICAgICAgIHRo
aXMuX2ludGVybmFsQ1NTVG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5S
ZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9jc3MiKTsKLSAgICAgICAg
ICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMu
X2ludGVybmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247Ci0gICAgICAgIH0KKyAgICAg
ICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uID0gdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKICAgICB9LAogCiAgICAgc3R5
bGVTaGVldEVuZGVkOiBmdW5jdGlvbihjdXJzb3IpCkBAIC0xNjQsNyArMTY4LDcgQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAgbmV4dFRva2Vu
OiBmdW5jdGlvbihjdXJzb3IpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxK
YXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICAvLyBSZS1zZXQgbGlu
ZSB0byBmb3JjZSA8L3NjcmlwdD4gZGV0ZWN0aW9uIGZpcnN0LgogICAgICAgICAgICAgdGhpcy5s
aW5lID0gdGhpcy5fbGluZTsKICAgICAgICAgICAgIGlmIChjdXJzb3IgIT09IHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplci5fbGluZS5sZW5ndGgpIHsKQEAgLTE3NSw4ICsxNzksOCBA
QCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRp
dGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5jb25kaXRpb247CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29y
ICE9PSB0aGlzLl9saW5lLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faW50
ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ludGVy
bmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbmRpdGlv
bi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb247CisgICAgICAgIH0gZWxzZSBp
ZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAg
ICAgICAgICAvLyBSZS1zZXQgbGluZSB0byBmb3JjZSA8L3N0eWxlPiBkZXRlY3Rpb24gZmlyc3Qu
CiAgICAgICAgICAgICB0aGlzLmxpbmUgPSB0aGlzLl9saW5lOwogICAgICAgICAgICAgaWYgKGN1
cnNvciAhPT0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuX2xpbmUubGVuZ3RoKSB7CkBAIC0x
ODcsNyArMTkxLDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXpl
ckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmNvbmRpdGlvbjsKICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3Ig
IT09IHRoaXMuX2xpbmUubGVuZ3RoKQotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbnRl
cm5hbENTU1Rva2VuaXplcjsKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY29uZGl0aW9u
LmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uOwogICAgICAgICB9CiAKICAgICAgICAgdmFy
IGN1cnNvck9uRW50ZXIgPSBjdXJzb3I7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92228</attachid>
            <date>2011-05-04 06:13:14 -0700</date>
            <delta_ts>2011-05-06 02:25:19 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10100</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5OGU3YmY2Li41OTIyNDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTEtMDUtMDQgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZml4IGluY3JlbWVudGFsIGh0bWwgaGlnaGxpZ2h0LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxNjMKKworICAgICAgICBTb3VyY2VI
VE1MVG9rZW5pemVyIGlzIGRlY2xhcmVkIHRvIGJlIHN0YXRlbGVzcywgaG93ZXZlciBpdCB1c2Vz
IF9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIgYW5kCisgICAgICAgIF9pbnRlcm5hbENTU1Rv
a2VuaXplciBmaWVsZHMgYXMgYSBwYXJ0IG9mIGl0cyBzdGF0ZS4gVGhpcyBtYWtlcyBpbmNyZW1l
bnRhbCBoaWdobGlnaHRpbmcgaW1wb3NzaWJsZSwKKyAgICAgICAgc2luY2UgU291cmNlSFRNTFRv
a2VuaXplciBzdGF0ZSBjYW4gbm90IGJlIGZ1bGx5IHJlc3RvcmVkIGZyb20gc3RyaW5naWZpZWQg
c3RhdGUgdXNlZCBieSBoaWdobGlnaHRlci4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlSFRNTFRva2VuaXplci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VI
VE1MVG9rZW5pemVyLnByb3RvdHlwZS5zZXQgbGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuZ2V0IF9pbnRlcm5hbEphdmFTY3JpcHRUb2tl
bml6ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90
eXBlLmdldCBfaW50ZXJuYWxDU1NUb2tlbml6ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnNjcmlwdFN0YXJ0ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnN0eWxlU2hlZXRTdGFydGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5u
ZXh0VG9rZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2Vu
aXplci5yZTJqczoKKwogMjAxMS0wNS0wMyAgTHVrZSBNYWNwaGVyc29uICAgPG1hY3BoZXJzb25A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRv
a2VuaXplci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRN
TFRva2VuaXplci5qcwppbmRleCBlODE1ZTU5Li5jOWJiOGYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpz
CkBAIC0xLDQgKzEsNCBAQAotLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBBcHIg
MTQgMTU6NTM6MTkgMjAxMSAqLworLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFdlZCBN
YXkgIDQgMTc6MTI6NDMgMjAxMSAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTc3LDEzICs3NywxMyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplciA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgIHNldCBsaW5lKGxpbmUpIHsKLSAg
ICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcikgeworICAgICAgICBp
ZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbikg
ewogICAgICAgICAgICAgdmFyIG1hdGNoID0gLzxcL3NjcmlwdC9pLmV4ZWMobGluZSk7CiAgICAg
ICAgICAgICBpZiAobWF0Y2gpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFT
Y3JpcHRUb2tlbml6ZXIubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KTsKICAg
ICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplci5saW5lID0gbGluZTsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pbnRlcm5h
bENTU1Rva2VuaXplcikgeworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmRpdGlvbi5pbnRl
cm5hbENTU1Rva2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgdmFyIG1hdGNoID0gLzxc
L3N0eWxlL2kuZXhlYyhsaW5lKTsKICAgICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAg
ICAgICAgIHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmxpbmUgPSBsaW5lLnN1YnN0cmluZygw
LCBtYXRjaC5pbmRleCk7CkBAIC0xMzksMTIgKzEzOSwxOSBAQCBXZWJJbnNwZWN0b3IuU291cmNl
SFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiAiaHRtbC1hdHRyaWJ1
dGUtdmFsdWUiOwogICAgIH0sCiAKKyAgICBnZXQgX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
cigpCisgICAgeworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5S
ZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0Iik7Cisg
ICAgfSwKKworICAgIGdldCBfaW50ZXJuYWxDU1NUb2tlbml6ZXIoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2Uo
KS5nZXRUb2tlbml6ZXIoInRleHQvY3NzIik7CisgICAgfSwKKwogICAgIHNjcmlwdFN0YXJ0ZWQ6
IGZ1bmN0aW9uKGN1cnNvcikKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyKSB7Ci0gICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRU
b2tlbml6ZXIgPSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3Rh
bmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2phdmFzY3JpcHQiKTsKLSAgICAgICAgICAgIHRoaXMu
X2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9p
bnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKLSAgICAgICAgfQor
ICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0
aW9uID0gdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247
CiAgICAgfSwKIAogICAgIHNjcmlwdEVuZGVkOiBmdW5jdGlvbihjdXJzb3IpCkBAIC0xNTMsMTAg
KzE2MCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsK
IAogICAgIHN0eWxlU2hlZXRTdGFydGVkOiBmdW5jdGlvbihjdXJzb3IpCiAgICAgewotICAgICAg
ICBpZiAoIXRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyKSB7Ci0gICAgICAgICAgICB0aGlzLl9p
bnRlcm5hbENTU1Rva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0
cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvY3NzIik7Ci0gICAgICAgICAgICB0
aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRl
cm5hbENTU1Rva2VuaXplci5pbml0aWFsQ29uZGl0aW9uOwotICAgICAgICB9CisgICAgICAgIHRo
aXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVy
bmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247CiAgICAgfSwKIAogICAgIHN0eWxlU2hl
ZXRFbmRlZDogZnVuY3Rpb24oY3Vyc29yKQpAQCAtMTY1LDcgKzE2OSw3IEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIG5leHRUb2tlbjogZnVu
Y3Rpb24oY3Vyc29yKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplcikgeworICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNj
cmlwdFRva2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgLy8gUmUtc2V0IGxpbmUgdG8g
Zm9yY2UgPC9zY3JpcHQ+IGRldGVjdGlvbiBmaXJzdC4KICAgICAgICAgICAgIHRoaXMubGluZSA9
IHRoaXMuX2xpbmU7CiAgICAgICAgICAgICBpZiAoY3Vyc29yICE9PSB0aGlzLl9pbnRlcm5hbEph
dmFTY3JpcHRUb2tlbml6ZXIuX2xpbmUubGVuZ3RoKSB7CkBAIC0xNzYsOCArMTgwLDggQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24g
PSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuY29uZGl0aW9uOwogICAgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciAhPT0g
dGhpcy5fbGluZS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2ludGVybmFs
SmF2YVNjcmlwdFRva2VuaXplcjsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pbnRlcm5hbENT
U1Rva2VuaXplcikgeworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25kaXRpb24uaW50
ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICB9IGVsc2UgaWYgKHRo
aXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAg
ICAgLy8gUmUtc2V0IGxpbmUgdG8gZm9yY2UgPC9zdHlsZT4gZGV0ZWN0aW9uIGZpcnN0LgogICAg
ICAgICAgICAgdGhpcy5saW5lID0gdGhpcy5fbGluZTsKICAgICAgICAgICAgIGlmIChjdXJzb3Ig
IT09IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLl9saW5lLmxlbmd0aCkgewpAQCAtMTg4LDcg
KzE5Miw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25k
aXRpb24gPSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5jb25kaXRpb247CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yICE9PSB0
aGlzLl9saW5lLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faW50ZXJuYWxD
U1NUb2tlbml6ZXI7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbmRpdGlvbi5pbnRl
cm5hbENTU1Rva2VuaXplckNvbmRpdGlvbjsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBjdXJz
b3JPbkVudGVyID0gY3Vyc29yOwpAQCAtNTg1LDYgKzU4OSw3IEBAIGNhc2UgODM6CiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsK
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhp
cy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5
bGVFbmRlZChjdXJzb3IgLSA3KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsK
ICAgICAgICAgICAgICAgICB9CiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VIVE1MVG9rZW5pemVyLnJlMmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzCmluZGV4IDE3YzIwYjYuLmE3MDgzM2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2Vu
aXplci5yZTJqcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZUhUTUxUb2tlbml6ZXIucmUyanMKQEAgLTc2LDEzICs3NiwxMyBAQCBXZWJJbnNwZWN0b3IuU291
cmNlSFRNTFRva2VuaXplciA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxU
b2tlbml6ZXIucHJvdG90eXBlID0gewogICAgIHNldCBsaW5lKGxpbmUpIHsKLSAgICAgICAgaWYg
KHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcikgeworICAgICAgICBpZiAodGhpcy5f
Y29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbikgewogICAgICAg
ICAgICAgdmFyIG1hdGNoID0gLzxcL3NjcmlwdC9pLmV4ZWMobGluZSk7CiAgICAgICAgICAgICBp
ZiAobWF0Y2gpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tl
bml6ZXIubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KTsKICAgICAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
ci5saW5lID0gbGluZTsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pbnRlcm5hbENTU1Rva2Vu
aXplcikgeworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rv
a2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgdmFyIG1hdGNoID0gLzxcL3N0eWxlL2ku
ZXhlYyhsaW5lKTsKICAgICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICAgICAgIHRo
aXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBtYXRjaC5p
bmRleCk7CkBAIC0xMzgsMTIgKzEzOCwxOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2Vu
aXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiAiaHRtbC1hdHRyaWJ1dGUtdmFsdWUi
OwogICAgIH0sCiAKKyAgICBnZXQgX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcigpCisgICAg
eworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5n
ZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0Iik7CisgICAgfSwKKwor
ICAgIGdldCBfaW50ZXJuYWxDU1NUb2tlbml6ZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tl
bml6ZXIoInRleHQvY3NzIik7CisgICAgfSwKKwogICAgIHNjcmlwdFN0YXJ0ZWQ6IGZ1bmN0aW9u
KGN1cnNvcikKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9r
ZW5pemVyKSB7Ci0gICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIg
PSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0
VG9rZW5pemVyKCJ0ZXh0L2phdmFzY3JpcHQiKTsKLSAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlv
bi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbEph
dmFTY3JpcHRUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKLSAgICAgICAgfQorICAgICAgICB0
aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uID0gdGhp
cy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247CiAgICAgfSwK
IAogICAgIHNjcmlwdEVuZGVkOiBmdW5jdGlvbihjdXJzb3IpCkBAIC0xNTIsMTAgKzE1OSw3IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIHN0
eWxlU2hlZXRTdGFydGVkOiBmdW5jdGlvbihjdXJzb3IpCiAgICAgewotICAgICAgICBpZiAoIXRo
aXMuX2ludGVybmFsQ1NTVG9rZW5pemVyKSB7Ci0gICAgICAgICAgICB0aGlzLl9pbnRlcm5hbENT
U1Rva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5z
dGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvY3NzIik7Ci0gICAgICAgICAgICB0aGlzLl9jb25k
aXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbENTU1Rv
a2VuaXplci5pbml0aWFsQ29uZGl0aW9uOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX2NvbmRp
dGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsQ1NTVG9r
ZW5pemVyLmluaXRpYWxDb25kaXRpb247CiAgICAgfSwKIAogICAgIHN0eWxlU2hlZXRFbmRlZDog
ZnVuY3Rpb24oY3Vyc29yKQpAQCAtMTY0LDcgKzE2OCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VI
VE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIG5leHRUb2tlbjogZnVuY3Rpb24oY3Vy
c29yKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
cikgeworICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2Vu
aXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgLy8gUmUtc2V0IGxpbmUgdG8gZm9yY2UgPC9z
Y3JpcHQ+IGRldGVjdGlvbiBmaXJzdC4KICAgICAgICAgICAgIHRoaXMubGluZSA9IHRoaXMuX2xp
bmU7CiAgICAgICAgICAgICBpZiAoY3Vyc29yICE9PSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRU
b2tlbml6ZXIuX2xpbmUubGVuZ3RoKSB7CkBAIC0xNzUsOCArMTc5LDggQEAgV2ViSW5zcGVjdG9y
LlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMu
X2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9p
bnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuY29uZGl0aW9uOwogICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciAhPT0gdGhpcy5fbGlu
ZS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2ludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplcjsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXpl
cikgeworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmRp
dGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgLy8gUmUt
c2V0IGxpbmUgdG8gZm9yY2UgPC9zdHlsZT4gZGV0ZWN0aW9uIGZpcnN0LgogICAgICAgICAgICAg
dGhpcy5saW5lID0gdGhpcy5fbGluZTsKICAgICAgICAgICAgIGlmIChjdXJzb3IgIT09IHRoaXMu
X2ludGVybmFsQ1NTVG9rZW5pemVyLl9saW5lLmxlbmd0aCkgewpAQCAtMTg3LDcgKzE5MSw3IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0
aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5jb25kaXRpb247CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yICE9PSB0aGlzLl9saW5l
Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6
ZXI7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rv
a2VuaXplckNvbmRpdGlvbjsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBjdXJzb3JPbkVudGVy
ID0gY3Vyc29yOwo=
</data>
<flag name="review"
          id="85175"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92565</attachid>
            <date>2011-05-06 02:25:19 -0700</date>
            <delta_ts>2011-05-06 03:16:50 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>17083</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMWFjM2UyLi44YmZhNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTEtMDUtMDYgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZml4IGluY3JlbWVudGFsIGh0bWwgaGlnaGxpZ2h0LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxNjMKKworICAgICAgICBTb3VyY2VU
b2tlbml6ZXJzIGZvciBodG1sLCBqcywgYW5kIGNzcyBhcmUgZGVjbGFyZWQgdG8gYmUgc3RhdGVs
ZXNzLiBIb3dldmVyIHRoZXkgc3RvcmUgc29tZSBzdGF0ZSBpbgorICAgICAgICB2YXJpb3VzIHdh
eXMgKGxpa2UgdXNpbmcgX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplciBmaWVsZCBpbiBodG1s
IHRva2VuaXplciwgb3IgbW9kaWZ5aW5nICJzdGF0aWMiCisgICAgICAgIGluaXRpYWxDb25kaXRp
b24gb2JqZWN0IHZpYSBjb25kaXRpb24gbGluaykuIFRoaXMgYWxsIHdvcmtlZCBiZWNhdXNlIG9m
IGFub3RoZXIgYnVnIGluIHRva2VuaXplcnMgcmVnaXN0cnkKKyAgICAgICAgdGhhdCBhbHdheXMg
cmV0dXJuZWQgbmV3IHRva2VuaXplciBvYmplY3QuCisgICAgICAgIEZvciBpbmNyZW1lbnRhbCBo
aWdobGlnaHRpbmcsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzdHJpbmdpZnkgdG9rZW5pemVycyBz
dGF0ZSBhbmQgdGhlbiByZXN0b3JlIHRoZQorICAgICAgICBzdGF0ZSBmcm9tIHN0cmluZy4gVGhh
dCdzIHdoeSB3ZSBuZWVkIHRva2VuaXplcnMgdG8gYmUgdHJ1bHkgc3RhdGVsZXNzLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Tb3VyY2VDU1NUb2tlbml6ZXIucHJvdG90eXBlLmdldCBpbml0aWFsQ29uZGl0aW9uKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqczoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuZ2V0IGluaXRpYWxDb25kaXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnNl
dCBsaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3Rv
dHlwZS5nZXQgX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuZ2V0IF9pbnRlcm5hbENTU1Rva2Vu
aXplcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUuc2NyaXB0U3RhcnRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2Vu
aXplci5wcm90b3R5cGUuc3R5bGVTaGVldFN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLm5leHRUb2tlbik6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLnByb3RvdHlwZS5nZXQgaW5pdGlhbENv
bmRpdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0
VG9rZW5pemVyLnJlMmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9r
ZW5pemVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3Ry
eS5wcm90b3R5cGUuZ2V0VG9rZW5pemVyKToKKwogMjAxMS0wNS0wNSAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Q1NTVG9rZW5pemVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VDU1NUb2tlbml6ZXIuanMKaW5kZXggZWI2MzMyNC4uZmY4ZWQ0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIu
anMKQEAgLTEsNCArMSw0IEBACi0vKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gTW9uIERl
YyAyMCAxODo0NDozMCAyMDEwICovCisvKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gRnJp
IE1heSAgNiAxMzoxNzo0MyAyMDExICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDUsNyArNDUsNyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rv
ci5Tb3VyY2VUb2tlbml6ZXIuY2FsbCh0aGlzKTsKIAotICAgIHRoaXMuX3Byb3BlcnR5S2V5d29y
ZHMgPSBXZWJJbnNwZWN0b3IuY3NzTmFtZUNvbXBsZXRpb25zID8gV2ViSW5zcGVjdG9yLmNzc05h
bWVDb21wbGV0aW9ucy5rZXlTZXQoKSA6IHt9OworICAgIHRoaXMuX3Byb3BlcnR5S2V5d29yZHMg
PSBXZWJJbnNwZWN0b3IuY3NzTmFtZUNvbXBsZXRpb25zLmtleVNldCgpOwogCiAgICAgdGhpcy5f
dmFsdWVLZXl3b3JkcyA9IFsKICAgICAgICAgImFib3ZlIiwgImFic29sdXRlIiwgImFjdGl2ZWJv
cmRlciIsICJhY3RpdmVjYXB0aW9uIiwgImFmYXIiLCAiYWZ0ZXItd2hpdGUtc3BhY2UiLCAiYWhl
YWQiLCAiYWxpYXMiLCAiYWxsIiwgImFsbC1zY3JvbGwiLApAQCAtMTE4LDEwICsxMTgsMTUgQEAg
V2ViSW5zcGVjdG9yLlNvdXJjZUNTU1Rva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmNh
c2VfRFNUUklORyA9IDEwMDM7CiAgICAgdGhpcy5jYXNlX1NTVFJJTkcgPSAxMDA0OwogCi0gICAg
dGhpcy5pbml0aWFsQ29uZGl0aW9uID0geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlv
bnMuSU5JVElBTCwgcGFyc2VDb25kaXRpb246IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFM
IH0KKyAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbjsKIH0KIAogV2Vi
SW5zcGVjdG9yLlNvdXJjZUNTU1Rva2VuaXplci5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGluaXRp
YWxDb25kaXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgbGV4Q29uZGl0aW9uOiB0aGlz
Ll9sZXhDb25kaXRpb25zLklOSVRJQUwsIHBhcnNlQ29uZGl0aW9uOiB0aGlzLl9wYXJzZUNvbmRp
dGlvbnMuSU5JVElBTCB9OworICAgIH0sCisKICAgICBfc3RyaW5nVG9rZW46IGZ1bmN0aW9uKGN1
cnNvciwgc3RyaW5nRW5kcykKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pc1Byb3BlcnR5VmFs
dWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlQ1NTVG9rZW5pemVyLnJlMmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMKaW5kZXggMWI4NGI0My4uMzA5MmUwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6
ZXIucmUyanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VD
U1NUb2tlbml6ZXIucmUyanMKQEAgLTExNywxMCArMTE3LDE1IEBAIFdlYkluc3BlY3Rvci5Tb3Vy
Y2VDU1NUb2tlbml6ZXIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5jYXNlX0RTVFJJTkcgPSAxMDAz
OwogICAgIHRoaXMuY2FzZV9TU1RSSU5HID0gMTAwNDsKIAotICAgIHRoaXMuaW5pdGlhbENvbmRp
dGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLklOSVRJQUwsIHBhcnNl
Q29uZGl0aW9uOiB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTCB9CisgICAgdGhpcy5jb25k
aXRpb24gPSB0aGlzLmluaXRpYWxDb25kaXRpb247CiB9CiAKIFdlYkluc3BlY3Rvci5Tb3VyY2VD
U1NUb2tlbml6ZXIucHJvdG90eXBlID0geworICAgIGdldCBpbml0aWFsQ29uZGl0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB7IGxleENvbmRpdGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5J
TklUSUFMLCBwYXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUwgfTsK
KyAgICB9LAorCiAgICAgX3N0cmluZ1Rva2VuOiBmdW5jdGlvbihjdXJzb3IsIHN0cmluZ0VuZHMp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5faXNQcm9wZXJ0eVZhbHVlKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6
ZXIuanMKaW5kZXggZTgxNWU1OS4uZjE4YWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcwpAQCAtMSw0
ICsxLDQgQEAKLS8qIEdlbmVyYXRlZCBieSByZTJjIDAuMTMuNSBvbiBUaHUgQXByIDE0IDE1OjUz
OjE5IDIwMTEgKi8KKy8qIEdlbmVyYXRlZCBieSByZTJjIDAuMTMuNSBvbiBGcmkgTWF5ICA2IDEz
OjIwOjAwIDIwMTEgKi8KIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC03MSwxOSArNzEsMjMgQEAgV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgIFNUWUxFOiAzMgogICAgIH07
CiAKLSAgICB0aGlzLmluaXRpYWxDb25kaXRpb24gPSB7IGxleENvbmRpdGlvbjogdGhpcy5fbGV4
Q29uZGl0aW9ucy5JTklUSUFMLCBwYXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VDb25kaXRpb25z
LklOSVRJQUwgfTsKICAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbjsK
IH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0geworICAg
IGdldCBpbml0aWFsQ29uZGl0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7IGxleENvbmRp
dGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMLCBwYXJzZUNvbmRpdGlvbjogdGhpcy5f
cGFyc2VDb25kaXRpb25zLklOSVRJQUwgfTsKKyAgICB9LAorCiAgICAgc2V0IGxpbmUobGluZSkg
ewotICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7CisgICAg
ICAgIGlmICh0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0
aW9uKSB7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvc2NyaXB0L2kuZXhlYyhsaW5lKTsK
ICAgICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFs
SmF2YVNjcmlwdFRva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgp
OwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2lu
dGVybmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fY29uZGl0aW9u
LmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICB2YXIgbWF0Y2gg
PSAvPFwvc3R5bGUvaS5leGVjKGxpbmUpOwogICAgICAgICAgICAgaWYgKG1hdGNoKSB7CiAgICAg
ICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIubGluZSA9IGxpbmUuc3Vic3Ry
aW5nKDAsIG1hdGNoLmluZGV4KTsKQEAgLTEzOSwxMiArMTQzLDE5IEBAIFdlYkluc3BlY3Rvci5T
b3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuICJodG1sLWF0
dHJpYnV0ZS12YWx1ZSI7CiAgICAgfSwKIAorICAgIGdldCBfaW50ZXJuYWxKYXZhU2NyaXB0VG9r
ZW5pemVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5p
emVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2phdmFzY3JpcHQi
KTsKKyAgICB9LAorCisgICAgZ2V0IF9pbnRlcm5hbENTU1Rva2VuaXplcigpCisgICAgeworICAg
ICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0
YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9jc3MiKTsKKyAgICB9LAorCiAgICAgc2NyaXB0U3Rh
cnRlZDogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5h
bEphdmFTY3JpcHRUb2tlbml6ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNj
cmlwdFRva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0
SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICAgICAg
dGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbiA9IHRo
aXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFsQ29uZGl0aW9uOwotICAgICAg
ICB9CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJD
b25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuaW5pdGlhbENvbmRp
dGlvbjsKICAgICB9LAogCiAgICAgc2NyaXB0RW5kZWQ6IGZ1bmN0aW9uKGN1cnNvcikKQEAgLTE1
MywxMCArMTY0LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBl
ID0gewogCiAgICAgc3R5bGVTaGVldFN0YXJ0ZWQ6IGZ1bmN0aW9uKGN1cnNvcikKICAgICB7Ci0g
ICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKLSAgICAgICAgICAgIHRo
aXMuX2ludGVybmFsQ1NTVG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5S
ZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9jc3MiKTsKLSAgICAgICAg
ICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMu
X2ludGVybmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247Ci0gICAgICAgIH0KKyAgICAg
ICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uID0gdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKICAgICB9LAogCiAgICAgc3R5
bGVTaGVldEVuZGVkOiBmdW5jdGlvbihjdXJzb3IpCkBAIC0xNjUsNyArMTczLDcgQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAgbmV4dFRva2Vu
OiBmdW5jdGlvbihjdXJzb3IpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxK
YXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICAvLyBSZS1zZXQgbGlu
ZSB0byBmb3JjZSA8L3NjcmlwdD4gZGV0ZWN0aW9uIGZpcnN0LgogICAgICAgICAgICAgdGhpcy5s
aW5lID0gdGhpcy5fbGluZTsKICAgICAgICAgICAgIGlmIChjdXJzb3IgIT09IHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplci5fbGluZS5sZW5ndGgpIHsKQEAgLTE3Niw4ICsxODQsOCBA
QCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRp
dGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5jb25kaXRpb247CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29y
ICE9PSB0aGlzLl9saW5lLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faW50
ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ludGVy
bmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbmRpdGlv
bi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb247CisgICAgICAgIH0gZWxzZSBp
ZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAg
ICAgICAgICAvLyBSZS1zZXQgbGluZSB0byBmb3JjZSA8L3N0eWxlPiBkZXRlY3Rpb24gZmlyc3Qu
CiAgICAgICAgICAgICB0aGlzLmxpbmUgPSB0aGlzLl9saW5lOwogICAgICAgICAgICAgaWYgKGN1
cnNvciAhPT0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuX2xpbmUubGVuZ3RoKSB7CkBAIC0x
ODgsNyArMTk2LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXpl
ckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmNvbmRpdGlvbjsKICAgICAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3Ig
IT09IHRoaXMuX2xpbmUubGVuZ3RoKQotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbnRl
cm5hbENTU1Rva2VuaXplcjsKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fY29uZGl0aW9u
LmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uOwogICAgICAgICB9CiAKICAgICAgICAgdmFy
IGN1cnNvck9uRW50ZXIgPSBjdXJzb3I7CkBAIC01ODUsNiArNTkzLDcgQEAgY2FzZSA4MzoKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10
YWciOwogICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24g
PSB0aGlzLl9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgdGhp
cy5zdHlsZVNoZWV0RW5kZWQoY3Vyc29yIC0gNyk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogLyogKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiogKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcwppbmRleCAxN2MyMGI2Li4yZDI2
OTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZUhUTUxUb2tlbml6ZXIucmUyanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzCkBAIC03MCwxOSArNzAsMjMgQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgIFNUWUxFOiAz
MgogICAgIH07CiAKLSAgICB0aGlzLmluaXRpYWxDb25kaXRpb24gPSB7IGxleENvbmRpdGlvbjog
dGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMLCBwYXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VD
b25kaXRpb25zLklOSVRJQUwgfTsKICAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENv
bmRpdGlvbjsKIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBl
ID0geworICAgIGdldCBpbml0aWFsQ29uZGl0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7
IGxleENvbmRpdGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMLCBwYXJzZUNvbmRpdGlv
bjogdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUwgfTsKKyAgICB9LAorCiAgICAgc2V0IGxp
bmUobGluZSkgewotICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVy
KSB7CisgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5p
emVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvc2NyaXB0L2kuZXhl
YyhsaW5lKTsKICAgICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICAgICAgIHRoaXMu
X2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgbWF0
Y2guaW5kZXgpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5faW50
ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lOwotICAgICAgICB9IGVsc2UgaWYg
KHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5f
Y29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICB2
YXIgbWF0Y2ggPSAvPFwvc3R5bGUvaS5leGVjKGxpbmUpOwogICAgICAgICAgICAgaWYgKG1hdGNo
KSB7CiAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIubGluZSA9IGxp
bmUuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KTsKQEAgLTEzOCwxMiArMTQyLDE5IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
ICJodG1sLWF0dHJpYnV0ZS12YWx1ZSI7CiAgICAgfSwKIAorICAgIGdldCBfaW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU291
cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2ph
dmFzY3JpcHQiKTsKKyAgICB9LAorCisgICAgZ2V0IF9pbnRlcm5hbENTU1Rva2VuaXplcigpCisg
ICAgeworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3Ry
eS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9jc3MiKTsKKyAgICB9LAorCiAgICAg
c2NyaXB0U3RhcnRlZDogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlz
Ll9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVn
aXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvamF2YXNjcmlwdCIpOwotICAg
ICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRp
dGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFsQ29uZGl0aW9u
OwotICAgICAgICB9CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRU
b2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuaW5p
dGlhbENvbmRpdGlvbjsKICAgICB9LAogCiAgICAgc2NyaXB0RW5kZWQ6IGZ1bmN0aW9uKGN1cnNv
cikKQEAgLTE1MiwxMCArMTYzLDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIu
cHJvdG90eXBlID0gewogCiAgICAgc3R5bGVTaGVldFN0YXJ0ZWQ6IGZ1bmN0aW9uKGN1cnNvcikK
ICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKLSAgICAg
ICAgICAgIHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRv
a2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9jc3MiKTsK
LSAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlv
biA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247Ci0gICAgICAg
IH0KKyAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9u
ID0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKICAgICB9LAog
CiAgICAgc3R5bGVTaGVldEVuZGVkOiBmdW5jdGlvbihjdXJzb3IpCkBAIC0xNjQsNyArMTcyLDcg
QEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogCiAgICAg
bmV4dFRva2VuOiBmdW5jdGlvbihjdXJzb3IpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faW50
ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24u
aW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICAvLyBS
ZS1zZXQgbGluZSB0byBmb3JjZSA8L3NjcmlwdD4gZGV0ZWN0aW9uIGZpcnN0LgogICAgICAgICAg
ICAgdGhpcy5saW5lID0gdGhpcy5fbGluZTsKICAgICAgICAgICAgIGlmIChjdXJzb3IgIT09IHRo
aXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5fbGluZS5sZW5ndGgpIHsKQEAgLTE3NSw4
ICsxODMsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2Vu
aXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5jb25kaXRp
b247CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoY3Vyc29yICE9PSB0aGlzLl9saW5lLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBkZWxldGUg
dGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyOwotICAgICAgICB9IGVsc2UgaWYgKHRo
aXMuX2ludGVybmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb247CisgICAgICAg
IH0gZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9u
KSB7CiAgICAgICAgICAgICAvLyBSZS1zZXQgbGluZSB0byBmb3JjZSA8L3N0eWxlPiBkZXRlY3Rp
b24gZmlyc3QuCiAgICAgICAgICAgICB0aGlzLmxpbmUgPSB0aGlzLl9saW5lOwogICAgICAgICAg
ICAgaWYgKGN1cnNvciAhPT0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuX2xpbmUubGVuZ3Ro
KSB7CkBAIC0xODcsNyArMTk1LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENT
U1Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmNvbmRpdGlv
bjsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfSBlbHNlIGlm
IChjdXJzb3IgIT09IHRoaXMuX2xpbmUubGVuZ3RoKQotICAgICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplcjsKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5f
Y29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uOwogICAgICAgICB9CiAKICAg
ICAgICAgdmFyIGN1cnNvck9uRW50ZXIgPSBjdXJzb3I7CkBAIC0yODQsNyArMjkyLDcgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2tlblR5cGUgPSAiaHRtbC10YWciOwog
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gPSB0aGlz
Ll9wYXJzZUNvbmRpdGlvbnMuSU5JVElBTDsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHls
ZUVuZGVkKGN1cnNvciAtIDcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLnN0eWxlU2hlZXRF
bmRlZChjdXJzb3IgLSA3KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnNvcjsKICAg
ICAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qcwppbmRleCBmYmQ0
NGQ3Li4wZDQyNjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzCkBAIC0xLDQgKzEs
NCBAQAotLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBGZWIgMjUgMjE6NDQ6NTUg
MjAxMCAqLworLyogR2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIEZyaSBNYXkgIDYgMTM6MTc6
NDcgMjAxMSAqLwogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKQEAgLTY4LDExICs2OCwxNSBAQCBXZWJJbnNwZWN0b3IuU291cmNl
SmF2YVNjcmlwdFRva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmNhc2VfU1NUUklORyA9
IDEwMDQ7CiAgICAgdGhpcy5jYXNlX1JFR0VYID0gMTAwNTsKIAotICAgIHRoaXMuaW5pdGlhbENv
bmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLk5PRElWIH0KICAg
ICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbjsKIH0KIAogV2ViSW5zcGVj
dG9yLlNvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIucHJvdG90eXBlID0geworICAgIGdldCBpbml0
aWFsQ29uZGl0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7IGxleENvbmRpdGlvbjogdGhp
cy5fbGV4Q29uZGl0aW9ucy5OT0RJViB9OworICAgIH0sCisKICAgICBuZXh0VG9rZW46IGZ1bmN0
aW9uKGN1cnNvcikKICAgICB7CiAgICAgICAgIHZhciBjdXJzb3JPbkVudGVyID0gY3Vyc29yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZh
U2NyaXB0VG9rZW5pemVyLnJlMmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLnJlMmpzCmluZGV4IGFlNzFlZmUuLmJkZGIwNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2
YVNjcmlwdFRva2VuaXplci5yZTJqcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIucmUyanMKQEAgLTY3LDExICs2NywxNSBA
QCBXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplciA9IGZ1bmN0aW9uKCkKICAg
ICB0aGlzLmNhc2VfU1NUUklORyA9IDEwMDQ7CiAgICAgdGhpcy5jYXNlX1JFR0VYID0gMTAwNTsK
IAotICAgIHRoaXMuaW5pdGlhbENvbmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhD
b25kaXRpb25zLk5PRElWIH0KICAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRp
dGlvbjsKIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIucHJvdG90
eXBlID0geworICAgIGdldCBpbml0aWFsQ29uZGl0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVy
biB7IGxleENvbmRpdGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5OT0RJViB9OworICAgIH0sCisK
ICAgICBuZXh0VG9rZW46IGZ1bmN0aW9uKGN1cnNvcikKICAgICB7CiAgICAgICAgIHZhciBjdXJz
b3JPbkVudGVyID0gY3Vyc29yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VUb2tlbml6ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZVRva2VuaXplci5qcwppbmRleCBiYjQ0YTg2Li5lNzRiZTYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVRva2VuaXpl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVRva2Vu
aXplci5qcwpAQCAtOTAsNyArOTAsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJl
Z2lzdHJ5LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHRva2VuaXplciA9IHRoaXMuX3Rva2Vu
aXplcnNbdG9rZW5pemVyQ2xhc3NdOwogICAgICAgICBpZiAoIXRva2VuaXplcikgewogICAgICAg
ICAgICAgdG9rZW5pemVyID0gbmV3IFdlYkluc3BlY3Rvclt0b2tlbml6ZXJDbGFzc10oKTsKLSAg
ICAgICAgICAgIHRoaXMuX3Rva2VuaXplcnNbbWltZVR5cGVdID0gdG9rZW5pemVyOworICAgICAg
ICAgICAgdGhpcy5fdG9rZW5pemVyc1t0b2tlbml6ZXJDbGFzc10gPSB0b2tlbml6ZXI7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIHRva2VuaXplcjsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92566</attachid>
            <date>2011-05-06 03:16:50 -0700</date>
            <delta_ts>2011-05-06 03:29:15 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19227</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMWFjM2UyLi4yZmM2MDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTEtMDUtMDYgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZml4IGluY3JlbWVudGFsIGh0bWwgaGlnaGxpZ2h0LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxNjMKKworICAgICAgICBTb3VyY2VU
b2tlbml6ZXJzIGZvciBodG1sLCBqcywgYW5kIGNzcyBhcmUgZGVjbGFyZWQgdG8gYmUgc3RhdGVs
ZXNzLiBIb3dldmVyIHRoZXkgc3RvcmUgc29tZSBzdGF0ZSBpbgorICAgICAgICB2YXJpb3VzIHdh
eXMgKGxpa2UgdXNpbmcgX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplciBmaWVsZCBpbiBodG1s
IHRva2VuaXplciwgb3IgbW9kaWZ5aW5nICJzdGF0aWMiCisgICAgICAgIGluaXRpYWxDb25kaXRp
b24gb2JqZWN0IHZpYSBjb25kaXRpb24gbGluaykuIFRoaXMgYWxsIHdvcmtlZCBiZWNhdXNlIG9m
IGFub3RoZXIgYnVnIGluIHRva2VuaXplcnMgcmVnaXN0cnkKKyAgICAgICAgdGhhdCBhbHdheXMg
cmV0dXJuZWQgbmV3IHRva2VuaXplciBvYmplY3QuCisgICAgICAgIEZvciBpbmNyZW1lbnRhbCBo
aWdobGlnaHRpbmcsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzdHJpbmdpZnkgdG9rZW5pemVycyBz
dGF0ZSBhbmQgdGhlbiByZXN0b3JlIHRoZQorICAgICAgICBzdGF0ZSBmcm9tIHN0cmluZy4gVGhh
dCdzIHdoeSB3ZSBuZWVkIHRva2VuaXplcnMgdG8gYmUgdHJ1bHkgc3RhdGVsZXNzLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TeW50YXhIaWdobGlnaHRlci5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01TeW50YXhIaWdobGlnaHRlci5wcm90b3R5cGUuc3ludGF4SGln
aGxpZ2h0Tm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tl
bml6ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VDU1NUb2tlbml6ZXIucHJvdG90eXBlLmNyZWF0ZUlu
aXRpYWxDb25kaXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NT
VG9rZW5pemVyLnJlMmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRN
TFRva2VuaXplci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5j
cmVhdGVJbml0aWFsQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1M
VG9rZW5pemVyLnByb3RvdHlwZS5zZXQgbGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUuZ2V0IF9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBl
LmdldCBfaW50ZXJuYWxDU1NUb2tlbml6ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnNjcmlwdFN0YXJ0ZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnN0eWxlU2hlZXRTdGFydGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5uZXh0
VG9rZW4pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXpl
ci5yZTJqczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFTY3JpcHRU
b2tlbml6ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2Vu
aXplcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5w
cm90b3R5cGUuY3JlYXRlSW5pdGlhbENvbmRpdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLnJlMmpzOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlVG9rZW5pemVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5wcm90b3R5cGUuZ2V0VG9rZW5pemVyKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9oaWdobGln
aHRMaW5lcyk6CisKIDIwMTEtMDUtMDUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5bnRheEhpZ2hsaWdodGVyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TeW50YXhIaWdobGlnaHRl
ci5qcwppbmRleCAwNzIzM2QzLi5jZjViOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN5bnRheEhpZ2hsaWdodGVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3ludGF4SGlnaGxpZ2h0ZXIuanMKQEAgLTQ0
LDcgKzQ0LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN5bnRheEhpZ2hsaWdodGVyLnByb3RvdHlwZSA9
IHsKIAogICAgIHN5bnRheEhpZ2hsaWdodE5vZGU6IGZ1bmN0aW9uKG5vZGUpCiAgICAgewotICAg
ICAgICB0aGlzLl90b2tlbml6ZXIuY29uZGl0aW9uID0gdGhpcy5fdG9rZW5pemVyLmluaXRpYWxD
b25kaXRpb247CisgICAgICAgIHRoaXMuX3Rva2VuaXplci5jb25kaXRpb24gPSB0aGlzLl90b2tl
bml6ZXIuY3JlYXRlSW5pdGlhbENvbmRpdGlvbigpOwogICAgICAgICB2YXIgbGluZXMgPSBub2Rl
LnRleHRDb250ZW50LnNwbGl0KCJcbiIpOwogICAgICAgICBub2RlLnJlbW92ZUNoaWxkcmVuKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Q1NTVG9rZW5pemVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VDU1NUb2tlbml6ZXIuanMKaW5kZXggZWI2MzMyNC4uOGQzYzVhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIu
anMKQEAgLTEsNCArMSw0IEBACi0vKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gTW9uIERl
YyAyMCAxODo0NDozMCAyMDEwICovCisvKiBHZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gRnJp
IE1heSAgNiAxMzo0NjozNCAyMDExICovCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtNDUsNyArNDUsNyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rv
ci5Tb3VyY2VUb2tlbml6ZXIuY2FsbCh0aGlzKTsKIAotICAgIHRoaXMuX3Byb3BlcnR5S2V5d29y
ZHMgPSBXZWJJbnNwZWN0b3IuY3NzTmFtZUNvbXBsZXRpb25zID8gV2ViSW5zcGVjdG9yLmNzc05h
bWVDb21wbGV0aW9ucy5rZXlTZXQoKSA6IHt9OworICAgIHRoaXMuX3Byb3BlcnR5S2V5d29yZHMg
PSBXZWJJbnNwZWN0b3IuY3NzTmFtZUNvbXBsZXRpb25zLmtleVNldCgpOwogCiAgICAgdGhpcy5f
dmFsdWVLZXl3b3JkcyA9IFsKICAgICAgICAgImFib3ZlIiwgImFic29sdXRlIiwgImFjdGl2ZWJv
cmRlciIsICJhY3RpdmVjYXB0aW9uIiwgImFmYXIiLCAiYWZ0ZXItd2hpdGUtc3BhY2UiLCAiYWhl
YWQiLCAiYWxpYXMiLCAiYWxsIiwgImFsbC1zY3JvbGwiLApAQCAtMTE4LDEwICsxMTgsMTUgQEAg
V2ViSW5zcGVjdG9yLlNvdXJjZUNTU1Rva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmNh
c2VfRFNUUklORyA9IDEwMDM7CiAgICAgdGhpcy5jYXNlX1NTVFJJTkcgPSAxMDA0OwogCi0gICAg
dGhpcy5pbml0aWFsQ29uZGl0aW9uID0geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlv
bnMuSU5JVElBTCwgcGFyc2VDb25kaXRpb246IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFM
IH0KKyAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuY3JlYXRlSW5pdGlhbENvbmRpdGlvbigpOwog
fQogCiBXZWJJbnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKKyAgICBj
cmVhdGVJbml0aWFsQ29uZGl0aW9uOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
eyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCwgcGFyc2VDb25kaXRp
b246IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMIH07CisgICAgfSwKKwogICAgIF9zdHJp
bmdUb2tlbjogZnVuY3Rpb24oY3Vyc29yLCBzdHJpbmdFbmRzKQogICAgIHsKICAgICAgICAgaWYg
KHRoaXMuX2lzUHJvcGVydHlWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIucmUyanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqcwppbmRleCAxYjg0
YjQzLi5lZWZiYjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5yZTJqcwpAQCAtMTE3LDEwICsxMTcsMTUg
QEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNTU1Rva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICB0aGlz
LmNhc2VfRFNUUklORyA9IDEwMDM7CiAgICAgdGhpcy5jYXNlX1NTVFJJTkcgPSAxMDA0OwogCi0g
ICAgdGhpcy5pbml0aWFsQ29uZGl0aW9uID0geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRp
dGlvbnMuSU5JVElBTCwgcGFyc2VDb25kaXRpb246IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklU
SUFMIH0KKyAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuY3JlYXRlSW5pdGlhbENvbmRpdGlvbigp
OwogfQogCiBXZWJJbnNwZWN0b3IuU291cmNlQ1NTVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKKyAg
ICBjcmVhdGVJbml0aWFsQ29uZGl0aW9uOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1
cm4geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCwgcGFyc2VDb25k
aXRpb246IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMIH07CisgICAgfSwKKwogICAgIF9z
dHJpbmdUb2tlbjogZnVuY3Rpb24oY3Vyc29yLCBzdHJpbmdFbmRzKQogICAgIHsKICAgICAgICAg
aWYgKHRoaXMuX2lzUHJvcGVydHlWYWx1ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpzCmluZGV4IGU4MTVl
NTkuLjMzYjEzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlSFRNTFRva2VuaXplci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMKQEAgLTEsNCArMSw0IEBACi0vKiBHZW5l
cmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gVGh1IEFwciAxNCAxNTo1MzoxOSAyMDExICovCisvKiBH
ZW5lcmF0ZWQgYnkgcmUyYyAwLjEzLjUgb24gRnJpIE1heSAgNiAxMzo0NzowNiAyMDExICovCiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgpAQCAtNzEsMTkgKzcxLDIzIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVy
ID0gZnVuY3Rpb24oKQogICAgICAgICBTVFlMRTogMzIKICAgICB9OwogCi0gICAgdGhpcy5pbml0
aWFsQ29uZGl0aW9uID0geyBsZXhDb25kaXRpb246IHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElB
TCwgcGFyc2VDb25kaXRpb246IHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMIH07Ci0gICAg
dGhpcy5jb25kaXRpb24gPSB0aGlzLmluaXRpYWxDb25kaXRpb247CisgICAgdGhpcy5jb25kaXRp
b24gPSB0aGlzLmNyZWF0ZUluaXRpYWxDb25kaXRpb24oKTsKIH0KIAogV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0geworICAgIGNyZWF0ZUluaXRpYWxDb25kaXRp
b246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB7IGxleENvbmRpdGlvbjogdGhp
cy5fbGV4Q29uZGl0aW9ucy5JTklUSUFMLCBwYXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VDb25k
aXRpb25zLklOSVRJQUwgfTsKKyAgICB9LAorCiAgICAgc2V0IGxpbmUobGluZSkgewotICAgICAg
ICBpZiAodGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgIGlmICh0
aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uKSB7CiAg
ICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvc2NyaXB0L2kuZXhlYyhsaW5lKTsKICAgICAgICAg
ICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplci5saW5lID0gbGluZS5zdWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpOwogICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9r
ZW5pemVyLmxpbmUgPSBsaW5lOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ludGVybmFsQ1NT
VG9rZW5pemVyKSB7CisgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFs
Q1NTVG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvc3R5
bGUvaS5leGVjKGxpbmUpOwogICAgICAgICAgICAgaWYgKG1hdGNoKSB7CiAgICAgICAgICAgICAg
ICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIG1h
dGNoLmluZGV4KTsKQEAgLTEzOSwxMiArMTQzLDE5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1M
VG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuICJodG1sLWF0dHJpYnV0ZS12
YWx1ZSI7CiAgICAgfSwKIAorICAgIGdldCBfaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lz
dHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2phdmFzY3JpcHQiKTsKKyAgICB9
LAorCisgICAgZ2V0IF9pbnRlcm5hbENTU1Rva2VuaXplcigpCisgICAgeworICAgICAgICByZXR1
cm4gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdl
dFRva2VuaXplcigidGV4dC9jc3MiKTsKKyAgICB9LAorCiAgICAgc2NyaXB0U3RhcnRlZDogZnVu
Y3Rpb24oY3Vyc29yKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbEphdmFTY3Jp
cHRUb2tlbml6ZXIpIHsKLSAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2Vu
aXplciA9IFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2Uo
KS5nZXRUb2tlbml6ZXIoInRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICAgICAgdGhpcy5fY29u
ZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFsQ29uZGl0aW9uOwotICAgICAgICB9CisgICAg
ICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24g
PSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuY3JlYXRlSW5pdGlhbENvbmRpdGlv
bigpOwogICAgIH0sCiAKICAgICBzY3JpcHRFbmRlZDogZnVuY3Rpb24oY3Vyc29yKQpAQCAtMTUz
LDEwICsxNjQsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUg
PSB7CiAKICAgICBzdHlsZVNoZWV0U3RhcnRlZDogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplcikgewotICAgICAgICAgICAgdGhp
cy5faW50ZXJuYWxDU1NUb2tlbml6ZXIgPSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJl
Z2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2NzcyIpOwotICAgICAgICAg
ICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uID0gdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKLSAgICAgICAgfQorICAgICAg
ICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9p
bnRlcm5hbENTU1Rva2VuaXplci5jcmVhdGVJbml0aWFsQ29uZGl0aW9uKCk7CiAgICAgfSwKIAog
ICAgIHN0eWxlU2hlZXRFbmRlZDogZnVuY3Rpb24oY3Vyc29yKQpAQCAtMTY1LDcgKzE3Myw3IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIG5l
eHRUb2tlbjogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2ludGVy
bmFsSmF2YVNjcmlwdFRva2VuaXplcikgeworICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLmlu
dGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgLy8gUmUt
c2V0IGxpbmUgdG8gZm9yY2UgPC9zY3JpcHQ+IGRldGVjdGlvbiBmaXJzdC4KICAgICAgICAgICAg
IHRoaXMubGluZSA9IHRoaXMuX2xpbmU7CiAgICAgICAgICAgICBpZiAoY3Vyc29yICE9PSB0aGlz
Ll9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuX2xpbmUubGVuZ3RoKSB7CkBAIC0xNzYsOCAr
MTg0LDggQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6
ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuY29uZGl0aW9u
OwogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYg
KGN1cnNvciAhPT0gdGhpcy5fbGluZS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcjsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlz
Ll9pbnRlcm5hbENTU1Rva2VuaXplcikgeworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9j
b25kaXRpb24uaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICB9
IGVsc2UgaWYgKHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbikg
ewogICAgICAgICAgICAgLy8gUmUtc2V0IGxpbmUgdG8gZm9yY2UgPC9zdHlsZT4gZGV0ZWN0aW9u
IGZpcnN0LgogICAgICAgICAgICAgdGhpcy5saW5lID0gdGhpcy5fbGluZTsKICAgICAgICAgICAg
IGlmIChjdXJzb3IgIT09IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLl9saW5lLmxlbmd0aCkg
ewpAQCAtMTg4LDcgKzE5Niw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NU
b2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5jb25kaXRpb247
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAo
Y3Vyc29yICE9PSB0aGlzLl9saW5lLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhp
cy5faW50ZXJuYWxDU1NUb2tlbml6ZXI7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2Nv
bmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbjsKICAgICAgICAgfQogCiAgICAg
ICAgIHZhciBjdXJzb3JPbkVudGVyID0gY3Vyc29yOwpAQCAtNTg1LDYgKzU5Myw3IEBAIGNhc2Ug
ODM6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0g
Imh0bWwtdGFnIjsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29u
ZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMuc3R5bGVTaGVldEVuZGVkKGN1cnNvciAtIDcpOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gY3Vyc29yOwogICAgICAgICAgICAgICAgIH0KIC8qICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIucmUyanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIucmUyanMKaW5kZXggMTdjMjBi
Ni4uZWZkOTkwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcwpAQCAtNzAsMTkgKzcwLDIzIEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyID0gZnVuY3Rpb24oKQogICAgICAgICBT
VFlMRTogMzIKICAgICB9OwogCi0gICAgdGhpcy5pbml0aWFsQ29uZGl0aW9uID0geyBsZXhDb25k
aXRpb246IHRoaXMuX2xleENvbmRpdGlvbnMuSU5JVElBTCwgcGFyc2VDb25kaXRpb246IHRoaXMu
X3BhcnNlQ29uZGl0aW9ucy5JTklUSUFMIH07Ci0gICAgdGhpcy5jb25kaXRpb24gPSB0aGlzLmlu
aXRpYWxDb25kaXRpb247CisgICAgdGhpcy5jb25kaXRpb24gPSB0aGlzLmNyZWF0ZUluaXRpYWxD
b25kaXRpb24oKTsKIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90
eXBlID0geworICAgIGNyZWF0ZUluaXRpYWxDb25kaXRpb246IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB7IGxleENvbmRpdGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5JTklUSUFM
LCBwYXJzZUNvbmRpdGlvbjogdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUwgfTsKKyAgICB9
LAorCiAgICAgc2V0IGxpbmUobGluZSkgewotICAgICAgICBpZiAodGhpcy5faW50ZXJuYWxKYXZh
U2NyaXB0VG9rZW5pemVyKSB7CisgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxK
YXZhU2NyaXB0VG9rZW5pemVyQ29uZGl0aW9uKSB7CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSAv
PFwvc2NyaXB0L2kuZXhlYyhsaW5lKTsKICAgICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAg
ICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5saW5lID0gbGluZS5z
dWJzdHJpbmcoMCwgbWF0Y2guaW5kZXgpOwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyLmxpbmUgPSBsaW5lOwotICAg
ICAgICB9IGVsc2UgaWYgKHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyKSB7CisgICAgICAgIH0g
ZWxzZSBpZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uKSB7
CiAgICAgICAgICAgICB2YXIgbWF0Y2ggPSAvPFwvc3R5bGUvaS5leGVjKGxpbmUpOwogICAgICAg
ICAgICAgaWYgKG1hdGNoKSB7CiAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tl
bml6ZXIubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIG1hdGNoLmluZGV4KTsKQEAgLTEzOCwxMiAr
MTQyLDE5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgcmV0dXJuICJodG1sLWF0dHJpYnV0ZS12YWx1ZSI7CiAgICAgfSwKIAorICAgIGdl
dCBfaW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBX
ZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9r
ZW5pemVyKCJ0ZXh0L2phdmFzY3JpcHQiKTsKKyAgICB9LAorCisgICAgZ2V0IF9pbnRlcm5hbENT
U1Rva2VuaXplcigpCisgICAgeworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlNvdXJjZVRv
a2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9jc3MiKTsK
KyAgICB9LAorCiAgICAgc2NyaXB0U3RhcnRlZDogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIpIHsKLSAgICAgICAg
ICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3Vy
Y2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvamF2
YXNjcmlwdCIpOwotICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5p
bml0aWFsQ29uZGl0aW9uOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRl
cm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbEphdmFTY3Jp
cHRUb2tlbml6ZXIuY3JlYXRlSW5pdGlhbENvbmRpdGlvbigpOwogICAgIH0sCiAKICAgICBzY3Jp
cHRFbmRlZDogZnVuY3Rpb24oY3Vyc29yKQpAQCAtMTUyLDEwICsxNjMsNyBAQCBXZWJJbnNwZWN0
b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAKICAgICBzdHlsZVNoZWV0U3Rh
cnRlZDogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5h
bENTU1Rva2VuaXplcikgewotICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIg
PSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0
VG9rZW5pemVyKCJ0ZXh0L2NzcyIpOwotICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVy
bmFsQ1NTVG9rZW5pemVyQ29uZGl0aW9uID0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5p
dGlhbENvbmRpdGlvbjsKLSAgICAgICAgfQorICAgICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJu
YWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplci5jcmVh
dGVJbml0aWFsQ29uZGl0aW9uKCk7CiAgICAgfSwKIAogICAgIHN0eWxlU2hlZXRFbmRlZDogZnVu
Y3Rpb24oY3Vyc29yKQpAQCAtMTY0LDcgKzE3Miw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1M
VG9rZW5pemVyLnByb3RvdHlwZSA9IHsKIAogICAgIG5leHRUb2tlbjogZnVuY3Rpb24oY3Vyc29y
KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcikg
eworICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
ckNvbmRpdGlvbikgewogICAgICAgICAgICAgLy8gUmUtc2V0IGxpbmUgdG8gZm9yY2UgPC9zY3Jp
cHQ+IGRldGVjdGlvbiBmaXJzdC4KICAgICAgICAgICAgIHRoaXMubGluZSA9IHRoaXMuX2xpbmU7
CiAgICAgICAgICAgICBpZiAoY3Vyc29yICE9PSB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tl
bml6ZXIuX2xpbmUubGVuZ3RoKSB7CkBAIC0xNzUsOCArMTgzLDggQEAgV2ViSW5zcGVjdG9yLlNv
dXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRoaXMuX2Nv
bmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRl
cm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuY29uZGl0aW9uOwogICAgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciAhPT0gdGhpcy5fbGluZS5s
ZW5ndGgpCi0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRv
a2VuaXplcjsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplcikg
eworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxKYXZhU2Ny
aXB0VG9rZW5pemVyQ29uZGl0aW9uOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmRpdGlv
bi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbikgewogICAgICAgICAgICAgLy8gUmUtc2V0
IGxpbmUgdG8gZm9yY2UgPC9zdHlsZT4gZGV0ZWN0aW9uIGZpcnN0LgogICAgICAgICAgICAgdGhp
cy5saW5lID0gdGhpcy5fbGluZTsKICAgICAgICAgICAgIGlmIChjdXJzb3IgIT09IHRoaXMuX2lu
dGVybmFsQ1NTVG9rZW5pemVyLl9saW5lLmxlbmd0aCkgewpAQCAtMTg3LDcgKzE5NSw3IEBAIFdl
Ykluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICB0aGlzLl9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlz
Ll9pbnRlcm5hbENTU1Rva2VuaXplci5jb25kaXRpb247CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yICE9PSB0aGlzLl9saW5lLmxl
bmd0aCkKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXI7
CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2Vu
aXplckNvbmRpdGlvbjsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBjdXJzb3JPbkVudGVyID0g
Y3Vyc29yOwpAQCAtMjg0LDcgKzI5Miw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5p
emVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
IHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
Y29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRpb25zLklOSVRJQUw7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVFbmRlZChjdXJzb3IgLSA3KTsKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5zdHlsZVNoZWV0RW5kZWQoY3Vyc29yIC0gNyk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFTY3JpcHRU
b2tlbml6ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUph
dmFTY3JpcHRUb2tlbml6ZXIuanMKaW5kZXggZmJkNDRkNy4uNTQ4Mzg0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5p
emVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2
YVNjcmlwdFRva2VuaXplci5qcwpAQCAtMSw0ICsxLDQgQEAKLS8qIEdlbmVyYXRlZCBieSByZTJj
IDAuMTMuNSBvbiBUaHUgRmViIDI1IDIxOjQ0OjU1IDIwMTAgKi8KKy8qIEdlbmVyYXRlZCBieSBy
ZTJjIDAuMTMuNSBvbiBGcmkgTWF5ICA2IDEzOjU2OjEzIDIwMTEgKi8KIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC02OCwx
MSArNjgsMTUgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIgPSBmdW5j
dGlvbigpCiAgICAgdGhpcy5jYXNlX1NTVFJJTkcgPSAxMDA0OwogICAgIHRoaXMuY2FzZV9SRUdF
WCA9IDEwMDU7CiAKLSAgICB0aGlzLmluaXRpYWxDb25kaXRpb24gPSB7IGxleENvbmRpdGlvbjog
dGhpcy5fbGV4Q29uZGl0aW9ucy5OT0RJViB9Ci0gICAgdGhpcy5jb25kaXRpb24gPSB0aGlzLmlu
aXRpYWxDb25kaXRpb247CisgICAgdGhpcy5jb25kaXRpb24gPSB0aGlzLmNyZWF0ZUluaXRpYWxD
b25kaXRpb24oKTsKIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUphdmFTY3JpcHRUb2tlbml6ZXIu
cHJvdG90eXBlID0geworICAgIGNyZWF0ZUluaXRpYWxDb25kaXRpb246IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB7IGxleENvbmRpdGlvbjogdGhpcy5fbGV4Q29uZGl0aW9ucy5O
T0RJViB9OworICAgIH0sCisKICAgICBuZXh0VG9rZW46IGZ1bmN0aW9uKGN1cnNvcikKICAgICB7
CiAgICAgICAgIHZhciBjdXJzb3JPbkVudGVyID0gY3Vyc29yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLnJl
MmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0
VG9rZW5pemVyLnJlMmpzCmluZGV4IGFlNzFlZmUuLjEzNjA0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5y
ZTJqcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFT
Y3JpcHRUb2tlbml6ZXIucmUyanMKQEAgLTY3LDExICs2NywxNSBAQCBXZWJJbnNwZWN0b3IuU291
cmNlSmF2YVNjcmlwdFRva2VuaXplciA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmNhc2VfU1NUUklO
RyA9IDEwMDQ7CiAgICAgdGhpcy5jYXNlX1JFR0VYID0gMTAwNTsKIAotICAgIHRoaXMuaW5pdGlh
bENvbmRpdGlvbiA9IHsgbGV4Q29uZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLk5PRElWIH0K
LSAgICB0aGlzLmNvbmRpdGlvbiA9IHRoaXMuaW5pdGlhbENvbmRpdGlvbjsKKyAgICB0aGlzLmNv
bmRpdGlvbiA9IHRoaXMuY3JlYXRlSW5pdGlhbENvbmRpdGlvbigpOwogfQogCiBXZWJJbnNwZWN0
b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5wcm90b3R5cGUgPSB7CisgICAgY3JlYXRlSW5p
dGlhbENvbmRpdGlvbjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsgbGV4Q29u
ZGl0aW9uOiB0aGlzLl9sZXhDb25kaXRpb25zLk5PRElWIH07CisgICAgfSwKKwogICAgIG5leHRU
b2tlbjogZnVuY3Rpb24oY3Vyc29yKQogICAgIHsKICAgICAgICAgdmFyIGN1cnNvck9uRW50ZXIg
PSBjdXJzb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZVRva2VuaXplci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U291cmNlVG9rZW5pemVyLmpzCmluZGV4IGJiNDRhODYuLmU3NGJlNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9rZW5pemVyLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVG9rZW5pemVyLmpzCkBA
IC05MCw3ICs5MCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkucHJv
dG90eXBlID0gewogICAgICAgICB2YXIgdG9rZW5pemVyID0gdGhpcy5fdG9rZW5pemVyc1t0b2tl
bml6ZXJDbGFzc107CiAgICAgICAgIGlmICghdG9rZW5pemVyKSB7CiAgICAgICAgICAgICB0b2tl
bml6ZXIgPSBuZXcgV2ViSW5zcGVjdG9yW3Rva2VuaXplckNsYXNzXSgpOwotICAgICAgICAgICAg
dGhpcy5fdG9rZW5pemVyc1ttaW1lVHlwZV0gPSB0b2tlbml6ZXI7CisgICAgICAgICAgICB0aGlz
Ll90b2tlbml6ZXJzW3Rva2VuaXplckNsYXNzXSA9IHRva2VuaXplcjsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gdG9rZW5pemVyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKaW5kZXgg
NzU0NTNmYS4uZTUyZjg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKQEAgLTE0MSw3ICsxNDEs
NyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKICAg
ICB7CiAgICAgICAgIC8vIFJlc3RvcmUgaGlnaGxpZ2h0ZXIgY29udGV4dCB0YWtlbiBmcm9tIHBy
ZXZpb3VzIGxpbmUuCiAgICAgICAgIHZhciBzdGF0ZSA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRy
aWJ1dGUoc3RhcnRMaW5lIC0gMSwgImhpZ2hsaWdodCIpOwotICAgICAgICB2YXIgcG9zdENvbmRp
dGlvblN0cmluZ2lmaWVkID0gc3RhdGUgPyBzdGF0ZS5wb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQg
OiBKU09OLnN0cmluZ2lmeSh0aGlzLl90b2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbik7CisgICAg
ICAgIHZhciBwb3N0Q29uZGl0aW9uU3RyaW5naWZpZWQgPSBzdGF0ZSA/IHN0YXRlLnBvc3RDb25k
aXRpb25TdHJpbmdpZmllZCA6IEpTT04uc3RyaW5naWZ5KHRoaXMuX3Rva2VuaXplci5jcmVhdGVJ
bml0aWFsQ29uZGl0aW9uKCkpOwogCiAgICAgICAgIHZhciB0b2tlbnNDb3VudCA9IDA7CiAgICAg
ICAgIGZvciAodmFyIGxpbmVOdW1iZXIgPSBzdGFydExpbmU7IGxpbmVOdW1iZXIgPCBlbmRMaW5l
OyArK2xpbmVOdW1iZXIpIHsK
</data>
<flag name="review"
          id="85557"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>