<?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>45759</bug_id>
          
          <creation_ts>2010-09-14 09:22:17 -0700</creation_ts>
          <short_desc>Web Inspector: small refactoring for monitoringXHR flag.</short_desc>
          <delta_ts>2010-09-15 04:21:36 -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>
          
          <blocked>45308</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278962</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-09-14 09:22:17 -0700</bug_when>
    <thetext>Our Inspector API is quite big and can be simplified a bit.
        As example for single backend property like monitoringXHR we
        have 4 functions in the API. Two functions for frontend
        enableMonitoringXHR/disableMonitoringXHR and
        two functions for backend monitoringXHRWasEnabled and
        monitoringXHRWasDisabled. These functions can be replaced by
        one setMonitoringXHR with one &apos;in&apos; and one &apos;out&apos; argument.
        The initial state of the flag can be gathered from backend
        with help of getSettings call where additional section was
        added for backend state information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278984</commentid>
    <comment_count>1</comment_count>
      <attachid>67568</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-09-14 09:52:24 -0700</bug_when>
    <thetext>Created attachment 67568
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278987</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-14 09:57:34 -0700</bug_when>
    <thetext>The diff is corrupted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278989</commentid>
    <comment_count>3</comment_count>
      <attachid>67570</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-09-14 09:59:39 -0700</bug_when>
    <thetext>Created attachment 67570
[patch] initial version. text version :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279001</commentid>
    <comment_count>4</comment_count>
      <attachid>67570</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-14 10:17:35 -0700</bug_when>
    <thetext>Comment on attachment 67570
[patch] initial version. text version :).

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

&gt; WebCore/inspector/InspectorController.cpp:-130
&gt; -static const char* const monitoringXHRSettingName = &quot;xhrMonitor&quot;;
Please make sure that it won&apos;t break existing clients.

&gt; WebCore/inspector/InspectorController.cpp:251
&gt; +String InspectorController::getBackendState()
The name sounds too general.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279500</commentid>
    <comment_count>5</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-09-15 04:21:36 -0700</bug_when>
    <thetext>Comments addressed.

Committed r67547
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/front-end/ConsoleView.js
	M	WebCore/inspector/front-end/Settings.js
	M	WebCore/inspector/front-end/inspector.js
	M	WebCore/inspector/InspectorController.h
	M	LayoutTests/http/tests/inspector/console-xhr-logging.html
	M	LayoutTests/inspector/report-API-errors.html
	M	LayoutTests/ChangeLog
r67547 = 28831a1ed2fb529f442aa99d1ddbb5a1f5e0423f (refs/remotes/trunk)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67568</attachid>
            <date>2010-09-14 09:52:24 -0700</date>
            <delta_ts>2010-09-14 09:59:39 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14533</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">G1sxbWRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cbW20KG1sxbWluZGV4IDRmMDU1ZmQuLmRkNWYwZGMgMTAwNjQ0G1ttChtbMW0tLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cbW20KG1sxbSsrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZxtb
