<?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>105262</bug_id>
          
          <creation_ts>2012-12-18 00:25:54 -0800</creation_ts>
          <short_desc>Add SPI to WebKit1 WebFrame for node conversion to JSValueRef</short_desc>
          <delta_ts>2012-12-18 17:47:18 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Alice Liu">alice.barraclough</reporter>
          <assigned_to name="Alice Liu">alice.barraclough</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793425</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 00:25:54 -0800</bug_when>
    <thetext>WebFrame could use some SPI for converting DOMNode to a JSValueRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793448</commentid>
    <comment_count>1</comment_count>
      <attachid>179898</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 01:18:03 -0800</bug_when>
    <thetext>Created attachment 179898
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793454</commentid>
    <comment_count>2</comment_count>
      <attachid>179901</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 01:27:21 -0800</bug_when>
    <thetext>Created attachment 179901
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793459</commentid>
    <comment_count>3</comment_count>
      <attachid>179901</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-18 01:33:04 -0800</bug_when>
    <thetext>Comment on attachment 179901
patch

Attachment 179901 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15399125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793466</commentid>
    <comment_count>4</comment_count>
      <attachid>179906</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2012-12-18 01:44:52 -0800</bug_when>
    <thetext>Created attachment 179906
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794219</commentid>
    <comment_count>5</comment_count>
      <attachid>179906</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-12-18 17:47:18 -0800</bug_when>
    <thetext>Comment on attachment 179906
patch

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

&gt; Tools/TestWebKitAPI/Tests/mac/JSWrapperForNodeInWebFrame.mm:54
&gt; +    RetainPtr&lt;WebView&gt; webView(AdoptNS, [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]);

You can use the adoptNS function instead for clarity.

&gt; Tools/TestWebKitAPI/Tests/mac/JSWrapperForNodeInWebFrame.mm:55
&gt; +    RetainPtr&lt;JSWrapperForNodeFrameLoadDelegate&gt; frameLoadDelegate(AdoptNS, [JSWrapperForNodeFrameLoadDelegate new]);

Ditto. Also use alloc/init instead of new.

&gt; Tools/TestWebKitAPI/Tests/mac/JSWrapperForNodeInWebFrame.mm:82
&gt; +    JSStringRef isolatedPropertyJSString = JSStringCreateWithUTF8CString(&quot;isolatedProperty&quot;);

I think you can use a JSRetainPtr here, then you don&apos;t need to use JSStringRelease.

&gt; Tools/TestWebKitAPI/Tests/mac/JSWrapperForNodeInWebFrame.mm:88
&gt; +    JSStringRef normalPropertyJSString = JSStringCreateWithUTF8CString(&quot;normalProperty&quot;);

I think you can use a JSRetainPtr here, then you don&apos;t need to use JSStringRelease.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179898</attachid>
            <date>2012-12-18 01:18:03 -0800</date>
            <delta_ts>2012-12-18 01:27:21 -0800</delta_ts>
            <desc>patch</desc>
            <filename>jsWrapper.patch</filename>
            <type>text/plain</type>
            <size>11096</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE1
ICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgdG8g
V2ViS2l0MSBXZWJGcmFtZSBmb3Igbm9kZSBjb252ZXJzaW9uIHRvIEpTVmFsdWVSZWYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTI2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJG
cmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUganNXcmFwcGVyOmZvcldvcmxkOl0pOiBBZGRl
ZC4gVGFrZXMgYSBET01Ob2RlIGFuZCBXZWJTY3JpcHRXb3JsZCBhbmQgcHJvdmlkZXMgYSBKU1Zh
bHVlUmVmCisgICAgICAgIGZvciB0aGUgV2ViQ29yZTo6Tm9kZSBpbiB0aGF0IHBhcnRpY3VsYXIg
V2ViU2NyaXB0V29ybGQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDoKKwog
MjAxMi0xMi0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmUt
bGFuZGluZyBwYXRjaCBmb3IgIkludHJvZHVjaW5nIHRoZSBEYXRhYmFzZVN0cmF0ZWd5IGFuZCBk
YXRhYmFzZSBzZXJ2ZXJzIi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MTmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdl
YkNvcmUvSGl0VGVzdFJlc3VsdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU05vZGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CkBAIC0xMjQzLDYg
KzEyNDQsMTkgQEAgLSAoTlNBcnJheSAqKV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50UwogICAg
IHJldHVybiBwYWdlczsKIH0KIAorLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2RlOihET01O
b2RlICopbm9kZSBpblNjcmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFjb3JlRnJh
bWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9
IGNvcmVGcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChjb3JlKHdvcmxkKSk7CisgICAgSlND
OjpFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBjb3JlKG5vZGUpKSk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdlYkZyYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVQcml2YXRlLmgJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw0ICsxMzgsNiBAQCBA
aW50ZXJmYWNlIFdlYkZyYW1lIChXZWJQcml2YXRlKQogLy8gUHJpbnRpbmcuCiAtIChOU0FycmF5
ICopX2NvbXB1dGVQYWdlUmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQpcHJpbnRXaWR0
aFNjYWxlRmFjdG9yIHBhZ2VTaXplOihOU1NpemUpcGFnZVNpemU7CiAKKy0gKEpTVmFsdWVSZWYp
anNXcmFwcGVyRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgaW5TY3JpcHRXb3JsZDooV2ViU2NyaXB0
V29ybGQgKil3b3JsZDsKKwogQGVuZApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3OTkyKQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTItMTggIEFsaWNlIExpdSAg
PGFsaWNlLmxpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTI2MgorICAgICAgICBBZGQgU1BJIHRvIFdlYktp
dDEgV2ViRnJhbWUgZm9yIG5vZGUgY29udmVyc2lvbiB0byBKU1ZhbHVlUmVmCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgZmlsZSBUZXN0cy9t
YWMvSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0ubW0KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9KU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbS5tbTogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogVGVzdHMgZm9yIHRoZSBjb3JyZWN0IEpTIHdy
YXBwZXIgZm9yIGEgRE9NTm9kZSwgcHJvdmlkZWQgYSBXZWJTY3JpcHRXb3JsZC4KKyAgICAgICAg
TG9hZHMgaHRtbCB3aXRoIGEgc2luZ2xlIGRpdiBlbGVtZW50LiBJbiBhbiBpc29sYXRlZCB3b3Js
ZCwgY3JlYXRlcyBhIHByb3BlcnR5IG9uIHRoYXQgbm9kZS4KKyAgICAgICAgQWxzbywgaW4gdGhl
IHN0YW5kYXJkIHdvcmxkLCBjcmVhdGVzIGEgZGlmZmVyZW50IHByb3BlcnR5IG9uIHRoYXQgbm9k
ZS4gIFRoZW4gdGVzdHMgZm9yIDQgdGhpbmdzOgorICAgICAgICAgICAgLSBFeGlzdGVuY2Ugb2Yg
dGhlIGlzb2xhdGVkIHByb3BlcnR5IGluIHRoZSBpc29sYXRlZCB3b3JsZC4KKyAgICAgICAgICAg
IC0gRXhpc3RlbmNlIG9mIHRoZSBzdGFuZGFyZCBwcm9wZXJ0eSBpbiB0aGUgc3RhbmRhcmQgd29y
bGQuCisgICAgICAgICAgICAtIE5vbi1leGlzdGVuY2Ugb2YgdGhlIGlzb2xhdGVkIHByb3BlcnR5
IGluIHRoZSBzdGFuZGFyZCB3b3JsZC4KKyAgICAgICAgICAgIC0gTm9uLWV4aXN0ZW5jZSBvZiB0
aGUgc3RhbmRhcmQgcHJvcGVydHkgaW4gdGhlIGlzb2xhdGVkIHdvcmxkLgorCiAyMDEyLTEyLTE3
ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gRml4IG1ldGhvZHMgaW4gVGVzdFJ1bm5lciB0aGF0IGRpcmVjdGx5IG1vZGlmeSB0aGUg
c2V0dGluZ3MgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFdlYlByZWZlcmVuY2VzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM3ODM0KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDYgKzU1LDcgQEAKIAkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJh
bmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzN0RDNjc4QjE0MEQ3QzUwMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSAqLzsg
fTsKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RD
Njc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0
NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VS
TC5jcHAgKi87IH07CisJCTRCRTkyMzkxMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JO
b2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRCRTkyMzkwMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNEJGREZGQTkxMzE0Nzc3NzAwNjFGMjRCIC8q
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVz
dWx0Tm9kZUhhbmRsZS5jcHAgKi87IH07CiAJCTRGNEQyQzBFMTYyNkZFMjcwMDMyMEZFMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNEQyQzBEMTYyNkZFMjcwMDMyMEZFMSAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25UZXN0LmNwcCAqLzsgfTsKQEAgLTMwMiw2ICszMDMsNyBAQAogCQkzN0RDNjc4
RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gRE9NUmFuZ2VPZlN0cmluZy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLVVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEJFOTIzOTAxNjgwNjdCRDAwOTU4OUEz
IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhp
dFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEY0RDJDMEQxNjI2RkUyNzAwMzIwRkUxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVGVzdC5jcHA7IHBhdGggPSBXVEYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTcsNiArNzU5LDcgQEAKIAkJCQk5QjRGOEZB
MzE1OUQ1MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJ
OUIyNkZDNkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5t
bSAqLywKIAkJCQlDNTA3RThBNjE0QzY1NDVCMDA1RDZCM0IgLyogSW5zcGVjdG9yQmFyLm1tICov
LAorCQkJCTRCRTkyMzkwMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSAqLywKIAkJCQlFMTIyMEQ5RjE1NUIyNTQ4MDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVE
aXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gKi8sCiAJCQkJNTE3RTdERkIxNTEx
MEVBNjAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbSAqLywKIAkJCQkzNzIyQzg2ODE0NjFFMDNFMDBDNDVEMDAgLyogUmVuZGVyZWRJbWFnZUZy
b21ET01SYW5nZS5tbSAqLywKQEAgLTEwMzAsNiArMTAzMyw3IEBACiAJCQkJRkUyMTdFQ0QxNjQw
QTU0QTAwNTI5ODhCIC8qIFZNSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5QUI4
QUExMTY0QzczNTgwMEQ0OUJFQyAvKiBDdXN0b21Qcm90b2NvbHNUZXN0Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMjlBQjhBQTQxNjRDN0E5MzAwRDQ5QkVDIC8qIFRlc3RCcm93c2luZ0NvbnRleHRM
b2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKKwkJCQk0QkU5MjM5MTE2ODA2N0JEMDA5NTg5
QTMgLyogSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0VsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9FbGVtZW50QXRQ
b2ludEluV2ViRnJhbWUubW0JKHJldmlzaW9uIDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9FbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0JKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQcml2YXRlLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2UgRWxlbWVudEF0UG9pbnRGcmFtZUxv
YWREZWxlZ2F0ZSA6IE5TT2JqZWN0IHsKK30KK0BlbmQKKworc3RhdGljIGJvb2wgZGlkRmluaXNo
TG9hZDsKKworQGltcGxlbWVudGF0aW9uIEVsZW1lbnRBdFBvaW50RnJhbWVMb2FkRGVsZWdhdGUK
KworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZEZpbmlzaExvYWRGb3JGcmFt
ZTooV2ViRnJhbWUgKilmcmFtZQoreworICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworfQorCitA
ZW5kCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJLaXQxLCBFbGVtZW50
QXRQb2ludCkKK3sKKyAgICBSZXRhaW5QdHI8V2ViVmlldz4gd2ViVmlldyhBZG9wdE5TLCBbW1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMjAsIDIwMCkgZnJh
bWVOYW1lOm5pbCBncm91cE5hbWU6bmlsXSk7CisgICAgUmV0YWluUHRyPEVsZW1lbnRBdFBvaW50
RnJhbWVMb2FkRGVsZWdhdGU+IGZyYW1lTG9hZERlbGVnYXRlKEFkb3B0TlMsIFtFbGVtZW50QXRQ
b2ludEZyYW1lTG9hZERlbGVnYXRlIG5ld10pOworCisgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxv
YWREZWxlZ2F0ZSA9IGZyYW1lTG9hZERlbGVnYXRlLmdldCgpOworICAgIFdlYkZyYW1lICptYWlu
RnJhbWUgPSB3ZWJWaWV3LmdldCgpLm1haW5GcmFtZTsKKworICAgIFttYWluRnJhbWUgbG9hZEhU
TUxTdHJpbmc6QCI8c3R5bGU+IGRpdiB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDo2MHB4OyBo
ZWlnaHQ6MTAwcHg7IH0gPC9zdHlsZT4gPGRpdiBuYW1lPSdmaXJzdCc+PC9kaXY+IDxkaXYgbmFt
ZT0nc2Vjb25kJyBzdHlsZT0nbGVmdDo2MHB4OyB0b3A6MTAwcHg7Jz48L2Rpdj4iCisgICAgICAg
ICAgICAgICAgICAgICAgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5r
Il1dOworCisgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICAKKyAgICBOU0RpY3Rp
b25hcnkgKmVsZW1lbnREaWN0aW9uYXJ5ID0gW21haW5GcmFtZSBlbGVtZW50QXRQb2ludDpOU01h
a2VQb2ludCgzMCwgNTApXTsKKyAgICBET01FbGVtZW50ICpkb21FbGVtZW50ID0gW2VsZW1lbnRE
aWN0aW9uYXJ5IG9iamVjdEZvcktleTpXZWJFbGVtZW50RE9NTm9kZUtleV07CisgICAgRVhQRUNU
X1RSVUUoW1tkb21FbGVtZW50IGdldEF0dHJpYnV0ZTpAIm5hbWUiXSBpc0VxdWFsVG9TdHJpbmc6
QCJmaXJzdCJdKTsKKworICAgIGVsZW1lbnREaWN0aW9uYXJ5ID0gW21haW5GcmFtZSBlbGVtZW50
QXRQb2ludDpOU01ha2VQb2ludCg5MCwgMTUwKV07CisgICAgZG9tRWxlbWVudCA9IFtlbGVtZW50
RGljdGlvbmFyeSBvYmplY3RGb3JLZXk6V2ViRWxlbWVudERPTU5vZGVLZXldOworICAgIEVYUEVD
VF9UUlVFKFtbZG9tRWxlbWVudCBnZXRBdHRyaWJ1dGU6QCJuYW1lIl0gaXNFcXVhbFRvU3RyaW5n
OkAic2Vjb25kIl0pOworCisgICAgZWxlbWVudERpY3Rpb25hcnkgPSBbbWFpbkZyYW1lIGVsZW1l
bnRBdFBvaW50Ok5TTWFrZVBvaW50KDMwLCAxNTApXTsKKyAgICBkb21FbGVtZW50ID0gW2VsZW1l
bnREaWN0aW9uYXJ5IG9iamVjdEZvcktleTpXZWJFbGVtZW50RE9NTm9kZUtleV07CisgICAgRVhQ
RUNUX1RSVUUoW1tkb21FbGVtZW50IHRhZ05hbWVdIGlzRXF1YWxUb1N0cmluZzpAIkJPRFkiXSk7
CisKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179901</attachid>
            <date>2012-12-18 01:27:21 -0800</date>
            <delta_ts>2012-12-18 01:40:38 -0800</delta_ts>
            <desc>patch</desc>
            <filename>jsWrapper.patch</filename>
            <type>text/plain</type>
            <size>11095</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE1
ICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgdG8g
V2ViS2l0MSBXZWJGcmFtZSBmb3Igbm9kZSBjb252ZXJzaW9uIHRvIEpTVmFsdWVSZWYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTI2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJG
cmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUganNXcmFwcGVyOmZvcldvcmxkOl0pOiBBZGRl
ZC4gVGFrZXMgYSBET01Ob2RlIGFuZCBXZWJTY3JpcHRXb3JsZCBhbmQgcHJvdmlkZXMgYSBKU1Zh
bHVlUmVmCisgICAgICAgIGZvciB0aGUgV2ViQ29yZTo6Tm9kZSBpbiB0aGF0IHBhcnRpY3VsYXIg
V2ViU2NyaXB0V29ybGQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDoKKwog
MjAxMi0xMi0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmUt
bGFuZGluZyBwYXRjaCBmb3IgIkludHJvZHVjaW5nIHRoZSBEYXRhYmFzZVN0cmF0ZWd5IGFuZCBk
YXRhYmFzZSBzZXJ2ZXJzIi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MTmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdl
YkNvcmUvSGl0VGVzdFJlc3VsdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU05vZGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CkBAIC0xMjQzLDYg
KzEyNDQsMTkgQEAgLSAoTlNBcnJheSAqKV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50UwogICAg
IHJldHVybiBwYWdlczsKIH0KIAorLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2RlOihET01O
b2RlICopbm9kZSBpblNjcmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFjb3JlRnJh
bWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9
IGNvcmVGcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChjb3JlKHdvcmxkKSk7CisgICAgSlND
OjpFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBjb3JlKG5vZGUpKSk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdlYkZyYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVQcml2YXRlLmgJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw0ICsxMzgsNiBAQCBA
aW50ZXJmYWNlIFdlYkZyYW1lIChXZWJQcml2YXRlKQogLy8gUHJpbnRpbmcuCiAtIChOU0FycmF5
ICopX2NvbXB1dGVQYWdlUmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQpcHJpbnRXaWR0
aFNjYWxlRmFjdG9yIHBhZ2VTaXplOihOU1NpemUpcGFnZVNpemU7CiAKKy0gKEpTVmFsdWVSZWYp
anNXcmFwcGVyRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgaW5TY3JpcHRXb3JsZDooV2ViU2NyaXB0
V29ybGQgKil3b3JsZDsKKwogQGVuZApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3OTkyKQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTItMTggIEFsaWNlIExpdSAg
PGFsaWNlLmxpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTI2MgorICAgICAgICBBZGQgU1BJIHRvIFdlYktp
dDEgV2ViRnJhbWUgZm9yIG5vZGUgY29udmVyc2lvbiB0byBKU1ZhbHVlUmVmCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgZmlsZSBUZXN0cy9t
YWMvSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0ubW0KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9KU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbS5tbTogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogVGVzdHMgZm9yIHRoZSBjb3JyZWN0IEpTIHdy
YXBwZXIgZm9yIGEgRE9NTm9kZSwgcHJvdmlkZWQgYSBXZWJTY3JpcHRXb3JsZC4KKyAgICAgICAg
TG9hZHMgaHRtbCB3aXRoIGEgc2luZ2xlIGRpdiBlbGVtZW50LiBJbiBhbiBpc29sYXRlZCB3b3Js
ZCwgY3JlYXRlcyBhIHByb3BlcnR5IG9uIHRoYXQgbm9kZS4KKyAgICAgICAgQWxzbywgaW4gdGhl
IHN0YW5kYXJkIHdvcmxkLCBjcmVhdGVzIGEgZGlmZmVyZW50IHByb3BlcnR5IG9uIHRoYXQgbm9k
ZS4gIFRoZW4gdGVzdHMgZm9yIDQgdGhpbmdzOgorICAgICAgICAgICAgLSBFeGlzdGVuY2Ugb2Yg
dGhlIGlzb2xhdGVkIHByb3BlcnR5IGluIHRoZSBpc29sYXRlZCB3b3JsZC4KKyAgICAgICAgICAg
IC0gRXhpc3RlbmNlIG9mIHRoZSBzdGFuZGFyZCBwcm9wZXJ0eSBpbiB0aGUgc3RhbmRhcmQgd29y
bGQuCisgICAgICAgICAgICAtIE5vbi1leGlzdGVuY2Ugb2YgdGhlIGlzb2xhdGVkIHByb3BlcnR5
IGluIHRoZSBzdGFuZGFyZCB3b3JsZC4KKyAgICAgICAgICAgIC0gTm9uLWV4aXN0ZW5jZSBvZiB0
aGUgc3RhbmRhcmQgcHJvcGVydHkgaW4gdGhlIGlzb2xhdGVkIHdvcmxkLgorCiAyMDEyLTEyLTE3
ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gRml4IG1ldGhvZHMgaW4gVGVzdFJ1bm5lciB0aGF0IGRpcmVjdGx5IG1vZGlmeSB0aGUg
c2V0dGluZ3MgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFdlYlByZWZlcmVuY2VzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM3ODM0KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDYgKzU1LDcgQEAKIAkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJh
bmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzN0RDNjc4QjE0MEQ3QzUwMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSAqLzsg
fTsKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RD
Njc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0
NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VS
TC5jcHAgKi87IH07CisJCTRCRTkyMzkxMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JO
b2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRCRTkyMzkwMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNEJGREZGQTkxMzE0Nzc3NzAwNjFGMjRCIC8q
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVz
dWx0Tm9kZUhhbmRsZS5jcHAgKi87IH07CiAJCTRGNEQyQzBFMTYyNkZFMjcwMDMyMEZFMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNEQyQzBEMTYyNkZFMjcwMDMyMEZFMSAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25UZXN0LmNwcCAqLzsgfTsKQEAgLTMwMiw2ICszMDMsNyBAQAogCQkzN0RDNjc4
RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gRE9NUmFuZ2VPZlN0cmluZy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLVVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEJFOTIzOTAxNjgwNjdCRDAwOTU4OUEz
IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhp
dFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEY0RDJDMEQxNjI2RkUyNzAwMzIwRkUxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVGVzdC5jcHA7IHBhdGggPSBXVEYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NTcsNiArNzU5LDcgQEAKIAkJCQk5QjRGOEZB
MzE1OUQ1MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJ
OUIyNkZDNkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5t
bSAqLywKIAkJCQlDNTA3RThBNjE0QzY1NDVCMDA1RDZCM0IgLyogSW5zcGVjdG9yQmFyLm1tICov
LAorCQkJCTRCRTkyMzkwMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSAqLywKIAkJCQlFMTIyMEQ5RjE1NUIyNTQ4MDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVE
aXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gKi8sCiAJCQkJNTE3RTdERkIxNTEx
MEVBNjAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbSAqLywKIAkJCQkzNzIyQzg2ODE0NjFFMDNFMDBDNDVEMDAgLyogUmVuZGVyZWRJbWFnZUZy
b21ET01SYW5nZS5tbSAqLywKQEAgLTEwMzQsNiArMTAzNyw3IEBACiAJCQkJMjlBQjhBQTExNjRD
NzM1ODAwRDQ5QkVDIC8qIEN1c3RvbVByb3RvY29sc1Rlc3QubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyOUFCOEFBNDE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY0MDEzMTY3QTgzMDUwMDBCRDIxOCAvKiBM
YXlvdXRVbml0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRCRTkyMzkxMTY4MDY3QkQwMDk1ODlB
MyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0VsZW1lbnRBdFBv
aW50SW5XZWJGcmFtZS5tbQkocmV2aXNpb24gMCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0VsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVByaXZhdGUuaD4KKyNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBFbGVtZW50QXRQb2ludEZyYW1lTG9h
ZERlbGVnYXRlIDogTlNPYmplY3QgeworfQorQGVuZAorCitzdGF0aWMgYm9vbCBkaWRGaW5pc2hM
b2FkOworCitAaW1wbGVtZW50YXRpb24gRWxlbWVudEF0UG9pbnRGcmFtZUxvYWREZWxlZ2F0ZQor
CistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmluaXNoTG9hZEZvckZyYW1l
OihXZWJGcmFtZSAqKWZyYW1lCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisKK0Bl
bmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdDEsIEVsZW1lbnRB
dFBvaW50KQoreworICAgIFJldGFpblB0cjxXZWJWaWV3PiB3ZWJWaWV3KEFkb3B0TlMsIFtbV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEyMCwgMjAwKSBmcmFt
ZU5hbWU6bmlsIGdyb3VwTmFtZTpuaWxdKTsKKyAgICBSZXRhaW5QdHI8RWxlbWVudEF0UG9pbnRG
cmFtZUxvYWREZWxlZ2F0ZT4gZnJhbWVMb2FkRGVsZWdhdGUoQWRvcHROUywgW0VsZW1lbnRBdFBv
aW50RnJhbWVMb2FkRGVsZWdhdGUgbmV3XSk7CisKKyAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9h
ZERlbGVnYXRlID0gZnJhbWVMb2FkRGVsZWdhdGUuZ2V0KCk7CisgICAgV2ViRnJhbWUgKm1haW5G
cmFtZSA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lOworCisgICAgW21haW5GcmFtZSBsb2FkSFRN
TFN0cmluZzpAIjxzdHlsZT4gZGl2IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjYwcHg7IGhl
aWdodDoxMDBweDsgfSA8L3N0eWxlPiA8ZGl2IG5hbWU9J2ZpcnN0Jz48L2Rpdj4gPGRpdiBuYW1l
PSdzZWNvbmQnIHN0eWxlPSdsZWZ0OjYwcHg7IHRvcDoxMDBweDsnPjwvZGl2PiIKKyAgICAgICAg
ICAgICAgICAgICAgICBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6Ymxhbmsi
XV07CisKKyAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIAorICAgIE5TRGljdGlv
bmFyeSAqZWxlbWVudERpY3Rpb25hcnkgPSBbbWFpbkZyYW1lIGVsZW1lbnRBdFBvaW50Ok5TTWFr
ZVBvaW50KDMwLCA1MCldOworICAgIERPTUVsZW1lbnQgKmRvbUVsZW1lbnQgPSBbZWxlbWVudERp
Y3Rpb25hcnkgb2JqZWN0Rm9yS2V5OldlYkVsZW1lbnRET01Ob2RlS2V5XTsKKyAgICBFWFBFQ1Rf
VFJVRShbW2RvbUVsZW1lbnQgZ2V0QXR0cmlidXRlOkAibmFtZSJdIGlzRXF1YWxUb1N0cmluZzpA
ImZpcnN0Il0pOworCisgICAgZWxlbWVudERpY3Rpb25hcnkgPSBbbWFpbkZyYW1lIGVsZW1lbnRB
dFBvaW50Ok5TTWFrZVBvaW50KDkwLCAxNTApXTsKKyAgICBkb21FbGVtZW50ID0gW2VsZW1lbnRE
aWN0aW9uYXJ5IG9iamVjdEZvcktleTpXZWJFbGVtZW50RE9NTm9kZUtleV07CisgICAgRVhQRUNU
X1RSVUUoW1tkb21FbGVtZW50IGdldEF0dHJpYnV0ZTpAIm5hbWUiXSBpc0VxdWFsVG9TdHJpbmc6
QCJzZWNvbmQiXSk7CisKKyAgICBlbGVtZW50RGljdGlvbmFyeSA9IFttYWluRnJhbWUgZWxlbWVu
dEF0UG9pbnQ6TlNNYWtlUG9pbnQoMzAsIDE1MCldOworICAgIGRvbUVsZW1lbnQgPSBbZWxlbWVu
dERpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OldlYkVsZW1lbnRET01Ob2RlS2V5XTsKKyAgICBFWFBF
Q1RfVFJVRShbW2RvbUVsZW1lbnQgdGFnTmFtZV0gaXNFcXVhbFRvU3RyaW5nOkAiQk9EWSJdKTsK
KworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179906</attachid>
            <date>2012-12-18 01:44:52 -0800</date>
            <delta_ts>2012-12-18 17:47:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>jsWrapper.patch</filename>
            <type>text/plain</type>
            <size>13292</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE1
ICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgdG8g
V2ViS2l0MSBXZWJGcmFtZSBmb3Igbm9kZSBjb252ZXJzaW9uIHRvIEpTVmFsdWVSZWYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTI2MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJG
cmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUganNXcmFwcGVyOmZvcldvcmxkOl0pOiBBZGRl
ZC4gVGFrZXMgYSBET01Ob2RlIGFuZCBXZWJTY3JpcHRXb3JsZCBhbmQgcHJvdmlkZXMgYSBKU1Zh
bHVlUmVmCisgICAgICAgIGZvciB0aGUgV2ViQ29yZTo6Tm9kZSBpbiB0aGF0IHBhcnRpY3VsYXIg
V2ViU2NyaXB0V29ybGQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDoKKwog
MjAxMi0xMi0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmUt
bGFuZGluZyBwYXRjaCBmb3IgIkludHJvZHVjaW5nIHRoZSBEYXRhYmFzZVN0cmF0ZWd5IGFuZCBk
YXRhYmFzZSBzZXJ2ZXJzIi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MTmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdl
YkNvcmUvSGl0VGVzdFJlc3VsdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU05vZGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CkBAIC0xMjQzLDYg
KzEyNDQsMTkgQEAgLSAoTlNBcnJheSAqKV9jb21wdXRlUGFnZVJlY3RzV2l0aFByaW50UwogICAg
IHJldHVybiBwYWdlczsKIH0KIAorLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2RlOihET01O
b2RlICopbm9kZSBpblNjcmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgaWYgKCFjb3JlRnJh
bWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9
IGNvcmVGcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChjb3JlKHdvcmxkKSk7CisgICAgSlND
OjpFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKworICAgIEpT
Qzo6SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBjb3JlKG5vZGUpKSk7Cit9CisKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdlYkZyYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVQcml2YXRlLmgJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw0ICsxMzgsNiBAQCBA
aW50ZXJmYWNlIFdlYkZyYW1lIChXZWJQcml2YXRlKQogLy8gUHJpbnRpbmcuCiAtIChOU0FycmF5
ICopX2NvbXB1dGVQYWdlUmVjdHNXaXRoUHJpbnRTY2FsZUZhY3RvcjooZmxvYXQpcHJpbnRXaWR0
aFNjYWxlRmFjdG9yIHBhZ2VTaXplOihOU1NpemUpcGFnZVNpemU7CiAKKy0gKEpTVmFsdWVSZWYp
anNXcmFwcGVyRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgaW5TY3JpcHRXb3JsZDooV2ViU2NyaXB0
V29ybGQgKil3b3JsZDsKKwogQGVuZApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3OTkyKQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTItMTggIEFsaWNlIExpdSAg
PGFsaWNlLmxpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTI2MgorICAgICAgICBBZGQgU1BJIHRvIFdlYktp
dDEgV2ViRnJhbWUgZm9yIG5vZGUgY29udmVyc2lvbiB0byBKU1ZhbHVlUmVmCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgZmlsZSBUZXN0cy9t
YWMvSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0ubW0KKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9KU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbS5tbTogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKTogVGVzdHMgZm9yIHRoZSBjb3JyZWN0IEpTIHdy
YXBwZXIgZm9yIGEgRE9NTm9kZSwgcHJvdmlkZWQgYSBXZWJTY3JpcHRXb3JsZC4KKyAgICAgICAg
TG9hZHMgaHRtbCB3aXRoIGEgc2luZ2xlIGRpdiBlbGVtZW50LiBJbiBhbiBpc29sYXRlZCB3b3Js
ZCwgY3JlYXRlcyBhIHByb3BlcnR5IG9uIHRoYXQgbm9kZS4KKyAgICAgICAgQWxzbywgaW4gdGhl
IHN0YW5kYXJkIHdvcmxkLCBjcmVhdGVzIGEgZGlmZmVyZW50IHByb3BlcnR5IG9uIHRoYXQgbm9k
ZS4gIFRoZW4gdGVzdHMgZm9yIDQgdGhpbmdzOgorICAgICAgICAgICAgLSBFeGlzdGVuY2Ugb2Yg
dGhlIGlzb2xhdGVkIHByb3BlcnR5IGluIHRoZSBpc29sYXRlZCB3b3JsZC4KKyAgICAgICAgICAg
IC0gRXhpc3RlbmNlIG9mIHRoZSBzdGFuZGFyZCBwcm9wZXJ0eSBpbiB0aGUgc3RhbmRhcmQgd29y
bGQuCisgICAgICAgICAgICAtIE5vbi1leGlzdGVuY2Ugb2YgdGhlIGlzb2xhdGVkIHByb3BlcnR5
IGluIHRoZSBzdGFuZGFyZCB3b3JsZC4KKyAgICAgICAgICAgIC0gTm9uLWV4aXN0ZW5jZSBvZiB0
aGUgc3RhbmRhcmQgcHJvcGVydHkgaW4gdGhlIGlzb2xhdGVkIHdvcmxkLgorCiAyMDEyLTEyLTE3
ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gRml4IG1ldGhvZHMgaW4gVGVzdFJ1bm5lciB0aGF0IGRpcmVjdGx5IG1vZGlmeSB0aGUg
c2V0dGluZ3MgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIFdlYlByZWZlcmVuY2VzCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTM3OTk3KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDYgKzU2LDcgQEAKIAkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJh
bmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzN0RDNjc4QjE0MEQ3QzUwMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSAqLzsg
fTsKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RD
Njc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0
NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VS
TC5jcHAgKi87IH07CisJCTRCRTkyMzkxMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JO
b2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRCRTkyMzkwMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNEJGREZGQTkxMzE0Nzc3NzAwNjFGMjRCIC8q
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVz
dWx0Tm9kZUhhbmRsZS5jcHAgKi87IH07CiAJCTRGNEQyQzBFMTYyNkZFMjcwMDMyMEZFMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNEQyQzBEMTYyNkZFMjcwMDMyMEZFMSAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25UZXN0LmNwcCAqLzsgfTsKQEAgLTMwNCw2ICszMDUsNyBAQAogCQkzN0RDNjc4
RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gRE9NUmFuZ2VPZlN0cmluZy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NDBBMUQzODE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLVVJMLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGll
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEJFOTIzOTAxNjgwNjdCRDAwOTU4OUEz
IC8qIEpTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhp
dFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEY0RDJDMEQxNjI2RkUyNzAwMzIwRkUxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVGVzdC5jcHA7IHBhdGggPSBXVEYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NjAsNiArNzYyLDcgQEAKIAkJCQk5QjRGOEZB
MzE1OUQ1MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJ
OUIyNkZDNkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5t
bSAqLywKIAkJCQlDNTA3RThBNjE0QzY1NDVCMDA1RDZCM0IgLyogSW5zcGVjdG9yQmFyLm1tICov
LAorCQkJCTRCRTkyMzkwMTY4MDY3QkQwMDk1ODlBMyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbSAqLywKIAkJCQlFMTIyMEQ5RjE1NUIyNTQ4MDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVE
aXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gKi8sCiAJCQkJNTE3RTdERkIxNTEx
MEVBNjAwRDBCMDA4IC8qIE1lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbSAqLywKIAkJCQkzNzIyQzg2ODE0NjFFMDNFMDBDNDVEMDAgLyogUmVuZGVyZWRJbWFnZUZy
b21ET01SYW5nZS5tbSAqLywKQEAgLTEwMzQsNiArMTAzNyw3IEBACiAJCQkJMjlBQjhBQTExNjRD
NzM1ODAwRDQ5QkVDIC8qIEN1c3RvbVByb3RvY29sc1Rlc3QubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyOUFCOEFBNDE2NEM3QTkzMDBENDlCRUMgLyogVGVzdEJyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY0MDEzMTY3QTgzMDUwMDBCRDIxOCAvKiBM
YXlvdXRVbml0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRCRTkyMzkxMTY4MDY3QkQwMDk1ODlB
MyAvKiBKU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSlNXcmFwcGVy
Rm9yTm9kZUluV2ViRnJhbWUubW0JKHJldmlzaW9uIDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9KU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5tbQkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZVByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9XZWJTY3JpcHRXb3JsZC5oPgorI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSlNDb250ZXh0UmVmLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5o
PgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgorI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgorCitAaW50ZXJmYWNlIEpTV3JhcHBlckZvck5vZGVGcmFtZUxvYWREZWxlZ2F0
ZSA6IE5TT2JqZWN0IHsKK30KK0BlbmQKKworc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZDsKKwor
QGltcGxlbWVudGF0aW9uIEpTV3JhcHBlckZvck5vZGVGcmFtZUxvYWREZWxlZ2F0ZQorCistICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmluaXNoTG9hZEZvckZyYW1lOihXZWJG
cmFtZSAqKWZyYW1lCit7CisgICAgZGlkRmluaXNoTG9hZCA9IHRydWU7Cit9CisKK0BlbmQKKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdDEsIEpTV3JhcHBlckZvck5v
ZGUpCit7CisgICAgUmV0YWluUHRyPFdlYlZpZXc+IHdlYlZpZXcoQWRvcHROUywgW1tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTIwLCAyMDApIGZyYW1lTmFt
ZTpuaWwgZ3JvdXBOYW1lOm5pbF0pOworICAgIFJldGFpblB0cjxKU1dyYXBwZXJGb3JOb2RlRnJh
bWVMb2FkRGVsZWdhdGU+IGZyYW1lTG9hZERlbGVnYXRlKEFkb3B0TlMsIFtKU1dyYXBwZXJGb3JO
b2RlRnJhbWVMb2FkRGVsZWdhdGUgbmV3XSk7CisKKyAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9h
ZERlbGVnYXRlID0gZnJhbWVMb2FkRGVsZWdhdGUuZ2V0KCk7CisgICAgV2ViRnJhbWUgKm1haW5G
cmFtZSA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lOworICAgIFttYWluRnJhbWUgbG9hZEhUTUxT
dHJpbmc6QCI8ZGl2IGlkPVwidGFyZ2V0XCI8L2Rpdj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJhYm91dDpibGFuayJdXTsKKyAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOwor
ICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lRG9jdW1l
bnQ7CisgICAgRE9NTm9kZSAqdGFyZ2V0ID0gW2RvY3VtZW50IGdldEVsZW1lbnRCeUlkOkAidGFy
Z2V0Il07IC8vIFRoaXMgc2NyaXB0IG9iamVjdCBpcyBpbiBzdGFuZGFyZCB3b3JsZC4KKworICAg
IC8vIEluIGFuIGlzb2xhdGVkIHNjcmlwdCB3b3JsZCwgYWRkIGEgbmV3IHByb3BlcnR5IHRvIHRo
ZSB0YXJnZXQgbm9kZS4KKyAgICBOU1N0cmluZyAqaXNvbGF0ZWRTY3JpcHRTdHJpbmcgPSBAInZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRhcmdldFwiKTsgdGFyZ2V0Lmlz
b2xhdGVkUHJvcGVydHkgPSB0cnVlOyI7CisgICAgV2ViU2NyaXB0V29ybGQgKmlzb2xhdGVkV29y
bGQgPSBbV2ViU2NyaXB0V29ybGQgd29ybGRdOworICAgIEpTR2xvYmFsQ29udGV4dFJlZiBpc29s
YXRlZEN0eCA9IFttYWluRnJhbWUgX2dsb2JhbENvbnRleHRGb3JTY3JpcHRXb3JsZDppc29sYXRl
ZFdvcmxkXTsKKyAgICBbbWFpbkZyYW1lIF9zdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJv
bVN0cmluZzppc29sYXRlZFNjcmlwdFN0cmluZyB3aXRoR2xvYmFsT2JqZWN0OkpTQ29udGV4dEdl
dEdsb2JhbE9iamVjdChpc29sYXRlZEN0eCkgaW5TY3JpcHRXb3JsZDppc29sYXRlZFdvcmxkXTsK
KyAgICBKU1ZhbHVlUmVmIGlzb2xhdGVkTm9kZUpTVmFsdWUgPSBbbWFpbkZyYW1lIGpzV3JhcHBl
ckZvck5vZGU6dGFyZ2V0IGluU2NyaXB0V29ybGQ6aXNvbGF0ZWRXb3JsZF07CisgICAgQVNTRVJU
X1RSVUUoSlNWYWx1ZUlzT2JqZWN0KGlzb2xhdGVkQ3R4LCBpc29sYXRlZE5vZGVKU1ZhbHVlKSk7
CisgICAgSlNPYmplY3RSZWYgaXNvbGF0ZWROb2RlSlNPYmplY3QgPSBKU1ZhbHVlVG9PYmplY3Qo
aXNvbGF0ZWRDdHgsIGlzb2xhdGVkTm9kZUpTVmFsdWUsIDApOworCisgICAgLy8gSW4gdGhlIHN0
YW5kYXJkIHNjcmlwdCB3b3JsZCwgYWRkIGEgZGlmZmVyZW50IHByb3BlcnR5IHRvIHRoZSB0YXJn
ZXQgbm9kZQorICAgIE5TU3RyaW5nICpub3JtYWxTY3JpcHRTdHJpbmcgPSBAInZhciB0YXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInRhcmdldFwiKTsgdGFyZ2V0Lm5vcm1hbFByb3Bl
cnR5ID0gdHJ1ZTsiOworICAgIFdlYlNjcmlwdFdvcmxkICpub3JtYWxXb3JsZCA9IFtXZWJTY3Jp
cHRXb3JsZCBzdGFuZGFyZFdvcmxkXTsKKyAgICBKU0dsb2JhbENvbnRleHRSZWYgbm9ybWFsQ3R4
ID0gW21haW5GcmFtZSBfZ2xvYmFsQ29udGV4dEZvclNjcmlwdFdvcmxkOm5vcm1hbFdvcmxkXTsK
KyAgICBbbWFpbkZyYW1lIF9zdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZzpu
b3JtYWxTY3JpcHRTdHJpbmcgd2l0aEdsb2JhbE9iamVjdDpKU0NvbnRleHRHZXRHbG9iYWxPYmpl
Y3Qobm9ybWFsQ3R4KSBpblNjcmlwdFdvcmxkOm5vcm1hbFdvcmxkXTsKKyAgICBKU1ZhbHVlUmVm
IG5vcm1hbE5vZGVKU1ZhbHVlID0gW21haW5GcmFtZSBqc1dyYXBwZXJGb3JOb2RlOnRhcmdldCBp
blNjcmlwdFdvcmxkOm5vcm1hbFdvcmxkXTsKKyAgICBBU1NFUlRfVFJVRShKU1ZhbHVlSXNPYmpl
Y3Qobm9ybWFsQ3R4LCBub3JtYWxOb2RlSlNWYWx1ZSkpOworICAgIEpTT2JqZWN0UmVmIG5vcm1h
bE5vZGVKU09iamVjdCA9IEpTVmFsdWVUb09iamVjdChub3JtYWxDdHgsIG5vcm1hbE5vZGVKU1Zh
bHVlLCAwKTsKKworICAgIEpTU3RyaW5nUmVmIGlzb2xhdGVkUHJvcGVydHlKU1N0cmluZyA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJpc29sYXRlZFByb3BlcnR5Iik7CisgICAgLy8g
VGVzdCBmb3Igc3VjY2Vzc2Z1bCByZXRyaWV2YWwgb2YgdGhlIGZpcnN0IHByb3BlcnR5IGluIHRo
ZSBpc29sYXRlZCBzY3JpcHQgd29ybGQKKyAgICBFWFBFQ1RfVFJVRShKU1ZhbHVlSXNCb29sZWFu
KGlzb2xhdGVkQ3R4LCBKU09iamVjdEdldFByb3BlcnR5KGlzb2xhdGVkQ3R4LCBpc29sYXRlZE5v
ZGVKU09iamVjdCwgaXNvbGF0ZWRQcm9wZXJ0eUpTU3RyaW5nLCAwKSkpOworICAgIC8vIFRlc3Qg
Zm9yIGZhaWxlZCByZXRyaWV2YWwgb2YgdGhlIGZpcnN0IHByb3BlcnR5IGluIHRoZSBzdGFuZGFy
ZCBzY3JpcHQgd29ybGQKKyAgICBFWFBFQ1RfVFJVRShKU1ZhbHVlSXNVbmRlZmluZWQobm9ybWFs
Q3R4LCBKU09iamVjdEdldFByb3BlcnR5KG5vcm1hbEN0eCwgbm9ybWFsTm9kZUpTT2JqZWN0LCBp
c29sYXRlZFByb3BlcnR5SlNTdHJpbmcsIDApKSk7CisKKyAgICBKU1N0cmluZ1JlZiBub3JtYWxQ
cm9wZXJ0eUpTU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm5vcm1hbFBy
b3BlcnR5Iik7CisgICAgLy8gVGVzdCBmb3Igc3VjY2Vzc2Z1bCByZXRyaWV2YWwgb2YgdGhlIHNl
Y29uZCBwcm9wZXJ0eSBpbiB0aGUgc3RhbmRhcmQgc2NyaXB0IHdvcmxkCisgICAgRVhQRUNUX1RS
VUUoSlNWYWx1ZUlzQm9vbGVhbihub3JtYWxDdHgsIEpTT2JqZWN0R2V0UHJvcGVydHkobm9ybWFs
Q3R4LCBub3JtYWxOb2RlSlNPYmplY3QsIG5vcm1hbFByb3BlcnR5SlNTdHJpbmcsIDApKSk7Cisg
ICAgLy8gVGVzdCBmb3IgZmFpbGVkIHJldHJpZXZhbCBvZiB0aGUgc2Vjb25kIHByb3BlcnR5IGlu
IHRoZSBpc29sYXRlZCBzY3JpcHQgd29ybGQKKyAgICBFWFBFQ1RfVFJVRShKU1ZhbHVlSXNVbmRl
ZmluZWQoaXNvbGF0ZWRDdHgsIEpTT2JqZWN0R2V0UHJvcGVydHkoaXNvbGF0ZWRDdHgsIGlzb2xh
dGVkTm9kZUpTT2JqZWN0LCBub3JtYWxQcm9wZXJ0eUpTU3RyaW5nLCAwKSkpOworICAgIAorICAg
IEpTU3RyaW5nUmVsZWFzZShpc29sYXRlZFByb3BlcnR5SlNTdHJpbmcpOworICAgIEpTU3RyaW5n
UmVsZWFzZShub3JtYWxQcm9wZXJ0eUpTU3RyaW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQo=
</data>
<flag name="review"
          id="197088"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>