<?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>92777</bug_id>
          
          <creation_ts>2012-07-31 11:41:16 -0700</creation_ts>
          <short_desc>Removed some public data and casting from the Heap</short_desc>
          <delta_ts>2012-07-31 14:26:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>683309</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-07-31 11:41:16 -0700</bug_when>
    <thetext>Removed some public data and casting from the Heap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683333</commentid>
    <comment_count>1</comment_count>
      <attachid>155599</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-07-31 11:52:08 -0700</bug_when>
    <thetext>Created attachment 155599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683387</commentid>
    <comment_count>2</comment_count>
      <attachid>155599</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-31 12:37:16 -0700</bug_when>
    <thetext>Comment on attachment 155599
Patch

Attachment 155599 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13403298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683475</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-07-31 14:26:44 -0700</bug_when>
    <thetext>Committed r124250: &lt;http://trac.webkit.org/changeset/124250&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155599</attachid>
            <date>2012-07-31 11:52:08 -0700</date>
            <delta_ts>2012-07-31 12:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92777-20120731115151.patch</filename>
            <type>text/plain</type>
            <size>22111</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI0MjI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgzIEBA
CisyMDEyLTA3LTMxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBzb21lIHB1YmxpYyBkYXRhIGFuZCBjYXN0aW5nIGZyb20gdGhlIEhlYXAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzc3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoZWFwL0Jsb2Nr
QWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxvY2F0b3I6OnJlbGVhc2VGcmVl
QmxvY2tzKToKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVh
ZE1haW4pOiBVc2UgdGhlIERlYWRCbG9jayBjbGFzcworICAgICAgICBzaW5jZSBIZWFwQmxvY2sg
aXMgYSB0ZW1wbGF0ZSwgYW5kIG5vdCBhIGNsYXNzLCBub3cuIENhbGwgZGVzdHJveSgpCisgICAg
ICAgIGluc3RlYWQgb2YgbW9ua2V5aW5nIGFyb3VuZCB3aXRoIERlYWRCbG9jaydzIGludGVybmFs
IGRhdGEgYmVjYXVzZQorICAgICAgICBlbmNhcHN1bGF0aW9uIGlzIGdvb2QuCisKKyAgICAgICAg
KiBoZWFwL0Jsb2NrQWxsb2NhdG9yLmg6CisgICAgICAgIChEZWFkQmxvY2spOiBBZGRlZCBhIGNs
YXNzIHRvIHJlcHJlc2VudCBhIGRlYWQgYmxvY2ssIHNpbmNlIEhlYXBCbG9jayBpcworICAgICAg
ICBhIHRlbXBsYXRlIG5vdywgYW5kIGNhbid0IGJlIGluc3RhbnRpYXRlZCBkaXJlY3RseS4KKwor
ICAgICAgICAoSlNDOjpEZWFkQmxvY2s6OkRlYWRCbG9jayk6CisgICAgICAgIChKU0M6OkRlYWRC
bG9jazo6Y3JlYXRlKToKKyAgICAgICAgKEJsb2NrQWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6
QmxvY2tBbGxvY2F0b3I6OmFsbG9jYXRlKToKKyAgICAgICAgKEpTQzo6QmxvY2tBbGxvY2F0b3I6
OmRlYWxsb2NhdGUpOiBVc2UgdGhlIERlYWRCbG9jayBjbGFzcyBiZWNhdXNlCisgICAgICAgIGVu
Y2Fwc3VsYXRpb24gaXMgZ29vZC4KKworICAgICAgICAqIGhlYXAvQ29waWVkQmxvY2suaDoKKyAg
ICAgICAgKENvcGllZEJsb2NrOjpkZXN0cm95KTogTm8gbmVlZCBmb3IgYSBkZXN0cm95KCkgZnVu
Y3Rpb24sIHNpbmNlIHdlCisgICAgICAgIGluaGVyaXQgb25lIG5vdy4KKworICAgICAgICAoSlND
OjpDb3BpZWRCbG9jazo6Q29waWVkQmxvY2spOgorICAgICAgICAoSlNDOjpDb3BpZWRCbG9jazo6
cGF5bG9hZEVuZCk6CisgICAgICAgIChKU0M6OkNvcGllZEJsb2NrOjpjYXBhY2l0eSk6IFVwZGF0
ZWQgZm9yIHNvbWUgZW5jYXBzdWxhdGlvbiBpbnNpZGUKKyAgICAgICAgSGVhcEJsb2NrLgorCisg
ICAgICAgICogaGVhcC9Db3BpZWRTcGFjZS5jcHA6CisgICAgICAgIChKU0M6OkNvcGllZFNwYWNl
Ojp+Q29waWVkU3BhY2UpOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6ZG9uZUNvcHlpbmcp
OgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6c2l6ZSk6CisgICAgICAgIChKU0M6OkNvcGll
ZFNwYWNlOjpjYXBhY2l0eSk6CisgICAgICAgIChKU0M6OmlzQmxvY2tMaXN0UGFnZWRPdXQpOiBS
ZW1vdmVkIGEgYnVuY2ggb2YgY2FzdGluZy4gVGhpcyBpcyBubyBsb25nZXIKKyAgICAgICAgbmVj
ZXNzYXJ5LCBub3cgdGhhdCBvdXIgbGlzdCBhbmQgaXRzIG5vZGVzIGhhdmUgdGhlIHJpZ2h0IHR5
cGUuCisKKyAgICAgICAgKiBoZWFwL0NvcGllZFNwYWNlLmg6IFVzZSB0aGUgcmlnaHQgdHlwZSBp
biBvdXIgZGF0YSBzdHJ1Y3R1cmVzIGJlY2F1c2UKKyAgICAgICAgaXQgaW1wcm92ZXMgY2xhcml0
eS4KKworICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2VJbmxpbmVNZXRob2RzLmg6CisgICAgICAg
IChKU0M6OkNvcGllZFNwYWNlOjpzdGFydGVkQ29weWluZyk6IFVzZSBzd2FwIHRvIGF2b2lkIGR1
cGxpY2F0aW5nIGl0LgorCisgICAgICAgICogaGVhcC9IZWFwQmxvY2suaDoKKyAgICAgICAgKEhl
YXBCbG9jayk6IE1hZGUgdGhpcyBhIGNsYXNzIHRlbXBsYXRlIHNvIHdlIGNhbiByZXR1cm4gdGhl
IHJpZ2h0IHR5cGUKKyAgICAgICAgaW4gbGlua2VkIGxpc3Qgb3BlcmF0aW9ucy4gTWFkZSBvdXIg
ZGF0YSBwcml2YXRlIGJlY2F1c2UgZW5jYXBzdWxhdGlvbgorICAgICAgICBpcyBnb29kLgorCisg
ICAgICAgIChKU0M6OkhlYXBCbG9jazo6ZGVzdHJveSk6IFNpbmNlIHdlIGtub3cgb3VyIHR5cGUs
IHdlIGNhbiBhbHNvIGVsaW1pbmF0ZQorICAgICAgICBkdXBsaWNhdGUgZGVzdHJveSgpIGZ1bmN0
aW9ucyBpbiBvdXIgc3ViY2xhc3Nlcy4KKworICAgICAgICAoSlNDOjpIZWFwQmxvY2s6OmFsbG9j
YXRpb24pOiBBZGRlZCBhbiBhY2Nlc3NvciBzbyB3ZSBjYW4gaGlkZSBvdXIgZGF0YS4KKyAgICAg
ICAgQnkgdXNpbmcgY29uc3QsIHRoaXMgYWNjZXNzb3IgcHJldmVudHMgY2xpZW50cyBmcm9tIGFj
Y2lkZW50YWxseSBkZWxldGluZworICAgICAgICBvdXIgYWxsb2NhdGlvbi4KKworICAgICAgICAq
IGhlYXAvTWFya2VkQWxsb2NhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9y
Ojppc1BhZ2VkT3V0KToKKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9yOjp0cnlBbGxvY2F0
ZUhlbHBlcik6CisgICAgICAgIChKU0M6Ok1hcmtlZEFsbG9jYXRvcjo6cmVtb3ZlQmxvY2spOiBS
ZW1vdmVkIGEgYnVuY2ggb2YgY2FzdGluZy4gVGhpcyBpcworICAgICAgICBubyBsb25nZXIgbmVj
ZXNzYXJ5LCBub3cgdGhhdCBvdXIgbGlzdCBhbmQgaXRzIG5vZGVzIGhhdmUgdGhlIHJpZ2h0IHR5
cGUuCisKKyAgICAgICAgKiBoZWFwL01hcmtlZEFsbG9jYXRvci5oOgorICAgICAgICAoTWFya2Vk
QWxsb2NhdG9yKToKKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9yOjpyZXNldCk6CisgICAg
ICAgIChKU0M6Ok1hcmtlZEFsbG9jYXRvcjo6Zm9yRWFjaEJsb2NrKTogVXNlIHRoZSByaWdodCB0
eXBlLCBkbyBsZXNzIGNhc3RpbmcuCisKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmNwcDog
CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpkZXN0cm95KTogUmVtb3ZlZCB0aGlzIGZ1bmN0
aW9uIGJlY2F1c2Ugb3VyIHBhcmVudAorICAgICAgICBjbGFzcyBwcm92aWRlcyBpdCBmb3IgdXMg
bm93LgorCisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjpNYXJrZWRCbG9jayk6CisgICAgICAg
ICogaGVhcC9NYXJrZWRCbG9jay5oOgorICAgICAgICAoTWFya2VkQmxvY2spOgorICAgICAgICAo
SlNDOjpNYXJrZWRCbG9jazo6Y2FwYWNpdHkpOiBVcGRhdGVkIGZvciBlbmNhcHN1bGF0aW9uLgor
CiAyMDEyLTA3LTMwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI0MTIzLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMTI0
MDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQmxvY2tBbGxvY2F0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIEJsb2NrQWxsb2NhdG9yOjp+QmxvY2tBbGxv
Y2F0b3IoKQogdm9pZCBCbG9ja0FsbG9jYXRvcjo6cmVsZWFzZUZyZWVCbG9ja3MoKQogewogICAg
IHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIEhlYXBCbG9jayogYmxvY2s7CisgICAgICAgIERlYWRC
bG9jayogYmxvY2s7CiAgICAgICAgIHsKICAgICAgICAgICAgIFNwaW5Mb2NrSG9sZGVyIGxvY2tl
cigmbV9mcmVlQmxvY2tMb2NrKTsKICAgICAgICAgICAgIGlmICghbV9udW1iZXJPZkZyZWVCbG9j
a3MpCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgQmxvY2tBbGxvY2F0b3I6OnJlbGVhc2VGcmVlQmxv
Y2tzKCkKICAgICAgICAgaWYgKCFibG9jaykKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAg
IGJsb2NrLT5tX2FsbG9jYXRpb24uZGVhbGxvY2F0ZSgpOworICAgICAgICBEZWFkQmxvY2s6OmRl
c3Ryb3koYmxvY2spLmRlYWxsb2NhdGUoKTsKICAgICB9CiB9CiAKQEAgLTEyMSw3ICsxMjEsNyBA
QCB2b2lkIEJsb2NrQWxsb2NhdG9yOjpibG9ja0ZyZWVpbmdUaHJlYWRNCiAgICAgICAgIHNpemVf
dCBkZXNpcmVkTnVtYmVyT2ZGcmVlQmxvY2tzID0gY3VycmVudE51bWJlck9mRnJlZUJsb2NrcyAv
IDI7CiAgICAgICAgIAogICAgICAgICB3aGlsZSAoIW1fYmxvY2tGcmVlaW5nVGhyZWFkU2hvdWxk
UXVpdCkgewotICAgICAgICAgICAgSGVhcEJsb2NrKiBibG9jazsKKyAgICAgICAgICAgIERlYWRC
bG9jayogYmxvY2s7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgU3BpbkxvY2tIb2xk
ZXIgbG9ja2VyKCZtX2ZyZWVCbG9ja0xvY2spOwogICAgICAgICAgICAgICAgIGlmIChtX251bWJl
ck9mRnJlZUJsb2NrcyA8PSBkZXNpcmVkTnVtYmVyT2ZGcmVlQmxvY2tzKQpAQCAtMTM2LDcgKzEz
Niw3IEBAIHZvaWQgQmxvY2tBbGxvY2F0b3I6OmJsb2NrRnJlZWluZ1RocmVhZE0KICAgICAgICAg
ICAgIGlmICghYmxvY2spCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIGJsb2NrLT5tX2FsbG9jYXRpb24uZGVhbGxvY2F0ZSgpOworICAgICAgICAgICAg
RGVhZEJsb2NrOjpkZXN0cm95KGJsb2NrKS5kZWFsbG9jYXRlKCk7CiAgICAgICAgIH0KICAgICB9
CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0FsbG9jYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxsb2NhdG9yLmgJ
KHJldmlzaW9uIDEyNDA3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Jsb2NrQWxs
b2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDI0IEBAIG5hbWVzcGFjZSBKU0Mg
ewogLy8gU2ltcGxlIGFsbG9jYXRvciB0byByZWR1Y2UgVk0gY29zdCBieSBob2xkaW5nIG9udG8g
YmxvY2tzIG9mIG1lbW9yeSBmb3IKIC8vIHNob3J0IHBlcmlvZHMgb2YgdGltZSBhbmQgdGhlbiBm
cmVlaW5nIHRoZW0gb24gYSBzZWNvbmRhcnkgdGhyZWFkLgogCitjbGFzcyBEZWFkQmxvY2sgOiBw
dWJsaWMgSGVhcEJsb2NrPERlYWRCbG9jaz4geworcHVibGljOgorICAgIHN0YXRpYyBEZWFkQmxv
Y2sqIGNyZWF0ZShjb25zdCBQYWdlQWxsb2NhdGlvbkFsaWduZWQmKTsKKworcHJpdmF0ZToKKyAg
ICBEZWFkQmxvY2soY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJik7Cit9OworCitpbmxpbmUg
RGVhZEJsb2NrOjpEZWFkQmxvY2soY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiBhbGxvY2F0
aW9uKQorICAgIDogSGVhcEJsb2NrPERlYWRCbG9jaz4oYWxsb2NhdGlvbikKK3sKK30KKworaW5s
aW5lIERlYWRCbG9jayogRGVhZEJsb2NrOjpjcmVhdGUoY29uc3QgUGFnZUFsbG9jYXRpb25BbGln
bmVkJiBhbGxvY2F0aW9uKQoreworICAgIHJldHVybiBuZXcoTm90TnVsbCwgYWxsb2NhdGlvbi5i
YXNlKCkpIERlYWRCbG9jayhhbGxvY2F0aW9uKTsKK30KKwogY2xhc3MgQmxvY2tBbGxvY2F0b3Ig
ewogcHVibGljOgogICAgIEJsb2NrQWxsb2NhdG9yKCk7CkBAIC01NSw3ICs3Myw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHJlbGVhc2VGcmVlQmxvY2tzKCk7CiAKLSAgICBEb3VibHlMaW5rZWRM
aXN0PEhlYXBCbG9jaz4gbV9mcmVlQmxvY2tzOworICAgIERvdWJseUxpbmtlZExpc3Q8RGVhZEJs
b2NrPiBtX2ZyZWVCbG9ja3M7CiAgICAgc2l6ZV90IG1fbnVtYmVyT2ZGcmVlQmxvY2tzOwogICAg
IGJvb2wgbV9pc0N1cnJlbnRseUFsbG9jYXRpbmc7CiAgICAgYm9vbCBtX2Jsb2NrRnJlZWluZ1Ro
cmVhZFNob3VsZFF1aXQ7CkBAIC03MywxMiArOTEsMTIgQEAgaW5saW5lIFBhZ2VBbGxvY2F0aW9u
QWxpZ25lZCBCbG9ja0FsbG9jYQogICAgICAgICBpZiAobV9udW1iZXJPZkZyZWVCbG9ja3MpIHsK
ICAgICAgICAgICAgIEFTU0VSVCghbV9mcmVlQmxvY2tzLmlzRW1wdHkoKSk7CiAgICAgICAgICAg
ICBtX251bWJlck9mRnJlZUJsb2Nrcy0tOwotICAgICAgICAgICAgcmV0dXJuIG1fZnJlZUJsb2Nr
cy5yZW1vdmVIZWFkKCktPm1fYWxsb2NhdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBEZWFkQmxv
Y2s6OmRlc3Ryb3kobV9mcmVlQmxvY2tzLnJlbW92ZUhlYWQoKSk7CiAgICAgICAgIH0KICAgICB9
CiAKICAgICBBU1NFUlQobV9mcmVlQmxvY2tzLmlzRW1wdHkoKSk7Ci0gICAgUGFnZUFsbG9jYXRp
b25BbGlnbmVkIGFsbG9jYXRpb24gPSBQYWdlQWxsb2NhdGlvbkFsaWduZWQ6OmFsbG9jYXRlKEhl
YXBCbG9jazo6c19ibG9ja1NpemUsIEhlYXBCbG9jazo6c19ibG9ja1NpemUsIE9TQWxsb2NhdG9y
OjpKU0dDSGVhcFBhZ2VzKTsKKyAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbiA9
IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZDo6YWxsb2NhdGUoRGVhZEJsb2NrOjpzX2Jsb2NrU2l6ZSwg
RGVhZEJsb2NrOjpzX2Jsb2NrU2l6ZSwgT1NBbGxvY2F0b3I6OkpTR0NIZWFwUGFnZXMpOwogICAg
IGlmICghc3RhdGljX2Nhc3Q8Ym9vbD4oYWxsb2NhdGlvbikpCiAgICAgICAgIENSQVNIKCk7CiAg
ICAgcmV0dXJuIGFsbG9jYXRpb247CkBAIC04Nyw4ICsxMDUsNyBAQCBpbmxpbmUgUGFnZUFsbG9j
YXRpb25BbGlnbmVkIEJsb2NrQWxsb2NhCiBpbmxpbmUgdm9pZCBCbG9ja0FsbG9jYXRvcjo6ZGVh
bGxvY2F0ZShQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbikKIHsKICAgICBTcGluTG9j
a0hvbGRlciBsb2NrZXIoJm1fZnJlZUJsb2NrTG9jayk7Ci0gICAgSGVhcEJsb2NrKiBoZWFwQmxv
Y2sgPSBuZXcoTm90TnVsbCwgYWxsb2NhdGlvbi5iYXNlKCkpIEhlYXBCbG9jayhhbGxvY2F0aW9u
KTsKLSAgICBtX2ZyZWVCbG9ja3MucHVzaChoZWFwQmxvY2spOworICAgIG1fZnJlZUJsb2Nrcy5w
dXNoKERlYWRCbG9jazo6Y3JlYXRlKGFsbG9jYXRpb24pKTsKICAgICBtX251bWJlck9mRnJlZUJs
b2NrcysrOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRCbG9j
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZEJsb2Nr
LmgJKHJldmlzaW9uIDEyNDA3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGll
ZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEzICszNCwxMiBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY2xhc3MgQ29waWVkU3BhY2U7CiAKLWNsYXNzIENvcGllZEJsb2NrIDogcHVibGljIEhl
YXBCbG9jayB7CitjbGFzcyBDb3BpZWRCbG9jayA6IHB1YmxpYyBIZWFwQmxvY2s8Q29waWVkQmxv
Y2s+IHsKICAgICBmcmllbmQgY2xhc3MgQ29waWVkU3BhY2U7CiAgICAgZnJpZW5kIGNsYXNzIENv
cGllZEFsbG9jYXRvcjsKIHB1YmxpYzoKICAgICBzdGF0aWMgQ29waWVkQmxvY2sqIGNyZWF0ZShj
b25zdCBQYWdlQWxsb2NhdGlvbkFsaWduZWQmKTsKICAgICBzdGF0aWMgQ29waWVkQmxvY2sqIGNy
ZWF0ZU5vWmVyb0ZpbGwoY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJik7Ci0gICAgc3RhdGlj
IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBkZXN0cm95KENvcGllZEJsb2NrKik7CiAKICAgICAvLyBU
aGUgcGF5bG9hZCBpcyB0aGUgcmVnaW9uIG9mIHRoZSBibG9jayB0aGF0IGlzIHVzYWJsZSBmb3Ig
YWxsb2NhdGlvbnMuCiAgICAgY2hhciogcGF5bG9hZCgpOwpAQCAtOTMsMTcgKzkyLDggQEAgaW5s
aW5lIHZvaWQgQ29waWVkQmxvY2s6Onplcm9GaWxsV2lsZGVybgogI2VuZGlmCiB9CiAKLWlubGlu
ZSBQYWdlQWxsb2NhdGlvbkFsaWduZWQgQ29waWVkQmxvY2s6OmRlc3Ryb3koQ29waWVkQmxvY2sq
IGJsb2NrKQotewotICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxvY2F0aW9uOwotICAgIHN3
YXAoYWxsb2NhdGlvbiwgYmxvY2stPm1fYWxsb2NhdGlvbik7Ci0KLSAgICBibG9jay0+fkNvcGll
ZEJsb2NrKCk7Ci0gICAgcmV0dXJuIGFsbG9jYXRpb247Ci19Ci0KIGlubGluZSBDb3BpZWRCbG9j
azo6Q29waWVkQmxvY2soY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiBhbGxvY2F0aW9uKQot
ICAgIDogSGVhcEJsb2NrKGFsbG9jYXRpb24pCisgICAgOiBIZWFwQmxvY2s8Q29waWVkQmxvY2s+
KGFsbG9jYXRpb24pCiAgICAgLCBtX3JlbWFpbmluZyhwYXlsb2FkQ2FwYWNpdHkoKSkKICAgICAs
IG1faXNQaW5uZWQoZmFsc2UpCiB7CkBAIC0xMTcsNyArMTA3LDcgQEAgaW5saW5lIGNoYXIqIENv
cGllZEJsb2NrOjpwYXlsb2FkKCkKIAogaW5saW5lIGNoYXIqIENvcGllZEJsb2NrOjpwYXlsb2Fk
RW5kKCkKIHsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBtX2Fs
bG9jYXRpb24uc2l6ZSgpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlz
KSArIGFsbG9jYXRpb24oKS5zaXplKCk7CiB9CiAKIGlubGluZSBzaXplX3QgQ29waWVkQmxvY2s6
OnBheWxvYWRDYXBhY2l0eSgpCkBAIC0xNjIsNyArMTUyLDcgQEAgaW5saW5lIHNpemVfdCBDb3Bp
ZWRCbG9jazo6c2l6ZSgpCiAKIGlubGluZSBzaXplX3QgQ29waWVkQmxvY2s6OmNhcGFjaXR5KCkK
IHsKLSAgICByZXR1cm4gbV9hbGxvY2F0aW9uLnNpemUoKTsKKyAgICByZXR1cm4gYWxsb2NhdGlv
bigpLnNpemUoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCShyZXZpc2lvbiAxMjQwNzkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDEzICs0NCwxMyBAQCBDb3BpZWRTcGFjZTo6Q29waWVkU3BhY2UoSGVhcCogaGVhcCkKIENv
cGllZFNwYWNlOjp+Q29waWVkU3BhY2UoKQogewogICAgIHdoaWxlICghbV90b1NwYWNlLT5pc0Vt
cHR5KCkpCi0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRlKENvcGll
ZEJsb2NrOjpkZXN0cm95KHN0YXRpY19jYXN0PENvcGllZEJsb2NrKj4obV90b1NwYWNlLT5yZW1v
dmVIZWFkKCkpKSk7CisgICAgICAgIG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5kZWFsbG9jYXRl
KENvcGllZEJsb2NrOjpkZXN0cm95KG1fdG9TcGFjZS0+cmVtb3ZlSGVhZCgpKSk7CiAKICAgICB3
aGlsZSAoIW1fZnJvbVNwYWNlLT5pc0VtcHR5KCkpCi0gICAgICAgIG1faGVhcC0+YmxvY2tBbGxv
Y2F0b3IoKS5kZWFsbG9jYXRlKENvcGllZEJsb2NrOjpkZXN0cm95KHN0YXRpY19jYXN0PENvcGll
ZEJsb2NrKj4obV9mcm9tU3BhY2UtPnJlbW92ZUhlYWQoKSkpKTsKKyAgICAgICAgbV9oZWFwLT5i
bG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9mcm9tU3Bh
Y2UtPnJlbW92ZUhlYWQoKSkpOwogCiAgICAgd2hpbGUgKCFtX292ZXJzaXplQmxvY2tzLmlzRW1w
dHkoKSkKLSAgICAgICAgQ29waWVkQmxvY2s6OmRlc3Ryb3koc3RhdGljX2Nhc3Q8Q29waWVkQmxv
Y2sqPihtX292ZXJzaXplQmxvY2tzLnJlbW92ZUhlYWQoKSkpLmRlYWxsb2NhdGUoKTsKKyAgICAg
ICAgQ29waWVkQmxvY2s6OmRlc3Ryb3kobV9vdmVyc2l6ZUJsb2Nrcy5yZW1vdmVIZWFkKCkpLmRl
YWxsb2NhdGUoKTsKIH0KIAogdm9pZCBDb3BpZWRTcGFjZTo6aW5pdCgpCkBAIC0xOTMsNyArMTkz
LDcgQEAgdm9pZCBDb3BpZWRTcGFjZTo6ZG9uZUNvcHlpbmcoKQogICAgIEFTU0VSVChtX2luQ29w
eWluZ1BoYXNlKTsKICAgICBtX2luQ29weWluZ1BoYXNlID0gZmFsc2U7CiAgICAgd2hpbGUgKCFt
X2Zyb21TcGFjZS0+aXNFbXB0eSgpKSB7Ci0gICAgICAgIENvcGllZEJsb2NrKiBibG9jayA9IHN0
YXRpY19jYXN0PENvcGllZEJsb2NrKj4obV9mcm9tU3BhY2UtPnJlbW92ZUhlYWQoKSk7CisgICAg
ICAgIENvcGllZEJsb2NrKiBibG9jayA9IG1fZnJvbVNwYWNlLT5yZW1vdmVIZWFkKCk7CiAgICAg
ICAgIGlmIChibG9jay0+bV9pc1Bpbm5lZCkgewogICAgICAgICAgICAgYmxvY2stPm1faXNQaW5u
ZWQgPSBmYWxzZTsKICAgICAgICAgICAgIC8vIFdlIGRvbid0IGFkZCB0aGUgYmxvY2sgdG8gdGhl
IGJsb2NrU2V0IGJlY2F1c2UgaXQgd2FzIG5ldmVyIHJlbW92ZWQuCkBAIC0yMDcsOSArMjA3LDkg
QEAgdm9pZCBDb3BpZWRTcGFjZTo6ZG9uZUNvcHlpbmcoKQogICAgICAgICBtX2hlYXAtPmJsb2Nr
QWxsb2NhdG9yKCkuZGVhbGxvY2F0ZShDb3BpZWRCbG9jazo6ZGVzdHJveShibG9jaykpOwogICAg
IH0KIAotICAgIENvcGllZEJsb2NrKiBjdXJyID0gc3RhdGljX2Nhc3Q8Q29waWVkQmxvY2sqPiht
X292ZXJzaXplQmxvY2tzLmhlYWQoKSk7CisgICAgQ29waWVkQmxvY2sqIGN1cnIgPSBtX292ZXJz
aXplQmxvY2tzLmhlYWQoKTsKICAgICB3aGlsZSAoY3VycikgewotICAgICAgICBDb3BpZWRCbG9j
ayogbmV4dCA9IHN0YXRpY19jYXN0PENvcGllZEJsb2NrKj4oY3Vyci0+bmV4dCgpKTsKKyAgICAg
ICAgQ29waWVkQmxvY2sqIG5leHQgPSBjdXJyLT5uZXh0KCk7CiAgICAgICAgIGlmICghY3Vyci0+
bV9pc1Bpbm5lZCkgewogICAgICAgICAgICAgbV9vdmVyc2l6ZUJsb2Nrcy5yZW1vdmUoY3Vycik7
CiAgICAgICAgICAgICBtX2Jsb2NrU2V0LnJlbW92ZShjdXJyKTsKQEAgLTIyNCwyMCArMjI0LDIw
IEBAIHZvaWQgQ29waWVkU3BhY2U6OmRvbmVDb3B5aW5nKCkKICAgICBpZiAoIW1fdG9TcGFjZS0+
aGVhZCgpKQogICAgICAgICBhbGxvY2F0ZUJsb2NrKCk7CiAgICAgZWxzZQotICAgICAgICBtX2Fs
bG9jYXRvci5zZXRDdXJyZW50QmxvY2soc3RhdGljX2Nhc3Q8Q29waWVkQmxvY2sqPihtX3RvU3Bh
Y2UtPmhlYWQoKSkpOworICAgICAgICBtX2FsbG9jYXRvci5zZXRDdXJyZW50QmxvY2sobV90b1Nw
YWNlLT5oZWFkKCkpOwogfQogCiBzaXplX3QgQ29waWVkU3BhY2U6OnNpemUoKQogewogICAgIHNp
emVfdCBjYWxjdWxhdGVkU2l6ZSA9IDA7CiAKLSAgICBmb3IgKENvcGllZEJsb2NrKiBibG9jayA9
IHN0YXRpY19jYXN0PENvcGllZEJsb2NrKj4obV90b1NwYWNlLT5oZWFkKCkpOyBibG9jazsgYmxv
Y2sgPSBzdGF0aWNfY2FzdDxDb3BpZWRCbG9jayo+KGJsb2NrLT5uZXh0KCkpKQorICAgIGZvciAo
Q29waWVkQmxvY2sqIGJsb2NrID0gbV90b1NwYWNlLT5oZWFkKCk7IGJsb2NrOyBibG9jayA9IGJs
b2NrLT5uZXh0KCkpCiAgICAgICAgIGNhbGN1bGF0ZWRTaXplICs9IGJsb2NrLT5zaXplKCk7CiAK
LSAgICBmb3IgKENvcGllZEJsb2NrKiBibG9jayA9IHN0YXRpY19jYXN0PENvcGllZEJsb2NrKj4o
bV9mcm9tU3BhY2UtPmhlYWQoKSk7IGJsb2NrOyBibG9jayA9IHN0YXRpY19jYXN0PENvcGllZEJs
b2NrKj4oYmxvY2stPm5leHQoKSkpCisgICAgZm9yIChDb3BpZWRCbG9jayogYmxvY2sgPSBtX2Zy
b21TcGFjZS0+aGVhZCgpOyBibG9jazsgYmxvY2sgPSBibG9jay0+bmV4dCgpKQogICAgICAgICBj
YWxjdWxhdGVkU2l6ZSArPSBibG9jay0+c2l6ZSgpOwogCi0gICAgZm9yIChDb3BpZWRCbG9jayog
YmxvY2sgPSBzdGF0aWNfY2FzdDxDb3BpZWRCbG9jayo+KG1fb3ZlcnNpemVCbG9ja3MuaGVhZCgp
KTsgYmxvY2s7IGJsb2NrID0gc3RhdGljX2Nhc3Q8Q29waWVkQmxvY2sqPihibG9jay0+bmV4dCgp
KSkKKyAgICBmb3IgKENvcGllZEJsb2NrKiBibG9jayA9IG1fb3ZlcnNpemVCbG9ja3MuaGVhZCgp
OyBibG9jazsgYmxvY2sgPSBibG9jay0+bmV4dCgpKQogICAgICAgICBjYWxjdWxhdGVkU2l6ZSAr
PSBibG9jay0+c2l6ZSgpOwogCiAgICAgcmV0dXJuIGNhbGN1bGF0ZWRTaXplOwpAQCAtMjQ3LDIy
ICsyNDcsMjIgQEAgc2l6ZV90IENvcGllZFNwYWNlOjpjYXBhY2l0eSgpCiB7CiAgICAgc2l6ZV90
IGNhbGN1bGF0ZWRDYXBhY2l0eSA9IDA7CiAKLSAgICBmb3IgKENvcGllZEJsb2NrKiBibG9jayA9
IHN0YXRpY19jYXN0PENvcGllZEJsb2NrKj4obV90b1NwYWNlLT5oZWFkKCkpOyBibG9jazsgYmxv
Y2sgPSBzdGF0aWNfY2FzdDxDb3BpZWRCbG9jayo+KGJsb2NrLT5uZXh0KCkpKQorICAgIGZvciAo
Q29waWVkQmxvY2sqIGJsb2NrID0gbV90b1NwYWNlLT5oZWFkKCk7IGJsb2NrOyBibG9jayA9IGJs
b2NrLT5uZXh0KCkpCiAgICAgICAgIGNhbGN1bGF0ZWRDYXBhY2l0eSArPSBibG9jay0+Y2FwYWNp
dHkoKTsKIAotICAgIGZvciAoQ29waWVkQmxvY2sqIGJsb2NrID0gc3RhdGljX2Nhc3Q8Q29waWVk
QmxvY2sqPihtX2Zyb21TcGFjZS0+aGVhZCgpKTsgYmxvY2s7IGJsb2NrID0gc3RhdGljX2Nhc3Q8
Q29waWVkQmxvY2sqPihibG9jay0+bmV4dCgpKSkKKyAgICBmb3IgKENvcGllZEJsb2NrKiBibG9j
ayA9IG1fZnJvbVNwYWNlLT5oZWFkKCk7IGJsb2NrOyBibG9jayA9IGJsb2NrLT5uZXh0KCkpCiAg
ICAgICAgIGNhbGN1bGF0ZWRDYXBhY2l0eSArPSBibG9jay0+Y2FwYWNpdHkoKTsKIAotICAgIGZv
ciAoQ29waWVkQmxvY2sqIGJsb2NrID0gc3RhdGljX2Nhc3Q8Q29waWVkQmxvY2sqPihtX292ZXJz
aXplQmxvY2tzLmhlYWQoKSk7IGJsb2NrOyBibG9jayA9IHN0YXRpY19jYXN0PENvcGllZEJsb2Nr
Kj4oYmxvY2stPm5leHQoKSkpCisgICAgZm9yIChDb3BpZWRCbG9jayogYmxvY2sgPSBtX292ZXJz
aXplQmxvY2tzLmhlYWQoKTsgYmxvY2s7IGJsb2NrID0gYmxvY2stPm5leHQoKSkKICAgICAgICAg
Y2FsY3VsYXRlZENhcGFjaXR5ICs9IGJsb2NrLT5jYXBhY2l0eSgpOwogCiAgICAgcmV0dXJuIGNh
bGN1bGF0ZWRDYXBhY2l0eTsKIH0KIAotc3RhdGljIGJvb2wgaXNCbG9ja0xpc3RQYWdlZE91dChk
b3VibGUgZGVhZGxpbmUsIERvdWJseUxpbmtlZExpc3Q8SGVhcEJsb2NrPiogbGlzdCkKK3N0YXRp
YyBib29sIGlzQmxvY2tMaXN0UGFnZWRPdXQoZG91YmxlIGRlYWRsaW5lLCBEb3VibHlMaW5rZWRM
aXN0PENvcGllZEJsb2NrPiogbGlzdCkKIHsKICAgICB1bnNpZ25lZCBpdGVyc1NpbmNlTGFzdFRp
bWVDaGVjayA9IDA7Ci0gICAgSGVhcEJsb2NrKiBjdXJyZW50ID0gbGlzdC0+aGVhZCgpOworICAg
IENvcGllZEJsb2NrKiBjdXJyZW50ID0gbGlzdC0+aGVhZCgpOwogICAgIHdoaWxlIChjdXJyZW50
KSB7CiAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0KCk7CiAgICAgICAgICsraXRlcnNT
aW5jZUxhc3RUaW1lQ2hlY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3Bp
ZWRTcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGll
ZFNwYWNlLmgJKHJldmlzaW9uIDEyNDA3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0NvcGllZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIEhlYXA7CiBjbGFzcyBDb3BpZWRCbG9jazsKLWNsYXNzIEhlYXBCbG9j
azsKIAogY2xhc3MgQ29waWVkU3BhY2UgewogICAgIGZyaWVuZCBjbGFzcyBTbG90VmlzaXRvcjsK
QEAgLTEwMSwxMiArMTAwLDEyIEBAIHByaXZhdGU6CiAKICAgICBTcGluTG9jayBtX3RvU3BhY2VM
b2NrOwogCi0gICAgRG91Ymx5TGlua2VkTGlzdDxIZWFwQmxvY2s+KiBtX3RvU3BhY2U7Ci0gICAg
RG91Ymx5TGlua2VkTGlzdDxIZWFwQmxvY2s+KiBtX2Zyb21TcGFjZTsKKyAgICBEb3VibHlMaW5r
ZWRMaXN0PENvcGllZEJsb2NrPiogbV90b1NwYWNlOworICAgIERvdWJseUxpbmtlZExpc3Q8Q29w
aWVkQmxvY2s+KiBtX2Zyb21TcGFjZTsKICAgICAKLSAgICBEb3VibHlMaW5rZWRMaXN0PEhlYXBC
bG9jaz4gbV9ibG9ja3MxOwotICAgIERvdWJseUxpbmtlZExpc3Q8SGVhcEJsb2NrPiBtX2Jsb2Nr
czI7Ci0gICAgRG91Ymx5TGlua2VkTGlzdDxIZWFwQmxvY2s+IG1fb3ZlcnNpemVCbG9ja3M7Cisg
ICAgRG91Ymx5TGlua2VkTGlzdDxDb3BpZWRCbG9jaz4gbV9ibG9ja3MxOworICAgIERvdWJseUxp
bmtlZExpc3Q8Q29waWVkQmxvY2s+IG1fYmxvY2tzMjsKKyAgICBEb3VibHlMaW5rZWRMaXN0PENv
cGllZEJsb2NrPiBtX292ZXJzaXplQmxvY2tzOwogICAgCiAgICAgYm9vbCBtX2luQ29weWluZ1Bo
YXNlOwogCkBAIC0xMTYsNyArMTE1LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBjb25zdCBz
aXplX3Qgc19tYXhBbGxvY2F0aW9uU2l6ZSA9IDMyICogS0I7CiAgICAgc3RhdGljIGNvbnN0IHNp
emVfdCBzX2luaXRpYWxCbG9ja051bSA9IDE2OwotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc19i
bG9ja01hc2sgPSB+KEhlYXBCbG9jazo6c19ibG9ja1NpemUgLSAxKTsKKyAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IHNfYmxvY2tNYXNrID0gfihDb3BpZWRCbG9jazo6c19ibG9ja1NpemUgLSAxKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29waWVkU3BhY2VJbmxpbmVNZXRob2RzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2VJbmxpbmVNZXRob2RzLmgJKHJldmlzaW9uIDEyNDA3
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lTWV0aG9k
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw5ICs5NSw3IEBAIGlubGluZSB2b2lkIENvcGllZFNw
YWNlOjpwaW5JZk5lY2Vzc2FyeSgKIAogaW5saW5lIHZvaWQgQ29waWVkU3BhY2U6OnN0YXJ0ZWRD
b3B5aW5nKCkKIHsKLSAgICBEb3VibHlMaW5rZWRMaXN0PEhlYXBCbG9jaz4qIHRlbXAgPSBtX2Zy
b21TcGFjZTsKLSAgICBtX2Zyb21TcGFjZSA9IG1fdG9TcGFjZTsKLSAgICBtX3RvU3BhY2UgPSB0
ZW1wOworICAgIHN0ZDo6c3dhcChtX2Zyb21TcGFjZSwgbV90b1NwYWNlKTsKIAogICAgIG1fYmxv
Y2tGaWx0ZXIucmVzZXQoKTsKICAgICBtX2FsbG9jYXRvci5yZXNldEN1cnJlbnRCbG9jaygpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEJsb2NrLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEJsb2NrLmgJKHJldmlzaW9uIDEyNDA3
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBCbG9jay5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCwyMiArMzQsMzYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGVudW0gQWxsb2NhdGlv
bkVmZm9ydCB7IEFsbG9jYXRpb25DYW5GYWlsLCBBbGxvY2F0aW9uTXVzdFN1Y2NlZWQgfTsKIAot
Y2xhc3MgSGVhcEJsb2NrIDogcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPEhlYXBCbG9jaz4g
ewordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEhlYXBCbG9jayA6IHB1YmxpYyBEb3VibHlM
aW5rZWRMaXN0Tm9kZTxUPiB7CisgICAgZnJpZW5kIGNsYXNzIERvdWJseUxpbmtlZExpc3ROb2Rl
PFQ+OwogcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc19ibG9ja1NpemUgPSA2NCAq
IEtCOworCisgICAgc3RhdGljIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBkZXN0cm95KEhlYXBCbG9j
ayogYmxvY2spCisgICAgeworICAgICAgICBzdGF0aWNfY2FzdDxUKj4oYmxvY2spLT5+VCgpOwor
CisgICAgICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCBhbGxvY2F0aW9uOworICAgICAgICBzdGQ6
OnN3YXAoYWxsb2NhdGlvbiwgYmxvY2stPm1fYWxsb2NhdGlvbik7CisgICAgICAgIHJldHVybiBh
bGxvY2F0aW9uOworICAgIH0KKwogICAgIEhlYXBCbG9jayhjb25zdCBQYWdlQWxsb2NhdGlvbkFs
aWduZWQmIGFsbG9jYXRpb24pCi0gICAgICAgIDogRG91Ymx5TGlua2VkTGlzdE5vZGU8SGVhcEJs
b2NrPigpCisgICAgICAgIDogRG91Ymx5TGlua2VkTGlzdE5vZGU8VD4oKQorICAgICAgICAsIG1f
YWxsb2NhdGlvbihhbGxvY2F0aW9uKQogICAgICAgICAsIG1fcHJldigwKQogICAgICAgICAsIG1f
bmV4dCgwKQotICAgICAgICAsIG1fYWxsb2NhdGlvbihhbGxvY2F0aW9uKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKG1fYWxsb2NhdGlvbik7CiAgICAgfQogCi0gICAgSGVhcEJsb2NrKiBtX3ByZXY7
Ci0gICAgSGVhcEJsb2NrKiBtX25leHQ7CisgICAgY29uc3QgUGFnZUFsbG9jYXRpb25BbGlnbmVk
IGFsbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2FsbG9jYXRpb247IH0KKworcHJpdmF0ZToK
ICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQgbV9hbGxvY2F0aW9uOwotICAgIAotICAgIHN0YXRp
YyBjb25zdCBzaXplX3Qgc19ibG9ja1NpemUgPSA2NCAqIEtCOworICAgIFQqIG1fcHJldjsKKyAg
ICBUKiBtX25leHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmNwcAkocmV2aXNpb24gMTI0MDc5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGJvb2wgTWFya2Vk
QWxsb2NhdG9yOjppc1BhZ2VkT3V0KGRvdWJsZSBkZWFkbGluZSkKIHsKICAgICB1bnNpZ25lZCBp
dGVyc1NpbmNlTGFzdFRpbWVDaGVjayA9IDA7Ci0gICAgSGVhcEJsb2NrKiBibG9jayA9IG1fYmxv
Y2tMaXN0LmhlYWQoKTsKKyAgICBNYXJrZWRCbG9jayogYmxvY2sgPSBtX2Jsb2NrTGlzdC5oZWFk
KCk7CiAgICAgd2hpbGUgKGJsb2NrKSB7CiAgICAgICAgIGJsb2NrID0gYmxvY2stPm5leHQoKTsK
ICAgICAgICAgKytpdGVyc1NpbmNlTGFzdFRpbWVDaGVjazsKQEAgLTI5LDcgKzI5LDcgQEAgYm9v
bCBNYXJrZWRBbGxvY2F0b3I6OmlzUGFnZWRPdXQoZG91YmxlIAogaW5saW5lIHZvaWQqIE1hcmtl
ZEFsbG9jYXRvcjo6dHJ5QWxsb2NhdGVIZWxwZXIoKQogewogICAgIGlmICghbV9mcmVlTGlzdC5o
ZWFkKSB7Ci0gICAgICAgIGZvciAoTWFya2VkQmxvY2sqJiBibG9jayA9IG1fYmxvY2tzVG9Td2Vl
cDsgYmxvY2s7IGJsb2NrID0gc3RhdGljX2Nhc3Q8TWFya2VkQmxvY2sqPihibG9jay0+bmV4dCgp
KSkgeworICAgICAgICBmb3IgKE1hcmtlZEJsb2NrKiYgYmxvY2sgPSBtX2Jsb2Nrc1RvU3dlZXA7
IGJsb2NrOyBibG9jayA9IGJsb2NrLT5uZXh0KCkpIHsKICAgICAgICAgICAgIG1fZnJlZUxpc3Qg
PSBibG9jay0+c3dlZXAoTWFya2VkQmxvY2s6OlN3ZWVwVG9GcmVlTGlzdCk7CiAgICAgICAgICAg
ICBpZiAobV9mcmVlTGlzdC5oZWFkKSB7CiAgICAgICAgICAgICAgICAgbV9jdXJyZW50QmxvY2sg
PSBibG9jazsKQEAgLTExNSwxMSArMTE1LDExIEBAIHZvaWQgTWFya2VkQWxsb2NhdG9yOjphZGRC
bG9jayhNYXJrZWRCbG8KIHZvaWQgTWFya2VkQWxsb2NhdG9yOjpyZW1vdmVCbG9jayhNYXJrZWRC
bG9jayogYmxvY2spCiB7CiAgICAgaWYgKG1fY3VycmVudEJsb2NrID09IGJsb2NrKSB7Ci0gICAg
ICAgIG1fY3VycmVudEJsb2NrID0gc3RhdGljX2Nhc3Q8TWFya2VkQmxvY2sqPihtX2N1cnJlbnRC
bG9jay0+bmV4dCgpKTsKKyAgICAgICAgbV9jdXJyZW50QmxvY2sgPSBtX2N1cnJlbnRCbG9jay0+
bmV4dCgpOwogICAgICAgICBtX2ZyZWVMaXN0ID0gTWFya2VkQmxvY2s6OkZyZWVMaXN0KCk7CiAg
ICAgfQogICAgIGlmIChtX2Jsb2Nrc1RvU3dlZXAgPT0gYmxvY2spCi0gICAgICAgIG1fYmxvY2tz
VG9Td2VlcCA9IHN0YXRpY19jYXN0PE1hcmtlZEJsb2NrKj4obV9ibG9ja3NUb1N3ZWVwLT5uZXh0
KCkpOworICAgICAgICBtX2Jsb2Nrc1RvU3dlZXAgPSBtX2Jsb2Nrc1RvU3dlZXAtPm5leHQoKTsK
ICAgICBtX2Jsb2NrTGlzdC5yZW1vdmUoYmxvY2spOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaAkocmV2aXNpb24gMTI0MDc5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKICAgICBNYXJrZWRCbG9jazo6RnJlZUxpc3Qg
bV9mcmVlTGlzdDsKICAgICBNYXJrZWRCbG9jayogbV9jdXJyZW50QmxvY2s7CiAgICAgTWFya2Vk
QmxvY2sqIG1fYmxvY2tzVG9Td2VlcDsKLSAgICBEb3VibHlMaW5rZWRMaXN0PEhlYXBCbG9jaz4g
bV9ibG9ja0xpc3Q7CisgICAgRG91Ymx5TGlua2VkTGlzdDxNYXJrZWRCbG9jaz4gbV9ibG9ja0xp
c3Q7CiAgICAgc2l6ZV90IG1fY2VsbFNpemU7CiAgICAgYm9vbCBtX2NlbGxzTmVlZERlc3RydWN0
aW9uOwogICAgIGJvb2wgbV9vbmx5Q29udGFpbnNTdHJ1Y3R1cmVzOwpAQCAtOTAsNyArOTAsNyBA
QCBpbmxpbmUgdm9pZCBNYXJrZWRBbGxvY2F0b3I6OnJlc2V0KCkKIHsKICAgICBtX2N1cnJlbnRC
bG9jayA9IDA7CiAgICAgbV9mcmVlTGlzdCA9IE1hcmtlZEJsb2NrOjpGcmVlTGlzdCgpOwotICAg
IG1fYmxvY2tzVG9Td2VlcCA9IHN0YXRpY19jYXN0PE1hcmtlZEJsb2NrKj4obV9ibG9ja0xpc3Qu
aGVhZCgpKTsKKyAgICBtX2Jsb2Nrc1RvU3dlZXAgPSBtX2Jsb2NrTGlzdC5oZWFkKCk7CiB9CiAK
IGlubGluZSB2b2lkIE1hcmtlZEFsbG9jYXRvcjo6emFwRnJlZUxpc3QoKQpAQCAtMTA2LDEwICsx
MDYsMTAgQEAgaW5saW5lIHZvaWQgTWFya2VkQWxsb2NhdG9yOjp6YXBGcmVlTGlzdAogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5lIHZvaWQgTWFya2VkQWxsb2NhdG9yOjpmb3JF
YWNoQmxvY2soRnVuY3RvciYgZnVuY3RvcikKIHsKLSAgICBIZWFwQmxvY2sqIG5leHQ7Ci0gICAg
Zm9yIChIZWFwQmxvY2sqIGJsb2NrID0gbV9ibG9ja0xpc3QuaGVhZCgpOyBibG9jazsgYmxvY2sg
PSBuZXh0KSB7CisgICAgTWFya2VkQmxvY2sqIG5leHQ7CisgICAgZm9yIChNYXJrZWRCbG9jayog
YmxvY2sgPSBtX2Jsb2NrTGlzdC5oZWFkKCk7IGJsb2NrOyBibG9jayA9IG5leHQpIHsKICAgICAg
ICAgbmV4dCA9IGJsb2NrLT5uZXh0KCk7Ci0gICAgICAgIGZ1bmN0b3Ioc3RhdGljX2Nhc3Q8TWFy
a2VkQmxvY2sqPihibG9jaykpOworICAgICAgICBmdW5jdG9yKGJsb2NrKTsKICAgICB9CiB9CiAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCShy
ZXZpc2lvbiAxMjQwNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9j
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE3ICszNyw4IEBAIE1hcmtlZEJsb2NrKiBNYXJr
ZWRCbG9jazo6Y3JlYXRlKGNvbnN0IFAKICAgICByZXR1cm4gbmV3IChOb3ROdWxsLCBhbGxvY2F0
aW9uLmJhc2UoKSkgTWFya2VkQmxvY2soYWxsb2NhdGlvbiwgaGVhcCwgY2VsbFNpemUsIGNlbGxz
TmVlZERlc3RydWN0aW9uLCBvbmx5Q29udGFpbnNTdHJ1Y3R1cmVzKTsKIH0KIAotUGFnZUFsbG9j
YXRpb25BbGlnbmVkIE1hcmtlZEJsb2NrOjpkZXN0cm95KE1hcmtlZEJsb2NrKiBibG9jaykKLXsK
LSAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQgYWxsb2NhdGlvbjsKLSAgICBzd2FwKGFsbG9jYXRp
b24sIGJsb2NrLT5tX2FsbG9jYXRpb24pOwotCi0gICAgYmxvY2stPn5NYXJrZWRCbG9jaygpOwot
ICAgIHJldHVybiBhbGxvY2F0aW9uOwotfQotCiBNYXJrZWRCbG9jazo6TWFya2VkQmxvY2soY29u
c3QgUGFnZUFsbG9jYXRpb25BbGlnbmVkJiBhbGxvY2F0aW9uLCBIZWFwKiBoZWFwLCBzaXplX3Qg
Y2VsbFNpemUsIGJvb2wgY2VsbHNOZWVkRGVzdHJ1Y3Rpb24sIGJvb2wgb25seUNvbnRhaW5zU3Ry
dWN0dXJlcykKLSAgICA6IEhlYXBCbG9jayhhbGxvY2F0aW9uKQorICAgIDogSGVhcEJsb2NrPE1h
cmtlZEJsb2NrPihhbGxvY2F0aW9uKQogICAgICwgbV9hdG9tc1BlckNlbGwoKGNlbGxTaXplICsg
YXRvbVNpemUgLSAxKSAvIGF0b21TaXplKQogICAgICwgbV9lbmRBdG9tKGF0b21zUGVyQmxvY2sg
LSBtX2F0b21zUGVyQ2VsbCArIDEpCiAgICAgLCBtX2NlbGxzTmVlZERlc3RydWN0aW9uKGNlbGxz
TmVlZERlc3RydWN0aW9uKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2Vk
QmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRC
bG9jay5oCShyZXZpc2lvbiAxMjQwNzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YXJrZWRCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw4ICs2Nyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIC8vIHNpemUgaXMgZXF1YWwgdG8gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUg
Y2VsbCBzaXplIGFuZCB0aGUgb2JqZWN0CiAgICAgLy8gc2l6ZS4KIAotICAgIGNsYXNzIE1hcmtl
ZEJsb2NrIDogcHVibGljIEhlYXBCbG9jayB7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBXVEY6OkRv
dWJseUxpbmtlZExpc3ROb2RlPE1hcmtlZEJsb2NrPjsKKyAgICBjbGFzcyBNYXJrZWRCbG9jayA6
IHB1YmxpYyBIZWFwQmxvY2s8TWFya2VkQmxvY2s+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIC8v
IEVuc3VyZSBuYXR1cmFsIGFsaWdubWVudCBmb3IgbmF0aXZlIHR5cGVzIHdoaWxzdCByZWNvZ25p
emluZyB0aGF0IHRoZSBzbWFsbGVzdAogICAgICAgICAvLyBvYmplY3QgdGhlIGhlYXAgd2lsbCBj
b21tb25seSBhbGxvY2F0ZSBpcyBmb3VyIHdvcmRzLgpAQCAtMTE0LDcgKzExMyw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB9OwogCiAgICAgICAgIHN0YXRpYyBNYXJrZWRCbG9jayogY3Jl
YXRlKGNvbnN0IFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCYsIEhlYXAqLCBzaXplX3QgY2VsbFNpemUs
IGJvb2wgY2VsbHNOZWVkRGVzdHJ1Y3Rpb24sIGJvb2wgb25seUNvbnRhaW5zU3RydWN0dXJlcyk7
Ci0gICAgICAgIHN0YXRpYyBQYWdlQWxsb2NhdGlvbkFsaWduZWQgZGVzdHJveShNYXJrZWRCbG9j
ayopOwogCiAgICAgICAgIHN0YXRpYyBib29sIGlzQXRvbUFsaWduZWQoY29uc3Qgdm9pZCopOwog
ICAgICAgICBzdGF0aWMgTWFya2VkQmxvY2sqIGJsb2NrRm9yKGNvbnN0IHZvaWQqKTsKQEAgLTMz
Niw3ICszMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGlubGluZSBzaXplX3QgTWFya2Vk
QmxvY2s6OmNhcGFjaXR5KCkKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2FsbG9jYXRpb24uc2l6
ZSgpOworICAgICAgICByZXR1cm4gYWxsb2NhdGlvbigpLnNpemUoKTsKICAgICB9CiAKICAgICBp
bmxpbmUgc2l6ZV90IE1hcmtlZEJsb2NrOjphdG9tTnVtYmVyKGNvbnN0IHZvaWQqIHApCg==
</data>
<flag name="review"
          id="165100"
          type_id="1"
          status="+"
          setter="oliver"
    />
    <flag name="commit-queue"
          id="165110"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>