bQobWzM2bUBAIC0xLDMgKzEsMjUgQEAbW20KG1szMm0rG1ttG1szMm0yMDEwLTA5LTE0ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4bW20KG1szMm0rG1ttChtbMzJtKxtb
bRtbMzJtICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4bW20KG1szMm0rG1ttChtb
MzJtKxtbbRtbMzJtICAgICAgICBXZWJJbnNwZWN0b3I6IHNtYWxsIHJlZmFjdG9yaW5nIGZvciBt
b25pdG9yWEhSIGJhY2tlbmQgcHJvcGVydHkuG1ttChtbMzJtKxtbbQobWzMybSsbW20bWzMybSAg
ICAgICAgT3VyIEluc3BlY3RvciBBUEkgaXMgcXVpdGUgYmlnIGFuZCBjYW4gYmUgc2ltcGxpZmll
ZCBhIGJpdC4bW20KG1szMm0rG1ttG1szMm0gICAgICAgIEFzIGV4YW1wbGUgZm9yIHNpbmdsZSBi
YWNrZW5kIHByb3BlcnR5IGxpa2UgbW9uaXRvcmluZ1hIUiB3ZRtbbQobWzMybSsbW20bWzMybSAg
ICAgICAgaGF2ZSA0IGZ1bmN0aW9ucyBpbiB0aGUgQVBJLiBUd28gZnVuY3Rpb25zIGZvciBmcm9u
dGVuZBtbbQobWzMybSsbW20bWzMybSAgICAgICAgZW5hYmxlTW9uaXRvcmluZ1hIUi9kaXNhYmxl
TW9uaXRvcmluZ1hIUiBhbmQbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHR3byBmdW5jdGlvbnMg
Zm9yIGJhY2tlbmQgbW9uaXRvcmluZ1hIUldhc0VuYWJsZWQgYW5kG1ttChtbMzJtKxtbbRtbMzJt
ICAgICAgICBtb25pdG9yaW5nWEhSV2FzRGlzYWJsZWQuIFRoZXNlIGZ1bmN0aW9ucyBjYW4gYmUg
cmVwbGFjZWQgYnkbW20KG1szMm0rG1ttG1szMm0gICAgICAgIG9uZSBzZXRNb25pdG9yaW5nWEhS
IHdpdGggb25lICdpbicgYW5kIG9uZSAnb3V0JyBhcmd1bWVudC4bW20KG1szMm0rG1ttG1szMm0g
ICAgICAgIFRoZSBpbml0aWFsIHN0YXRlIG9mIHRoZSBmbGFnIGNhbiBiZSBnYXRoZXJlZCBmcm9t
IGJhY2tlbmQbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHdpdGggaGVscCBvZiBnZXRTZXR0aW5n
cyBjYWxsIHdoZXJlIGFkZGl0aW9uYWwgc2VjdGlvbiB3YXMbW20KG1szMm0rG1ttG1szMm0gICAg
ICAgIGFkZGVkIGZvciBiYWNrZW5kIHN0YXRlIGluZm9ybWF0aW9uLhtbbQobWzMybSsbW20KG1sz
Mm0rG1ttG1szMm0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTc1ORtbbQobWzMybSsbW20KG1szMm0rG1ttG1szMm0gICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5odG1sOhtbbQobWzMybSsbW20bWzMybSAgICAg
ICAgKiBpbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbDobW20KG1szMm0rG1ttCiAyMDEw
LTA5LTE0ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+G1ttCiAbW20KICAgICAg
ICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LhtbbQobWzFtZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbBtbbQob
WzFtaW5kZXggODI1ZGMwNS4uMGJkNzU1YiAxMDA3NTUbW20KG1sxbS0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbBtbbQobWzFtKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy5o
dG1sG1ttChtbMzZtQEAgLTQ1LDI2ICs0NSwyOCBAQBtbbSAbW21mdW5jdGlvbiByZXF1ZXN0SGVs
cGVyKG1ldGhvZCwgdXJsKRtbbQogG1ttCiBmdW5jdGlvbiBmcm9udGVuZF9lbmFibGVYTUxIdHRw
UmVxdWVzdExvZ2dpbmcodGVzdENvbnRyb2xsZXIpG1ttCiB7G1ttChtbMzFtLSAgICBJbnNwZWN0
b3JCYWNrZW5kLmVuYWJsZU1vbml0b3JpbmdYSFIoKTsbW20KG1szMm0rG1ttG1szMm0gICAgSW5z
cGVjdG9yQmFja2VuZC5zZXRNb25pdG9yaW5nWEhSKHRydWUsIGZ1bmN0aW9uKG5ld1N0YXR1cykg
extbbQobWzMybSsbW20bWzMybSAgICAgICAgIGlmIChuZXdTdGF0dXMpG1ttChtbMzJtKxtbbRtb
MzJtICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgiZW5hYmxlZCIpOxtbbQob
WzMybSsbW20bWzMybSAgICB9KTsbW20KG1szMm0rG1ttCiAgICAgaWYgKFdlYkluc3BlY3Rvci5t
b25pdG9yaW5nWEhSRW5hYmxlZCkbW20KICAgICAgICAgcmV0dXJuICJlbmFibGVkIjsbW20KIBtb
bQogICAgIHRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsbW20KG1szMW0tICAgIGZyb250
ZW5kX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAibW9uaXRvcmluZ1hIUldhc0VuYWJsZWQiLCBm
dW5jdGlvbigpIHsbW20KG1szMW0tICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgi
ZW5hYmxlZCIpOxtbbQobWzMxbS0gICAgfSk7G1ttCiB9G1ttCiAbW20KIGZ1bmN0aW9uIGZyb250
ZW5kX2Rpc2FibGVYTUxIdHRwUmVxdWVzdExvZ2dpbmcodGVzdENvbnRyb2xsZXIpG1ttCiB7G1tt
ChtbMzFtLSAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc2FibGVNb25pdG9yaW5nWEhSKCk7G1ttChtb
MzJtKxtbbRtbMzJtICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUihmYWxzZSwg
ZnVuY3Rpb24obmV3U3RhdHVzKSB7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBpZiAoIW5ld1N0
YXR1cykbW20KG1szMm0rG1ttG1szMm0gICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCJkaXNhYmxlZCIpOxtbbQobWzMybSsbW20bWzMybSAgICB9KTsbW20KG1szMm0rG1ttCiAg
ICAgaWYgKCFXZWJJbnNwZWN0b3IubW9uaXRvcmluZ1hIUkVuYWJsZWQpG1ttCiAgICAgICAgIHJl
dHVybiAiZGlzYWJsZWQiOxtbbQogG1ttCiAgICAgdGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOxtbbQobWzMxbS0gICAgZnJvbnRlbmRfYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJtb25p
dG9yaW5nWEhSV2FzRGlzYWJsZWQiLCBmdW5jdGlvbigpIHsbW20KG1szMW0tICAgICAgICB0ZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCJkaXNhYmxlZCIpOxtbbQobWzMxbS0gICAgfSk7G1ttCiB9
G1ttCiAbW20KIDwvc2NyaXB0PhtbbQobWzFtZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9yZXBvcnQtQVBJLWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9y
dC1BUEktZXJyb3JzLmh0bWwbW20KG1sxbWluZGV4IDBkZGQ5YjguLmM1ZGNmMWEgMTAwNjQ0G1tt
ChtbMW0tLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbBtb
bQobWzFtKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0bWwb
W20KG1szNm1AQCAtMTQsOCArMTQsOCBAQBtbbSAbW21mdW5jdGlvbiB0ZXN0KCkbW20KICAgICBJ
bnNwZWN0b3JCYWNrZW5kLmVuYWJsZVJlc291cmNlVHJhY2tpbmcoMSk7G1ttCiAgICAgSW5zcGVj
dG9yQmFja2VuZC5lbmFibGVSZXNvdXJjZVRyYWNraW5nKCk7G1ttCiAgICAgSW5zcGVjdG9yQmFj
a2VuZC5lbmFibGVSZXNvdXJjZVRyYWNraW5nKHRydWUsICJub3QgYSBmdW5jdGlvbiIpOxtbbQob
WzMxbS0gICAgSW5zcGVjdG9yQmFja2VuZC5lbmFibGVNb25pdG9yaW5nWEhSKHVuZGVmaW5lZCk7
G1ttChtbMzFtLSAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc2FibGVNb25pdG9yaW5nWEhSKHVuZGVm
aW5lZCk7G1ttChtbMzJtKxtbbRtbMzJtICAgIEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmlu
Z1hIUih0cnVlLCB1bmRlZmluZWQpOxtbbQobWzMybSsbW20bWzMybSAgICBJbnNwZWN0b3JCYWNr
ZW5kLnNldE1vbml0b3JpbmdYSFIoZmFsc2UsIHVuZGVmaW5lZCk7G1ttCiAgICAgV2ViSW5zcGVj
dG9yX3N5bmNEaXNwYXRjaCgneyJ0eXBlIjogImV2ZW50IiwgImRvbWFpbiI6ICJkb20iLCAiZXZl
bnQiOiAic29tZXRoaW5nLXN0cmFuZ2UiLCAiZGF0YSI6IHt9fScpOxtbbQogG1ttCiAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsbW20KG1sxbWRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nG1ttChtbMW1pbmRleCBiZjQ0NzY5Li5lZmFjMzkz
IDEwMDY0NBtbbQobWzFtLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cbW20KG1sxbSsrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nG1ttChtbMzZtQEAgLTEsMyArMSwyOSBAQBtbbQobWzMybSsbW20bWzMybTIw
MTAtMDktMTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPhtbbQobWzMy
bSsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLhtb
bQobWzMybSsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIFdlYkluc3BlY3Rvcjogc21hbGwgcmVm
YWN0b3JpbmcgZm9yIG1vbml0b3JYSFIgYmFja2VuZCBwcm9wZXJ0eS4bW20KG1szMm0rG1ttChtb
MzJtKxtbbRtbMzJtICAgICAgICBPdXIgSW5zcGVjdG9yIEFQSSBpcyBxdWl0ZSBiaWcgYW5kIGNh
biBiZSBzaW1wbGlmaWVkIGEgYml0LhtbbQobWzMybSsbW20bWzMybSAgICAgICAgQXMgZXhhbXBs
ZSBmb3Igc2luZ2xlIGJhY2tlbmQgcHJvcGVydHkgbGlrZSBtb25pdG9yaW5nWEhSIHdlG1ttChtb
MzJtKxtbbRtbMzJtICAgICAgICBoYXZlIDQgZnVuY3Rpb25zIGluIHRoZSBBUEkuIFR3byBmdW5j
dGlvbnMgZm9yIGZyb250ZW5kG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBlbmFibGVNb25pdG9y
aW5nWEhSL2Rpc2FibGVNb25pdG9yaW5nWEhSIGFuZBtbbQobWzMybSsbW20bWzMybSAgICAgICAg
dHdvIGZ1bmN0aW9ucyBmb3IgYmFja2VuZCBtb25pdG9yaW5nWEhSV2FzRW5hYmxlZCBhbmQbW20K
G1szMm0rG1ttG1szMm0gICAgICAgIG1vbml0b3JpbmdYSFJXYXNEaXNhYmxlZC4gVGhlc2UgZnVu
Y3Rpb25zIGNhbiBiZSByZXBsYWNlZCBieRtbbQobWzMybSsbW20bWzMybSAgICAgICAgb25lIHNl
dE1vbml0b3JpbmdYSFIgd2l0aCBvbmUgJ2luJyBhbmQgb25lICdvdXQnIGFyZ3VtZW50LhtbbQob
WzMybSsbW20bWzMybSAgICAgICAgVGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGZsYWcgY2FuIGJl
IGdhdGhlcmVkIGZyb20gYmFja2VuZBtbbQobWzMybSsbW20bWzMybSAgICAgICAgd2l0aCBoZWxw
IG9mIGdldFNldHRpbmdzIGNhbGwgd2hlcmUgYWRkaXRpb25hbCBzZWN0aW9uIHdhcxtbbQobWzMy
bSsbW20bWzMybSAgICAgICAgYWRkZWQgZm9yIGJhY2tlbmQgc3RhdGUgaW5mb3JtYXRpb24uG1tt
ChtbMzJtKxtbbQobWzMybSsbW20bWzMybSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1NzU5G1ttChtbMzJtKxtbbQobWzMybSsbW20bWzMybSAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDobW20KG1szMm0rG1ttG1szMm0gICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOhtbbQobWzMybSsbW20bWzMybSAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOhtbbQobWzMybSsbW20bWzMybSAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOhtbbQobWzMybSsbW20bWzMy
bSAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOhtbbQobWzMybSsbW20b
WzMybSAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczobW20KG1szMm0r
G1ttCiAyMDEwLTA5LTE0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPhtb
bQogG1ttCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuG1ttChtbMW1kaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5pZGwbW20KG1sxbWluZGV4IDE2OWIxODguLjI2ZjI2NTMgMTAwNjQ0G1ttChtb
MW0tLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsG1ttChtbMW0rKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsG1ttChtbMzZtQEAgLTQ0LDggKzQ0LDYgQEAbW20g
G1ttbW9kdWxlIGNvcmUgextbbQogICAgICAgICBbbm90aWZ5XSB2b2lkIGV2YWx1YXRlRm9yVGVz
dEluRnJvbnRlbmQob3V0IGxvbmcgdGVzdENhbGxJZCwgb3V0IFN0cmluZyBzY3JpcHQpOxtbbQog
ICAgICAgICBbbm90aWZ5XSB2b2lkIGRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpOxtbbQogICAgICAg
ICBbbm90aWZ5XSB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQob3V0IFN0cmluZyB1cmwpOxtbbQob
WzMxbS0gICAgICAgIFtub3RpZnldIHZvaWQgbW9uaXRvcmluZ1hIUldhc0VuYWJsZWQoKTsbW20K
G1szMW0tICAgICAgICBbbm90aWZ5XSB2b2lkIG1vbml0b3JpbmdYSFJXYXNEaXNhYmxlZCgpOxtb
bQogICAgICAgICBbbm90aWZ5XSB2b2lkIHJlbW92ZVJlc291cmNlKG91dCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIpOxtbbQogICAgICAgICBbbm90aWZ5XSB2b2lkIHJlc2V0KCk7G1ttCiAgICAg
ICAgIFtub3RpZnldIHZvaWQgcmVzZXRQcm9maWxlc1BhbmVsKCk7G1ttChtbMzZtQEAgLTExMCw4
ICsxMDgsNyBAQBtbbSAbW21tb2R1bGUgY29yZSB7G1ttCiAgICAgICAgIFtoYW5kbGVyPUNvbnRy
b2xsZXJdIHZvaWQgZW5hYmxlU2VhcmNoaW5nRm9yTm9kZSgpOxtbbQogICAgICAgICBbaGFuZGxl
cj1Db250cm9sbGVyXSB2b2lkIGRpc2FibGVTZWFyY2hpbmdGb3JOb2RlKCk7G1ttCiAbW20KG1sz
MW0tICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGVuYWJsZU1vbml0b3JpbmdYSFIo
KTsbW20KG1szMW0tICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGRpc2FibGVNb25p
dG9yaW5nWEhSKCk7G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVy
XSB2b2lkIHNldE1vbml0b3JpbmdYSFIoaW4gYm9vbGVhbiBlbmFibGUsIG91dCBib29sZWFuIG5l
d1N0YXRlKTsbW20KIBtbbQogICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGVuYWJs
ZVJlc291cmNlVHJhY2tpbmcoaW4gYm9vbGVhbiBhbHdheXMpOxtbbQogICAgICAgICBbaGFuZGxl
cj1Db250cm9sbGVyXSB2b2lkIGRpc2FibGVSZXNvdXJjZVRyYWNraW5nKGluIGJvb2xlYW4gYWx3
YXlzKTsbW20KG1sxbWRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwG1tt
ChtbMW1pbmRleCA5MGVmMzQ0Li5hNmQ2Y2Q5IDEwMDY0NBtbbQobWzFtLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAbW20KG1sxbSsrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwG1ttChtbMzZtQEAgLTEyNyw3ICsxMjcsNyBA
QBtbbSAbW21jb25zdCBjaGFyKiBjb25zdCBJbnNwZWN0b3JDb250cm9sbGVyOjpDb25zb2xlUGFu
ZWwgPSAiY29uc29sZSI7G1ttCiBjb25zdCBjaGFyKiBjb25zdCBJbnNwZWN0b3JDb250cm9sbGVy
OjpTY3JpcHRzUGFuZWwgPSAic2NyaXB0cyI7G1ttCiBjb25zdCBjaGFyKiBjb25zdCBJbnNwZWN0
b3JDb250cm9sbGVyOjpQcm9maWxlc1BhbmVsID0gInByb2ZpbGVzIjsbW20KIBtbbQobWzMxbS1z
dGF0aWMgY29uc3QgY2hhciogY29uc3QgbW9uaXRvcmluZ1hIUlNldHRpbmdOYW1lID0gInhock1v
bml0b3IiOxtbbQobWzMybSsbW20bWzMybXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBtb25pdG9y
aW5nWEhSU2V0dGluZ05hbWUgPSAibW9uaXRvcmluZ1hIUkVuYWJsZWQiOxtbbQogG1ttCiBzdGF0
aWMgaW50IGNvbm5lY3RlZEZyb250ZW5kQ291bnQgPSAwOxtbbQogG1ttChtbMzZtQEAgLTI0OCwx
MSArMjQ4LDE5IEBAG1ttIBtbbXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2F2ZVNlc3Npb25T
ZXR0aW5ncyhjb25zdCBTdHJpbmcmIHNldHRpbmdzSlNPTikbW20KICAgICBtX3Nlc3Npb25TZXR0
aW5ncyA9IEluc3BlY3RvclZhbHVlOjpwYXJzZUpTT04oc2V0dGluZ3NKU09OKTsbW20KIH0bW20K
IBtbbQobWzMybSsbW20bWzMybVN0cmluZyBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRCYWNrZW5k
U3RhdGUoKRtbbQobWzMybSsbW20bWzMybXsbW20KG1szMm0rG1ttG1szMm0gICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gcnVudGltZVNldHRpbmdzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsbW20KG1szMm0rG1ttG1szMm0gICAgcnVudGltZVNldHRpbmdzLT5zZXRCb29sZWFuKG1vbml0
b3JpbmdYSFJTZXR0aW5nTmFtZSwgbV9tb25pdG9yaW5nWEhSKTsbW20KG1szMm0rG1ttG1szMm0g
ICAgcmV0dXJuIHJ1bnRpbWVTZXR0aW5ncy0+dG9KU09OU3RyaW5nKCk7G1ttChtbMzJtKxtbbRtb
MzJtfRtbbQobWzMybSsbW20KIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Z2V0U2V0dGluZ3Mo
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHNldHRpbmdzKRtbbQogextbbQogICAgICpzZXR0aW5n
cyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7G1ttCiAgICAgKCpzZXR0aW5ncyktPnNldFN0
cmluZygiYXBwbGljYXRpb24iLCBzZXR0aW5nKGZyb250ZW5kU2V0dGluZ3NTZXR0aW5nTmFtZSgp
KSk7G1ttCiAgICAgKCpzZXR0aW5ncyktPnNldFN0cmluZygic2Vzc2lvbiIsIG1fc2Vzc2lvblNl
dHRpbmdzLT50b0pTT05TdHJpbmcoKSk7G1ttChtbMzJtKxtbbRtbMzJtICAgICgqc2V0dGluZ3Mp
LT5zZXRTdHJpbmcoImJhY2tlbmQiLCBnZXRCYWNrZW5kU3RhdGUoKSk7G1ttCiB9G1ttCiAbW20K
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdChOb2RlKiBub2RlKRtbbQobWzM2bUBA
IC00NjAsMTggKzQ2OCwxMyBAQBtbbSAbW212b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFNl
YXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKRtbbQogICAgIH0bW20KIH0bW20KIBtbbQobWzMx
bS12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldE1vbml0b3JpbmdYSFIoYm9vbCBlbmFibGVk
KRtbbQobWzMybSsbW20bWzMybXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0TW9uaXRvcmlu
Z1hIUihib29sIGVuYWJsZWQsIGJvb2wqIG5ld1N0YXRlKRtbbQogextbbQobWzMybSsbW20bWzMy
bSAgICAqbmV3U3RhdGUgPSBlbmFibGVkOxtbbQogICAgIGlmIChtX21vbml0b3JpbmdYSFIgPT0g
ZW5hYmxlZCkbW20KICAgICAgICAgcmV0dXJuOxtbbQogICAgIG1fbW9uaXRvcmluZ1hIUiA9IGVu
YWJsZWQ7G1ttCiAgICAgc2V0U2V0dGluZyhtb25pdG9yaW5nWEhSU2V0dGluZ05hbWUsIGVuYWJs
ZWQgPyAidHJ1ZSIgOiAiZmFsc2UiKTsbW20KG1szMW0tICAgIGlmIChtX2Zyb250ZW5kKSB7G1tt
ChtbMzFtLSAgICAgICAgaWYgKGVuYWJsZWQpG1ttChtbMzFtLSAgICAgICAgICAgIG1fZnJvbnRl
bmQtPm1vbml0b3JpbmdYSFJXYXNFbmFibGVkKCk7G1ttChtbMzFtLSAgICAgICAgZWxzZRtbbQob
WzMxbS0gICAgICAgICAgICBtX2Zyb250ZW5kLT5tb25pdG9yaW5nWEhSV2FzRGlzYWJsZWQoKTsb
W20KG1szMW0tICAgIH0bW20KIH0bW20KIBtbbQogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpj
b25uZWN0RnJvbnRlbmQoKRtbbQobWzM2bUBAIC02MTMsOCArNjE2LDYgQEAbW20gG1ttdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKRtbbQogICAgIGlmICht
X3NlYXJjaGluZ0Zvck5vZGUpG1ttCiAgICAgICAgIG1fZnJvbnRlbmQtPnNlYXJjaGluZ0Zvck5v
ZGVXYXNFbmFibGVkKCk7G1ttCiAbW20KG1szMW0tICAgIGlmIChtX21vbml0b3JpbmdYSFIpG1tt
ChtbMzFtLSAgICAgICAgbV9mcm9udGVuZC0+bW9uaXRvcmluZ1hIUldhc0VuYWJsZWQoKTsbW20K
IBtbbQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKRtbbQogICAgIGlmIChtX3Byb2Zp
bGVyQWdlbnQtPmVuYWJsZWQoKSkbW20KG1sxbWRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmgbW20KG1sxbWluZGV4IDA3OWNmNTUuLjAxMGYyYmQgMTAwNjQ0G1ttChtbMW0tLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgbW20KG1sxbSsrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaBtbbQobWzM2bUBAIC0yNzAsNiAr
MjcwLDcgQEAbW20gG1ttcHVibGljOhtbbQogG1ttCiBwcml2YXRlOhtbbQogICAgIHN0YXRpYyBj
b25zdCBTdHJpbmcmIGZyb250ZW5kU2V0dGluZ3NTZXR0aW5nTmFtZSgpOxtbbQobWzMybSsbW20b
WzMybSAgICBTdHJpbmcgZ2V0QmFja2VuZFN0YXRlKCk7G1ttCiAbW20KICAgICBmcmllbmQgY2xh
c3MgSW5zcGVjdG9yQmFja2VuZDsbW20KICAgICBmcmllbmQgY2xhc3MgSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXI7G1ttChtbMzZtQEAgLTI4Myw5ICsyODQsNyBAQBtbbSAbW21wcml2YXRlOhtb
bQogICAgIHZvaWQgZW5hYmxlU2VhcmNoaW5nRm9yTm9kZSgpIHsgc2V0U2VhcmNoaW5nRm9yTm9k
ZSh0cnVlKTsgfRtbbQogICAgIHZvaWQgZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUoKSB7IHNldFNl
YXJjaGluZ0Zvck5vZGUoZmFsc2UpOyB9G1ttCiAbW20KG1szMW0tICAgIHZvaWQgc2V0TW9uaXRv
cmluZ1hIUihib29sIGVuYWJsZWQpOxtbbQobWzMxbS0gICAgdm9pZCBlbmFibGVNb25pdG9yaW5n
WEhSKCkgeyBzZXRNb25pdG9yaW5nWEhSKHRydWUpOyB9G1ttChtbMzFtLSAgICB2b2lkIGRpc2Fi
bGVNb25pdG9yaW5nWEhSKCkgeyBzZXRNb25pdG9yaW5nWEhSKGZhbHNlKTsgfRtbbQobWzMybSsb
W20bWzMybSAgICB2b2lkIHNldE1vbml0b3JpbmdYSFIoYm9vbCBlbmFibGVkLCBib29sKiBuZXdT
dGF0ZSk7G1ttCiAgICAgdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChjb25zdCBTdHJpbmcmIHBh
bmVsTmFtZSk7G1ttCiAgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KCkgeyByZXR1cm4g
bV9kb21BZ2VudC5nZXQoKTsgfRtbbQogICAgIHZvaWQgcmVsZWFzZUZyb250ZW5kTGlmZXRpbWVB
Z2VudHMoKTsbW20KG1sxbWRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcu
anMbW20KG1sxbWluZGV4IDk3ODVjZDAuLjA5MDMyOTEgMTAwNjQ0G1ttChtbMW0tLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMbW20KG1sxbSsrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcxtbbQobWzM2bUBAIC00MDAsMTAg
KzQwMCwxMyBAQBtbbSAbW21XZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gextb
bQogICAgICAgICB9G1ttCiAbW20KICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYklu
c3BlY3Rvci5Db250ZXh0TWVudSgpOxtbbQobWzMxbS0gICAgICAgIGlmICghV2ViSW5zcGVjdG9y
Lm1vbml0b3JpbmdYSFJFbmFibGVkKRtbbQobWzMxbS0gICAgICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRDaGVja2JveEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYTUxIdHRwUmVxdWVzdCBs
b2dnaW5nIiksIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlTW9uaXRvcmluZ1hIUi5iaW5kKEluc3Bl
Y3RvckJhY2tlbmQpLCBmYWxzZSk7G1ttChtbMzFtLSAgICAgICAgZWxzZRtbbQobWzMxbS0gICAg
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRDaGVja2JveEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJYTUxIdHRwUmVxdWVzdCBsb2dnaW5nIiksIEluc3BlY3RvckJhY2tlbmQuZGlzYWJsZU1v
bml0b3JpbmdYSFIuYmluZChJbnNwZWN0b3JCYWNrZW5kKSwgdHJ1ZSk7G1ttChtbMzJtKxtbbQob
WzMybSsbW20bWzMybSAgICAgICAgZnVuY3Rpb24gbW9uaXRvcmluZ1hIUldhc0NoYW5nZWQobmV3
U3RhdGUpG1ttChtbMzJtKxtbbRtbMzJtICAgICAgICB7G1ttChtbMzJtKxtbbRtbMzJtICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLm1vbml0b3JpbmdYSFJFbmFibGVkID0gbmV3U3RhdGU7G1ttChtb
MzJtKxtbbRtbMzJtICAgICAgICB9G1ttChtbMzJtKxtbbRtbMzJtICAgICAgICB2YXIgaXRlbUFj
dGlvbiA9IEluc3BlY3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUi5iaW5kKEluc3BlY3RvckJh
Y2tlbmQsICFXZWJJbnNwZWN0b3IubW9uaXRvcmluZ1hIUkVuYWJsZWQsIG1vbml0b3JpbmdYSFJX
YXNDaGFuZ2VkKTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZENo
ZWNrYm94SXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlhNTEh0dHBSZXF1ZXN0IGxvZ2dpbmci
KSwgaXRlbUFjdGlvbiwgV2ViSW5zcGVjdG9yLm1vbml0b3JpbmdYSFJFbmFibGVkKTsbW20KICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFy
IENvbnNvbGUiKSwgdGhpcy5yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMpKTsbW20KICAg
ICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7G1ttCiAgICAgfSwbW20KG1sxbWRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMbW20KG1sxbWluZGV4IDQxZDgyZjkuLmYyOTI1
ZGIgMTAwNjQ0G1ttChtbMW0tLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGlu
Z3MuanMbW20KG1sxbSsrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5q
cxtbbQobWzM2bUBAIC04MSw5ICs4MSwxNyBAQBtbbSAbW21XZWJJbnNwZWN0b3IuU2V0dGluZ3Mu
aW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKCkbW20KICAgICAgICAgV2ViSW5zcGVjdG9yLnNlc3Npb25T
ZXR0aW5ncy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoImxvYWRlZCIpOxtbbQogICAgIH0bW20K
IBtbbQobWzMybSsbW20bWzMybSAgICBmdW5jdGlvbiBwb3B1bGF0ZUJhY2tlbmRTdGF0ZShzZXR0
aW5nc1N0cmluZykbW20KG1szMm0rG1ttG1szMm0gICAgextbbQobWzMybSsbW20bWzMybSAgICAg
ICAgdmFyIHNldHRpbmdzID0gSlNPTi5wYXJzZShzZXR0aW5nc1N0cmluZyk7G1ttChtbMzJtKxtb
bQobWzMybSsbW20bWzMybSAgICAgICAgV2ViSW5zcGVjdG9yLm1vbml0b3JpbmdYSFJFbmFibGVk
ID0gc2V0dGluZ3MubW9uaXRvcmluZ1hIUkVuYWJsZWQ7G1ttChtbMzJtKxtbbRtbMzJtICAgIH0b
W20KG1szMm0rG1ttCiAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTZXR0aW5ncyhmdW5jdGlvbihz
ZXR0aW5ncykgextbbQogICAgICAgICBwb3B1bGF0ZUFwcGxpY2F0aW9uU2V0dGluZ3Moc2V0dGlu
Z3MuYXBwbGljYXRpb24pOxtbbQogICAgICAgICBwb3B1bGF0ZVNlc3Npb25TZXR0aW5ncyhzZXR0
aW5ncy5zZXNzaW9uKTsbW20KG1szMm0rG1ttG1szMm0gICAgICAgIHBvcHVsYXRlQmFja2VuZFN0
YXRlKHNldHRpbmdzLmJhY2tlbmQpOxtbbQogICAgIH0pOxtbbQogfRtbbQogG1ttChtbMW1kaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMbW20KG1sxbWluZGV4IDNmZGQ1YjQu
LmI5ZTE0ZWEgMTAwNjQ0G1ttChtbMW0tLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzG1ttChtbMW0rKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzG1ttChtbMzZtQEAgLTE0MDUsMTYgKzE0MDUsNiBAQBtbbSAbW21XZWJJbnNwZWN0
b3Iuc2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkID0gZnVuY3Rpb24oKRtbbQogICAgIHRoaXMu
cGFuZWxzLmVsZW1lbnRzLnNlYXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCgpOxtbbQogfRtbbQog
G1ttChtbMzFtLVdlYkluc3BlY3Rvci5tb25pdG9yaW5nWEhSV2FzRW5hYmxlZCA9IGZ1bmN0aW9u
KCkbW20KG1szMW0textbbQobWzMxbS0gICAgdGhpcy5tb25pdG9yaW5nWEhSRW5hYmxlZCA9IHRy
dWU7G1ttChtbMzFtLX0bW20KG1szMW0tG1ttChtbMzFtLVdlYkluc3BlY3Rvci5tb25pdG9yaW5n
WEhSV2FzRGlzYWJsZWQgPSBmdW5jdGlvbigpG1ttChtbMzFtLXsbW20KG1szMW0tICAgIHRoaXMu
bW9uaXRvcmluZ1hIUkVuYWJsZWQgPSBmYWxzZTsbW20KG1szMW0tfRtbbQobWzMxbS0bW20KIFdl
Ykluc3BlY3Rvci5hdHRhY2hEZWJ1Z2dlcldoZW5TaG93biA9IGZ1bmN0aW9uKCkbW20KIHsbW20K
ICAgICB0aGlzLnBhbmVscy5zY3JpcHRzLmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7G1ttCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67570</attachid>
            <date>2010-09-14 09:59:39 -0700</date>
            <delta_ts>2010-09-14 10:17:35 -0700</delta_ts>
            <desc>[patch] initial version. text version :).</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12120</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjA1NWZkLi5kZDVmMGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDkt
MTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3Rvcjogc21hbGwg
cmVmYWN0b3JpbmcgZm9yIG1vbml0b3JYSFIgYmFja2VuZCBwcm9wZXJ0eS4KKworICAgICAgICBP
dXIgSW5zcGVjdG9yIEFQSSBpcyBxdWl0ZSBiaWcgYW5kIGNhbiBiZSBzaW1wbGlmaWVkIGEgYml0
LgorICAgICAgICBBcyBleGFtcGxlIGZvciBzaW5nbGUgYmFja2VuZCBwcm9wZXJ0eSBsaWtlIG1v
bml0b3JpbmdYSFIgd2UKKyAgICAgICAgaGF2ZSA0IGZ1bmN0aW9ucyBpbiB0aGUgQVBJLiBUd28g
ZnVuY3Rpb25zIGZvciBmcm9udGVuZAorICAgICAgICBlbmFibGVNb25pdG9yaW5nWEhSL2Rpc2Fi
bGVNb25pdG9yaW5nWEhSIGFuZAorICAgICAgICB0d28gZnVuY3Rpb25zIGZvciBiYWNrZW5kIG1v
bml0b3JpbmdYSFJXYXNFbmFibGVkIGFuZAorICAgICAgICBtb25pdG9yaW5nWEhSV2FzRGlzYWJs
ZWQuIFRoZXNlIGZ1bmN0aW9ucyBjYW4gYmUgcmVwbGFjZWQgYnkKKyAgICAgICAgb25lIHNldE1v
bml0b3JpbmdYSFIgd2l0aCBvbmUgJ2luJyBhbmQgb25lICdvdXQnIGFyZ3VtZW50LgorICAgICAg
ICBUaGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgZmxhZyBjYW4gYmUgZ2F0aGVyZWQgZnJvbSBiYWNr
ZW5kCisgICAgICAgIHdpdGggaGVscCBvZiBnZXRTZXR0aW5ncyBjYWxsIHdoZXJlIGFkZGl0aW9u
YWwgc2VjdGlvbiB3YXMKKyAgICAgICAgYWRkZWQgZm9yIGJhY2tlbmQgc3RhdGUgaW5mb3JtYXRp
b24uCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
NzU5CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5n
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0bWw6CisKIDIw
MTAtMDktMTQgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwKaW5kZXggODI1ZGMwNS4u
MGJkNzU1YiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS14aHItbG9nZ2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbApAQCAtNDUsMjYgKzQ1LDI4IEBAIGZ1bmN0aW9u
IHJlcXVlc3RIZWxwZXIobWV0aG9kLCB1cmwpCiAKIGZ1bmN0aW9uIGZyb250ZW5kX2VuYWJsZVhN
TEh0dHBSZXF1ZXN0TG9nZ2luZyh0ZXN0Q29udHJvbGxlcikKIHsKLSAgICBJbnNwZWN0b3JCYWNr
ZW5kLmVuYWJsZU1vbml0b3JpbmdYSFIoKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLnNldE1vbml0
b3JpbmdYSFIodHJ1ZSwgZnVuY3Rpb24obmV3U3RhdHVzKSB7CisgICAgICAgICBpZiAobmV3U3Rh
dHVzKQorICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgiZW5hYmxlZCIpOwor
ICAgIH0pOworCiAgICAgaWYgKFdlYkluc3BlY3Rvci5tb25pdG9yaW5nWEhSRW5hYmxlZCkKICAg
ICAgICAgcmV0dXJuICJlbmFibGVkIjsKIAogICAgIHRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKLSAgICBmcm9udGVuZF9hZGRTbmlmZmVyKFdlYkluc3BlY3RvciwgIm1vbml0b3JpbmdY
SFJXYXNFbmFibGVkIiwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCJlbmFibGVkIik7Ci0gICAgfSk7CiB9CiAKIGZ1bmN0aW9uIGZyb250ZW5kX2Rpc2Fi
bGVYTUxIdHRwUmVxdWVzdExvZ2dpbmcodGVzdENvbnRyb2xsZXIpCiB7Ci0gICAgSW5zcGVjdG9y
QmFja2VuZC5kaXNhYmxlTW9uaXRvcmluZ1hIUigpOworICAgIEluc3BlY3RvckJhY2tlbmQuc2V0
TW9uaXRvcmluZ1hIUihmYWxzZSwgZnVuY3Rpb24obmV3U3RhdHVzKSB7CisgICAgICAgIGlmICgh
bmV3U3RhdHVzKQorICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgiZGlzYWJs
ZWQiKTsKKyAgICB9KTsKKwogICAgIGlmICghV2ViSW5zcGVjdG9yLm1vbml0b3JpbmdYSFJFbmFi
bGVkKQogICAgICAgICByZXR1cm4gImRpc2FibGVkIjsKIAogICAgIHRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKLSAgICBmcm9udGVuZF9hZGRTbmlmZmVyKFdlYkluc3BlY3RvciwgIm1v
bml0b3JpbmdYSFJXYXNEaXNhYmxlZCIsIGZ1bmN0aW9uKCkgewotICAgICAgICB0ZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCJkaXNhYmxlZCIpOwotICAgIH0pOwogfQogCiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtQVBJLWVycm9ycy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0bWwKaW5kZXggMGRkZDli
OC4uYzVkY2YxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEkt
ZXJyb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3Jz
Lmh0bWwKQEAgLTE0LDggKzE0LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yQmFj
a2VuZC5lbmFibGVSZXNvdXJjZVRyYWNraW5nKDEpOwogICAgIEluc3BlY3RvckJhY2tlbmQuZW5h
YmxlUmVzb3VyY2VUcmFja2luZygpOwogICAgIEluc3BlY3RvckJhY2tlbmQuZW5hYmxlUmVzb3Vy
Y2VUcmFja2luZyh0cnVlLCAibm90IGEgZnVuY3Rpb24iKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5k
LmVuYWJsZU1vbml0b3JpbmdYSFIodW5kZWZpbmVkKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmRp
c2FibGVNb25pdG9yaW5nWEhSKHVuZGVmaW5lZCk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRN
b25pdG9yaW5nWEhSKHRydWUsIHVuZGVmaW5lZCk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRN
b25pdG9yaW5nWEhSKGZhbHNlLCB1bmRlZmluZWQpOwogICAgIFdlYkluc3BlY3Rvcl9zeW5jRGlz
cGF0Y2goJ3sidHlwZSI6ICJldmVudCIsICJkb21haW4iOiAiZG9tIiwgImV2ZW50IjogInNvbWV0
aGluZy1zdHJhbmdlIiwgImRhdGEiOiB7fX0nKTsKIAogICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGJmNDQ3NjkuLmVmYWMzOTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMTQgIEls
eWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3Rvcjogc21hbGwgcmVmYWN0
b3JpbmcgZm9yIG1vbml0b3JYSFIgYmFja2VuZCBwcm9wZXJ0eS4KKworICAgICAgICBPdXIgSW5z
cGVjdG9yIEFQSSBpcyBxdWl0ZSBiaWcgYW5kIGNhbiBiZSBzaW1wbGlmaWVkIGEgYml0LgorICAg
ICAgICBBcyBleGFtcGxlIGZvciBzaW5nbGUgYmFja2VuZCBwcm9wZXJ0eSBsaWtlIG1vbml0b3Jp
bmdYSFIgd2UKKyAgICAgICAgaGF2ZSA0IGZ1bmN0aW9ucyBpbiB0aGUgQVBJLiBUd28gZnVuY3Rp
b25zIGZvciBmcm9udGVuZAorICAgICAgICBlbmFibGVNb25pdG9yaW5nWEhSL2Rpc2FibGVNb25p
dG9yaW5nWEhSIGFuZAorICAgICAgICB0d28gZnVuY3Rpb25zIGZvciBiYWNrZW5kIG1vbml0b3Jp
bmdYSFJXYXNFbmFibGVkIGFuZAorICAgICAgICBtb25pdG9yaW5nWEhSV2FzRGlzYWJsZWQuIFRo
ZXNlIGZ1bmN0aW9ucyBjYW4gYmUgcmVwbGFjZWQgYnkKKyAgICAgICAgb25lIHNldE1vbml0b3Jp
bmdYSFIgd2l0aCBvbmUgJ2luJyBhbmQgb25lICdvdXQnIGFyZ3VtZW50LgorICAgICAgICBUaGUg
aW5pdGlhbCBzdGF0ZSBvZiB0aGUgZmxhZyBjYW4gYmUgZ2F0aGVyZWQgZnJvbSBiYWNrZW5kCisg
ICAgICAgIHdpdGggaGVscCBvZiBnZXRTZXR0aW5ncyBjYWxsIHdoZXJlIGFkZGl0aW9uYWwgc2Vj
dGlvbiB3YXMKKyAgICAgICAgYWRkZWQgZm9yIGJhY2tlbmQgc3RhdGUgaW5mb3JtYXRpb24uCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NzU5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisKIDIwMTAtMDktMTQgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
cmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IDE2OWIxODguLjI2ZjI2NTMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtNDQsOCArNDQsNiBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIFtub3RpZnldIHZvaWQgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChvdXQgbG9u
ZyB0ZXN0Q2FsbElkLCBvdXQgU3RyaW5nIHNjcmlwdCk7CiAgICAgICAgIFtub3RpZnldIHZvaWQg
ZGlzY29ubmVjdEZyb21CYWNrZW5kKCk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgaW5zcGVjdGVk
VVJMQ2hhbmdlZChvdXQgU3RyaW5nIHVybCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgbW9uaXRv
cmluZ1hIUldhc0VuYWJsZWQoKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBtb25pdG9yaW5nWEhS
V2FzRGlzYWJsZWQoKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCByZW1vdmVSZXNvdXJjZShvdXQg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCByZXNldCgp
OwogICAgICAgICBbbm90aWZ5XSB2b2lkIHJlc2V0UHJvZmlsZXNQYW5lbCgpOwpAQCAtMTEwLDgg
KzEwOCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW2hhbmRsZXI9Q29udHJvbGxlcl0gdm9p
ZCBlbmFibGVTZWFyY2hpbmdGb3JOb2RlKCk7CiAgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJd
IHZvaWQgZGlzYWJsZVNlYXJjaGluZ0Zvck5vZGUoKTsKIAotICAgICAgICBbaGFuZGxlcj1Db250
cm9sbGVyXSB2b2lkIGVuYWJsZU1vbml0b3JpbmdYSFIoKTsKLSAgICAgICAgW2hhbmRsZXI9Q29u
dHJvbGxlcl0gdm9pZCBkaXNhYmxlTW9uaXRvcmluZ1hIUigpOworICAgICAgICBbaGFuZGxlcj1D
b250cm9sbGVyXSB2b2lkIHNldE1vbml0b3JpbmdYSFIoaW4gYm9vbGVhbiBlbmFibGUsIG91dCBi
b29sZWFuIG5ld1N0YXRlKTsKIAogICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGVu
YWJsZVJlc291cmNlVHJhY2tpbmcoaW4gYm9vbGVhbiBhbHdheXMpOwogICAgICAgICBbaGFuZGxl
cj1Db250cm9sbGVyXSB2b2lkIGRpc2FibGVSZXNvdXJjZVRyYWNraW5nKGluIGJvb2xlYW4gYWx3
YXlzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOTBl
ZjM0NC4uYTZkNmNkOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBjb25zdCBjaGFyKiBjb25zdCBJbnNwZWN0b3JDb250cm9s
bGVyOjpDb25zb2xlUGFuZWwgPSAiY29uc29sZSI7CiBjb25zdCBjaGFyKiBjb25zdCBJbnNwZWN0
b3JDb250cm9sbGVyOjpTY3JpcHRzUGFuZWwgPSAic2NyaXB0cyI7CiBjb25zdCBjaGFyKiBjb25z
dCBJbnNwZWN0b3JDb250cm9sbGVyOjpQcm9maWxlc1BhbmVsID0gInByb2ZpbGVzIjsKIAotc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0IG1vbml0b3JpbmdYSFJTZXR0aW5nTmFtZSA9ICJ4aHJNb25p
dG9yIjsKK3N0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBtb25pdG9yaW5nWEhSU2V0dGluZ05hbWUg
PSAibW9uaXRvcmluZ1hIUkVuYWJsZWQiOwogCiBzdGF0aWMgaW50IGNvbm5lY3RlZEZyb250ZW5k
Q291bnQgPSAwOwogCkBAIC0yNDgsMTEgKzI0OCwxOSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnNhdmVTZXNzaW9uU2V0dGluZ3MoY29uc3QgU3RyaW5nJiBzZXR0aW5nc0pTT04pCiAgICAg
bV9zZXNzaW9uU2V0dGluZ3MgPSBJbnNwZWN0b3JWYWx1ZTo6cGFyc2VKU09OKHNldHRpbmdzSlNP
Tik7CiB9CiAKK1N0cmluZyBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRCYWNrZW5kU3RhdGUoKQor
eworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJ1bnRpbWVTZXR0aW5ncyA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CisgICAgcnVudGltZVNldHRpbmdzLT5zZXRCb29sZWFuKG1vbml0
b3JpbmdYSFJTZXR0aW5nTmFtZSwgbV9tb25pdG9yaW5nWEhSKTsKKyAgICByZXR1cm4gcnVudGlt
ZVNldHRpbmdzLT50b0pTT05TdHJpbmcoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpnZXRTZXR0aW5ncyhSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogc2V0dGluZ3MpCiB7CiAgICAg
KnNldHRpbmdzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICAoKnNldHRpbmdzKS0+
c2V0U3RyaW5nKCJhcHBsaWNhdGlvbiIsIHNldHRpbmcoZnJvbnRlbmRTZXR0aW5nc1NldHRpbmdO
YW1lKCkpKTsKICAgICAoKnNldHRpbmdzKS0+c2V0U3RyaW5nKCJzZXNzaW9uIiwgbV9zZXNzaW9u
U2V0dGluZ3MtPnRvSlNPTlN0cmluZygpKTsKKyAgICAoKnNldHRpbmdzKS0+c2V0U3RyaW5nKCJi
YWNrZW5kIiwgZ2V0QmFja2VuZFN0YXRlKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6Omluc3BlY3QoTm9kZSogbm9kZSkKQEAgLTQ2MCwxOCArNDY4LDEzIEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6c2V0U2VhcmNoaW5nRm9yTm9kZShib29sIGVuYWJsZWQpCiAgICAgfQog
fQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldE1vbml0b3JpbmdYSFIoYm9vbCBlbmFi
bGVkKQordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRNb25pdG9yaW5nWEhSKGJvb2wgZW5h
YmxlZCwgYm9vbCogbmV3U3RhdGUpCiB7CisgICAgKm5ld1N0YXRlID0gZW5hYmxlZDsKICAgICBp
ZiAobV9tb25pdG9yaW5nWEhSID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICBtX21v
bml0b3JpbmdYSFIgPSBlbmFibGVkOwogICAgIHNldFNldHRpbmcobW9uaXRvcmluZ1hIUlNldHRp
bmdOYW1lLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgaWYgKG1fZnJvbnRlbmQp
IHsKLSAgICAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgICAgICBtX2Zyb250ZW5kLT5tb25pdG9y
aW5nWEhSV2FzRW5hYmxlZCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2Zyb250ZW5k
LT5tb25pdG9yaW5nWEhSV2FzRGlzYWJsZWQoKTsKLSAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkKQEAgLTYxMyw4ICs2MTYsNiBAQCB2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cygpCiAgICAgaWYgKG1fc2Vh
cmNoaW5nRm9yTm9kZSkKICAgICAgICAgbV9mcm9udGVuZC0+c2VhcmNoaW5nRm9yTm9kZVdhc0Vu
YWJsZWQoKTsKIAotICAgIGlmIChtX21vbml0b3JpbmdYSFIpCi0gICAgICAgIG1fZnJvbnRlbmQt
Pm1vbml0b3JpbmdYSFJXYXNFbmFibGVkKCk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKICAgICBpZiAobV9wcm9maWxlckFnZW50LT5lbmFibGVkKCkpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggMDc5Y2Y1NS4uMDEwZjJiZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMjcwLDYgKzI3MCw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBmcm9udGVuZFNldHRpbmdz
U2V0dGluZ05hbWUoKTsKKyAgICBTdHJpbmcgZ2V0QmFja2VuZFN0YXRlKCk7CiAKICAgICBmcmll
bmQgY2xhc3MgSW5zcGVjdG9yQmFja2VuZDsKICAgICBmcmllbmQgY2xhc3MgSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXI7CkBAIC0yODMsOSArMjg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVu
YWJsZVNlYXJjaGluZ0Zvck5vZGUoKSB7IHNldFNlYXJjaGluZ0Zvck5vZGUodHJ1ZSk7IH0KICAg
ICB2b2lkIGRpc2FibGVTZWFyY2hpbmdGb3JOb2RlKCkgeyBzZXRTZWFyY2hpbmdGb3JOb2RlKGZh
bHNlKTsgfQogCi0gICAgdm9pZCBzZXRNb25pdG9yaW5nWEhSKGJvb2wgZW5hYmxlZCk7Ci0gICAg
dm9pZCBlbmFibGVNb25pdG9yaW5nWEhSKCkgeyBzZXRNb25pdG9yaW5nWEhSKHRydWUpOyB9Ci0g
ICAgdm9pZCBkaXNhYmxlTW9uaXRvcmluZ1hIUigpIHsgc2V0TW9uaXRvcmluZ1hIUihmYWxzZSk7
IH0KKyAgICB2b2lkIHNldE1vbml0b3JpbmdYSFIoYm9vbCBlbmFibGVkLCBib29sKiBuZXdTdGF0
ZSk7CiAgICAgdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChjb25zdCBTdHJpbmcmIHBhbmVsTmFt
ZSk7CiAgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KCkgeyByZXR1cm4gbV9kb21BZ2Vu
dC5nZXQoKTsgfQogICAgIHZvaWQgcmVsZWFzZUZyb250ZW5kTGlmZXRpbWVBZ2VudHMoKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA5Nzg1Y2QwLi4w
OTAzMjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZp
ZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBA
IC00MDAsMTAgKzQwMCwxMyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0g
ewogICAgICAgICB9CiAKICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rv
ci5Db250ZXh0TWVudSgpOwotICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5tb25pdG9yaW5nWEhS
RW5hYmxlZCkKLSAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZENoZWNrYm94SXRlbShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlhNTEh0dHBSZXF1ZXN0IGxvZ2dpbmciKSwgSW5zcGVjdG9yQmFj
a2VuZC5lbmFibGVNb25pdG9yaW5nWEhSLmJpbmQoSW5zcGVjdG9yQmFja2VuZCksIGZhbHNlKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVt
KFdlYkluc3BlY3Rvci5VSVN0cmluZygiWE1MSHR0cFJlcXVlc3QgbG9nZ2luZyIpLCBJbnNwZWN0
b3JCYWNrZW5kLmRpc2FibGVNb25pdG9yaW5nWEhSLmJpbmQoSW5zcGVjdG9yQmFja2VuZCksIHRy
dWUpOworCisgICAgICAgIGZ1bmN0aW9uIG1vbml0b3JpbmdYSFJXYXNDaGFuZ2VkKG5ld1N0YXRl
KQorICAgICAgICB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IubW9uaXRvcmluZ1hIUkVuYWJs
ZWQgPSBuZXdTdGF0ZTsKKyAgICAgICAgfQorICAgICAgICB2YXIgaXRlbUFjdGlvbiA9IEluc3Bl
Y3RvckJhY2tlbmQuc2V0TW9uaXRvcmluZ1hIUi5iaW5kKEluc3BlY3RvckJhY2tlbmQsICFXZWJJ
bnNwZWN0b3IubW9uaXRvcmluZ1hIUkVuYWJsZWQsIG1vbml0b3JpbmdYSFJXYXNDaGFuZ2VkKTsK
KyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQ2hlY2tib3hJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiWE1MSHR0cFJlcXVlc3QgbG9nZ2luZyIpLCBpdGVtQWN0aW9uLCBXZWJJbnNwZWN0b3Iu
bW9uaXRvcmluZ1hIUkVuYWJsZWQpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIgQ29uc29sZSIpLCB0aGlzLnJlcXVlc3RDbGVhck1l
c3NhZ2VzLmJpbmQodGhpcykpOwogICAgICAgICBjb250ZXh0TWVudS5zaG93KGV2ZW50KTsKICAg
ICB9LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IDQxZDgyZjku
LmYyOTI1ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
cy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTgx
LDkgKzgxLDE3IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5ncy5pbml0aWFsaXplID0gZnVuY3Rpb24o
KQogICAgICAgICBXZWJJbnNwZWN0b3Iuc2Vzc2lvblNldHRpbmdzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycygibG9hZGVkIik7CiAgICAgfQogCisgICAgZnVuY3Rpb24gcG9wdWxhdGVCYWNrZW5k
U3RhdGUoc2V0dGluZ3NTdHJpbmcpCisgICAgeworICAgICAgICB2YXIgc2V0dGluZ3MgPSBKU09O
LnBhcnNlKHNldHRpbmdzU3RyaW5nKTsKKworICAgICAgICBXZWJJbnNwZWN0b3IubW9uaXRvcmlu
Z1hIUkVuYWJsZWQgPSBzZXR0aW5ncy5tb25pdG9yaW5nWEhSRW5hYmxlZDsKKyAgICB9CisKICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldFNldHRpbmdzKGZ1bmN0aW9uKHNldHRpbmdzKSB7CiAgICAg
ICAgIHBvcHVsYXRlQXBwbGljYXRpb25TZXR0aW5ncyhzZXR0aW5ncy5hcHBsaWNhdGlvbik7CiAg
ICAgICAgIHBvcHVsYXRlU2Vzc2lvblNldHRpbmdzKHNldHRpbmdzLnNlc3Npb24pOworICAgICAg
ICBwb3B1bGF0ZUJhY2tlbmRTdGF0ZShzZXR0aW5ncy5iYWNrZW5kKTsKICAgICB9KTsKIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggM2ZkZDViNC4uYjll
MTRlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xNDA1
LDE2ICsxNDA1LDYgQEAgV2ViSW5zcGVjdG9yLnNlYXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCA9
IGZ1bmN0aW9uKCkKICAgICB0aGlzLnBhbmVscy5lbGVtZW50cy5zZWFyY2hpbmdGb3JOb2RlV2Fz
RGlzYWJsZWQoKTsKIH0KIAotV2ViSW5zcGVjdG9yLm1vbml0b3JpbmdYSFJXYXNFbmFibGVkID0g
ZnVuY3Rpb24oKQotewotICAgIHRoaXMubW9uaXRvcmluZ1hIUkVuYWJsZWQgPSB0cnVlOwotfQot
Ci1XZWJJbnNwZWN0b3IubW9uaXRvcmluZ1hIUldhc0Rpc2FibGVkID0gZnVuY3Rpb24oKQotewot
ICAgIHRoaXMubW9uaXRvcmluZ1hIUkVuYWJsZWQgPSBmYWxzZTsKLX0KLQogV2ViSW5zcGVjdG9y
LmF0dGFjaERlYnVnZ2VyV2hlblNob3duID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMucGFuZWxz
LnNjcmlwdHMuYXR0YWNoRGVidWdnZXJXaGVuU2hvd24oKTsK
</data>
<flag name="review"
          id="56905"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>