<?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>77161</bug_id>
          
          <creation_ts>2012-01-26 16:28:07 -0800</creation_ts>
          <short_desc>Add API to get the parent frame in WKBundleFrameRef</short_desc>
          <delta_ts>2012-01-27 11:42:44 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>543638</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2012-01-26 16:28:07 -0800</bug_when>
    <thetext>Add WKBundleFrameGetParentFrame().

This is needed for &lt;rdar://problem/10421393&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543650</commentid>
    <comment_count>1</comment_count>
      <attachid>124214</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2012-01-26 16:45:28 -0800</bug_when>
    <thetext>Created attachment 124214
Implementation + test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543657</commentid>
    <comment_count>2</comment_count>
      <attachid>124214</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-01-26 16:52:13 -0800</bug_when>
    <thetext>Comment on attachment 124214
Implementation + test

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2/ParentFrame_Bundle.cpp:64
&gt; +    assert(childFrame);
&gt; +    bool isParentFrameCheckSuccessful = childFrame ? WKBundleFrameGetParentFrame(childFrame.get()) == frame : false;

You have both an assert and a null check here, do you really need the assert?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544221</commentid>
    <comment_count>3</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2012-01-27 11:42:44 -0800</bug_when>
    <thetext>I removed the assert.  Thanks for reviewing!

Committed: http://trac.webkit.org/changeset/106139</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124214</attachid>
            <date>2012-01-26 16:45:28 -0800</date>
            <delta_ts>2012-01-26 16:52:13 -0800</delta_ts>
            <desc>Implementation + test</desc>
            <filename>0001-Source-WebKit2-Add-API-to-get-the-parent-frame-in-WK.patch</filename>
            <type>text/plain</type>
            <size>18679</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">RnJvbSAzMjJiM2QyZGZmZjM0ZDI4YTZhYWZhOWUwZmNiNWEzYjk2NDhlZWQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGEgQ2hhbiA8YWRhY2hhbkBhcHBsZS5jb20+CkRhdGU6IFRo
