<?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>105331</bug_id>
          
          <creation_ts>2012-12-18 11:18:47 -0800</creation_ts>
          <short_desc>[BlackBerry] Clean up &quot;frontState&quot; vs. &quot;geometry&quot; naming confusion</short_desc>
          <delta_ts>2012-12-18 12:59:21 -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 BlackBerry</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="Jakob Petsovits">jpetsovits</reporter>
          <assigned_to name="Jakob Petsovits">jpetsovits</assigned_to>
          <cc>manyoso</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793857</commentid>
    <comment_count>0</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2012-12-18 11:18:47 -0800</bug_when>
    <thetext>The concept of the &quot;front state&quot; is going away or will be marginalized/renamed, but I don&apos;t want to clutter upcoming patches with renames. So do the variable renames in here, once, and have future patches focus on the actual behavior changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793895</commentid>
    <comment_count>1</comment_count>
      <attachid>179993</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2012-12-18 11:48:35 -0800</bug_when>
    <thetext>Created attachment 179993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793960</commentid>
    <comment_count>2</comment_count>
      <attachid>179993</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 12:59:18 -0800</bug_when>
    <thetext>Comment on attachment 179993
Patch

Clearing flags on attachment: 179993

Committed r138057: &lt;http://trac.webkit.org/changeset/138057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793961</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 12:59:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179993</attachid>
            <date>2012-12-18 11:48:35 -0800</date>
            <delta_ts>2012-12-18 12:59:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105331-20121218144551.patch</filename>
            <type>text/plain</type>
            <size>21755</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA4NTdmYWM5NTQyN2RiZDEwMjYwY2Y4YmY3ZTRhMDdjYTQ1N2JiNTYxLi40YWU2NDZlZGI2
