<?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>49441</bug_id>
          
          <creation_ts>2010-11-12 06:51:43 -0800</creation_ts>
          <short_desc>Web Inspector: [Extensions API] [refactoring] generate public API interfaces automatically</short_desc>
          <delta_ts>2010-11-12 07:43:49 -0800</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>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</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>308514</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-12 06:51:43 -0800</bug_when>
    <thetext>In order to hide implementation fields from the client, the extensions API often makes publicly visible classes as wrappers that create an instance of implementation class as a lexical variable named impl in constructor and re-bind all public methods from impl.
This used to be done manually, which produces annoying clutter in ExtensionsAPI.js. This patch automates creation of public interface wrappers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308522</commentid>
    <comment_count>1</comment_count>
      <attachid>73736</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-12 06:56:36 -0800</bug_when>
    <thetext>Created attachment 73736
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308525</commentid>
    <comment_count>2</comment_count>
      <attachid>73738</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-11-12 07:09:51 -0800</bug_when>
    <thetext>Created attachment 73738
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308543</commentid>
    <comment_count>3</comment_count>
      <attachid>73738</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-12 07:43:44 -0800</bug_when>
    <thetext>Comment on attachment 73738
patch

Clearing flags on attachment: 73738

Committed r71911: &lt;http://trac.webkit.org/changeset/71911&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308544</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-12 07:43:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73736</attachid>
            <date>2010-11-12 06:56:36 -0800</date>
            <delta_ts>2010-11-12 07:09:51 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ext-api-export</filename>
            <type>text/plain</type>
            <size>10079</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjNhOTQwLi4wMDU1ZTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEt
MTIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRXh0ZW5z
aW9ucyBBUEldIFtyZWZhY3RvcmluZ10gZ2VuZXJhdGUgcHVibGljIEFQSSBpbnRlcmZhY2VzIGF1
dG9tYXRpY2FsbHkKKyAgICAgICAgQWRqdXN0aW5nIHRoZSBvcmRlciBvZiBwcm9wZXJ0aWVzIGlu
IEFQSSBpbnRlcmZhY2VzIGR1bXBzIGluIHRoZSBleHBlY3RhdGlvbnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTQ0MQorCisgICAgICAgICogaW5z
cGVjdG9yL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMTAtMTEtMTEgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWpp
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXBpLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50
eHQKaW5kZXggZDg4NjMxMy4uNTY1N2VlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CkBAIC0yNiwyMCArMjYsMjAgQEAgUlVOTklO
RyBURVNUOiBleHRlbnNpb25fdGVzdEFQSQogICAgIH0KICAgICBwYW5lbHMgOiB7CiAgICAgICAg
IGVsZW1lbnRzIDogewotICAgICAgICAgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+
Ci0gICAgICAgICAgICBjcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSA6IDxmdW5jdGlv
bj4KICAgICAgICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlZCA6IHsKICAgICAgICAgICAgICAgICBh
ZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6
IDxmdW5jdGlvbj4KICAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBzY3JpcHRzIDog
ewogICAgICAgICAgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CiAgICAgICAgICAg
ICBjcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KKyAgICAgICAg
fQorICAgICAgICBzY3JpcHRzIDogewogICAgICAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2VkIDog
ewogICAgICAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICAgICAg
ICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CisgICAgICAgICAgICBjcmVhdGVXYXRj
aEV4cHJlc3Npb25TaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KICAgICAgICAgfQogICAgICAgICBj
cmVhdGUgOiA8ZnVuY3Rpb24+CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dAppbmRleCA5MjBiM2MzLi5m
MTRiNmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRp
dHMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dApAQCAtMTMsMTIgKzEzLDEyIEBAIEFkZGVkIGF1ZGl0
IGNhdGVnb3J5LCByZXN1bHQgZHVtcCBmb2xsb3dzOgogfQogY2F0ZWdvcnkub25BdWRpdFN0YXJ0
ZWQgZmlyZWQsIHJlc3VsdHMgZHVtcCBmb2xsb3dzOgogewotICAgIGFkZFJlc3VsdCA6IDxmdW5j
dGlvbj4KLSAgICBjcmVhdGVSZXN1bHQgOiA8ZnVuY3Rpb24+Ci0gICAgZG9uZSA6IDxmdW5jdGlv
bj4KICAgICB1cmwgOiA8ZnVuY3Rpb24+CiAgICAgc25pcHBldCA6IDxmdW5jdGlvbj4KICAgICB0
ZXh0IDogPGZ1bmN0aW9uPgorICAgIGFkZFJlc3VsdCA6IDxmdW5jdGlvbj4KKyAgICBjcmVhdGVS
ZXN1bHQgOiA8ZnVuY3Rpb24+CisgICAgZG9uZSA6IDxmdW5jdGlvbj4KICAgICBTZXZlcml0eSA6
IHsKICAgICAgICAgSW5mbyA6ICJpbmZvIgogICAgICAgICBXYXJuaW5nIDogIndhcm5pbmciCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQKaW5kZXggMTVj
NjY1My4uODdiYjkyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV4
cGVjdGVkLnR4dApAQCAtNywxMiArNywxMiBAQCBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0
Q3JlYXRlUGFuZWwKIGRvbmUgY3JlYXRlUGFuZWwKIFBhbmVsIGNyZWF0ZWQKIHsKLSAgICBjcmVh
dGVTaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KLSAgICBjcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRl
YmFyUGFuZSA6IDxmdW5jdGlvbj4KICAgICBvblNlbGVjdGlvbkNoYW5nZWQgOiB7CiAgICAgICAg
IGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5j
dGlvbj4KICAgICB9CisgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CisgICAgY3Jl
YXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CiAgICAgb25TZWFyY2gg
OiB7CiAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICByZW1vdmVMaXN0
ZW5lciA6IDxmdW5jdGlvbj4KQEAgLTMwLDE0ICszMCwxNCBAQCBSVU5OSU5HIFRFU1Q6IGV4dGVu
c2lvbl90ZXN0RXh0ZW5zaW9uV2F0Y2hTaWRlYmFyT2JqZWN0CiBXYXRjaCBzaWRlYmFyIGNyZWF0
ZWQsIGNhbGxiYWNrIGFyZ3VtZW50cyBkdW1wIGZvbGxvd3M6CiB7CiAgICAgMCA6IHsKLSAgICAg
ICAgc2V0SGVpZ2h0IDogPGZ1bmN0aW9uPgotICAgICAgICBzZXRFeHBhbmRlZCA6IDxmdW5jdGlv
bj4KLSAgICAgICAgc2V0RXhwcmVzc2lvbiA6IDxmdW5jdGlvbj4KLSAgICAgICAgc2V0T2JqZWN0
IDogPGZ1bmN0aW9uPgogICAgICAgICBvblVwZGF0ZWQgOiB7CiAgICAgICAgICAgICBhZGRMaXN0
ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9u
PgogICAgICAgICB9CisgICAgICAgIHNldEV4cHJlc3Npb24gOiA8ZnVuY3Rpb24+CisgICAgICAg
IHNldE9iamVjdCA6IDxmdW5jdGlvbj4KKyAgICAgICAgc2V0SGVpZ2h0IDogPGZ1bmN0aW9uPgor
ICAgICAgICBzZXRFeHBhbmRlZCA6IDxmdW5jdGlvbj4KICAgICB9CiB9CiBTaWRlYmFyIGNvbnRl
bnQ6IGYwOiAib2JqZWN0ImYxOiB1bmRlZmluZWRmMjogbnVsbGYzOiB7IH1mNDogWzBdZjU6IFsz
XWY2OiB7Li4ufWY3OiA0MgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlM2Q3ZDJiLi4wMTVmNGY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEwLTEx
LTEyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVu
c2lvbnMgQVBJXSBbcmVmYWN0b3JpbmddIGdlbmVyYXRlIHB1YmxpYyBBUEkgaW50ZXJmYWNlcyBh
dXRvbWF0aWNhbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00OTQ0MQorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEku
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuUGFuZWxJbXBs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuV2F0Y2hFeHByZXNzaW9uU2lkZWJh
clBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkF1ZGl0
Q2F0ZWdvcnlJbXBsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQ
SS5BdWRpdFJlc3VsdEltcGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5z
aW9uQVBJLkF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUuZ2V0IFNldmVyaXR5KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS4pOgorCiAyMDEwLTExLTExICBBbGVq
YW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE5pa29sYXMgWmltbWVybWFubi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25BUEkuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5z
aW9uQVBJLmpzCmluZGV4IDdkNmQ3NmMuLmI3ZTkxNjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwpAQCAtODUsMTMgKzg1LDYgQEAgRXZlbnRTaW5rSW1w
bC5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1mdW5jdGlvbiBFdmVudFNpbmsodHlwZSwgY3Vz
dG9tRGlzcGF0Y2gpCi17Ci0gICAgdmFyIGltcGwgPSBuZXcgRXZlbnRTaW5rSW1wbCh0eXBlLCBj
dXN0b21EaXNwYXRjaCk7Ci0gICAgdGhpcy5hZGRMaXN0ZW5lciA9IGJpbmQoaW1wbC5hZGRMaXN0
ZW5lciwgaW1wbCk7Ci0gICAgdGhpcy5yZW1vdmVMaXN0ZW5lciA9IGJpbmQoaW1wbC5yZW1vdmVM
aXN0ZW5lciwgaW1wbCk7Ci19Ci0KIGZ1bmN0aW9uIEluc3BlY3RvckV4dGVuc2lvbkFQSSgpCiB7
CiAgICAgdGhpcy5hdWRpdHMgPSBuZXcgQXVkaXRzKCk7CkBAIC0xODMsNiArMTc2LDcgQEAgUGFu
ZWxzLnByb3RvdHlwZSA9IHsKIGZ1bmN0aW9uIFBhbmVsSW1wbChpZCkKIHsKICAgICB0aGlzLl9p
ZCA9IGlkOworICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50U2luaygicGFu
ZWwtb2JqZWN0U2VsZWN0ZWQtIiArIGlkKTsKIH0KIAogUGFuZWxJbXBsLnByb3RvdHlwZSA9IHsK
QEAgLTIxMywyNSArMjA3LDEyIEBAIFBhbmVsSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgfQogfQog
Ci1mdW5jdGlvbiBQYW5lbChpZCkKLXsKLSAgICB2YXIgaW1wbCA9IG5ldyBQYW5lbEltcGwoaWQp
OwotICAgIHRoaXMuY3JlYXRlU2lkZWJhclBhbmUgPSBiaW5kKGltcGwuY3JlYXRlU2lkZWJhclBh
bmUsIGltcGwpOwotICAgIHRoaXMuY3JlYXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUgPSBi
aW5kKGltcGwuY3JlYXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUsIGltcGwpOwotICAgIHRo
aXMub25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50U2luaygicGFuZWwtb2JqZWN0U2VsZWN0
ZWQtIiArIGlkKTsKLX0KLQogZnVuY3Rpb24gRXh0ZW5zaW9uUGFuZWwoaWQpCiB7CiAgICAgUGFu
ZWwuY2FsbCh0aGlzLCBpZCk7CiAgICAgdGhpcy5vblNlYXJjaCA9IG5ldyBFdmVudFNpbmsoInBh
bmVsLXNlYXJjaC0iICsgaWQpOwogfQogCi1FeHRlbnNpb25QYW5lbC5wcm90b3R5cGUgPSB7Ci19
Ci0KLUV4dGVuc2lvblBhbmVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBQYW5lbC5wcm90b3R5cGU7
Ci0KIGZ1bmN0aW9uIEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbChpZCkKIHsKICAgICB0aGlzLl9p
ZCA9IGlkOwpAQCAtMjQ5LDE3ICsyMzAsMTAgQEAgRXh0ZW5zaW9uU2lkZWJhclBhbmVJbXBsLnBy
b3RvdHlwZSA9IHsKICAgICB9CiB9CiAKLWZ1bmN0aW9uIEV4dGVuc2lvblNpZGViYXJQYW5lKGlk
LCBpbXBsKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgaW1wbCA9IG5ldyBFeHRlbnNpb25T
aWRlYmFyUGFuZUltcGwoaWQpOwotICAgIHRoaXMuc2V0SGVpZ2h0ID0gYmluZChpbXBsLnNldEhl
aWdodCwgaW1wbCk7Ci0gICAgdGhpcy5zZXRFeHBhbmRlZCA9IGJpbmQoaW1wbC5zZXRFeHBhbmRl
ZCwgaW1wbCk7Ci19Ci0KIGZ1bmN0aW9uIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbChp
ZCkKIHsKICAgICBFeHRlbnNpb25TaWRlYmFyUGFuZUltcGwuY2FsbCh0aGlzLCBpZCk7CisgICAg
dGhpcy5vblVwZGF0ZWQgPSBuZXcgRXZlbnRTaW5rKCJ3YXRjaC1zaWRlYmFyLXVwZGF0ZWQtIiAr
IGlkKTsKIH0KIAogV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmVJbXBsLnByb3RvdHlwZSA9IHsK
QEAgLTI3NCwxMyArMjQ4LDEyIEBAIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbC5wcm90
b3R5cGUgPSB7CiAgICAgfQogfQogCitXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZUltcGwucHJv
dG90eXBlLl9fcHJvdG9fXyA9IEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbC5wcm90b3R5cGU7CisK
IGZ1bmN0aW9uIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lKGlkKQogewogICAgIHZhciBpbXBs
ID0gbmV3IFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbChpZCk7CiAgICAgRXh0ZW5zaW9u
U2lkZWJhclBhbmUuY2FsbCh0aGlzLCBpZCwgaW1wbCk7Ci0gICAgdGhpcy5zZXRFeHByZXNzaW9u
ID0gYmluZChpbXBsLnNldEV4cHJlc3Npb24sIGltcGwpOwotICAgIHRoaXMuc2V0T2JqZWN0ID0g
YmluZChpbXBsLnNldE9iamVjdCwgaW1wbCk7Ci0gICAgdGhpcy5vblVwZGF0ZWQgPSBuZXcgRXZl
bnRTaW5rKCJ3YXRjaC1zaWRlYmFyLXVwZGF0ZWQtIiArIGlkKTsKIH0KIAogZnVuY3Rpb24gQXVk
aXRzKCkKQEAgLTI5Niw3ICsyNjksNyBAQCBBdWRpdHMucHJvdG90eXBlID0gewogICAgIH0KIH0K
IAotZnVuY3Rpb24gQXVkaXRDYXRlZ29yeShpZCkKK2Z1bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJbXBs
KGlkKQogewogICAgIGZ1bmN0aW9uIGN1c3RvbURpc3BhdGNoKHJlcXVlc3QpCiAgICAgewpAQCAt
MzA4LDIyICsyODEsMTMgQEAgZnVuY3Rpb24gQXVkaXRDYXRlZ29yeShpZCkKICAgICAgICAgICAg
IGF1ZGl0UmVzdWx0LmRvbmUoKTsKICAgICAgICAgfQogICAgIH0KLSAgICB2YXIgaW1wbCA9IG5l
dyBBdWRpdENhdGVnb3J5SW1wbChpZCk7CisgICAgdGhpcy5faWQgPSBpZDsKICAgICB0aGlzLm9u
QXVkaXRTdGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQtc3RhcnRlZC0iICsgaWQsIGN1c3Rv
bURpc3BhdGNoKTsKIH0KIAotZnVuY3Rpb24gQXVkaXRDYXRlZ29yeUltcGwoaWQpCitmdW5jdGlv
biBBdWRpdFJlc3VsdEltcGwoaWQpCiB7CiAgICAgdGhpcy5faWQgPSBpZDsKLX0KLQotZnVuY3Rp
b24gQXVkaXRSZXN1bHQoaWQpCi17Ci0gICAgdmFyIGltcGwgPSBuZXcgQXVkaXRSZXN1bHRJbXBs
KGlkKTsKLQotICAgIHRoaXMuYWRkUmVzdWx0ID0gYmluZChpbXBsLmFkZFJlc3VsdCwgaW1wbCk7
Ci0gICAgdGhpcy5jcmVhdGVSZXN1bHQgPSBiaW5kKGltcGwuY3JlYXRlUmVzdWx0LCBpbXBsKTsK
LSAgICB0aGlzLmRvbmUgPSBiaW5kKGltcGwuZG9uZSwgaW1wbCk7CiAKICAgICB2YXIgZm9ybWF0
dGVyVHlwZXMgPSBbCiAgICAgICAgICJ1cmwiLApAQCAtMzMxLDE5ICsyOTUsNyBAQCBmdW5jdGlv
biBBdWRpdFJlc3VsdChpZCkKICAgICAgICAgInRleHQiCiAgICAgXTsKICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGZvcm1hdHRlclR5cGVzLmxlbmd0aDsgKytpKQotICAgICAgICB0aGlzW2Zvcm1h
dHRlclR5cGVzW2ldXSA9IGJpbmQoaW1wbC5fbm9kZUZhY3RvcnksIG51bGwsIGZvcm1hdHRlclR5
cGVzW2ldKTsKLX0KLQotQXVkaXRSZXN1bHQucHJvdG90eXBlID0gewotICAgIGdldCBTZXZlcml0
eSgpCi0gICAgewotICAgICAgICByZXR1cm4gcHJpdmF0ZS5hdWRpdHMuU2V2ZXJpdHk7Ci0gICAg
fQotfQotCi1mdW5jdGlvbiBBdWRpdFJlc3VsdEltcGwoaWQpCi17Ci0gICAgdGhpcy5faWQgPSBp
ZDsKKyAgICAgICAgdGhpc1tmb3JtYXR0ZXJUeXBlc1tpXV0gPSBiaW5kKHRoaXMuX25vZGVGYWN0
b3J5LCBudWxsLCBmb3JtYXR0ZXJUeXBlc1tpXSk7CiB9CiAKIEF1ZGl0UmVzdWx0SW1wbC5wcm90
b3R5cGUgPSB7CkBAIC0zNzYsNiArMzI4LDExIEBAIEF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJzdG9w
QXVkaXRDYXRlZ29yeVJ1biIsIHJlc3VsdElkOiB0aGlzLl9pZCB9KTsKICAgICB9LAogCisgICAg
Z2V0IFNldmVyaXR5KCkKKyAgICB7CisgICAgICAgIHJldHVybiBwcml2YXRlLmF1ZGl0cy5TZXZl
cml0eTsKKyAgICB9LAorCiAgICAgX25vZGVGYWN0b3J5OiBmdW5jdGlvbih0eXBlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIHsKQEAgLTUwMyw2ICs0NjAsMzQgQEAgZnVuY3Rpb24gYmluZChmdW5j
LCB0aGlzT2JqZWN0KQogICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGZ1bmMuYXBwbHko
dGhpc09iamVjdCwgYXJncy5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1l
bnRzLCAwKSkpOyB9OwogfQogCitmdW5jdGlvbiBwb3B1bGF0ZUludGVyZmFjZUNhbHNzKGludGVy
ZmFjZSwgaW1wbGVtZW50YXRpb24pCit7CisgICAgZm9yICh2YXIgbWVtYmVyIGluIGltcGxlbWVu
dGF0aW9uKSB7CisgICAgICAgIGlmIChtZW1iZXIuY2hhckF0KDApID09PSAiXyIpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIHZhbHVlID0gaW1wbGVtZW50YXRpb25bbWVtYmVy
XTsKKyAgICAgICAgaW50ZXJmYWNlW21lbWJlcl0gPSB0eXBlb2YgdmFsdWUgPT09ICJmdW5jdGlv
biIgPyBiaW5kKHZhbHVlLCBpbXBsZW1lbnRhdGlvbikKKyAgICAgICAgICAgIDogaW50ZXJmYWNl
W21lbWJlcl0gPSBpbXBsZW1lbnRhdGlvblttZW1iZXJdOworICAgIH0KK30KKworZnVuY3Rpb24g
ZGVjbGFyZUludGVyZmFjZUNsYXNzKGltcGxDb25zdHJ1Y3RvcikKK3sKKyAgICByZXR1cm4gZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGltcGwgPSB7IF9fcHJvdG9fXzogaW1wbENvbnN0
cnVjdG9yLnByb3RvdHlwZSB9OworICAgICAgICBpbXBsQ29uc3RydWN0b3IuYXBwbHkoaW1wbCwg
YXJndW1lbnRzKTsKKyAgICAgICAgcG9wdWxhdGVJbnRlcmZhY2VDYWxzcyh0aGlzLCBpbXBsKTsK
KyAgICB9Cit9CisKK3ZhciBFdmVudFNpbmsgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoRXZlbnRT
aW5rSW1wbCk7Cit2YXIgUGFuZWwgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoUGFuZWxJbXBsKTsK
K3ZhciBFeHRlbnNpb25TaWRlYmFyUGFuZSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhFeHRlbnNp
b25TaWRlYmFyUGFuZUltcGwpOwordmFyIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lID0gZGVj
bGFyZUludGVyZmFjZUNsYXNzKFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbCk7Cit2YXIg
QXVkaXRDYXRlZ29yeSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhBdWRpdENhdGVnb3J5SW1wbCk7
Cit2YXIgQXVkaXRSZXN1bHQgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoQXVkaXRSZXN1bHRJbXBs
KTsKKwogdmFyIGV4dGVuc2lvblNlcnZlciA9IG5ldyBFeHRlbnNpb25TZXJ2ZXJDbGllbnQoKTsK
IAogd2ViSW5zcGVjdG9yID0gbmV3IEluc3BlY3RvckV4dGVuc2lvbkFQSSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73738</attachid>
            <date>2010-11-12 07:09:51 -0800</date>
            <delta_ts>2010-11-12 07:43:44 -0800</delta_ts>
            <desc>patch</desc>
            <filename>ext-api-export</filename>
            <type>text/plain</type>
            <size>10079</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjNhOTQwLi4wMDU1ZTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEt
MTIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRXh0ZW5z
aW9ucyBBUEldIFtyZWZhY3RvcmluZ10gZ2VuZXJhdGUgcHVibGljIEFQSSBpbnRlcmZhY2VzIGF1
dG9tYXRpY2FsbHkKKyAgICAgICAgQWRqdXN0aW5nIHRoZSBvcmRlciBvZiBwcm9wZXJ0aWVzIGlu
IEFQSSBpbnRlcmZhY2VzIGR1bXBzIGluIHRoZSBleHBlY3RhdGlvbnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTQ0MQorCisgICAgICAgICogaW5z
cGVjdG9yL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQ6CisKIDIwMTAtMTEtMTEgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNoaW5pY2hpcm8gSGFtYWpp
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtYXBpLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWFwaS1leHBlY3RlZC50
eHQKaW5kZXggZDg4NjMxMy4uNTY1N2VlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy1hcGktZXhwZWN0ZWQudHh0CkBAIC0yNiwyMCArMjYsMjAgQEAgUlVOTklO
RyBURVNUOiBleHRlbnNpb25fdGVzdEFQSQogICAgIH0KICAgICBwYW5lbHMgOiB7CiAgICAgICAg
IGVsZW1lbnRzIDogewotICAgICAgICAgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+
Ci0gICAgICAgICAgICBjcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSA6IDxmdW5jdGlv
bj4KICAgICAgICAgICAgIG9uU2VsZWN0aW9uQ2hhbmdlZCA6IHsKICAgICAgICAgICAgICAgICBh
ZGRMaXN0ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgICAgICByZW1vdmVMaXN0ZW5lciA6
IDxmdW5jdGlvbj4KICAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBzY3JpcHRzIDog
ewogICAgICAgICAgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CiAgICAgICAgICAg
ICBjcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KKyAgICAgICAg
fQorICAgICAgICBzY3JpcHRzIDogewogICAgICAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2VkIDog
ewogICAgICAgICAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICAgICAg
ICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CisgICAgICAgICAgICBjcmVhdGVXYXRj
aEV4cHJlc3Npb25TaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KICAgICAgICAgfQogICAgICAgICBj
cmVhdGUgOiA8ZnVuY3Rpb24+CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtYXVkaXRzLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dAppbmRleCA5MjBiM2MzLi5m
MTRiNmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1hdWRp
dHMtYXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy1hdWRpdHMtYXBpLWV4cGVjdGVkLnR4dApAQCAtMTMsMTIgKzEzLDEyIEBAIEFkZGVkIGF1ZGl0
IGNhdGVnb3J5LCByZXN1bHQgZHVtcCBmb2xsb3dzOgogfQogY2F0ZWdvcnkub25BdWRpdFN0YXJ0
ZWQgZmlyZWQsIHJlc3VsdHMgZHVtcCBmb2xsb3dzOgogewotICAgIGFkZFJlc3VsdCA6IDxmdW5j
dGlvbj4KLSAgICBjcmVhdGVSZXN1bHQgOiA8ZnVuY3Rpb24+Ci0gICAgZG9uZSA6IDxmdW5jdGlv
bj4KICAgICB1cmwgOiA8ZnVuY3Rpb24+CiAgICAgc25pcHBldCA6IDxmdW5jdGlvbj4KICAgICB0
ZXh0IDogPGZ1bmN0aW9uPgorICAgIGFkZFJlc3VsdCA6IDxmdW5jdGlvbj4KKyAgICBjcmVhdGVS
ZXN1bHQgOiA8ZnVuY3Rpb24+CisgICAgZG9uZSA6IDxmdW5jdGlvbj4KICAgICBTZXZlcml0eSA6
IHsKICAgICAgICAgSW5mbyA6ICJpbmZvIgogICAgICAgICBXYXJuaW5nIDogIndhcm5pbmciCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQKaW5kZXggMTVj
NjY1My4uODdiYjkyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLWV4
cGVjdGVkLnR4dApAQCAtNywxMiArNywxMiBAQCBSVU5OSU5HIFRFU1Q6IGV4dGVuc2lvbl90ZXN0
Q3JlYXRlUGFuZWwKIGRvbmUgY3JlYXRlUGFuZWwKIFBhbmVsIGNyZWF0ZWQKIHsKLSAgICBjcmVh
dGVTaWRlYmFyUGFuZSA6IDxmdW5jdGlvbj4KLSAgICBjcmVhdGVXYXRjaEV4cHJlc3Npb25TaWRl
YmFyUGFuZSA6IDxmdW5jdGlvbj4KICAgICBvblNlbGVjdGlvbkNoYW5nZWQgOiB7CiAgICAgICAg
IGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICByZW1vdmVMaXN0ZW5lciA6IDxmdW5j
dGlvbj4KICAgICB9CisgICAgY3JlYXRlU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CisgICAgY3Jl
YXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUgOiA8ZnVuY3Rpb24+CiAgICAgb25TZWFyY2gg
OiB7CiAgICAgICAgIGFkZExpc3RlbmVyIDogPGZ1bmN0aW9uPgogICAgICAgICByZW1vdmVMaXN0
ZW5lciA6IDxmdW5jdGlvbj4KQEAgLTMwLDE0ICszMCwxNCBAQCBSVU5OSU5HIFRFU1Q6IGV4dGVu
c2lvbl90ZXN0RXh0ZW5zaW9uV2F0Y2hTaWRlYmFyT2JqZWN0CiBXYXRjaCBzaWRlYmFyIGNyZWF0
ZWQsIGNhbGxiYWNrIGFyZ3VtZW50cyBkdW1wIGZvbGxvd3M6CiB7CiAgICAgMCA6IHsKLSAgICAg
ICAgc2V0SGVpZ2h0IDogPGZ1bmN0aW9uPgotICAgICAgICBzZXRFeHBhbmRlZCA6IDxmdW5jdGlv
bj4KLSAgICAgICAgc2V0RXhwcmVzc2lvbiA6IDxmdW5jdGlvbj4KLSAgICAgICAgc2V0T2JqZWN0
IDogPGZ1bmN0aW9uPgogICAgICAgICBvblVwZGF0ZWQgOiB7CiAgICAgICAgICAgICBhZGRMaXN0
ZW5lciA6IDxmdW5jdGlvbj4KICAgICAgICAgICAgIHJlbW92ZUxpc3RlbmVyIDogPGZ1bmN0aW9u
PgogICAgICAgICB9CisgICAgICAgIHNldEV4cHJlc3Npb24gOiA8ZnVuY3Rpb24+CisgICAgICAg
IHNldE9iamVjdCA6IDxmdW5jdGlvbj4KKyAgICAgICAgc2V0SGVpZ2h0IDogPGZ1bmN0aW9uPgor
ICAgICAgICBzZXRFeHBhbmRlZCA6IDxmdW5jdGlvbj4KICAgICB9CiB9CiBTaWRlYmFyIGNvbnRl
bnQ6IGYwOiAib2JqZWN0ImYxOiB1bmRlZmluZWRmMjogbnVsbGYzOiB7IH1mNDogWzBdZjU6IFsz
XWY2OiB7Li4ufWY3OiA0MgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlM2Q3ZDJiLi4wMTVmNGY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEwLTEx
LTEyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVu
c2lvbnMgQVBJXSBbcmVmYWN0b3JpbmddIGdlbmVyYXRlIHB1YmxpYyBBUEkgaW50ZXJmYWNlcyBh
dXRvbWF0aWNhbGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00OTQ0MQorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEku
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuUGFuZWxJbXBs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuaW5qZWN0ZWRFeHRlbnNpb25BUEkuV2F0Y2hFeHByZXNzaW9uU2lkZWJh
clBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5zaW9uQVBJLkF1ZGl0
Q2F0ZWdvcnlJbXBsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQ
SS5BdWRpdFJlc3VsdEltcGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmluamVjdGVkRXh0ZW5z
aW9uQVBJLkF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUuZ2V0IFNldmVyaXR5KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVuc2lvbkFQSS4pOgorCiAyMDEwLTExLTExICBBbGVq
YW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE5pa29sYXMgWmltbWVybWFubi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25BUEkuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5z
aW9uQVBJLmpzCmluZGV4IDdkNmQ3NmMuLmU1MjZjZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwpAQCAtODUsMTMgKzg1LDYgQEAgRXZlbnRTaW5rSW1w
bC5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1mdW5jdGlvbiBFdmVudFNpbmsodHlwZSwgY3Vz
dG9tRGlzcGF0Y2gpCi17Ci0gICAgdmFyIGltcGwgPSBuZXcgRXZlbnRTaW5rSW1wbCh0eXBlLCBj
dXN0b21EaXNwYXRjaCk7Ci0gICAgdGhpcy5hZGRMaXN0ZW5lciA9IGJpbmQoaW1wbC5hZGRMaXN0
ZW5lciwgaW1wbCk7Ci0gICAgdGhpcy5yZW1vdmVMaXN0ZW5lciA9IGJpbmQoaW1wbC5yZW1vdmVM
aXN0ZW5lciwgaW1wbCk7Ci19Ci0KIGZ1bmN0aW9uIEluc3BlY3RvckV4dGVuc2lvbkFQSSgpCiB7
CiAgICAgdGhpcy5hdWRpdHMgPSBuZXcgQXVkaXRzKCk7CkBAIC0xODMsNiArMTc2LDcgQEAgUGFu
ZWxzLnByb3RvdHlwZSA9IHsKIGZ1bmN0aW9uIFBhbmVsSW1wbChpZCkKIHsKICAgICB0aGlzLl9p
ZCA9IGlkOworICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50U2luaygicGFu
ZWwtb2JqZWN0U2VsZWN0ZWQtIiArIGlkKTsKIH0KIAogUGFuZWxJbXBsLnByb3RvdHlwZSA9IHsK
QEAgLTIxMywyNSArMjA3LDEyIEBAIFBhbmVsSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgfQogfQog
Ci1mdW5jdGlvbiBQYW5lbChpZCkKLXsKLSAgICB2YXIgaW1wbCA9IG5ldyBQYW5lbEltcGwoaWQp
OwotICAgIHRoaXMuY3JlYXRlU2lkZWJhclBhbmUgPSBiaW5kKGltcGwuY3JlYXRlU2lkZWJhclBh
bmUsIGltcGwpOwotICAgIHRoaXMuY3JlYXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUgPSBi
aW5kKGltcGwuY3JlYXRlV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmUsIGltcGwpOwotICAgIHRo
aXMub25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50U2luaygicGFuZWwtb2JqZWN0U2VsZWN0
ZWQtIiArIGlkKTsKLX0KLQogZnVuY3Rpb24gRXh0ZW5zaW9uUGFuZWwoaWQpCiB7CiAgICAgUGFu
ZWwuY2FsbCh0aGlzLCBpZCk7CiAgICAgdGhpcy5vblNlYXJjaCA9IG5ldyBFdmVudFNpbmsoInBh
bmVsLXNlYXJjaC0iICsgaWQpOwogfQogCi1FeHRlbnNpb25QYW5lbC5wcm90b3R5cGUgPSB7Ci19
Ci0KLUV4dGVuc2lvblBhbmVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBQYW5lbC5wcm90b3R5cGU7
Ci0KIGZ1bmN0aW9uIEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbChpZCkKIHsKICAgICB0aGlzLl9p
ZCA9IGlkOwpAQCAtMjQ5LDE3ICsyMzAsMTAgQEAgRXh0ZW5zaW9uU2lkZWJhclBhbmVJbXBsLnBy
b3RvdHlwZSA9IHsKICAgICB9CiB9CiAKLWZ1bmN0aW9uIEV4dGVuc2lvblNpZGViYXJQYW5lKGlk
LCBpbXBsKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgaW1wbCA9IG5ldyBFeHRlbnNpb25T
aWRlYmFyUGFuZUltcGwoaWQpOwotICAgIHRoaXMuc2V0SGVpZ2h0ID0gYmluZChpbXBsLnNldEhl
aWdodCwgaW1wbCk7Ci0gICAgdGhpcy5zZXRFeHBhbmRlZCA9IGJpbmQoaW1wbC5zZXRFeHBhbmRl
ZCwgaW1wbCk7Ci19Ci0KIGZ1bmN0aW9uIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbChp
ZCkKIHsKICAgICBFeHRlbnNpb25TaWRlYmFyUGFuZUltcGwuY2FsbCh0aGlzLCBpZCk7CisgICAg
dGhpcy5vblVwZGF0ZWQgPSBuZXcgRXZlbnRTaW5rKCJ3YXRjaC1zaWRlYmFyLXVwZGF0ZWQtIiAr
IGlkKTsKIH0KIAogV2F0Y2hFeHByZXNzaW9uU2lkZWJhclBhbmVJbXBsLnByb3RvdHlwZSA9IHsK
QEAgLTI3NCwxMyArMjQ4LDEyIEBAIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbC5wcm90
b3R5cGUgPSB7CiAgICAgfQogfQogCitXYXRjaEV4cHJlc3Npb25TaWRlYmFyUGFuZUltcGwucHJv
dG90eXBlLl9fcHJvdG9fXyA9IEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbC5wcm90b3R5cGU7CisK
IGZ1bmN0aW9uIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lKGlkKQogewogICAgIHZhciBpbXBs
ID0gbmV3IFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbChpZCk7CiAgICAgRXh0ZW5zaW9u
U2lkZWJhclBhbmUuY2FsbCh0aGlzLCBpZCwgaW1wbCk7Ci0gICAgdGhpcy5zZXRFeHByZXNzaW9u
ID0gYmluZChpbXBsLnNldEV4cHJlc3Npb24sIGltcGwpOwotICAgIHRoaXMuc2V0T2JqZWN0ID0g
YmluZChpbXBsLnNldE9iamVjdCwgaW1wbCk7Ci0gICAgdGhpcy5vblVwZGF0ZWQgPSBuZXcgRXZl
bnRTaW5rKCJ3YXRjaC1zaWRlYmFyLXVwZGF0ZWQtIiArIGlkKTsKIH0KIAogZnVuY3Rpb24gQXVk
aXRzKCkKQEAgLTI5Niw3ICsyNjksNyBAQCBBdWRpdHMucHJvdG90eXBlID0gewogICAgIH0KIH0K
IAotZnVuY3Rpb24gQXVkaXRDYXRlZ29yeShpZCkKK2Z1bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJbXBs
KGlkKQogewogICAgIGZ1bmN0aW9uIGN1c3RvbURpc3BhdGNoKHJlcXVlc3QpCiAgICAgewpAQCAt
MzA4LDIyICsyODEsMTMgQEAgZnVuY3Rpb24gQXVkaXRDYXRlZ29yeShpZCkKICAgICAgICAgICAg
IGF1ZGl0UmVzdWx0LmRvbmUoKTsKICAgICAgICAgfQogICAgIH0KLSAgICB2YXIgaW1wbCA9IG5l
dyBBdWRpdENhdGVnb3J5SW1wbChpZCk7CisgICAgdGhpcy5faWQgPSBpZDsKICAgICB0aGlzLm9u
QXVkaXRTdGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQtc3RhcnRlZC0iICsgaWQsIGN1c3Rv
bURpc3BhdGNoKTsKIH0KIAotZnVuY3Rpb24gQXVkaXRDYXRlZ29yeUltcGwoaWQpCitmdW5jdGlv
biBBdWRpdFJlc3VsdEltcGwoaWQpCiB7CiAgICAgdGhpcy5faWQgPSBpZDsKLX0KLQotZnVuY3Rp
b24gQXVkaXRSZXN1bHQoaWQpCi17Ci0gICAgdmFyIGltcGwgPSBuZXcgQXVkaXRSZXN1bHRJbXBs
KGlkKTsKLQotICAgIHRoaXMuYWRkUmVzdWx0ID0gYmluZChpbXBsLmFkZFJlc3VsdCwgaW1wbCk7
Ci0gICAgdGhpcy5jcmVhdGVSZXN1bHQgPSBiaW5kKGltcGwuY3JlYXRlUmVzdWx0LCBpbXBsKTsK
LSAgICB0aGlzLmRvbmUgPSBiaW5kKGltcGwuZG9uZSwgaW1wbCk7CiAKICAgICB2YXIgZm9ybWF0
dGVyVHlwZXMgPSBbCiAgICAgICAgICJ1cmwiLApAQCAtMzMxLDE5ICsyOTUsNyBAQCBmdW5jdGlv
biBBdWRpdFJlc3VsdChpZCkKICAgICAgICAgInRleHQiCiAgICAgXTsKICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGZvcm1hdHRlclR5cGVzLmxlbmd0aDsgKytpKQotICAgICAgICB0aGlzW2Zvcm1h
dHRlclR5cGVzW2ldXSA9IGJpbmQoaW1wbC5fbm9kZUZhY3RvcnksIG51bGwsIGZvcm1hdHRlclR5
cGVzW2ldKTsKLX0KLQotQXVkaXRSZXN1bHQucHJvdG90eXBlID0gewotICAgIGdldCBTZXZlcml0
eSgpCi0gICAgewotICAgICAgICByZXR1cm4gcHJpdmF0ZS5hdWRpdHMuU2V2ZXJpdHk7Ci0gICAg
fQotfQotCi1mdW5jdGlvbiBBdWRpdFJlc3VsdEltcGwoaWQpCi17Ci0gICAgdGhpcy5faWQgPSBp
ZDsKKyAgICAgICAgdGhpc1tmb3JtYXR0ZXJUeXBlc1tpXV0gPSBiaW5kKHRoaXMuX25vZGVGYWN0
b3J5LCBudWxsLCBmb3JtYXR0ZXJUeXBlc1tpXSk7CiB9CiAKIEF1ZGl0UmVzdWx0SW1wbC5wcm90
b3R5cGUgPSB7CkBAIC0zNzYsNiArMzI4LDExIEBAIEF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJzdG9w
QXVkaXRDYXRlZ29yeVJ1biIsIHJlc3VsdElkOiB0aGlzLl9pZCB9KTsKICAgICB9LAogCisgICAg
Z2V0IFNldmVyaXR5KCkKKyAgICB7CisgICAgICAgIHJldHVybiBwcml2YXRlLmF1ZGl0cy5TZXZl
cml0eTsKKyAgICB9LAorCiAgICAgX25vZGVGYWN0b3J5OiBmdW5jdGlvbih0eXBlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIHsKQEAgLTUwMyw2ICs0NjAsMzQgQEAgZnVuY3Rpb24gYmluZChmdW5j
LCB0aGlzT2JqZWN0KQogICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGZ1bmMuYXBwbHko
dGhpc09iamVjdCwgYXJncy5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1l
bnRzLCAwKSkpOyB9OwogfQogCitmdW5jdGlvbiBwb3B1bGF0ZUludGVyZmFjZUNsYXNzKGludGVy
ZmFjZSwgaW1wbGVtZW50YXRpb24pCit7CisgICAgZm9yICh2YXIgbWVtYmVyIGluIGltcGxlbWVu
dGF0aW9uKSB7CisgICAgICAgIGlmIChtZW1iZXIuY2hhckF0KDApID09PSAiXyIpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgdmFyIHZhbHVlID0gaW1wbGVtZW50YXRpb25bbWVtYmVy
XTsKKyAgICAgICAgaW50ZXJmYWNlW21lbWJlcl0gPSB0eXBlb2YgdmFsdWUgPT09ICJmdW5jdGlv
biIgPyBiaW5kKHZhbHVlLCBpbXBsZW1lbnRhdGlvbikKKyAgICAgICAgICAgIDogaW50ZXJmYWNl
W21lbWJlcl0gPSBpbXBsZW1lbnRhdGlvblttZW1iZXJdOworICAgIH0KK30KKworZnVuY3Rpb24g
ZGVjbGFyZUludGVyZmFjZUNsYXNzKGltcGxDb25zdHJ1Y3RvcikKK3sKKyAgICByZXR1cm4gZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGltcGwgPSB7IF9fcHJvdG9fXzogaW1wbENvbnN0
cnVjdG9yLnByb3RvdHlwZSB9OworICAgICAgICBpbXBsQ29uc3RydWN0b3IuYXBwbHkoaW1wbCwg
YXJndW1lbnRzKTsKKyAgICAgICAgcG9wdWxhdGVJbnRlcmZhY2VDbGFzcyh0aGlzLCBpbXBsKTsK
KyAgICB9Cit9CisKK3ZhciBFdmVudFNpbmsgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoRXZlbnRT
aW5rSW1wbCk7Cit2YXIgUGFuZWwgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoUGFuZWxJbXBsKTsK
K3ZhciBFeHRlbnNpb25TaWRlYmFyUGFuZSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhFeHRlbnNp
b25TaWRlYmFyUGFuZUltcGwpOwordmFyIFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lID0gZGVj
bGFyZUludGVyZmFjZUNsYXNzKFdhdGNoRXhwcmVzc2lvblNpZGViYXJQYW5lSW1wbCk7Cit2YXIg
QXVkaXRDYXRlZ29yeSA9IGRlY2xhcmVJbnRlcmZhY2VDbGFzcyhBdWRpdENhdGVnb3J5SW1wbCk7
Cit2YXIgQXVkaXRSZXN1bHQgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoQXVkaXRSZXN1bHRJbXBs
KTsKKwogdmFyIGV4dGVuc2lvblNlcnZlciA9IG5ldyBFeHRlbnNpb25TZXJ2ZXJDbGllbnQoKTsK
IAogd2ViSW5zcGVjdG9yID0gbmV3IEluc3BlY3RvckV4dGVuc2lvbkFQSSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>