dSwgMjYgSmFuIDIwMTIgMTY6NDM6MDEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBTb3VyY2UvV2Vi
S2l0MjogQWRkIEFQSSB0byBnZXQgdGhlIHBhcmVudCBmcmFtZSBpbgogV0tCdW5kbGVGcmFtZVJl
ZgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3MTYxCgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUZyYW1lLmNwcDoKKFdLQnVuZGxlRnJhbWVHZXRQYXJlbnRGcmFtZSk6IEdldCB0aGUg
cGFyZW50IGZyYW1lIGJ5IGNhbGxpbmcgV2ViRnJhbWU6OnBhcmVudEZyYW1lKCkuCiogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6CiogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcDoKKFdlYktpdDo6V2ViRnJhbWU6OnBhcmVudEZyYW1lKTogUmV0
dXJuIG51bGwgaWYgdGhlIGZyYW1lIGRvZXMgbm90IGhhdmUgYW4gb3duZXIgZWxlbWVudC4KT3Ro
ZXJ3aXNlLCByZXR1cm4gdGhlIG93bmVyIGVsZW1lbnQncyBmcmFtZS4KKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuaDoKClRvb2xzOiBBZGQgdGVzdCBmb3IgV0tCdW5kbGVGcmFtZUdldFBh
cmVudEZyYW1lKCkuCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzE2
MQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgUGFyZW50RnJhbWUuY3BwIGFuZCBQ
YXJlbnRGcmFtZV9CdW5kbGUuY3BwLgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QYXJl
bnRGcmFtZS5jcHA6IEFkZGVkLgooVGVzdFdlYktpdEFQSSk6CihUZXN0V2ViS2l0QVBJOjpkaWRS
ZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6IEdldCB0aGUgY2hlY2sgcmVzdWx0IGZy
b20gdGhlIGluamVjdGVkIGJ1bmRsZS4KKFRlc3RXZWJLaXRBUEk6OnNldEluamVjdGVkQnVuZGxl
Q2xpZW50KToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOiBMb2FkIHNpbXBsZS1pZnJhbWUuaHRtbCBh
bmQgdGhlbiB3YWl0IGZvciB0aGUgaW5qZWN0ZWQgYnVuZGxlIHRvIHBvc3QgcmVzdWx0LgpNYWtl
IHN1cmUgdGhlIGNoZWNrIGlzIHN1Y2Nlc3NmdWwuCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1BhcmVudEZyYW1lX0J1bmRsZS5jcHA6IEFkZGVkLgooVGVzdFdlYktpdEFQSSk6CihQYXJl
bnRGcmFtZVRlc3QpOgooVGVzdFdlYktpdEFQSTo6UGFyZW50RnJhbWVUZXN0OjpQYXJlbnRGcmFt
ZVRlc3QpOgooVGVzdFdlYktpdEFQSTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKTogSWYgdGhlIGZy
YW1lIGlzIGEgc3ViZnJhbWUsIHN0b3JlIGl0IG9mZiBmb3IgY2hlY2tpbmcgbGF0ZXIuCklmIHRo
ZSBmcmFtZSBpcyB0aGUgbWFpbiBmcmFtZSwgY2hlY2sgd2hldGhlciBpdCdzIGluZGVlZCB0aGUg
c3ViZnJhbWUncyBwYXJlbnQgZnJhbWUgYW5kIHBvc3QgdGhlIHJlc3VsdAp0byB0aGUgdGVzdCBj
b250cm9sbGVyLgooVGVzdFdlYktpdEFQSTo6UGFyZW50RnJhbWVUZXN0OjpkaWRDcmVhdGVQYWdl
KTogU2V0IHRoZSBwYWdlIGxvYWRlciBjbGllbnQgb24gdGhpcyBwYWdlLgotLS0KIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrCiAu
Li4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAgICAgICAgICB8ICAgIDUg
KwogLi4uL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaCAgICAgICAgICAgfCAg
ICAxICsKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgICAg
IHwgICAgOCArKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgg
ICAgICAgfCAgICAxICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyMyArKysrKysKIC4uLi9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogICAgICAgIHwgICAgOCArKwogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1BhcmVudEZyYW1lLmNwcCAgfCAgIDY4ICsrKysrKysrKysrKysrKysKIC4uLi9UZXN0
cy9XZWJLaXQyL1BhcmVudEZyYW1lX0J1bmRsZS5jcHAgICAgICAgICAgIHwgICA4MSArKysrKysr
KysrKysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgMCBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvUGFyZW50RnJhbWUuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL1BhcmVudEZyYW1lX0J1bmRsZS5jcHAKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
YWZiNDQ0YS4uZWNlYzFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAxLTI2
ICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBBUEkgdG8gZ2V0
IHRoZSBwYXJlbnQgZnJhbWUgaW4gV0tCdW5kbGVGcmFtZVJlZgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzcxNjEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVGcmFtZS5jcHA6CisgICAgICAgIChXS0J1bmRsZUZyYW1lR2V0UGFyZW50
RnJhbWUpOiBHZXQgdGhlIHBhcmVudCBmcmFtZSBieSBjYWxsaW5nIFdlYkZyYW1lOjpwYXJlbnRG
cmFtZSgpLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVGcmFtZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpwYXJlbnRGcmFtZSk6IFJldHVybiBudWxsIGlmIHRo
ZSBmcmFtZSBkb2VzIG5vdCBoYXZlIGFuIG93bmVyIGVsZW1lbnQuCisgICAgICAgIE90aGVyd2lz
ZSwgcmV0dXJuIHRoZSBvd25lciBlbGVtZW50J3MgZnJhbWUuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmg6CisKIDIwMTItMDEtMjYgIEFuZHJhcyBCZWNzaSAgPGFuZHJh
cy5iZWNzaUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIEFkZCB0aGUgY29tcG9uZW50
Q29tcGxldGUgbWV0aG9kIHRvIFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuY3Bw
CmluZGV4IGRmNzI5YmYuLmYyZDVjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNw
cApAQCAtNDcsNiArNDcsMTEgQEAgYm9vbCBXS0J1bmRsZUZyYW1lSXNNYWluRnJhbWUoV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZVJlZikKICAgICByZXR1cm4gdG9JbXBsKGZyYW1lUmVmKS0+aXNNYWlu
RnJhbWUoKTsKIH0KIAorV0tCdW5kbGVGcmFtZVJlZiBXS0J1bmRsZUZyYW1lR2V0UGFyZW50RnJh
bWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBs
KGZyYW1lUmVmKS0+cGFyZW50RnJhbWUoKSk7Cit9CisKIFdLVVJMUmVmIFdLQnVuZGxlRnJhbWVD
b3B5VVJMKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYpCiB7CiAgICAgcmV0dXJuIHRvQ29waWVk
VVJMQVBJKHRvSW1wbChmcmFtZVJlZiktPnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1l
LmgKaW5kZXggY2U5NGJhZC4uOGYyNzgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgK
QEAgLTM4LDYgKzM4LDcgQEAgZXh0ZXJuICJDIiB7CiBXS19FWFBPUlQgV0tUeXBlSUQgV0tCdW5k
bGVGcmFtZUdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZUZyYW1lSXNNYWlu
RnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7CitXS19FWFBPUlQgV0tCdW5kbGVGcmFtZVJl
ZiBXS0J1bmRsZUZyYW1lR2V0UGFyZW50RnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7CiBX
S19FWFBPUlQgV0tBcnJheVJlZiBXS0J1bmRsZUZyYW1lQ29weUNoaWxkRnJhbWVzKFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUpOwogCiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVGcmFtZUNv
cHlOYW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggYjMyNTQzZS4uNDNmNDQzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0zNTcs
NiArMzU3LDE0IEBAIFN0cmluZyBXZWJGcmFtZTo6aW5uZXJUZXh0KCkgY29uc3QKICAgICByZXR1
cm4gbV9jb3JlRnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5pbm5lclRleHQo
KTsKIH0KIAorV2ViRnJhbWUqIFdlYkZyYW1lOjpwYXJlbnRGcmFtZSgpIGNvbnN0Cit7CisgICAg
aWYgKCFtX2NvcmVGcmFtZSB8fCAhbV9jb3JlRnJhbWUtPm93bmVyRWxlbWVudCgpIHx8ICFtX2Nv
cmVGcmFtZS0+b3duZXJFbGVtZW50KCktPmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4obV9jb3JlRnJh
bWUtPm93bmVyRWxlbWVudCgpLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50
KCkpLT53ZWJGcmFtZSgpOworfQorCiBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBXZWJGcmFt
ZTo6Y2hpbGRGcmFtZXMoKQogewogICAgIGlmICghbV9jb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IDI5Y2VkNDIuLjI5NTM2YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC04
Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgdXJsKCkgY29uc3Q7CiAgICAgU3RyaW5n
IGlubmVyVGV4dCgpIGNvbnN0OwogICAgIGJvb2wgaXNGcmFtZVNldCgpIGNvbnN0OworICAgIFdl
YkZyYW1lKiBwYXJlbnRGcmFtZSgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJy
YXk+IGNoaWxkRnJhbWVzKCk7CiAgICAgSlNWYWx1ZVJlZiBjb21wdXRlZFN0eWxlSW5jbHVkaW5n
VmlzaXRlZEluZm8oSlNPYmplY3RSZWYgZWxlbWVudCk7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVm
IGpzQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDI4ZDY3YTkuLmM2NGRjZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMS0yNiAgQWRhIENo
YW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGVzdCBmb3IgV0tCdW5kbGVG
cmFtZUdldFBhcmVudEZyYW1lKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NzE2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6IEFkZCBQYXJlbnRGcmFtZS5jcHAgYW5kIFBhcmVudEZyYW1lX0J1bmRsZS5j
cHAuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhcmVudEZyYW1lLmNw
cDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTogR2V0IHRoZSBjaGVjayBy
ZXN1bHQgZnJvbSB0aGUgaW5qZWN0ZWQgYnVuZGxlLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
c2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
IExvYWQgc2ltcGxlLWlmcmFtZS5odG1sIGFuZCB0aGVuIHdhaXQgZm9yIHRoZSBpbmplY3RlZCBi
dW5kbGUgdG8gcG9zdCByZXN1bHQuCisgICAgICAgIE1ha2Ugc3VyZSB0aGUgY2hlY2sgaXMgc3Vj
Y2Vzc2Z1bC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJh
bWVfQnVuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAg
KFBhcmVudEZyYW1lVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQYXJlbnRGcmFtZVRl
c3Q6OlBhcmVudEZyYW1lVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpkaWRGaW5pc2hM
b2FkRm9yRnJhbWUpOiBJZiB0aGUgZnJhbWUgaXMgYSBzdWJmcmFtZSwgc3RvcmUgaXQgb2ZmIGZv
ciBjaGVja2luZyBsYXRlci4KKyAgICAgICAgSWYgdGhlIGZyYW1lIGlzIHRoZSBtYWluIGZyYW1l
LCBjaGVjayB3aGV0aGVyIGl0J3MgaW5kZWVkIHRoZSBzdWJmcmFtZSdzIHBhcmVudCBmcmFtZSBh
bmQgcG9zdCB0aGUgcmVzdWx0CisgICAgICAgIHRvIHRoZSB0ZXN0IGNvbnRyb2xsZXIuCisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpQYXJlbnRGcmFtZVRlc3Q6OmRpZENyZWF0ZVBhZ2UpOiBTZXQg
dGhlIHBhZ2UgbG9hZGVyIGNsaWVudCBvbiB0aGlzIHBhZ2UuCisKIDIwMTItMDEtMjYgIEx1Y2lh
bm8gV29sZiAgPGx1Y2lhbm8ud29sZkBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF1bV0sy
XSBmYXN0L2xvYWRlciB0ZXN0cyBmYWlsZWQgYWZ0ZXIgcjk0MTc4CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGIxYTIyZDkuLjZjNDAzYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0z
OCw2ICszOCw4IEBACiAJCTUyMEJDRjRDMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MjBCQ0Y0QTE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwICovOyB9Owog
CQk1MjBCQ0Y0RDE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjBCQ0Y0QjE0MUVCMDlFMDA5MzdF
QTggLyogV2ViQXJjaGl2ZS5jcHAgKi87IH07CiAJCTUyQ0I0NzQxMTQ0OEZCOTMwMDg3Mzk5NSAv
KiBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDQjQ3NDAxNDQ4RkI5MzAw
ODczOTk1IC8qIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAg
Ki87IH07CisJCTUyRTVDRTQ2MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkU1Q0U0NTE0RDIx
RTlEMDAzQjJCRDggLyogUGFyZW50RnJhbWUuY3BwICovOyB9OworCQk1MkU1Q0U0OTE0RDIxRUFC
MDAzQjJCRDggLyogUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRTVDRTQ4MTREMjFFQUIwMDNCMkJEOCAvKiBQYXJl
bnRGcmFtZV9CdW5kbGUuY3BwICovOyB9OwogCQk4MUI1MDE5MzE0MEYyMzIzMDBEOUVCNTggLyog
U3RyaW5nQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgKi87
IH07CiAJCTkzOUJBOTE3MTQxMDM0MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZhY3Rvck9uQmFj
ay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUJB
OTE2MTQxMDM0MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbSAqLzsgfTsK
IAkJQTdBOTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9u
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E5
NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAq
LzsgfTsKQEAgLTE5MCw2ICsxOTIsOCBAQAogCQk1MjBCQ0Y0QTE0MUVCMDlFMDA5MzdFQTggLyog
V2ViQXJjaGl2ZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViQXJjaGl2ZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MjBCQ0Y0QjE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBcmNoaXZlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTJDQjQ3NDAxNDQ4RkI5MzAwODczOTk1IC8qIExvYWRBbHRlcm5hdGVIVE1M
U3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkU1Q0U0NTE0RDIxRTlEMDAzQjJCRDgg
LyogUGFyZW50RnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGFyZW50RnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkU1Q0U0ODE0
RDIxRUFCMDAzQjJCRDggLyogUGFyZW50RnJhbWVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcmVudEZyYW1lX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWls
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0cmluZ0J1aWxk
ZXIuY3BwOyBwYXRoID0gV1RGL1N0cmluZ0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1h
Y2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gVGVzdFdlYktpdEFQ
STsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJOTM5QkE5MTYxNDEwMzQx
MjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MzcsNiArNDQxLDggQEAKIAkJCQkzM0JFNUFGODEz
N0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovLAogCQkJ
CUJDOTA5Nzc5MTI1NTcxQUIwMDA4Mzc1NiAvKiBQYWdlTG9hZEJhc2ljLmNwcCAqLywKIAkJCQlC
QzJEMDA0ODEyQTlGREZBMDBFNzMyQTMgLyogUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhp
blBhZ2VGb3JGcmFtZS5jcHAgKi8sCisJCQkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4IC8qIFBh
cmVudEZyYW1lLmNwcCAqLywKKwkJCQk1MkU1Q0U0ODE0RDIxRUFCMDAzQjJCRDggLyogUGFyZW50
RnJhbWVfQnVuZGxlLmNwcCAqLywKIAkJCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJl
dmVudEVtcHR5VXNlckFnZW50LmNwcCAqLywKIAkJCQlGNkZEREREMjE0MjQxQUQ0MDA0RjE3Mjkg
LyogUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwICovLAogCQkJ
CUMwQkQ2NjlDMTMxRDNDRjcwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250Rmly
ZUVhcmx5LmNwcCAqLywKQEAgLTcyOSw2ICs3MzUsNyBAQAogCQkJCUJDNTVGNUY5MTRBRDc4RUUw
MDQ4NEJFMSAvKiBWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQwQTFEMzkxNEEwMTAz
QTAwOEE2NkYyIC8qIEtVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUwN0U4QTcxNEM2NTQ1
QjAwNUQ2QjNCIC8qIEluc3BlY3RvckJhci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUyRTVDRTQ2
MTREMjFFOUQwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTc1
MSw2ICs3NTgsNyBAQAogCQkJCTUyMEJDRjRDMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZl
X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMEM1RDNDNjE0NTk5MTI5MDBBODAyQTYg
LyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJD
OTAxRTMzMTQ5MkFGMzkwMDc0QTY2NyAvKiBXS0Nvbm5lY3Rpb25fQnVuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTUyRTVDRTQ5MTREMjFFQUIwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZV9CdW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDIvUGFyZW50RnJhbWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1BhcmVudEZyYW1lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NjQ1YzY2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL1BhcmVudEZyYW1lLmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHRQcml2YXRl
Lmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIGJvb2wgZGlkUmVjZWl2
ZU1lc3NhZ2U7CitzdGF0aWMgYm9vbCBpc1BhcmVudEZyYW1lQ2hlY2tTdWNjZXNzZnVsOworCitz
dGF0aWMgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS0NvbnRleHRS
ZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgYm9keSwgY29uc3Qgdm9pZCop
Cit7CisgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSB0cnVlOworCisgICAgRVhQRUNUX1dLX1NUUkVR
KCJEaWRDaGVja1BhcmVudEZyYW1lIiwgbWVzc2FnZU5hbWUpOworICAgIEVYUEVDVF9FUShXS0Jv
b2xlYW5HZXRUeXBlSUQoKSwgV0tHZXRUeXBlSUQoYm9keSkpOworICAgIAorICAgIGlzUGFyZW50
RnJhbWVDaGVja1N1Y2Nlc3NmdWwgPSBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jv
b2xlYW5SZWY+KGJvZHkpKTsKK30KKworc3RhdGljIHZvaWQgc2V0SW5qZWN0ZWRCdW5kbGVDbGll
bnQoV0tDb250ZXh0UmVmIGNvbnRleHQpCit7CisgICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnQgaW5qZWN0ZWRCdW5kbGVDbGllbnQ7CisgICAgbWVtc2V0KCZpbmplY3RlZEJ1bmRsZUNs
aWVudCwgMCwgc2l6ZW9mKGluamVjdGVkQnVuZGxlQ2xpZW50KSk7CisgICAgaW5qZWN0ZWRCdW5k
bGVDbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUgPSBkaWRSZWNlaXZl
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZTsKKworICAgIFdLQ29udGV4dFNldEluamVjdGVkQnVu
ZGxlQ2xpZW50KGNvbnRleHQsICZpbmplY3RlZEJ1bmRsZUNsaWVudCk7Cit9CisKK1RFU1QoV2Vi
S2l0MiwgUGFyZW50RnJhbWUpCit7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250
ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJQ
YXJlbnRGcmFtZVRlc3QiKSk7CisgICAgc2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dC5n
ZXQoKSk7CisKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKwor
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoInNpbXBsZS1pZnJhbWUiLCAiaHRtbCIpKS5nZXQoKSk7CisKKyAgICBVdGls
OjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsKKyAgICBFWFBFQ1RfVFJVRShpc1BhcmVudEZyYW1l
Q2hlY2tTdWNjZXNzZnVsKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhcmVudEZyYW1lX0J1
bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVf
QnVuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTcyODQzCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhcmVu
dEZyYW1lX0J1bmRsZS5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVRlc3QuaCIKKworI2luY2x1ZGUg
IlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZVBhZ2UuaD4K
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dL
UmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIFdLUmV0
YWluUHRyPFdLQnVuZGxlUmVmPiB0ZXN0QnVuZGxlOworc3RhdGljIFdLUmV0YWluUHRyPFdLQnVu
ZGxlRnJhbWVSZWY+IGNoaWxkRnJhbWU7CisKK2NsYXNzIFBhcmVudEZyYW1lVGVzdCA6IHB1Ymxp
YyBJbmplY3RlZEJ1bmRsZVRlc3QgeworcHVibGljOgorICAgIFBhcmVudEZyYW1lVGVzdChjb25z
dCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lk
IGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZik7CisgICAgCit9Owor
CitzdGF0aWMgSW5qZWN0ZWRCdW5kbGVUZXN0OjpSZWdpc3RlcjxQYXJlbnRGcmFtZVRlc3Q+IHJl
Z2lzdHJhcigiUGFyZW50RnJhbWVUZXN0Iik7CisKK1BhcmVudEZyYW1lVGVzdDo6UGFyZW50RnJh
bWVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorICAgIDogSW5qZWN0ZWRCdW5k
bGVUZXN0KGlkZW50aWZpZXIpCit7Cit9CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JG
cmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBl
UmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLQnVu
ZGxlRnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKKyAgICAgICAgY2hpbGRGcmFtZSA9IGZyYW1l
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIC8vIFRoZSBjaGlsZCBmcmFtZSBz
aG91bGQgaGF2ZSBmaW5pc2hlZCBsb2FkaW5nIGJ5IG5vdy4KKyAgICBhc3NlcnQoY2hpbGRGcmFt
ZSk7CisgICAgYm9vbCBpc1BhcmVudEZyYW1lQ2hlY2tTdWNjZXNzZnVsID0gY2hpbGRGcmFtZSA/
IFdLQnVuZGxlRnJhbWVHZXRQYXJlbnRGcmFtZShjaGlsZEZyYW1lLmdldCgpKSA9PSBmcmFtZSA6
IGZhbHNlOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UodGVzdEJ1bmRsZS5nZXQoKSwgVXRpbDo6
dG9XSygiRGlkQ2hlY2tQYXJlbnRGcmFtZSIpLmdldCgpLCBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0
ZShpc1BhcmVudEZyYW1lQ2hlY2tTdWNjZXNzZnVsKSkuZ2V0KCkpOworfQorCit2b2lkIFBhcmVu
dEZyYW1lVGVzdDo6ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFn
ZVJlZiBwYWdlKQoreworICAgIHRlc3RCdW5kbGUgPSBidW5kbGU7CisgICAgCisgICAgV0tCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50IHBhZ2VMb2FkZXJDbGllbnQ7CisgICAgbWVtc2V0KCZwYWdlTG9h
ZGVyQ2xpZW50LCAwLCBzaXplb2YocGFnZUxvYWRlckNsaWVudCkpOworICAgIAorICAgIHBhZ2VM
b2FkZXJDbGllbnQudmVyc2lvbiA9IDE7CisgICAgcGFnZUxvYWRlckNsaWVudC5kaWRGaW5pc2hM
b2FkRm9yRnJhbWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CisgICAgCisgICAgV0tCdW5kbGVQ
YWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlLCAmcGFnZUxvYWRlckNsaWVudCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLS0gCjEuNy41LjQKCg==
</data>
<flag name="review"
          id="125412"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>