Njk5NjdjYWY0NmI2NGI3YzgwNjhmZTc5YWFmN2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0xMi0xNyAgSmFrb2IgUGV0c292aXRzICA8anBl
dHNvdml0c0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBDbGVhbiB1cCAiZnJvbnRT
dGF0ZSIgdnMuICJnZW9tZXRyeSIgbmFtaW5nIGNvbmZ1c2lvbi4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTMzMQorICAgICAgICBSSU0gUFIgMjYw
MjMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhl
IGNvbmNlcHQgb2YgdGhlICJmcm9udCBzdGF0ZSIgaXMgZ29pbmcgYXdheSBvciB3aWxsIGJlCisg
ICAgICAgIG1hcmdpbmFsaXplZC9yZW5hbWVkLCBidXQgSSBkb24ndCB3YW50IHRvIGNsdXR0ZXIg
dXBjb21pbmcKKyAgICAgICAgcGF0Y2hlcyB3aXRoIHJlbmFtZXMuIFNvIGRvIHRoZSB2YXJpYWJs
ZSByZW5hbWVzIGluIGhlcmUsCisgICAgICAgIG9uY2UsIGFuZCBoYXZlIGZ1dHVyZSBwYXRjaGVz
IGZvY3VzIG9uIGFjdHVhbCBiZWhhdmlvciBjaGFuZ2VzLgorCisgICAgICAgICogQXBpL0JhY2tp
bmdTdG9yZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkJhY2tpbmdTdG9yZVBy
aXZhdGU6OnNob3VsZERpcmVjdFJlbmRlcmluZ1RvV2luZG93KToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6c2V0QmFja2luZ1N0b3JlUmVjdCk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkJhY2tpbmdTdG9yZVByaXZhdGU6OnVwZGF0ZVRp
bGVzQWZ0ZXJCYWNraW5nU3RvcmVSZWN0Q2hhbmdlKToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6cmVuZGVyKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6YmxpdFZpc2libGVDb250ZW50cyk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkJhY2tpbmdTdG9yZVByaXZhdGU6OmNvbXBvc2l0ZUNv
bnRlbnRzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0
ZTo6cmVzZXRUaWxlcyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkJhY2tpbmdTdG9y
ZVByaXZhdGU6OnVwZGF0ZVRpbGVzKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6QmFj
a2luZ1N0b3JlUHJpdmF0ZTo6dXBkYXRlVGlsZXNGb3JTY3JvbGxPck5vdFJlbmRlcmVkUmVnaW9u
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y3Jl
YXRlU3VyZmFjZXMpOgorCiAyMDEyLTEyLTE4ICBKYWtvYiBQZXRzb3ZpdHMgIDxqcGV0c292aXRz
QHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFJlbW92ZSB0aGUgdmlzaWJsZSB0aWxl
IGJ1ZmZlciBmcm9tIHRoZSBCYWNraW5nU3RvcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAKaW5kZXggOTA1NWFjZmIyZDU4ZDYwOTBjZTlmYjFjYmI5
NGZkNTA4OTE1ZGNiOS4uMmEwNjM4YWU3NGMxN2VlNTQwYTNlZTk3MWY0MDViYzFmNzQwZTBhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcApAQCAt
MjY4LDkgKzI2OCw5IEBAIGJvb2wgQmFja2luZ1N0b3JlUHJpdmF0ZTo6c2hvdWxkRGlyZWN0UmVu
ZGVyaW5nVG9XaW5kb3coKSBjb25zdAogICAgIGlmICghaXNBY3RpdmUoKSkKICAgICAgICAgcmV0
dXJuICFtX3dlYlBhZ2UtPmQtPmNvbXBvc2l0b3JEcmF3c1Jvb3RMYXllcigpOwogCi0gICAgY29u
c3QgQmFja2luZ1N0b3JlR2VvbWV0cnkqIGN1cnJlbnRTdGF0ZSA9IGZyb250U3RhdGUoKTsKKyAg
ICBjb25zdCBCYWNraW5nU3RvcmVHZW9tZXRyeSogZ2VvbWV0cnkgPSBmcm9udFN0YXRlKCk7CiAg
ICAgY29uc3QgdW5zaWduZWQgdGlsZXNOZWNlc3NhcnkgPSBtaW5pbXVtTnVtYmVyT2ZUaWxlc1dp
ZGUoKSAqIG1pbmltdW1OdW1iZXJPZlRpbGVzSGlnaCgpOwotICAgIGNvbnN0IHVuc2lnbmVkIHRp
bGVzQXZhaWxhYmxlID0gY3VycmVudFN0YXRlLT5udW1iZXJPZlRpbGVzV2lkZSgpICogY3VycmVu
dFN0YXRlLT5udW1iZXJPZlRpbGVzSGlnaCgpOworICAgIGNvbnN0IHVuc2lnbmVkIHRpbGVzQXZh
aWxhYmxlID0gZ2VvbWV0cnktPm51bWJlck9mVGlsZXNXaWRlKCkgKiBnZW9tZXRyeS0+bnVtYmVy
T2ZUaWxlc0hpZ2goKTsKICAgICByZXR1cm4gdGlsZXNBdmFpbGFibGUgPCB0aWxlc05lY2Vzc2Fy
eTsKIH0KIApAQCAtNzM0LDM2ICs3MzQsMzYgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpz
ZXRCYWNraW5nU3RvcmVSZWN0KGNvbnN0IFBsYXRmb3JtOjpJbnRSZWN0JiBiYWNraW5nU3QKICAg
ICBpZiAobV9zdXNwZW5kQmFja2luZ1N0b3JlVXBkYXRlcykKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgUGxhdGZvcm06OkludFJlY3QgY3VycmVudEJhY2tpbmdTdG9yZVJlY3QgPSBmcm9udFN0YXRl
KCktPmJhY2tpbmdTdG9yZVJlY3QoKTsKKyAgICBQbGF0Zm9ybTo6SW50UmVjdCBvbGRCYWNraW5n
U3RvcmVSZWN0ID0gZnJvbnRTdGF0ZSgpLT5iYWNraW5nU3RvcmVSZWN0KCk7CiAgICAgZG91Ymxl
IGN1cnJlbnRTY2FsZSA9IGZyb250U3RhdGUoKS0+c2NhbGUoKTsKIAotICAgIGlmIChiYWNraW5n
U3RvcmVSZWN0ID09IGN1cnJlbnRCYWNraW5nU3RvcmVSZWN0ICYmIHNjYWxlID09IGN1cnJlbnRT
Y2FsZSkKKyAgICBpZiAoYmFja2luZ1N0b3JlUmVjdCA9PSBvbGRCYWNraW5nU3RvcmVSZWN0ICYm
IHNjYWxlID09IGN1cnJlbnRTY2FsZSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgREVCVUdfVElM
RU1BVFJJWAogICAgIFBsYXRmb3JtOjpsb2dBbHdheXMoUGxhdGZvcm06OkxvZ0xldmVsQ3JpdGlj
YWwsCiAgICAgICAgICJCYWNraW5nU3RvcmVQcml2YXRlOjpzZXRCYWNraW5nU3RvcmVSZWN0IGNo
YW5nZWQgZnJvbSAlcyB0byAlcyIsCi0gICAgICAgIGN1cnJlbnRCYWNraW5nU3RvcmVSZWN0LnRv
U3RyaW5nKCkuY19zdHIoKSwKKyAgICAgICAgb2xkQmFja2luZ1N0b3JlUmVjdC50b1N0cmluZygp
LmNfc3RyKCksCiAgICAgICAgIGJhY2tpbmdTdG9yZVJlY3QudG9TdHJpbmcoKS5jX3N0cigpKTsK
ICNlbmRpZgogCi0gICAgQmFja2luZ1N0b3JlR2VvbWV0cnkqIGN1cnJlbnRTdGF0ZSA9IGZyb250
U3RhdGUoKTsKLSAgICBUaWxlTWFwIGN1cnJlbnRNYXAgPSBjdXJyZW50U3RhdGUtPnRpbGVNYXAo
KTsKKyAgICBCYWNraW5nU3RvcmVHZW9tZXRyeSogb2xkR2VvbWV0cnkgPSBmcm9udFN0YXRlKCk7
CisgICAgVGlsZU1hcCBvbGRUaWxlTWFwID0gb2xkR2VvbWV0cnktPnRpbGVNYXAoKTsKIAogICAg
IFRpbGVJbmRleExpc3QgaW5kZXhlc1RvRmlsbCA9IGluZGV4ZXNGb3JCYWNraW5nU3RvcmVSZWN0
KGJhY2tpbmdTdG9yZVJlY3QpOwogCi0gICAgQVNTRVJUKHN0YXRpY19jYXN0PGludD4oaW5kZXhl
c1RvRmlsbC5zaXplKCkpID09IGN1cnJlbnRNYXAuc2l6ZSgpKTsKKyAgICBBU1NFUlQoc3RhdGlj
X2Nhc3Q8aW50PihpbmRleGVzVG9GaWxsLnNpemUoKSkgPT0gb2xkVGlsZU1hcC5zaXplKCkpOwog
Ci0gICAgbV9yZW5kZXJRdWV1ZS0+Y2xlYXIoY3VycmVudEJhY2tpbmdTdG9yZVJlY3QsIFJlbmRl
clF1ZXVlOjpEb250Q2xlYXJSZWd1bGFyUmVuZGVySm9icyk7Ci0gICAgbV9yZW5kZXJRdWV1ZS0+
YmFja2luZ1N0b3JlUmVjdENoYW5naW5nKGN1cnJlbnRCYWNraW5nU3RvcmVSZWN0LCBiYWNraW5n
U3RvcmVSZWN0KTsKKyAgICBtX3JlbmRlclF1ZXVlLT5jbGVhcihvbGRCYWNraW5nU3RvcmVSZWN0
LCBSZW5kZXJRdWV1ZTo6RG9udENsZWFyUmVndWxhclJlbmRlckpvYnMpOworICAgIG1fcmVuZGVy
UXVldWUtPmJhY2tpbmdTdG9yZVJlY3RDaGFuZ2luZyhvbGRCYWNraW5nU3RvcmVSZWN0LCBiYWNr
aW5nU3RvcmVSZWN0KTsKIAogICAgIFRpbGVNYXAgbmV3VGlsZU1hcDsKICAgICBUaWxlTWFwIGxl
ZnRPdmVyVGlsZXM7CiAKICAgICAvLyBJdGVyYXRlIHRocm91Z2ggb3VyIGN1cnJlbnQgdGlsZSBt
YXAgYW5kIGFkZCB0aWxlcyB0aGF0IGFyZSByZW5kZXJlZCB3aXRoCiAgICAgLy8gb3VyIG5ldyBi
YWNraW5nIHN0b3JlIHJlY3QuCi0gICAgVGlsZU1hcDo6Y29uc3RfaXRlcmF0b3IgdGlsZU1hcEVu
ZCA9IGN1cnJlbnRNYXAuZW5kKCk7Ci0gICAgZm9yIChUaWxlTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IGN1cnJlbnRNYXAuYmVnaW4oKTsgaXQgIT0gdGlsZU1hcEVuZDsgKytpdCkgeworICAgIFRp
bGVNYXA6OmNvbnN0X2l0ZXJhdG9yIHRpbGVNYXBFbmQgPSBvbGRUaWxlTWFwLmVuZCgpOworICAg
IGZvciAoVGlsZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBvbGRUaWxlTWFwLmJlZ2luKCk7IGl0
ICE9IHRpbGVNYXBFbmQ7ICsraXQpIHsKICAgICAgICAgVGlsZUluZGV4IG9sZEluZGV4ID0gaXQt
PmtleTsKICAgICAgICAgVGlsZUJ1ZmZlciogb2xkVGlsZUJ1ZmZlciA9IGl0LT52YWx1ZTsKIApA
QCAtODAwLDcgKzgwMCw3IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJpdmF0ZTo6c2V0QmFja2luZ1N0
b3JlUmVjdChjb25zdCBQbGF0Zm9ybTo6SW50UmVjdCYgYmFja2luZ1N0CiAgICAgfQogCiAgICAg
Ly8gQ2hlY2tzIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlbid0IGxvc3QgYW55IHRpbGVzLgotICAgIEFT
U0VSVChjdXJyZW50TWFwLnNpemUoKSA9PSBuZXdUaWxlTWFwLnNpemUoKSk7CisgICAgQVNTRVJU
KG9sZFRpbGVNYXAuc2l6ZSgpID09IG5ld1RpbGVNYXAuc2l6ZSgpKTsKIAogICAgIEJhY2tpbmdT
dG9yZUdlb21ldHJ5KiBuZXdHZW9tZXRyeSA9IG5ldyBCYWNraW5nU3RvcmVHZW9tZXRyeTsKICAg
ICBuZXdHZW9tZXRyeS0+c2V0U2NhbGUoc2NhbGUpOwpAQCAtODE2LDE4ICs4MTYsMTggQEAgdm9p
ZCBCYWNraW5nU3RvcmVQcml2YXRlOjpzZXRCYWNraW5nU3RvcmVSZWN0KGNvbnN0IFBsYXRmb3Jt
OjpJbnRSZWN0JiBiYWNraW5nU3QKIAogdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjp1cGRhdGVU
aWxlc0FmdGVyQmFja2luZ1N0b3JlUmVjdENoYW5nZSgpCiB7Ci0gICAgQmFja2luZ1N0b3JlR2Vv
bWV0cnkqIGN1cnJlbnRTdGF0ZSA9IGZyb250U3RhdGUoKTsKLSAgICBUaWxlTWFwIGN1cnJlbnRN
YXAgPSBjdXJyZW50U3RhdGUtPnRpbGVNYXAoKTsKKyAgICBCYWNraW5nU3RvcmVHZW9tZXRyeSog
Z2VvbWV0cnkgPSBmcm9udFN0YXRlKCk7CisgICAgVGlsZU1hcCBjdXJyZW50TWFwID0gZ2VvbWV0
cnktPnRpbGVNYXAoKTsKIAogICAgIFRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGN1cnJl
bnRNYXAuZW5kKCk7CiAgICAgZm9yIChUaWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGN1cnJl
bnRNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFRpbGVJbmRleCBpbmRl
eCA9IGl0LT5rZXk7CiAgICAgICAgIFRpbGVCdWZmZXIqIHRpbGVCdWZmZXIgPSBpdC0+dmFsdWU7
Ci0gICAgICAgIFBsYXRmb3JtOjpJbnRQb2ludCB0aWxlT3JpZ2luID0gY3VycmVudFN0YXRlLT5v
cmlnaW5PZlRpbGUoaW5kZXgpOworICAgICAgICBQbGF0Zm9ybTo6SW50UG9pbnQgdGlsZU9yaWdp
biA9IGdlb21ldHJ5LT5vcmlnaW5PZlRpbGUoaW5kZXgpOwogICAgICAgICAvLyBUaGUgcmVjdCBp
biB0cmFuc2Zvcm1lZCBjb250ZW50cyBjb29yZGluYXRlcy4KICAgICAgICAgUGxhdGZvcm06Oklu
dFJlY3QgcmVjdCh0aWxlT3JpZ2luLCB0aWxlU2l6ZSgpKTsKIAotICAgICAgICBpZiAoY3VycmVu
dFN0YXRlLT5pc1RpbGVDb3JyZXNwb25kaW5nVG9CdWZmZXIoaW5kZXgsIHRpbGVCdWZmZXIpKSB7
CisgICAgICAgIGlmIChnZW9tZXRyeS0+aXNUaWxlQ29ycmVzcG9uZGluZ1RvQnVmZmVyKGluZGV4
LCB0aWxlQnVmZmVyKSkgewogICAgICAgICAgICAgaWYgKG1fcmVuZGVyUXVldWUtPnJlZ3VsYXJS
ZW5kZXJKb2JzUHJldmlvdXNseUF0dGVtcHRlZEJ1dE5vdFJlbmRlcmVkKHJlY3QpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gSWYgdGhlIHJlbmRlciBxdWV1ZSBwcmV2aW91c2x5IHRyaWVkIHRvIHJl
bmRlciB0aGlzIHRpbGUsIGJ1dCB0aGUKICAgICAgICAgICAgICAgICAvLyB0aWxlIHdhc24ndCB2
aXNpYmxlIGF0IHRoZSB0aW1lIHdlIGNhbid0IHNpbXBseSByZXN0b3JlIHRoZSB0aWxlCkBAIC04
MzgsMTUgKzgzOCwxNSBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OnVwZGF0ZVRpbGVzQWZ0
ZXJCYWNraW5nU3RvcmVSZWN0Q2hhbmdlKCkKICAgICAgICAgICAgICAgICAvLyBJbnRlcnNlY3Qg
dGhlIHRpbGUgd2l0aCB0aGUgbm90IHJlbmRlcmVkIHJlZ2lvbiB0byBnZXQgdGhlIGFyZWFzCiAg
ICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRpbGUgdGhhdCB3ZSBuZWVkIHRvIGNsZWFyLgogICAg
ICAgICAgICAgICAgIFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIHRpbGVOb3RSZW5kZXJlZFJlZ2lv
biA9IFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uOjppbnRlcnNlY3RSZWdpb25zKG1fcmVuZGVyUXVl
dWUtPnJlZ3VsYXJSZW5kZXJKb2JzTm90UmVuZGVyZWRSZWdpb24oKSwgcmVjdCk7Ci0gICAgICAg
ICAgICAgICAgY2xlYXJBbmRVcGRhdGVUaWxlT2ZOb3RSZW5kZXJlZFJlZ2lvbihpbmRleCwgdGls
ZUJ1ZmZlciwgdGlsZU5vdFJlbmRlcmVkUmVnaW9uLCBjdXJyZW50U3RhdGUpOworICAgICAgICAg
ICAgICAgIGNsZWFyQW5kVXBkYXRlVGlsZU9mTm90UmVuZGVyZWRSZWdpb24oaW5kZXgsIHRpbGVC
dWZmZXIsIHRpbGVOb3RSZW5kZXJlZFJlZ2lvbiwgZ2VvbWV0cnkpOwogI2lmIERFQlVHX0JBQ0tJ
TkdTVE9SRQogICAgICAgICAgICAgICAgIFBsYXRmb3JtOjpsb2dBbHdheXMoUGxhdGZvcm06Okxv
Z0xldmVsQ3JpdGljYWwsCiAgICAgICAgICAgICAgICAgICAgICJCYWNraW5nU3RvcmVQcml2YXRl
Ojp1cGRhdGVUaWxlc0FmdGVyQmFja2luZ1N0b3JlUmVjdENoYW5nZSBkaWQgY2xlYXIgdGlsZSAl
cyIsCiAgICAgICAgICAgICAgICAgICAgIHRpbGVOb3RSZW5kZXJlZFJlZ2lvbi5leHRlbnRzKCku
dG9TdHJpbmcoKS5jX3N0cigpKTsKICNlbmRpZgogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIXRpbGVCdWZmZXIgfHwgIXRpbGVCdWZmZXItPmlzUmVuZGVyZWQodGls
ZVZpc2libGVDb250ZW50c1JlY3QoaW5kZXgsIGN1cnJlbnRTdGF0ZSksIGN1cnJlbnRTdGF0ZS0+
c2NhbGUoKSkKLSAgICAgICAgICAgICAgICAgICAgJiYgIWlzQ3VycmVudFZpc2libGVKb2IoaW5k
ZXgsIGN1cnJlbnRTdGF0ZSkpCisgICAgICAgICAgICAgICAgaWYgKCF0aWxlQnVmZmVyIHx8ICF0
aWxlQnVmZmVyLT5pc1JlbmRlcmVkKHRpbGVWaXNpYmxlQ29udGVudHNSZWN0KGluZGV4LCBnZW9t
ZXRyeSksIGdlb21ldHJ5LT5zY2FsZSgpKQorICAgICAgICAgICAgICAgICAgICAmJiAhaXNDdXJy
ZW50VmlzaWJsZUpvYihpbmRleCwgZ2VvbWV0cnkpKQogICAgICAgICAgICAgICAgICAgICB1cGRh
dGVUaWxlKHRpbGVPcmlnaW4sIGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgaWYgKHJlY3QuaW50ZXJzZWN0cyhleHBhbmRlZENvbnRlbnRzUmVjdCgp
KSkKQEAgLTEwNDYsMTUgKzEwNDYsMTUgQEAgVGlsZUluZGV4TGlzdCBCYWNraW5nU3RvcmVQcml2
YXRlOjpyZW5kZXIoY29uc3QgVGlsZUluZGV4TGlzdCYgdGlsZUluZGV4TGlzdCkKICAgICBpZiAo
dGlsZUluZGV4TGlzdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0aWxlSW5kZXhMaXN0Owog
Ci0gICAgQmFja2luZ1N0b3JlR2VvbWV0cnkqIGN1cnJlbnRTdGF0ZSA9IGZyb250U3RhdGUoKTsK
LSAgICBUaWxlTWFwIG9sZFRpbGVNYXAgPSBjdXJyZW50U3RhdGUtPnRpbGVNYXAoKTsKLSAgICBk
b3VibGUgY3VycmVudFNjYWxlID0gY3VycmVudFN0YXRlLT5zY2FsZSgpOworICAgIEJhY2tpbmdT
dG9yZUdlb21ldHJ5KiBnZW9tZXRyeSA9IGZyb250U3RhdGUoKTsKKyAgICBUaWxlTWFwIG9sZFRp
bGVNYXAgPSBnZW9tZXRyeS0+dGlsZU1hcCgpOworICAgIGRvdWJsZSBjdXJyZW50U2NhbGUgPSBn
ZW9tZXRyeS0+c2NhbGUoKTsKIAogICAgIEJhY2tpbmdTdG9yZUdlb21ldHJ5KiBuZXdHZW9tZXRy
eSA9IG5ldyBCYWNraW5nU3RvcmVHZW9tZXRyeTsKLSAgICBuZXdHZW9tZXRyeS0+c2V0U2NhbGUo
Y3VycmVudFN0YXRlLT5zY2FsZSgpKTsKLSAgICBuZXdHZW9tZXRyeS0+c2V0TnVtYmVyT2ZUaWxl
c1dpZGUoY3VycmVudFN0YXRlLT5udW1iZXJPZlRpbGVzV2lkZSgpKTsKLSAgICBuZXdHZW9tZXRy
eS0+c2V0TnVtYmVyT2ZUaWxlc0hpZ2goY3VycmVudFN0YXRlLT5udW1iZXJPZlRpbGVzSGlnaCgp
KTsKLSAgICBuZXdHZW9tZXRyeS0+c2V0QmFja2luZ1N0b3JlT2Zmc2V0KGN1cnJlbnRTdGF0ZS0+
YmFja2luZ1N0b3JlT2Zmc2V0KCkpOworICAgIG5ld0dlb21ldHJ5LT5zZXRTY2FsZShnZW9tZXRy
eS0+c2NhbGUoKSk7CisgICAgbmV3R2VvbWV0cnktPnNldE51bWJlck9mVGlsZXNXaWRlKGdlb21l
dHJ5LT5udW1iZXJPZlRpbGVzV2lkZSgpKTsKKyAgICBuZXdHZW9tZXRyeS0+c2V0TnVtYmVyT2ZU
aWxlc0hpZ2goZ2VvbWV0cnktPm51bWJlck9mVGlsZXNIaWdoKCkpOworICAgIG5ld0dlb21ldHJ5
LT5zZXRCYWNraW5nU3RvcmVPZmZzZXQoZ2VvbWV0cnktPmJhY2tpbmdTdG9yZU9mZnNldCgpKTsK
ICAgICBUaWxlTWFwIG5ld1RpbGVNYXAob2xkVGlsZU1hcCk7IC8vIGNvcHkgYSBuZXcsIHdyaXRh
YmxlIHZlcnNpb24KICAgICBUaWxlSW5kZXhMaXN0IHJlbmRlcmVkVGlsZXM7CiAKQEAgLTEwNjks
MTIgKzEwNjksMTIgQEAgVGlsZUluZGV4TGlzdCBCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXIo
Y29uc3QgVGlsZUluZGV4TGlzdCYgdGlsZUluZGV4TGlzdCkKICAgICAgICAgICAgIC8vIG5ld0dl
b21ldHJ5IGlzIG5vdyB0aGUgZnJvbnQgc3RhdGUgYW5kIHNob3VsZG4ndCBiZSBtZXNzZWQgd2l0
aC4KICAgICAgICAgICAgIC8vIExldCdzIGNyZWF0ZSBhIG5ldyBvbmUuIChUaGUgb2xkIG9uZSB3
aWxsIGJlIGF1dG9tYXRpY2FsbHkKICAgICAgICAgICAgIC8vIGRlc3Ryb3llZCBieSBhZG9wdEFz
RnJvbnRTdGF0ZSgpIG9uIGJlaW5nIHN3YXBwZWQgb3V0IGFnYWluLikKLSAgICAgICAgICAgIGN1
cnJlbnRTdGF0ZSA9IGZyb250U3RhdGUoKTsKKyAgICAgICAgICAgIGdlb21ldHJ5ID0gZnJvbnRT
dGF0ZSgpOwogICAgICAgICAgICAgbmV3R2VvbWV0cnkgPSBuZXcgQmFja2luZ1N0b3JlR2VvbWV0
cnk7Ci0gICAgICAgICAgICBuZXdHZW9tZXRyeS0+c2V0U2NhbGUoY3VycmVudFN0YXRlLT5zY2Fs
ZSgpKTsKLSAgICAgICAgICAgIG5ld0dlb21ldHJ5LT5zZXROdW1iZXJPZlRpbGVzV2lkZShjdXJy
ZW50U3RhdGUtPm51bWJlck9mVGlsZXNXaWRlKCkpOwotICAgICAgICAgICAgbmV3R2VvbWV0cnkt
PnNldE51bWJlck9mVGlsZXNIaWdoKGN1cnJlbnRTdGF0ZS0+bnVtYmVyT2ZUaWxlc0hpZ2goKSk7
Ci0gICAgICAgICAgICBuZXdHZW9tZXRyeS0+c2V0QmFja2luZ1N0b3JlT2Zmc2V0KGN1cnJlbnRT
dGF0ZS0+YmFja2luZ1N0b3JlT2Zmc2V0KCkpOworICAgICAgICAgICAgbmV3R2VvbWV0cnktPnNl
dFNjYWxlKGdlb21ldHJ5LT5zY2FsZSgpKTsKKyAgICAgICAgICAgIG5ld0dlb21ldHJ5LT5zZXRO
dW1iZXJPZlRpbGVzV2lkZShnZW9tZXRyeS0+bnVtYmVyT2ZUaWxlc1dpZGUoKSk7CisgICAgICAg
ICAgICBuZXdHZW9tZXRyeS0+c2V0TnVtYmVyT2ZUaWxlc0hpZ2goZ2VvbWV0cnktPm51bWJlck9m
VGlsZXNIaWdoKCkpOworICAgICAgICAgICAgbmV3R2VvbWV0cnktPnNldEJhY2tpbmdTdG9yZU9m
ZnNldChnZW9tZXRyeS0+YmFja2luZ1N0b3JlT2Zmc2V0KCkpOwogICAgICAgICB9CiAKICAgICAg
ICAgLy8gUGFpbnQgZGVmYXVsdCBiYWNrZ3JvdW5kIGlmIGNvbnRlbnRzIHJlY3QgaXMgZW1wdHku
CkBAIC0xMTA0LDcgKzExMDQsNyBAQCBUaWxlSW5kZXhMaXN0IEJhY2tpbmdTdG9yZVByaXZhdGU6
OnJlbmRlcihjb25zdCBUaWxlSW5kZXhMaXN0JiB0aWxlSW5kZXhMaXN0KQogICAgICAgICBpZiAo
IWJhY2tCdWZmZXItPmJhY2tncm91bmRQYWludGVkKCkpCiAgICAgICAgICAgICBiYWNrQnVmZmVy
LT5wYWludEJhY2tncm91bmQoKTsKIAotICAgICAgICBQbGF0Zm9ybTo6SW50UG9pbnQgdGlsZU9y
aWdpbiA9IGN1cnJlbnRTdGF0ZS0+b3JpZ2luT2ZUaWxlKGluZGV4KTsKKyAgICAgICAgUGxhdGZv
cm06OkludFBvaW50IHRpbGVPcmlnaW4gPSBnZW9tZXRyeS0+b3JpZ2luT2ZUaWxlKGluZGV4KTsK
ICAgICAgICAgYmFja0J1ZmZlci0+c2V0TGFzdFJlbmRlclNjYWxlKGN1cnJlbnRTY2FsZSk7CiAg
ICAgICAgIGJhY2tCdWZmZXItPnNldExhc3RSZW5kZXJPcmlnaW4odGlsZU9yaWdpbik7CiAgICAg
ICAgIGJhY2tCdWZmZXItPmNsZWFyUmVuZGVyZWRSZWdpb24oKTsKQEAgLTEyODksOSArMTI4OSw5
IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJpdmF0ZTo6YmxpdFZpc2libGVDb250ZW50cyhib29sIGZv
cmNlKQogICAgIGlmIChpc0FjdGl2ZSgpICYmICFtX3dlYlBhZ2UtPmQtPmNvbXBvc2l0b3JEcmF3
c1Jvb3RMYXllcigpKSB7CiAgICAgICAgIHBhaW50RGVmYXVsdEJhY2tncm91bmQoZHN0UmVjdCwg
dmlld3BvcnRBY2Nlc3NvciwgZmFsc2UgLypmbHVzaCovKTsKIAotICAgICAgICBCYWNraW5nU3Rv
cmVHZW9tZXRyeSogY3VycmVudFN0YXRlID0gZnJvbnRTdGF0ZSgpOwotICAgICAgICBUaWxlTWFw
IGN1cnJlbnRNYXAgPSBjdXJyZW50U3RhdGUtPnRpbGVNYXAoKTsKLSAgICAgICAgZG91YmxlIGN1
cnJlbnRTY2FsZSA9IGN1cnJlbnRTdGF0ZS0+c2NhbGUoKTsKKyAgICAgICAgQmFja2luZ1N0b3Jl
R2VvbWV0cnkqIGdlb21ldHJ5ID0gZnJvbnRTdGF0ZSgpOworICAgICAgICBUaWxlTWFwIGN1cnJl
bnRNYXAgPSBnZW9tZXRyeS0+dGlsZU1hcCgpOworICAgICAgICBkb3VibGUgY3VycmVudFNjYWxl
ID0gZ2VvbWV0cnktPnNjYWxlKCk7CiAKICAgICAgICAgY29uc3QgUGxhdGZvcm06OkludFJlY3Qg
dHJhbnNmb3JtZWRDb250ZW50c1JlY3QgPSBQbGF0Zm9ybTo6SW50UmVjdChQbGF0Zm9ybTo6SW50
UG9pbnQoMCwgMCksIG1fY2xpZW50LT50cmFuc2Zvcm1lZENvbnRlbnRzU2l6ZSgpKTsKIApAQCAt
MTMxOSw3ICsxMzE5LDcgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpibGl0VmlzaWJsZUNv
bnRlbnRzKGJvb2wgZm9yY2UpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIFBsYXRmb3Jt
OjpJbnRSZWN0UmVnaW9uIHRyYW5zZm9ybWVkU3JjUmVnaW9uID0gY2xpcHBlZFRyYW5zZm9ybWVk
U3JjUmVjdDsKLSAgICAgICAgICAgIFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIGJhY2tpbmdTdG9y
ZVJlZ2lvbiA9IGN1cnJlbnRTdGF0ZS0+YmFja2luZ1N0b3JlUmVjdCgpOworICAgICAgICAgICAg
UGxhdGZvcm06OkludFJlY3RSZWdpb24gYmFja2luZ1N0b3JlUmVnaW9uID0gZ2VvbWV0cnktPmJh
Y2tpbmdTdG9yZVJlY3QoKTsKICAgICAgICAgICAgIFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uIGNo
ZWNrZXJlZFJlZ2lvbgogICAgICAgICAgICAgICAgID0gUGxhdGZvcm06OkludFJlY3RSZWdpb246
OnN1YnRyYWN0UmVnaW9ucyh0cmFuc2Zvcm1lZFNyY1JlZ2lvbiwgYmFja2luZ1N0b3JlUmVnaW9u
KTsKIApAQCAtMTM0MSw3ICsxMzQxLDcgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpibGl0
VmlzaWJsZUNvbnRlbnRzKGJvb2wgZm9yY2UpCiAgICAgICAgIH0KIAogICAgICAgICAvLyBHZXQg
dGhlIGxpc3Qgb2YgdGlsZSByZWN0cyB0aGF0IG1ha2V1cCB0aGUgY29udGVudC4KLSAgICAgICAg
VGlsZVJlY3RMaXN0IHRpbGVSZWN0TGlzdCA9IG1hcEZyb21QaXhlbENvbnRlbnRzVG9UaWxlcyhj
bGlwcGVkVHJhbnNmb3JtZWRTcmNSZWN0LCBjdXJyZW50U3RhdGUpOworICAgICAgICBUaWxlUmVj
dExpc3QgdGlsZVJlY3RMaXN0ID0gbWFwRnJvbVBpeGVsQ29udGVudHNUb1RpbGVzKGNsaXBwZWRU
cmFuc2Zvcm1lZFNyY1JlY3QsIGdlb21ldHJ5KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB0aWxlUmVjdExpc3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIFRpbGVSZWN0IHRp
bGVSZWN0ID0gdGlsZVJlY3RMaXN0W2ldOwogICAgICAgICAgICAgVGlsZUluZGV4IGluZGV4ID0g
dGlsZVJlY3QuZmlyc3Q7CkBAIC0xMzY0LDcgKzEzNjQsNyBAQCB2b2lkIEJhY2tpbmdTdG9yZVBy
aXZhdGU6OmJsaXRWaXNpYmxlQ29udGVudHMoYm9vbCBmb3JjZSkKIAogICAgICAgICAgICAgVGls
ZUJ1ZmZlciogdGlsZUJ1ZmZlciA9IGN1cnJlbnRNYXAuZ2V0KGluZGV4KTsKIAotICAgICAgICAg
ICAgYm9vbCBpc1RpbGVDb3JyZXNwb25kaW5nVG9CdWZmZXIgPSBjdXJyZW50U3RhdGUtPmlzVGls
ZUNvcnJlc3BvbmRpbmdUb0J1ZmZlcihpbmRleCwgdGlsZUJ1ZmZlcik7CisgICAgICAgICAgICBi
b29sIGlzVGlsZUNvcnJlc3BvbmRpbmdUb0J1ZmZlciA9IGdlb21ldHJ5LT5pc1RpbGVDb3JyZXNw
b25kaW5nVG9CdWZmZXIoaW5kZXgsIHRpbGVCdWZmZXIpOwogICAgICAgICAgICAgYm9vbCByZW5k
ZXJlZCA9IHRpbGVCdWZmZXIgJiYgdGlsZUJ1ZmZlci0+aXNSZW5kZXJlZCh0aWxlUmVjdC5zZWNv
bmQsIGN1cnJlbnRTY2FsZSk7CiAgICAgICAgICAgICBib29sIHBhaW50Q2hlY2tlcmVkID0gIWlz
VGlsZUNvcnJlc3BvbmRpbmdUb0J1ZmZlciB8fCAhcmVuZGVyZWQ7CiAKQEAgLTEzOTUsNyArMTM5
NSw3IEBAIHZvaWQgQmFja2luZ1N0b3JlUHJpdmF0ZTo6YmxpdFZpc2libGVDb250ZW50cyhib29s
IGZvcmNlKQogICAgICAgICAgICAgICAgICAgICBpZiAoZGlydHlSZW5kZXJlZFJlY3QuaXNFbXB0
eSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAg
ICAgIC8vIEJsaXQgdGhlIHJlbmRlcmVkIHBhcnRzLgotICAgICAgICAgICAgICAgICAgICBibGl0
VGlsZVJlY3QodGlsZUJ1ZmZlciwgZGlydHlSZW5kZXJlZFJlY3QsIG9yaWdpbiwgdHJhbnNmb3Jt
YXRpb24sIGN1cnJlbnRTdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIGJsaXRUaWxlUmVjdCh0
aWxlQnVmZmVyLCBkaXJ0eVJlbmRlcmVkUmVjdCwgb3JpZ2luLCB0cmFuc2Zvcm1hdGlvbiwgZ2Vv
bWV0cnkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBibGl0dGVkVGlsZXMu
YXBwZW5kKHRpbGVCdWZmZXIpOwogICAgICAgICAgICAgfQpAQCAtMTQ4MywxMiArMTQ4MywxMiBA
QCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OmNvbXBvc2l0ZUNvbnRlbnRzKFdlYkNvcmU6Okxh
eWVyUmVuZGVyZXIqIGxheWVyUmVuZGVyZQogICAgIGlmIChtX3dlYlBhZ2UtPmQtPmNvbXBvc2l0
b3JEcmF3c1Jvb3RMYXllcigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBCYWNraW5nU3RvcmVH
ZW9tZXRyeSogY3VycmVudFN0YXRlID0gZnJvbnRTdGF0ZSgpOwotICAgIFRpbGVNYXAgY3VycmVu
dE1hcCA9IGN1cnJlbnRTdGF0ZS0+dGlsZU1hcCgpOworICAgIEJhY2tpbmdTdG9yZUdlb21ldHJ5
KiBnZW9tZXRyeSA9IGZyb250U3RhdGUoKTsKKyAgICBUaWxlTWFwIGN1cnJlbnRNYXAgPSBnZW9t
ZXRyeS0+dGlsZU1hcCgpOwogICAgIFZlY3RvcjxUaWxlQnVmZmVyKj4gY29tcG9zaXRlZFRpbGVz
OwogCiAgICAgUGxhdGZvcm06OkludFJlY3RSZWdpb24gdHJhbnNmb3JtZWRDb250ZW50c1JlZ2lv
biA9IHRyYW5zZm9ybWVkQ29udGVudHM7Ci0gICAgUGxhdGZvcm06OkludFJlY3RSZWdpb24gYmFj
a2luZ1N0b3JlUmVnaW9uID0gY3VycmVudFN0YXRlLT5iYWNraW5nU3RvcmVSZWN0KCk7CisgICAg
UGxhdGZvcm06OkludFJlY3RSZWdpb24gYmFja2luZ1N0b3JlUmVnaW9uID0gZ2VvbWV0cnktPmJh
Y2tpbmdTdG9yZVJlY3QoKTsKICAgICBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiBjaGVja2VyZWRS
ZWdpb24KICAgICAgICAgPSBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbjo6c3VidHJhY3RSZWdpb25z
KHRyYW5zZm9ybWVkQ29udGVudHNSZWdpb24sIGJhY2tpbmdTdG9yZVJlZ2lvbik7CiAKQEAgLTE0
OTgsMTQgKzE0OTgsMTQgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpjb21wb3NpdGVDb250
ZW50cyhXZWJDb3JlOjpMYXllclJlbmRlcmVyKiBsYXllclJlbmRlcmUKICAgICAgICAgbGF5ZXJS
ZW5kZXJlci0+ZHJhd0NoZWNrZXJib2FyZFBhdHRlcm4odHJhbnNmb3JtLCBtX3dlYlBhZ2UtPmQt
Pm1hcEZyb21UcmFuc2Zvcm1lZEZsb2F0UmVjdChXZWJDb3JlOjpJbnRSZWN0KGNoZWNrZXJlZFJl
Y3RzLmF0KGkpKSkpOwogCiAgICAgLy8gR2V0IHRoZSBsaXN0IG9mIHRpbGUgcmVjdHMgdGhhdCBt
YWtldXAgdGhlIGNvbnRlbnQuCi0gICAgVGlsZVJlY3RMaXN0IHRpbGVSZWN0TGlzdCA9IG1hcEZy
b21QaXhlbENvbnRlbnRzVG9UaWxlcyh0cmFuc2Zvcm1lZENvbnRlbnRzLCBjdXJyZW50U3RhdGUp
OworICAgIFRpbGVSZWN0TGlzdCB0aWxlUmVjdExpc3QgPSBtYXBGcm9tUGl4ZWxDb250ZW50c1Rv
VGlsZXModHJhbnNmb3JtZWRDb250ZW50cywgZ2VvbWV0cnkpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdGlsZVJlY3RMaXN0LnNpemUoKTsgKytpKSB7CiAgICAgICAgIFRpbGVSZWN0IHRp
bGVSZWN0ID0gdGlsZVJlY3RMaXN0W2ldOwogICAgICAgICBUaWxlSW5kZXggaW5kZXggPSB0aWxl
UmVjdC5maXJzdDsKICAgICAgICAgUGxhdGZvcm06OkludFJlY3QgZGlydHlSZWN0ID0gdGlsZVJl
Y3Quc2Vjb25kOwogICAgICAgICBUaWxlQnVmZmVyKiB0aWxlQnVmZmVyID0gY3VycmVudE1hcC5n
ZXQoaW5kZXgpOwogCi0gICAgICAgIGlmICghdGlsZUJ1ZmZlciB8fCAhY3VycmVudFN0YXRlLT5p
c1RpbGVDb3JyZXNwb25kaW5nVG9CdWZmZXIoaW5kZXgsIHRpbGVCdWZmZXIpKQorICAgICAgICBp
ZiAoIXRpbGVCdWZmZXIgfHwgIWdlb21ldHJ5LT5pc1RpbGVDb3JyZXNwb25kaW5nVG9CdWZmZXIo
aW5kZXgsIHRpbGVCdWZmZXIpKQogICAgICAgICAgICAgbGF5ZXJSZW5kZXJlci0+ZHJhd0NoZWNr
ZXJib2FyZFBhdHRlcm4odHJhbnNmb3JtLCBtX3dlYlBhZ2UtPmQtPm1hcEZyb21UcmFuc2Zvcm1l
ZEZsb2F0UmVjdChQbGF0Zm9ybTo6RmxvYXRSZWN0KGRpcnR5UmVjdCkpKTsKICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICBQbGF0Zm9ybTo6SW50UG9pbnQgdGlsZU9yaWdpbiA9IHRpbGVCdWZm
ZXItPmxhc3RSZW5kZXJPcmlnaW4oKTsKQEAgLTE2MzEsMTcgKzE2MzEsMTcgQEAgdm9pZCBCYWNr
aW5nU3RvcmVQcml2YXRlOjpyZXNldFJlbmRlclF1ZXVlKCkKIAogdm9pZCBCYWNraW5nU3RvcmVQ
cml2YXRlOjpyZXNldFRpbGVzKCkKIHsKLSAgICBCYWNraW5nU3RvcmVHZW9tZXRyeSogY3VycmVu
dFN0YXRlID0gZnJvbnRTdGF0ZSgpOworICAgIEJhY2tpbmdTdG9yZUdlb21ldHJ5KiBnZW9tZXRy
eSA9IGZyb250U3RhdGUoKTsKIAotICAgIG1fcmVuZGVyUXVldWUtPmNsZWFyKGN1cnJlbnRTdGF0
ZS0+YmFja2luZ1N0b3JlUmVjdCgpLCBSZW5kZXJRdWV1ZTo6Q2xlYXJBbnlKb2JzKTsKKyAgICBt
X3JlbmRlclF1ZXVlLT5jbGVhcihnZW9tZXRyeS0+YmFja2luZ1N0b3JlUmVjdCgpLCBSZW5kZXJR
dWV1ZTo6Q2xlYXJBbnlKb2JzKTsKIAogICAgIEJhY2tpbmdTdG9yZUdlb21ldHJ5KiBuZXdHZW9t
ZXRyeSA9IG5ldyBCYWNraW5nU3RvcmVHZW9tZXRyeTsKLSAgICBuZXdHZW9tZXRyeS0+c2V0U2Nh
bGUoY3VycmVudFN0YXRlLT5zY2FsZSgpKTsKLSAgICBuZXdHZW9tZXRyeS0+c2V0TnVtYmVyT2ZU
aWxlc1dpZGUoY3VycmVudFN0YXRlLT5udW1iZXJPZlRpbGVzV2lkZSgpKTsKLSAgICBuZXdHZW9t
ZXRyeS0+c2V0TnVtYmVyT2ZUaWxlc0hpZ2goY3VycmVudFN0YXRlLT5udW1iZXJPZlRpbGVzSGln
aCgpKTsKLSAgICBuZXdHZW9tZXRyeS0+c2V0QmFja2luZ1N0b3JlT2Zmc2V0KGN1cnJlbnRTdGF0
ZS0+YmFja2luZ1N0b3JlT2Zmc2V0KCkpOworICAgIG5ld0dlb21ldHJ5LT5zZXRTY2FsZShnZW9t
ZXRyeS0+c2NhbGUoKSk7CisgICAgbmV3R2VvbWV0cnktPnNldE51bWJlck9mVGlsZXNXaWRlKGdl
b21ldHJ5LT5udW1iZXJPZlRpbGVzV2lkZSgpKTsKKyAgICBuZXdHZW9tZXRyeS0+c2V0TnVtYmVy
T2ZUaWxlc0hpZ2goZ2VvbWV0cnktPm51bWJlck9mVGlsZXNIaWdoKCkpOworICAgIG5ld0dlb21l
dHJ5LT5zZXRCYWNraW5nU3RvcmVPZmZzZXQoZ2VvbWV0cnktPmJhY2tpbmdTdG9yZU9mZnNldCgp
KTsKIAotICAgIFRpbGVNYXAgY3VycmVudE1hcCA9IGN1cnJlbnRTdGF0ZS0+dGlsZU1hcCgpOwor
ICAgIFRpbGVNYXAgY3VycmVudE1hcCA9IGdlb21ldHJ5LT50aWxlTWFwKCk7CiAgICAgVGlsZU1h
cCBuZXdUaWxlTWFwOwogCiAgICAgVGlsZU1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY3VycmVu
dE1hcC5lbmQoKTsKQEAgLTE2NTcsMTUgKzE2NTcsMTUgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2
YXRlOjp1cGRhdGVUaWxlcyhib29sIHVwZGF0ZVZpc2libGUsIGJvb2wgaW1tZWRpYXRlKQogICAg
IGlmICghaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQmFja2luZ1N0b3JlR2Vv
bWV0cnkqIGN1cnJlbnRTdGF0ZSA9IGZyb250U3RhdGUoKTsKLSAgICBUaWxlTWFwIGN1cnJlbnRN
YXAgPSBjdXJyZW50U3RhdGUtPnRpbGVNYXAoKTsKKyAgICBCYWNraW5nU3RvcmVHZW9tZXRyeSog
Z2VvbWV0cnkgPSBmcm9udFN0YXRlKCk7CisgICAgVGlsZU1hcCBjdXJyZW50TWFwID0gZ2VvbWV0
cnktPnRpbGVNYXAoKTsKIAogICAgIFRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGN1cnJl
bnRNYXAuZW5kKCk7CiAgICAgZm9yIChUaWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGN1cnJl
bnRNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGJvb2wgaXNWaXNpYmxl
ID0gaXNUaWxlVmlzaWJsZShpdC0+a2V5LCBjdXJyZW50U3RhdGUpOworICAgICAgICBib29sIGlz
VmlzaWJsZSA9IGlzVGlsZVZpc2libGUoaXQtPmtleSwgZ2VvbWV0cnkpOwogICAgICAgICBpZiAo
IXVwZGF0ZVZpc2libGUgJiYgaXNWaXNpYmxlKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIHVwZGF0ZVRpbGUoY3VycmVudFN0YXRlLT5vcmlnaW5PZlRpbGUoaXQtPmtleSksIGltbWVk
aWF0ZSk7CisgICAgICAgIHVwZGF0ZVRpbGUoZ2VvbWV0cnktPm9yaWdpbk9mVGlsZShpdC0+a2V5
KSwgaW1tZWRpYXRlKTsKICAgICB9CiB9CiAKQEAgLTE2NzcsOCArMTY3Nyw4IEBAIHZvaWQgQmFj
a2luZ1N0b3JlUHJpdmF0ZTo6dXBkYXRlVGlsZXNGb3JTY3JvbGxPck5vdFJlbmRlcmVkUmVnaW9u
KGJvb2wgY2hlY2tMb2FkCiAgICAgLy8gcmVuZGVyIGpvYiwgYnV0IHRoZXkgd2VyZSBub3Qgdmlz
aWJsZSBhdCB0aGUgdGltZSwgdGhlbiB1cGRhdGUgdGhlbSBhbmQgaWYKICAgICAvLyB0aGV5IGFy
ZSBjdXJyZW50bHkgdmlzaWJsZSwgcmVzZXQgdGhlbS4KIAotICAgIEJhY2tpbmdTdG9yZUdlb21l
dHJ5KiBjdXJyZW50U3RhdGUgPSBmcm9udFN0YXRlKCk7Ci0gICAgVGlsZU1hcCBjdXJyZW50TWFw
ID0gY3VycmVudFN0YXRlLT50aWxlTWFwKCk7CisgICAgQmFja2luZ1N0b3JlR2VvbWV0cnkqIGdl
b21ldHJ5ID0gZnJvbnRTdGF0ZSgpOworICAgIFRpbGVNYXAgY3VycmVudE1hcCA9IGdlb21ldHJ5
LT50aWxlTWFwKCk7CiAKICAgICBib29sIGlzTG9hZGluZyA9IG1fY2xpZW50LT5sb2FkU3RhdGUo
KSA9PSBXZWJQYWdlUHJpdmF0ZTo6Q29tbWl0dGVkOwogICAgIGJvb2wgZm9yY2VWaXNpYmxlID0g
Y2hlY2tMb2FkaW5nICYmIGlzTG9hZGluZzsKQEAgLTE2ODcsMTEgKzE2ODcsMTEgQEAgdm9pZCBC
YWNraW5nU3RvcmVQcml2YXRlOjp1cGRhdGVUaWxlc0ZvclNjcm9sbE9yTm90UmVuZGVyZWRSZWdp
b24oYm9vbCBjaGVja0xvYWQKICAgICBmb3IgKFRpbGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
Y3VycmVudE1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgVGlsZUluZGV4
IGluZGV4ID0gaXQtPmtleTsKICAgICAgICAgVGlsZUJ1ZmZlciogdGlsZUJ1ZmZlciA9IGl0LT52
YWx1ZTsKLSAgICAgICAgYm9vbCBpc1Zpc2libGUgPSBpc1RpbGVWaXNpYmxlKGluZGV4LCBjdXJy
ZW50U3RhdGUpOwotICAgICAgICBQbGF0Zm9ybTo6SW50UG9pbnQgdGlsZU9yaWdpbiA9IGN1cnJl
bnRTdGF0ZS0+b3JpZ2luT2ZUaWxlKGluZGV4KTsKKyAgICAgICAgYm9vbCBpc1Zpc2libGUgPSBp
c1RpbGVWaXNpYmxlKGluZGV4LCBnZW9tZXRyeSk7CisgICAgICAgIFBsYXRmb3JtOjpJbnRQb2lu
dCB0aWxlT3JpZ2luID0gZ2VvbWV0cnktPm9yaWdpbk9mVGlsZShpbmRleCk7CiAgICAgICAgIC8v
IFRoZSByZWN0IGluIHRyYW5zZm9ybWVkIGNvbnRlbnRzIGNvb3JkaW5hdGVzLgogICAgICAgICBQ
bGF0Zm9ybTo6SW50UmVjdCByZWN0KHRpbGVPcmlnaW4sIHRpbGVTaXplKCkpOwotICAgICAgICBp
ZiAoY3VycmVudFN0YXRlLT5pc1RpbGVDb3JyZXNwb25kaW5nVG9CdWZmZXIoaW5kZXgsIHRpbGVC
dWZmZXIpCisgICAgICAgIGlmIChnZW9tZXRyeS0+aXNUaWxlQ29ycmVzcG9uZGluZ1RvQnVmZmVy
KGluZGV4LCB0aWxlQnVmZmVyKQogICAgICAgICAgICAgJiYgbV9yZW5kZXJRdWV1ZS0+cmVndWxh
clJlbmRlckpvYnNQcmV2aW91c2x5QXR0ZW1wdGVkQnV0Tm90UmVuZGVyZWQocmVjdCkpIHsKICAg
ICAgICAgICAgIC8vIElmIHRoZSByZW5kZXIgcXVldWUgcHJldmlvdXNseSB0cmllZCB0byByZW5k
ZXIgdGhpcyB0aWxlLCBidXQgdGhlCiAgICAgICAgICAgICAvLyB0aWxlIHdhc24ndCB2aXNpYmxl
IGF0IHRoZSB0aW1lIHdlIGNhbid0IHNpbXBseSByZXN0b3JlIHRoZSB0aWxlCkBAIC0xNzAxLDE1
ICsxNzAxLDggQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjp1cGRhdGVUaWxlc0ZvclNjcm9s
bE9yTm90UmVuZGVyZWRSZWdpb24oYm9vbCBjaGVja0xvYWQKICAgICAgICAgICAgIGlmIChpc1Zp
c2libGUpIHsKICAgICAgICAgICAgICAgICAvLyBJbnRlcnNlY3QgdGhlIHRpbGUgd2l0aCB0aGUg
bm90IHJlbmRlcmVkIHJlZ2lvbiB0byBnZXQgdGhlIGFyZWFzCiAgICAgICAgICAgICAgICAgLy8g
b2YgdGhlIHRpbGUgdGhhdCB3ZSBuZWVkIHRvIGNsZWFyLgotICAgICAgICAgICAgICAgIFBsYXRm
b3JtOjpJbnRSZWN0UmVnaW9uIHRpbGVOb3RSZW5kZXJlZFJlZ2lvbgotICAgICAgICAgICAgICAg
ICAgICA9IFBsYXRmb3JtOjpJbnRSZWN0UmVnaW9uOjppbnRlcnNlY3RSZWdpb25zKAotICAgICAg
ICAgICAgICAgICAgICAgICAgbV9yZW5kZXJRdWV1ZS0+cmVndWxhclJlbmRlckpvYnNOb3RSZW5k
ZXJlZFJlZ2lvbigpLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVjdCk7Ci0gICAgICAgICAg
ICAgICAgY2xlYXJBbmRVcGRhdGVUaWxlT2ZOb3RSZW5kZXJlZFJlZ2lvbihpbmRleCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbGVCdWZm
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aWxlTm90UmVuZGVyZWRSZWdpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RhdGUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKnVwZGF0ZSovKTsKKyAg
ICAgICAgICAgICAgICBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbiB0aWxlTm90UmVuZGVyZWRSZWdp
b24gPSBQbGF0Zm9ybTo6SW50UmVjdFJlZ2lvbjo6aW50ZXJzZWN0UmVnaW9ucyhtX3JlbmRlclF1
ZXVlLT5yZWd1bGFyUmVuZGVySm9ic05vdFJlbmRlcmVkUmVnaW9uKCksIHJlY3QpOworICAgICAg
ICAgICAgICAgIGNsZWFyQW5kVXBkYXRlVGlsZU9mTm90UmVuZGVyZWRSZWdpb24oaW5kZXgsIHRp
bGVCdWZmZXIsIHRpbGVOb3RSZW5kZXJlZFJlZ2lvbiwgZ2VvbWV0cnksIGZhbHNlIC8qdXBkYXRl
Ki8pOwogI2lmIERFQlVHX0JBQ0tJTkdTVE9SRQogICAgICAgICAgICAgICAgIFBsYXRmb3JtOjps
b2dBbHdheXMoUGxhdGZvcm06OkxvZ0xldmVsQ3JpdGljYWwsCiAgICAgICAgICAgICAgICAgICAg
ICJCYWNraW5nU3RvcmVQcml2YXRlOjp1cGRhdGVUaWxlc0ZvclNjcm9sbCBkaWQgY2xlYXIgdGls
ZSAlcyIsCkBAIC0xNzE4LDggKzE3MTEsOCBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OnVw
ZGF0ZVRpbGVzRm9yU2Nyb2xsT3JOb3RSZW5kZXJlZFJlZ2lvbihib29sIGNoZWNrTG9hZAogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgdXBkYXRlVGlsZSh0aWxlT3JpZ2luLCBmYWxzZSAvKmlt
bWVkaWF0ZSovKTsKICAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUKLSAgICAgICAgICAgICYm
IChmb3JjZVZpc2libGUgfHwgIXRpbGVCdWZmZXIgfHwgIXRpbGVCdWZmZXItPmlzUmVuZGVyZWQo
dGlsZVZpc2libGVDb250ZW50c1JlY3QoaW5kZXgsIGN1cnJlbnRTdGF0ZSksIGN1cnJlbnRTdGF0
ZS0+c2NhbGUoKSkpCi0gICAgICAgICAgICAmJiAhaXNDdXJyZW50VmlzaWJsZUpvYihpbmRleCwg
Y3VycmVudFN0YXRlKSkKKyAgICAgICAgICAgICYmIChmb3JjZVZpc2libGUgfHwgIXRpbGVCdWZm
ZXIgfHwgIXRpbGVCdWZmZXItPmlzUmVuZGVyZWQodGlsZVZpc2libGVDb250ZW50c1JlY3QoaW5k
ZXgsIGdlb21ldHJ5KSwgZ2VvbWV0cnktPnNjYWxlKCkpKQorICAgICAgICAgICAgJiYgIWlzQ3Vy
cmVudFZpc2libGVKb2IoaW5kZXgsIGdlb21ldHJ5KSkKICAgICAgICAgICAgIHVwZGF0ZVRpbGUo
dGlsZU9yaWdpbiwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CiAgICAgfQogfQpAQCAtMTgxNSwxMCAr
MTgwOCwxMCBAQCB2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OmFjdHVhbFZpc2libGVTaXplQ2hh
bmdlZChjb25zdCBQbGF0Zm9ybTo6SW50U2l6ZSYgc2l6ZQogCiB2b2lkIEJhY2tpbmdTdG9yZVBy
aXZhdGU6OmNyZWF0ZVN1cmZhY2VzKCkKIHsKLSAgICBCYWNraW5nU3RvcmVHZW9tZXRyeSogY3Vy
cmVudFN0YXRlID0gZnJvbnRTdGF0ZSgpOwotICAgIFRpbGVNYXAgY3VycmVudE1hcCA9IGN1cnJl
bnRTdGF0ZS0+dGlsZU1hcCgpOworICAgIEJhY2tpbmdTdG9yZUdlb21ldHJ5KiBnZW9tZXRyeSA9
IGZyb250U3RhdGUoKTsKKyAgICBUaWxlTWFwIGluaXRpYWxNYXAgPSBnZW9tZXRyeS0+dGlsZU1h
cCgpOwogCi0gICAgQVNTRVJUKGN1cnJlbnRNYXAuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQoaW5p
dGlhbE1hcC5pc0VtcHR5KCkpOwogCiAgICAgaWYgKG1fd2ViUGFnZS0+aXNWaXNpYmxlKCkpIHsK
ICAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgb25seSB0byBiZSBjYWxsZWQgYXMgcGFydCBvZiBz
ZXR0aW5nIHVwIGEgbmV3IHdlYiBwYWdlIGluc3RhbmNlIGFuZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>