<?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>95677</bug_id>
          
          <creation_ts>2012-09-03 02:58:30 -0700</creation_ts>
          <short_desc>Web Inspector: rename JavaScriptContextManager to RuntimeModel for consistency.</short_desc>
          <delta_ts>2012-09-03 06:19:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710518</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-03 02:58:30 -0700</bug_when>
    <thetext>All wrapper classes that work with the protocol should be named &lt;Domain&gt;Model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710520</commentid>
    <comment_count>1</comment_count>
      <attachid>161889</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-03 03:04:52 -0700</bug_when>
    <thetext>Created attachment 161889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710593</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-03 06:19:43 -0700</bug_when>
    <thetext>Committed r127417: &lt;http://trac.webkit.org/changeset/127417&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161889</attachid>
            <date>2012-09-03 03:04:52 -0700</date>
            <delta_ts>2012-09-03 06:09:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95677-20120903140435.patch</filename>
            <type>text/plain</type>
            <size>28417</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNlMWIxYTdlNjE2OGUz
ODE2M2E1MzY1YjM0MzE4ZmU2MzYwZTQyNS4uMTVjMWNmNTVmMmY5YmQzZjYzYzgzNTVkYTQzODVl
ODM1ZTYyMDFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA5LTAzICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlbmFtZSBKYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIgdG8gUnVudGltZU1vZGVsIGZvciBj
b25zaXN0ZW5jeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk1Njc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgLSByZW5hbWVkIHRoZSBmaWxlIGFuZCB0aGUgdXNhZ2VzCisgICAgICAgIC0gcmVuYW1lZCBp
c29sYXRlZENvbnRleHRDcmVhdGVkIHRvIGV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGZvciBjb25z
aXN0ZW5jeS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246
CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bm90aWZ5Q29udGV4dENyZWF0ZWQpOgorICAgICAgICAq
IGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1J1bnRpbWVNb2RlbC5qczogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJ1bnRpbWVNb2RlbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVudGltZU1v
ZGVsLnByb3RvdHlwZS5fZnJhbWVBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVudGlt
ZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVEZXRhY2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UnVudGltZU1vZGVsLnByb3RvdHlwZS5fZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJ1bnRpbWVEaXNwYXRjaGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SdW50aW1lRGlzcGF0Y2hlci5wcm90b3R5cGUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorCiAyMDEyLTA5LTAzICAnUGF2ZWwgRmVs
ZG1hbicgIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
Zml4ZWQgZnJvbnQtZW5kIGNvbXBpbGF0aW9uIHdhcm5pbmdzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDczMzc2MDk4MTJjYmJlYThiNjM5NzIwOTZkYThkOGQxNGIyMGY0OTguLjMwNjE5NTRmMTE4MTg1
NzhjMjUxOGIwZjg5Njc1ZjgxNjYyYmVkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYzNDQsNyAr
NjM0NCw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9u
dGVuZEhvc3RTdHViLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0luc3Bl
Y3RvclZpZXcuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0
TWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0
Rm9ybWF0dGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRTb3VyY2UuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvanNkaWZmbGli
LmpzJywKQEAgLTYzNzQsNiArNjM3Myw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVR5cGUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VVdGlscy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVZpZXcuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvUnVudGltZU1v
ZGVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBw
aW5nLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcycsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmMDQ5NDBi
NmRlZmYxYTcwM2ZjMGM1MzhmZjFkZjYxY2E0MDFkNjQ1Li44YWZhM2FlNDk4MDJjNWY2ZjQyZGIz
ZDI4NDc3OTQ3YWYyNTA4MTkzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNzYyMzQsMTAgKzc2MjM0LDYgQEAKIAkJCQkJPgogCQkJCTwvRmls
ZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRc
SmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxG
aWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxKYXZhU2NyaXB0
Rm9ybWF0dGVyLmpzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtNzY0NjYsNiArNzY0NjIsMTAg
QEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGluc3BlY3Rvclxmcm9udC1lbmRcUnVudGltZU1vZGVsLmpzIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxy
ZXNvdXJjZVZpZXcuY3NzIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDk0ZjYxMmYwMDQ2ODkwZTcxYTI1N2IzYTUzOWNhMDJk
YWZhMjAyOWQuLmUyZGUzMzAxYWM4MTY1ZDk2YTUwN2UwMmU1YzI0YTJjNGQ2NzMyYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTU5NCwxNyArNTk0LDE4IEBA
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5hYmxlZCIsICJ0eXBlIjogImJvb2xl
YW4iLCAiZGVzY3JpcHRpb24iOiAiUmVwb3J0aW5nIGVuYWJsZWQgc3RhdGUuIiB9CiAgICAgICAg
ICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKLSAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyByZXBvcnRpbmcgYWJvdXQgY3JlYXRpb24gb2Yg
aXNvbGF0ZWQgY29udGV4dHMgYnkgbWVhbnMgb2YgPGNvZGU+aXNvbGF0ZWRDb250ZXh0Q3JlYXRl
ZDwvY29kZT4gZXZlbnQuIFdoZW4gdGhlIHJlcG9ydGluZyBnZXRzIGVuYWJsZWQgdGhlIGV2ZW50
IHdpbGwgYmUgc2VudCBpbW1lZGlhdGVseSBmb3IgZWFjaCBleGlzdGluZyBpc29sYXRlZCBjb250
ZXh0LiIKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyByZXBvcnRpbmcg
YWJvdXQgY3JlYXRpb24gb2YgZXhlY3V0aW9uIGNvbnRleHRzIGJ5IG1lYW5zIG9mIDxjb2RlPmV4
ZWN1dGlvbkNvbnRleHRDcmVhdGVkPC9jb2RlPiBldmVudC4gV2hlbiB0aGUgcmVwb3J0aW5nIGdl
dHMgZW5hYmxlZCB0aGUgZXZlbnQgd2lsbCBiZSBzZW50IGltbWVkaWF0ZWx5IGZvciBlYWNoIGV4
aXN0aW5nIGV4ZWN1dGlvbiBjb250ZXh0LiIKICAgICAgICAgICAgIH0KIAogICAgICAgICBdLAog
ICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1l
IjogImlzb2xhdGVkQ29udGV4dENyZWF0ZWQiLAorICAgICAgICAgICAgICAgICJuYW1lIjogImV4
ZWN1dGlvbkNvbnRleHRDcmVhdGVkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZXh0IiwgIiRyZWYiOiAiRXhlY3V0
aW9uQ29udGV4dERlc2NyaXB0aW9uIiwgImRlc2NyaXB0aW9uIjogIkEgbmV3bHkgY3JlYXRlZCBp
c29sYXRlZCBjb250ZXguIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGV4
dCIsICIkcmVmIjogIkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlvbiIsICJkZXNjcmlwdGlvbiI6
ICJBIG5ld2x5IGNyZWF0ZWQgZXhlY3V0aW9uIGNvbnRleC4iIH0KICAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJc3N1ZWQgd2hlbiBuZXcgaXNvbGF0
ZWQgY29udGV4dCBpcyBjcmVhdGVkLiIKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwK
KyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSXNzdWVkIHdoZW4gbmV3IGV4ZWN1dGlv
biBjb250ZXh0IGlzIGNyZWF0ZWQuIgogICAgICAgICAgICAgfQogICAgICAgICBdCiAgICAgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCAz
NWQ1NmY1Yzk5OWMwZjA4Y2E1YTg0ZDlhZWUyODMyNDA3YWIxNTIyLi4yNTQ5NTdhN2YxZmU1NDg4
OTlhNWEzYjIxZGYxNWZkYmM1YWE3OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBQYWdlUnVudGlt
ZUFnZW50Ojpub3RpZnlDb250ZXh0Q3JlYXRlZChjb25zdCBTdHJpbmcmIGZyYW1lSWQsIFNjcmlw
dFN0YXRlKgogICAgIEFTU0VSVChzZWN1cml0eU9yaWdpbiB8fCBpc1BhZ2VDb250ZXh0KTsKICAg
ICBpbnQgZXhlY3V0aW9uQ29udGV4dElkID0gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKCktPmluamVj
dGVkU2NyaXB0SWRGb3Ioc2NyaXB0U3RhdGUpOwogICAgIFN0cmluZyBuYW1lID0gc2VjdXJpdHlP
cmlnaW4gPyBzZWN1cml0eU9yaWdpbi0+dG9TdHJpbmcoKSA6ICIiOwotICAgIG1fZnJvbnRlbmQt
Pmlzb2xhdGVkQ29udGV4dENyZWF0ZWQoRXhlY3V0aW9uQ29udGV4dERlc2NyaXB0aW9uOjpjcmVh
dGUoKQorICAgIG1fZnJvbnRlbmQtPmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkKEV4ZWN1dGlvbkNv
bnRleHREZXNjcmlwdGlvbjo6Y3JlYXRlKCkKICAgICAgICAgLnNldElkKGV4ZWN1dGlvbkNvbnRl
eHRJZCkKICAgICAgICAgLnNldElzUGFnZUNvbnRleHQoaXNQYWdlQ29udGV4dCkKICAgICAgICAg
LnNldE5hbWUobmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250
LWVuZC5weQppbmRleCAxMGNkMmI1NDEzN2IzODBkNmMyNzk5YjNlNzBkMmFmZGZlYzNiMWU1Li5j
NzZmNTcwYTc0N2E5ZWFhYmZjYzFmM2VjYWMyOGM5MTJjNjk4MTUxIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC0xNjksOSArMTY5LDkgQEAg
bW9kdWxlcyA9IFsKICAgICAgICAgICAgICJGb250Vmlldy5qcyIsCiAgICAgICAgICAgICAiSW1h
Z2VWaWV3LmpzIiwKICAgICAgICAgICAgICJOYXRpdmVCcmVha3BvaW50c1NpZGViYXJQYW5lLmpz
IiwKLSAgICAgICAgICAgICJKYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMiLAogICAgICAgICAg
ICAgIk9iamVjdFBvcG92ZXJIZWxwZXIuanMiLAogICAgICAgICAgICAgIk9iamVjdFByb3BlcnRp
ZXNTZWN0aW9uLmpzIiwKKyAgICAgICAgICAgICJSdW50aW1lTW9kZWwuanMiLAogICAgICAgICAg
ICAgIlNvdXJjZUZyYW1lLmpzIiwKICAgICAgICAgICAgICJSZXNvdXJjZVZpZXcuanMiLAogICAg
ICAgICBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
Vmlldy5qcwppbmRleCA2ZjllODhhYWYyYmFkNWYxZDQ4NjMyOTc4ZjdlOWUzZGFjNDBjZDQ3Li4w
NDAxMTE2NWEzYTAwMjg4MDQ0M2QyNzJhZTQzYWQ5ODZhZjY5NjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTEyMSw5ICsx
MjEsOSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcgPSBmdW5jdGlvbihoaWRlQ29udGV4dFNl
bGVjdG9yKQogICAgIHRoaXMucHJvbXB0LnByb3h5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJr
ZXlkb3duIiwgdGhpcy5fcHJvbXB0S2V5RG93bi5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhp
cy5wcm9tcHQuc2V0SGlzdG9yeURhdGEoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNvbnNvbGVIaXN0
b3J5LmdldCgpKTsKIAotICAgIFdlYkluc3BlY3Rvci5qYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIu
Y29udGV4dExpc3RzKCkuZm9yRWFjaCh0aGlzLl9hZGRGcmFtZSwgdGhpcyk7Ci0gICAgV2ViSW5z
cGVjdG9yLmphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuRXZlbnRzLkZyYW1lRXhlY3V0aW9uQ29udGV4
dExpc3RBZGRlZCwgdGhpcy5fZnJhbWVBZGRlZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmph
dmFTY3JpcHRDb250ZXh0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0Q29udGV4dE1hbmFnZXIuRXZlbnRzLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3RSZW1v
dmVkLCB0aGlzLl9mcmFtZVJlbW92ZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5ydW50aW1l
TW9kZWwuY29udGV4dExpc3RzKCkuZm9yRWFjaCh0aGlzLl9hZGRGcmFtZSwgdGhpcyk7CisgICAg
V2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5S
dW50aW1lTW9kZWwuRXZlbnRzLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3RBZGRlZCwgdGhpcy5f
ZnJhbWVBZGRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2RlbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwuRXZlbnRzLkZyYW1lRXhlY3V0aW9u
Q29udGV4dExpc3RSZW1vdmVkLCB0aGlzLl9mcmFtZVJlbW92ZWQsIHRoaXMpOwogfQogCiBXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcuRXZlbnRzID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCBmOWU3NjNhYjBh
ZGYyMWJiZGMzNjY0Njc0YzE1ZjMzNDAyM2EyZDJhLi5lYzM4MTFiNjkxMjljODI2Yjg3YTYyNGRl
ZjczM2NkMjcwYmNhYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtNzY3LDcgKzc2Nyw3IEBAIFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIG1haW5G
cmFtZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWU7CiAgICAgICAg
ICAgICBpZiAoIW1haW5GcmFtZSkKICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVz
LkVfRkFJTEVEKCJtYWluIGZyYW1lIG5vdCBhdmFpbGFibGUgeWV0Iik7Ci0gICAgICAgICAgICB2
YXIgY29udGV4dCA9IFdlYkluc3BlY3Rvci5qYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuY29udGV4
dEJ5RnJhbWVBbmRTZWN1cml0eU9yaWdpbihtYWluRnJhbWUsIHNlY3VyaXR5T3JpZ2luKTsKKyAg
ICAgICAgICAgIHZhciBjb250ZXh0ID0gV2ViSW5zcGVjdG9yLnJ1bnRpbWVNb2RlbC5jb250ZXh0
QnlGcmFtZUFuZFNlY3VyaXR5T3JpZ2luKG1haW5GcmFtZSwgc2VjdXJpdHlPcmlnaW4pOwogICAg
ICAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0
dXMuRV9OT1RGT1VORChzZWN1cml0eU9yaWdpbik7CiAgICAgICAgICAgICBjb250ZXh0SWQgPSBj
b250ZXh0LmlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmVlNzM2MjcyYWM4ODFhNWI4N2JkMDBkZWNhOWZhN2ZkMzhkZWM0YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcworKysgL2Rl
di9udWxsCkBAIC0xLDIzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRlbmRz
IHtXZWJJbnNwZWN0b3IuT2JqZWN0fQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
cmVlTW9kZWx9IHJlc291cmNlVHJlZU1vZGVsCi0gKi8KLVdlYkluc3BlY3Rvci5KYXZhU2NyaXB0
Q29udGV4dE1hbmFnZXIgPSBmdW5jdGlvbihyZXNvdXJjZVRyZWVNb2RlbCkKLXsKLSAgICByZXNv
dXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVN
b2RlbC5FdmVudFR5cGVzLkZyYW1lQWRkZWQsIHRoaXMuX2ZyYW1lQWRkZWQsIHRoaXMpOwotICAg
IHJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX2ZyYW1lTmF2aWdhdGVk
LCB0aGlzKTsKLSAgICByZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHRoaXMuX2Zy
YW1lRGV0YWNoZWQsIHRoaXMpOwotICAgIHJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuQ2FjaGVkUmVzb3Vy
Y2VzTG9hZGVkLCB0aGlzLl9kaWRMb2FkQ2FjaGVkUmVzb3VyY2VzLCB0aGlzKTsKLSAgICB0aGlz
Ll9mcmFtZUlkVG9Db250ZXh0TGlzdCA9IHt9OwotfQotCi1XZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dENvbnRleHRNYW5hZ2VyLkV2ZW50cyA9IHsKLSAgICBGcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0
QWRkZWQ6ICJGcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0QWRkZWQiLAotICAgIEZyYW1lRXhlY3V0
aW9uQ29udGV4dExpc3RSZW1vdmVkOiAiRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdFJlbW92ZWQi
LAotfQotCi1XZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZSA9
IHsKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLkZyYW1lRXhl
Y3V0aW9uQ29udGV4dExpc3Q+fQotICAgICAqLwotICAgIGNvbnRleHRMaXN0czogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fZnJhbWVJZFRvQ29u
dGV4dExpc3QpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVGcmFtZX0gZnJhbWUKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VjdXJp
dHlPcmlnaW4KLSAgICAgKi8KLSAgICBjb250ZXh0QnlGcmFtZUFuZFNlY3VyaXR5T3JpZ2luOiBm
dW5jdGlvbihmcmFtZSwgc2VjdXJpdHlPcmlnaW4pCi0gICAgewotICAgICAgICB2YXIgZnJhbWVD
b250ZXh0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbZnJhbWUuaWRdOwotICAgICAgICBy
ZXR1cm4gZnJhbWVDb250ZXh0ICYmIGZyYW1lQ29udGV4dC5jb250ZXh0QnlTZWN1cml0eU9yaWdp
bihzZWN1cml0eU9yaWdpbik7Ci0gICAgfSwKLQotICAgIF9mcmFtZUFkZGVkOiBmdW5jdGlvbihl
dmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIHZh
ciBjb250ZXh0ID0gbmV3IFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0KGZy
YW1lKTsKLSAgICAgICAgdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbZnJhbWUuaWRdID0gY29u
dGV4dDsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5FdmVudHMuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlz
dEFkZGVkLCBjb250ZXh0KTsKLSAgICB9LAotCi0gICAgX2ZyYW1lTmF2aWdhdGVkOiBmdW5jdGlv
bihldmVudCkKLSAgICB7Ci0gICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7Ci0gICAgICAg
IHZhciBjb250ZXh0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbZnJhbWUuaWRdOwotICAg
ICAgICBpZiAoY29udGV4dCkKLSAgICAgICAgICAgIGNvbnRleHQuX2ZyYW1lTmF2aWdhdGVkKGZy
YW1lKTsKLSAgICB9LAotCi0gICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAg
IHsKLSAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKLSAgICAgICAgdmFyIGNvbnRleHQg
PSB0aGlzLl9mcmFtZUlkVG9Db250ZXh0TGlzdFtmcmFtZS5pZF07Ci0gICAgICAgIGlmICghY29u
dGV4dCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5FdmVudHMuRnJh
bWVFeGVjdXRpb25Db250ZXh0TGlzdFJlbW92ZWQsIGNvbnRleHQpOwotICAgICAgICBkZWxldGUg
dGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbZnJhbWUuaWRdOwotICAgIH0sCi0KLSAgICBfZGlk
TG9hZENhY2hlZFJlc291cmNlczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5yZWdpc3RlclJ1bnRpbWVEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuUnVudGlt
ZURpc3BhdGNoZXIodGhpcykpOwotICAgICAgICBSdW50aW1lQWdlbnQuc2V0UmVwb3J0RXhlY3V0
aW9uQ29udGV4dENyZWF0aW9uKHRydWUpOwotICAgIH0sCi0KLSAgICBpc29sYXRlZENvbnRleHRD
cmVhdGVkOiBmdW5jdGlvbihjb250ZXh0KQotICAgIHsKLSAgICAgICAgdmFyIGNvbnRleHRMaXN0
ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbY29udGV4dC5mcmFtZUlkXTsKLSAgICAgICAg
Ly8gRklYTUUoODU3MDgpOiB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4KLSAgICAgICAgaWYgKCFj
b250ZXh0TGlzdCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY29udGV4dExpc3QuX2Fk
ZEV4ZWN1dGlvbkNvbnRleHQobmV3IFdlYkluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0KGNvbnRl
eHQuaWQsIGNvbnRleHQubmFtZSwgY29udGV4dC5pc1BhZ2VDb250ZXh0KSk7Ci0gICAgfQotfQot
Ci1XZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKLQotLyoqCi0gKiBAdHlwZSB7V2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlcn0KLSAqLwotV2ViSW5zcGVjdG9yLmph
dmFTY3JpcHRDb250ZXh0TWFuYWdlciA9IG51bGw7Ci0KLS8qKgotICogQGNvbnN0cnVjdG9yCi0g
KiBAaW1wbGVtZW50cyB7UnVudGltZUFnZW50LkRpc3BhdGNoZXJ9Ci0gKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXJ9IGNvbnRleHRNYW5hZ2VyCi0gKi8KLVdl
Ykluc3BlY3Rvci5SdW50aW1lRGlzcGF0Y2hlciA9IGZ1bmN0aW9uKGNvbnRleHRNYW5hZ2VyKQot
ewotICAgIHRoaXMuX2NvbnRleHRNYW5hZ2VyID0gY29udGV4dE1hbmFnZXI7Ci19Ci0KLVdlYklu
c3BlY3Rvci5SdW50aW1lRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7Ci0gICAgaXNvbGF0ZWRDb250
ZXh0Q3JlYXRlZDogZnVuY3Rpb24oY29udGV4dCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NvbnRl
eHRNYW5hZ2VyLmlzb2xhdGVkQ29udGV4dENyZWF0ZWQoY29udGV4dCk7Ci0gICAgfQotfQotCi0v
KioKLSAqIEBjb25zdHJ1Y3RvcgotICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9Ci0g
Ki8KLVdlYkluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0ID0gZnVuY3Rpb24oaWQsIG5hbWUsIGlz
UGFnZUNvbnRleHQpCi17Ci0gICAgdGhpcy5pZCA9IGlkOwotICAgIHRoaXMubmFtZSA9IChpc1Bh
Z2VDb250ZXh0ICYmICFuYW1lKSA/ICI8cGFnZSBjb250ZXh0PiIgOiBuYW1lOwotICAgIHRoaXMu
aXNNYWluV29ybGRDb250ZXh0ID0gaXNQYWdlQ29udGV4dDsKLX0KLQotLyoqCi0gKiBAcGFyYW0g
eyp9IGEKLSAqIEBwYXJhbSB7Kn0gYgotICogQHJldHVybiB7bnVtYmVyfQotICovCi1XZWJJbnNw
ZWN0b3IuRXhlY3V0aW9uQ29udGV4dC5jb21wYXJhdG9yID0gZnVuY3Rpb24oYSwgYikKLXsKLSAg
ICAvLyBNYWluIHdvcmxkIGNvbnRleHQgc2hvdWxkIGFsd2F5cyBnbyBmaXJzdC4KLSAgICBpZiAo
YS5pc01haW5Xb3JsZENvbnRleHQpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICBpZiAoYi5pc01h
aW5Xb3JsZENvbnRleHQpCi0gICAgICAgIHJldHVybiArMTsKLSAgICByZXR1cm4gYS5uYW1lLmxv
Y2FsZUNvbXBhcmUoYi5uYW1lKTsKLX0KLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBleHRl
bmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQotICovCi1XZWJJbnNwZWN0b3IuRnJhbWVFeGVjdXRp
b25Db250ZXh0TGlzdCA9IGZ1bmN0aW9uKGZyYW1lKQotewotICAgIHRoaXMuX2ZyYW1lID0gZnJh
bWU7Ci0gICAgdGhpcy5fZXhlY3V0aW9uQ29udGV4dHMgPSBbXTsKLX0KLQotV2ViSW5zcGVjdG9y
LkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QuRXZlbnRUeXBlcyA9IHsKLSAgICBDb250ZXh0c1Vw
ZGF0ZWQ6ICJDb250ZXh0c1VwZGF0ZWQiLAotICAgIENvbnRleHRBZGRlZDogIkNvbnRleHRBZGRl
ZCIKLX0KLQotV2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QucHJvdG90eXBl
ID0KLXsKLSAgICBfZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGZyYW1lKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fZnJhbWUgPSBmcmFtZTsKLSAgICAgICAgdGhpcy5fZXhlY3V0aW9uQ29udGV4dHMg
PSBbXTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3QuRXZlbnRUeXBlcy5Db250ZXh0c1VwZGF0ZWQsIHRo
aXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FeGVj
dXRpb25Db250ZXh0fSBjb250ZXh0Ci0gICAgICovCi0gICAgX2FkZEV4ZWN1dGlvbkNvbnRleHQ6
IGZ1bmN0aW9uKGNvbnRleHQpCi0gICAgewotICAgICAgICB2YXIgaW5zZXJ0QXQgPSBpbnNlcnRp
b25JbmRleEZvck9iamVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24oY29udGV4dCwgdGhpcy5fZXhl
Y3V0aW9uQ29udGV4dHMsIFdlYkluc3BlY3Rvci5FeGVjdXRpb25Db250ZXh0LmNvbXBhcmF0b3Ip
OwotICAgICAgICB0aGlzLl9leGVjdXRpb25Db250ZXh0cy5zcGxpY2UoaW5zZXJ0QXQsIDAsIGNv
bnRleHQpOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdC5FdmVudFR5cGVzLkNvbnRleHRBZGRlZCwgdGhp
cyk7Ci0gICAgfSwKLQotICAgIGV4ZWN1dGlvbkNvbnRleHRzOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fZXhlY3V0aW9uQ29udGV4dHM7Ci0gICAgfSwKLQotICAgIC8q
KgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgotICAgICAqLwotICAgIGNv
bnRleHRCeVNlY3VyaXR5T3JpZ2luOiBmdW5jdGlvbihzZWN1cml0eU9yaWdpbikKLSAgICB7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZXhlY3V0aW9uQ29udGV4dHMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5fZXhlY3V0aW9uQ29udGV4
dHNbaV07Ci0gICAgICAgICAgICBpZiAoIWNvbnRleHQuaXNNYWluV29ybGRDb250ZXh0ICYmIGNv
bnRleHQubmFtZSA9PT0gc2VjdXJpdHlPcmlnaW4pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNv
bnRleHQ7IAotICAgICAgICB9Ci0gICAgfSwKLQotICAgIGdldCBmcmFtZUlkKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9mcmFtZS5pZDsKLSAgICB9LAotCi0gICAgZ2V0IHVybCgpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZnJhbWUudXJsOwotICAgIH0sCi0KLSAgICBnZXQg
ZGlzcGxheU5hbWUoKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mcmFtZS5wYXJlbnRGcmFt
ZSkKLSAgICAgICAgICAgIHJldHVybiAiPHRvcCBmcmFtZT4iOwotICAgICAgICB2YXIgbmFtZSA9
IHRoaXMuX2ZyYW1lLm5hbWUgfHwgIiI7Ci0gICAgICAgIHZhciBzdWJ0aXRsZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuUGFyc2VkVVJMKHRoaXMuX2ZyYW1lLnVybCkuZGlzcGxheU5hbWU7Ci0gICAgICAg
IGlmIChzdWJ0aXRsZSkgewotICAgICAgICAgICAgaWYgKCFuYW1lKQotICAgICAgICAgICAgICAg
IHJldHVybiBzdWJ0aXRsZTsKLSAgICAgICAgICAgIHJldHVybiBuYW1lICsgIiggIiArIHN1YnRp
dGxlICsgIiApIjsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gIjxpZnJhbWU+IjsKLSAgICB9
Ci19Ci0KLVdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0LnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUnVudGltZU1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SdW50aW1lTW9kZWwuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjU2MzM1NjIyZjI4NDlmOGRkNDFlYTc2ZWM5NGFlNDIxOWMxMjUxOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUnVudGltZU1vZGVsLmpzCkBA
IC0wLDAgKzEsMjM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuT2JqZWN0fQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWx9
IHJlc291cmNlVHJlZU1vZGVsCisgKi8KK1dlYkluc3BlY3Rvci5SdW50aW1lTW9kZWwgPSBmdW5j
dGlvbihyZXNvdXJjZVRyZWVNb2RlbCkKK3sKKyAgICByZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1l
QWRkZWQsIHRoaXMuX2ZyYW1lQWRkZWQsIHRoaXMpOworICAgIHJlc291cmNlVHJlZU1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMu
RnJhbWVOYXZpZ2F0ZWQsIHRoaXMuX2ZyYW1lTmF2aWdhdGVkLCB0aGlzKTsKKyAgICByZXNvdXJj
ZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHRoaXMuX2ZyYW1lRGV0YWNoZWQsIHRoaXMpOwor
ICAgIHJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuQ2FjaGVkUmVzb3VyY2VzTG9hZGVkLCB0aGlzLl9kaWRM
b2FkQ2FjaGVkUmVzb3VyY2VzLCB0aGlzKTsKKyAgICB0aGlzLl9mcmFtZUlkVG9Db250ZXh0TGlz
dCA9IHt9OworfQorCitXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVsLkV2ZW50cyA9IHsKKyAgICBG
cmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0QWRkZWQ6ICJGcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0
QWRkZWQiLAorICAgIEZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3RSZW1vdmVkOiAiRnJhbWVFeGVj
dXRpb25Db250ZXh0TGlzdFJlbW92ZWQiLAorfQorCitXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVs
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVj
dG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4dExpc3Q+fQorICAgICAqLworICAgIGNvbnRleHRMaXN0
czogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5f
ZnJhbWVJZFRvQ29udGV4dExpc3QpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZX0gZnJhbWUKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gc2VjdXJpdHlPcmlnaW4KKyAgICAgKi8KKyAgICBjb250ZXh0QnlGcmFtZUFuZFNlY3Vy
aXR5T3JpZ2luOiBmdW5jdGlvbihmcmFtZSwgc2VjdXJpdHlPcmlnaW4pCisgICAgeworICAgICAg
ICB2YXIgZnJhbWVDb250ZXh0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbZnJhbWUuaWRd
OworICAgICAgICByZXR1cm4gZnJhbWVDb250ZXh0ICYmIGZyYW1lQ29udGV4dC5jb250ZXh0QnlT
ZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbik7CisgICAgfSwKKworICAgIF9mcmFtZUFkZGVk
OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7
CisgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFdlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNv
bnRleHRMaXN0KGZyYW1lKTsKKyAgICAgICAgdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbZnJh
bWUuaWRdID0gY29udGV4dDsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5FdmVudHMuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlz
dEFkZGVkLCBjb250ZXh0KTsKKyAgICB9LAorCisgICAgX2ZyYW1lTmF2aWdhdGVkOiBmdW5jdGlv
bihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGE7CisgICAgICAg
IHZhciBjb250ZXh0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dExpc3RbZnJhbWUuaWRdOworICAg
ICAgICBpZiAoY29udGV4dCkKKyAgICAgICAgICAgIGNvbnRleHQuX2ZyYW1lTmF2aWdhdGVkKGZy
YW1lKTsKKyAgICB9LAorCisgICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAg
IHsKKyAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIGNvbnRleHQg
PSB0aGlzLl9mcmFtZUlkVG9Db250ZXh0TGlzdFtmcmFtZS5pZF07CisgICAgICAgIGlmICghY29u
dGV4dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbC5FdmVudHMuRnJhbWVFeGVjdXRpb25D
b250ZXh0TGlzdFJlbW92ZWQsIGNvbnRleHQpOworICAgICAgICBkZWxldGUgdGhpcy5fZnJhbWVJ
ZFRvQ29udGV4dExpc3RbZnJhbWUuaWRdOworICAgIH0sCisKKyAgICBfZGlkTG9hZENhY2hlZFJl
c291cmNlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlclJ1bnRpbWVEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuUnVudGltZURpc3BhdGNoZXIo
dGhpcykpOworICAgICAgICBSdW50aW1lQWdlbnQuc2V0UmVwb3J0RXhlY3V0aW9uQ29udGV4dENy
ZWF0aW9uKHRydWUpOworICAgIH0sCisKKyAgICBfZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQ6IGZ1
bmN0aW9uKGNvbnRleHQpCisgICAgeworICAgICAgICB2YXIgY29udGV4dExpc3QgPSB0aGlzLl9m
cmFtZUlkVG9Db250ZXh0TGlzdFtjb250ZXh0LmZyYW1lSWRdOworICAgICAgICAvLyBGSVhNRSg4
NTcwOCk6IHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICBpZiAoIWNvbnRleHRMaXN0
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjb250ZXh0TGlzdC5fYWRkRXhlY3V0aW9u
Q29udGV4dChuZXcgV2ViSW5zcGVjdG9yLkV4ZWN1dGlvbkNvbnRleHQoY29udGV4dC5pZCwgY29u
dGV4dC5uYW1lLCBjb250ZXh0LmlzUGFnZUNvbnRleHQpKTsKKyAgICB9Cit9CisKK1dlYkluc3Bl
Y3Rvci5SdW50aW1lTW9kZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlOworCisvKioKKyAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUnVudGltZU1vZGVs
fQorICovCitXZWJJbnNwZWN0b3IucnVudGltZU1vZGVsID0gbnVsbDsKKworLyoqCisgKiBAY29u
c3RydWN0b3IKKyAqIEBpbXBsZW1lbnRzIHtSdW50aW1lQWdlbnQuRGlzcGF0Y2hlcn0KKyAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlJ1bnRpbWVNb2RlbH0gcnVudGltZU1vZGVsCisgKi8KK1dlYklu
c3BlY3Rvci5SdW50aW1lRGlzcGF0Y2hlciA9IGZ1bmN0aW9uKHJ1bnRpbWVNb2RlbCkKK3sKKyAg
ICB0aGlzLl9ydW50aW1lTW9kZWwgPSBydW50aW1lTW9kZWw7Cit9CisKK1dlYkluc3BlY3Rvci5S
dW50aW1lRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CisgICAgZXhlY3V0aW9uQ29udGV4dENyZWF0
ZWQ6IGZ1bmN0aW9uKGNvbnRleHQpCisgICAgeworICAgICAgICB0aGlzLl9ydW50aW1lTW9kZWwu
X2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVkKGNvbnRleHQpOworICAgIH0KK30KKworLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQorICovCitXZWJJ
bnNwZWN0b3IuRXhlY3V0aW9uQ29udGV4dCA9IGZ1bmN0aW9uKGlkLCBuYW1lLCBpc1BhZ2VDb250
ZXh0KQoreworICAgIHRoaXMuaWQgPSBpZDsKKyAgICB0aGlzLm5hbWUgPSAoaXNQYWdlQ29udGV4
dCAmJiAhbmFtZSkgPyAiPHBhZ2UgY29udGV4dD4iIDogbmFtZTsKKyAgICB0aGlzLmlzTWFpbldv
cmxkQ29udGV4dCA9IGlzUGFnZUNvbnRleHQ7Cit9CisKKy8qKgorICogQHBhcmFtIHsqfSBhCisg
KiBAcGFyYW0geyp9IGIKKyAqIEByZXR1cm4ge251bWJlcn0KKyAqLworV2ViSW5zcGVjdG9yLkV4
ZWN1dGlvbkNvbnRleHQuY29tcGFyYXRvciA9IGZ1bmN0aW9uKGEsIGIpCit7CisgICAgLy8gTWFp
biB3b3JsZCBjb250ZXh0IHNob3VsZCBhbHdheXMgZ28gZmlyc3QuCisgICAgaWYgKGEuaXNNYWlu
V29ybGRDb250ZXh0KQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKGIuaXNNYWluV29ybGRD
b250ZXh0KQorICAgICAgICByZXR1cm4gKzE7CisgICAgcmV0dXJuIGEubmFtZS5sb2NhbGVDb21w
YXJlKGIubmFtZSk7Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2Vi
SW5zcGVjdG9yLk9iamVjdH0KKyAqLworV2ViSW5zcGVjdG9yLkZyYW1lRXhlY3V0aW9uQ29udGV4
dExpc3QgPSBmdW5jdGlvbihmcmFtZSkKK3sKKyAgICB0aGlzLl9mcmFtZSA9IGZyYW1lOworICAg
IHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzID0gW107Cit9CisKK1dlYkluc3BlY3Rvci5GcmFtZUV4
ZWN1dGlvbkNvbnRleHRMaXN0LkV2ZW50VHlwZXMgPSB7CisgICAgQ29udGV4dHNVcGRhdGVkOiAi
Q29udGV4dHNVcGRhdGVkIiwKKyAgICBDb250ZXh0QWRkZWQ6ICJDb250ZXh0QWRkZWQiCit9CisK
K1dlYkluc3BlY3Rvci5GcmFtZUV4ZWN1dGlvbkNvbnRleHRMaXN0LnByb3RvdHlwZSA9Cit7Cisg
ICAgX2ZyYW1lTmF2aWdhdGVkOiBmdW5jdGlvbihmcmFtZSkKKyAgICB7CisgICAgICAgIHRoaXMu
X2ZyYW1lID0gZnJhbWU7CisgICAgICAgIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzID0gW107Cisg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5GcmFtZUV4
ZWN1dGlvbkNvbnRleHRMaXN0LkV2ZW50VHlwZXMuQ29udGV4dHNVcGRhdGVkLCB0aGlzKTsKKyAg
ICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXhlY3V0aW9uQ29u
dGV4dH0gY29udGV4dAorICAgICAqLworICAgIF9hZGRFeGVjdXRpb25Db250ZXh0OiBmdW5jdGlv
bihjb250ZXh0KQorICAgIHsKKyAgICAgICAgdmFyIGluc2VydEF0ID0gaW5zZXJ0aW9uSW5kZXhG
b3JPYmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGNvbnRleHQsIHRoaXMuX2V4ZWN1dGlvbkNv
bnRleHRzLCBXZWJJbnNwZWN0b3IuRXhlY3V0aW9uQ29udGV4dC5jb21wYXJhdG9yKTsKKyAgICAg
ICAgdGhpcy5fZXhlY3V0aW9uQ29udGV4dHMuc3BsaWNlKGluc2VydEF0LCAwLCBjb250ZXh0KTsK
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkZyYW1l
RXhlY3V0aW9uQ29udGV4dExpc3QuRXZlbnRUeXBlcy5Db250ZXh0QWRkZWQsIHRoaXMpOworICAg
IH0sCisKKyAgICBleGVjdXRpb25Db250ZXh0czogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzOworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gc2VjdXJpdHlPcmlnaW4KKyAgICAgKi8KKyAgICBjb250ZXh0QnlT
ZWN1cml0eU9yaWdpbjogZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4pCisgICAgeworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzLmxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2V4ZWN1dGlvbkNvbnRleHRzW2ldOwor
ICAgICAgICAgICAgaWYgKCFjb250ZXh0LmlzTWFpbldvcmxkQ29udGV4dCAmJiBjb250ZXh0Lm5h
bWUgPT09IHNlY3VyaXR5T3JpZ2luKQorICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0OyAK
KyAgICAgICAgfQorICAgIH0sCisKKyAgICBnZXQgZnJhbWVJZCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fZnJhbWUuaWQ7CisgICAgfSwKKworICAgIGdldCB1cmwoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lLnVybDsKKyAgICB9LAorCisgICAgZ2V0IGRpc3BsYXlO
YW1lKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fZnJhbWUucGFyZW50RnJhbWUpCisgICAg
ICAgICAgICByZXR1cm4gIjx0b3AgZnJhbWU+IjsKKyAgICAgICAgdmFyIG5hbWUgPSB0aGlzLl9m
cmFtZS5uYW1lIHx8ICIiOworICAgICAgICB2YXIgc3VidGl0bGUgPSBuZXcgV2ViSW5zcGVjdG9y
LlBhcnNlZFVSTCh0aGlzLl9mcmFtZS51cmwpLmRpc3BsYXlOYW1lOworICAgICAgICBpZiAoc3Vi
dGl0bGUpIHsKKyAgICAgICAgICAgIGlmICghbmFtZSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
c3VidGl0bGU7CisgICAgICAgICAgICByZXR1cm4gbmFtZSArICIoICIgKyBzdWJ0aXRsZSArICIg
KSI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICI8aWZyYW1lPiI7CisgICAgfQorfQorCitX
ZWJJbnNwZWN0b3IuRnJhbWVFeGVjdXRpb25Db250ZXh0TGlzdC5wcm90b3R5cGUuX19wcm90b19f
ID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggZTcyZTJjZmVmZGFkZTNmZWJhMzEzMzg3
NDFhYTgzY2ZlYjcxMGNiNy4uNWRlODlhZDRlYzcyNWJjZTI3MmY5YzVkYjM1OTU0OTdjNzVmZWU2
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpA
QCAtOTQsNyArOTQsNiBAQAogICAgIDxmaWxlPkluc3BlY3RvckZyb250ZW5kQVBJLmpzPC9maWxl
PgogICAgIDxmaWxlPkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanM8L2ZpbGU+CiAgICAgPGZp
bGU+SW5zcGVjdG9yVmlldy5qczwvZmlsZT4KLSAgICA8ZmlsZT5KYXZhU2NyaXB0Q29udGV4dE1h
bmFnZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+SmF2YVNjcmlwdEZvcm1hdHRlci5qczwvZmlsZT4K
ICAgICA8ZmlsZT5KYXZhU2NyaXB0U291cmNlLmpzPC9maWxlPgogICAgIDxmaWxlPkphdmFTY3Jp
cHRTb3VyY2VGcmFtZS5qczwvZmlsZT4KQEAgLTE0Nyw2ICsxNDYsNyBAQAogICAgIDxmaWxlPlJl
c291cmNlV2ViU29ja2V0RnJhbWVWaWV3LmpzPC9maWxlPgogICAgIDxmaWxlPlJlc291cmNlc1Bh
bmVsLmpzPC9maWxlPgogICAgIDxmaWxlPlJldmlzaW9uSGlzdG9yeVZpZXcuanM8L2ZpbGU+Cisg
ICAgPGZpbGU+UnVudGltZU1vZGVsLmpzPC9maWxlPgogICAgIDxmaWxlPlNBU1NTb3VyY2VNYXBw
aW5nLmpzPC9maWxlPgogICAgIDxmaWxlPlNjb3BlQ2hhaW5TaWRlYmFyUGFuZS5qczwvZmlsZT4K
ICAgICA8ZmlsZT5TY3JpcHQuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAyMmM1YjMxNGRkYTcyMTgxOGZhZjMx
NmQxMWQ2ODcyZGIwOTM4YjA4Li4xYmVlZmVkMGU4Njc1NWI4YTc2NjM0OTU1NzcyMWFjMWUxMjQ4
OTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmh0bWwKQEAgLTE1Niw3ICsxNTYsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IlNlYXJjaENvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ildvcmtlck1hbmFnZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlVzZXJNZXRy
aWNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJKYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlJ1bnRpbWVNb2RlbC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGFuZGxlclJlZ2lzdHJ5LmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTbmlwcGV0
U3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iU2NyaXB0U25pcHBldE1vZGVsLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZjIzNWFmNjc5NDcyY2Ey
MGVmZTYyZjQ3OTkyN2VlYzE3MDcyOTBjYi4uM2I5OGVkNzdiY2I4OTdjMWI2MGMzOTZhYjAxYjEw
ZjJmMzlhMTMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKQEAgLTQ5MSw3ICs0OTEsNyBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9u
ZVdpdGhDYXBhYmlsaXRpZXMgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5kZWJ1Z2dlck1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2Vy
UGF1c2VkLCB0aGlzLl9kZWJ1Z2dlclBhdXNlZCwgdGhpcyk7CiAgICAgdGhpcy5uZXR3b3JrTG9n
ID0gbmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nKCk7CiAgICAgdGhpcy5kb21BZ2VudCA9IG5l
dyBXZWJJbnNwZWN0b3IuRE9NQWdlbnQoKTsKLSAgICB0aGlzLmphdmFTY3JpcHRDb250ZXh0TWFu
YWdlciA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyKHRoaXMucmVz
b3VyY2VUcmVlTW9kZWwpOworICAgIHRoaXMucnVudGltZU1vZGVsID0gbmV3IFdlYkluc3BlY3Rv
ci5SdW50aW1lTW9kZWwodGhpcy5yZXNvdXJjZVRyZWVNb2RlbCk7CiAKICAgICB0aGlzLmNvbnNv
bGVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyhXZWJJbnNwZWN0b3IuV29ya2Vy
TWFuYWdlci5pc1dvcmtlckZyb250ZW5kKCkpOwogCg==
</data>
<flag name="review"
          id="172808"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>