<?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>52701</bug_id>
          
          <creation_ts>2011-01-18 22:41:17 -0800</creation_ts>
          <short_desc>Refcount Images used in rendering code</short_desc>
          <delta_ts>2011-01-24 21:53:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>51845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>pkasting</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>336350</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-18 22:41:17 -0800</bug_when>
    <thetext>We can&apos;t always assume that Images returned by StyleImage::image(RenderObject*, const IntSize&amp;) will be kept alive by StyleImage or the CSSValue code. For example, for CSS gradients, we may need to create a new, uncached Image each time (see bug 51845).

For this reason we need to ref-count these Images which are passed back to rendering code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>336354</commentid>
    <comment_count>1</comment_count>
      <attachid>79392</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-18 23:04:26 -0800</bug_when>
    <thetext>Created attachment 79392
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339309</commentid>
    <comment_count>2</comment_count>
      <attachid>79392</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-24 15:37:17 -0800</bug_when>
    <thetext>Comment on attachment 79392
Patch

Looks sane.  It&apos;s always saddened me that on most platforms Image is double-refcounted, because the buffer behind the Image itself is often ref-counted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339311</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-24 15:38:16 -0800</bug_when>
    <thetext>ap was fixing style-ownership issues recently and might be curious to see this go by.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339483</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-24 21:53:18 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/76571</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79392</attachid>
            <date>2011-01-18 23:04:26 -0800</date>
            <delta_ts>2011-01-24 15:37:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52701-20110118230424.patch</filename>
            <type>text/plain</type>
            <size>25079</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMGYxZTIxOGIzNTlmM2U1MWIxYTI0YmU3YTdiNDVlMjcwNzIxNWFjLi4y
NmE0NTFkNThjNjliNWRmMzkzY2JhMmE2NjY2MTE0NTMwNDBiNzE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDkgQEAKKzIwMTEtMDEtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVmY291bnQgSW1hZ2VzIHVzZWQgaW4gcmVuZGVyaW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyNzAxCisKKyAgICAgICAgQ2hhbmdlIFN0
eWxlSW1hZ2U6OmltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKSBhbmQKKyAgICAg
ICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50
U2l6ZSYpIHRvCisgICAgICAgIHJldHVybiBQYXNzUmVmUHRyPEltYWdlPiwgYW5kIGFkanVzdCBv
dGhlciBjb2RlIGFjY29yZGluZ2x5LgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMg
dG8gcmV0dXJuIG9uZS10aW1lIGltYWdlcywgZm9yIGV4YW1wbGUgZm9yIENTUyBncmFkaWVudHMK
KyAgICAgICAgd2hvc2UgYXBwZWFyYW5jZSBtYXkgY2hhbmdlIGRlcGVuZGluZyBvbiBmYWN0b3Jz
IG90aGVyIHRoYW4gdGhlIHJlbmRlcmVyCisgICAgICAgIGFuZCB0aGUgZGVzdGluYXRpb24gc2l6
ZS4KKworICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NDYW52YXNWYWx1ZTo6aW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NDYW52YXNWYWx1ZS5o
OgorICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0dyYWRpZW50VmFsdWU6OmltYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGllbnRWYWx1
ZS5oOgorICAgICAgICAqIGNzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludE5pbmVQaWVjZUltYWdlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW1hZ2U6OnBhaW50UmVwbGFjZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnBh
aW50SW50b1JlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZVJlc291cmNlOjppbWFnZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6aW1hZ2UpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RNYXJrZXI6OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNo
ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNhY2hlZEltYWdlOjppbWFnZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUdlbmVyYXRlZEltYWdlOjppbWFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5
bGVJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nSW1hZ2U6OmltYWdlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNWR0ltYWdlOjpwYWludCk6CisKIDIwMTEtMDEtMTggTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZWZhY3RvcmluZzogRXZlbnRIYW5kbGVyOjpoYW5k
bGVUZXh0SW5wdXRFdmVudCBzaG91bGQgYWNjZXB0IGFuIGVudW0gaW5zdGVhZCBvZiBib29scy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuY3BwCmluZGV4IGUyOGRlZjkyNjQ0MmZmNmIz
MjE4NzI5MzExOGQ5YWMyMzBiNDFhOTAuLjdmNjFkMjU5ZjQ3Yzc5YmQ1Mjk3ZjRlOTVmYTJmZDE2
MWFhNDM0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmNwcApAQCAtODMsNyAr
ODMsNyBAQCBIVE1MQ2FudmFzRWxlbWVudCogQ1NTQ2FudmFzVmFsdWU6OmVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQogICAgIHJldHVybiBtX2VsZW1lbnQ7CiB9CiAKLUltYWdlKiBDU1NDYW52
YXNWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgLypz
aXplKi8pCitQYXNzUmVmUHRyPEltYWdlPiBDU1NDYW52YXNWYWx1ZTo6aW1hZ2UoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgLypzaXplKi8pCiB7CiAgICAgQVNTRVJUKG1f
Y2xpZW50cy5jb250YWlucyhyZW5kZXJlcikpOwogICAgIEhUTUxDYW52YXNFbGVtZW50KiBlbHQg
PSBlbGVtZW50KHJlbmRlcmVyLT5kb2N1bWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDYW52YXNWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1Zh
bHVlLmgKaW5kZXggNGNkNDI4MDg2NTNhZTRiOWFhMDViMWQyMmY2NDk2ZTMwNzlkMTA3OC4uMjdi
OGYyYjFmZTgxMjFiMWMzN2ZlZTg4YjU0NTc4NzBiNTk1NDg1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NhbnZhc1ZhbHVlLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBJbWFnZSogaW1hZ2UoUmVuZGVy
T2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4g
aW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpOwogICAgIHZpcnR1YWwgYm9vbCBp
c0ZpeGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIEludFNpemUg
Zml4ZWRTaXplKGNvbnN0IFJlbmRlck9iamVjdCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jh
ZGllbnRWYWx1ZS5jcHAKaW5kZXggZmRlNGE0ZTM0ZmE4M2JjZDU3NzljZjU4ODk0NTQ4ODRkNDg4
NmUwMS4uYTUyZDFlZjQ0OGQzMjI1NDk2ZjNmNmRmMWJhNTk4MDA0ZTAwMjU0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcApAQCAtNDEsNyArNDEsNyBAQCB1c2luZyBu
YW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUltYWdlKiBDU1NHcmFkaWVu
dFZhbHVlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXpl
KQorUGFzc1JlZlB0cjxJbWFnZT4gQ1NTR3JhZGllbnRWYWx1ZTo6aW1hZ2UoUmVuZGVyT2JqZWN0
KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAoIW1fY2xpZW50cy5j
b250YWlucyhyZW5kZXJlcikpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNTgsMTAgKzU4LDkgQEAg
SW1hZ2UqIENTU0dyYWRpZW50VmFsdWU6OmltYWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNv
bnN0IEludFNpemUmIHNpemUpCiAKICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhbiBpbWFnZS4K
ICAgICBSZWZQdHI8SW1hZ2U+IG5ld0ltYWdlID0gR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShjcmVh
dGVHcmFkaWVudChyZW5kZXJlciwgc2l6ZSksIHNpemUpOwotICAgIHJlc3VsdCA9IG5ld0ltYWdl
LmdldCgpOwotICAgIHB1dEltYWdlKHNpemUsIG5ld0ltYWdlLnJlbGVhc2UoKSk7CisgICAgcHV0
SW1hZ2Uoc2l6ZSwgbmV3SW1hZ2UpOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4g
bmV3SW1hZ2UucmVsZWFzZSgpOwogfQogCiAvLyBTaG91bGQgb25seSBldmVyIGJlIGNhbGxlZCBm
b3IgZGVwcmVjYXRlZCBncmFkaWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhZGllbnRWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUu
aAppbmRleCAwYjVjYTc3YmFlNDQ3NDUzNjg2MWY1MjE1ZmRjMmMxNDMwNTU3ZDU1Li40MTNkZDJl
ZmNmODY1OGM1OTY3ZDRiZjI2ZjJjMTIwZWViZDM3ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmFkaWVudFZhbHVlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IENTU0dyYWRpZW50Q29sb3JT
dG9wIHsKIAogY2xhc3MgQ1NTR3JhZGllbnRWYWx1ZSA6IHB1YmxpYyBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIEltYWdlKiBpbWFnZShSZW5kZXJPYmplY3Qq
LCBjb25zdCBJbnRTaXplJik7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdlPiBpbWFnZShS
ZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7CiAKICAgICB2b2lkIHNldEZpcnN0WChQYXNz
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWwpIHsgbV9maXJzdFggPSB2YWw7IH0KICAgICB2
b2lkIHNldEZpcnN0WShQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWwpIHsgbV9maXJz
dFkgPSB2YWw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5o
CmluZGV4IGMwNTNiZmU0N2VhMWU0OGZhNzg3Nzk3ZDIzOWJiODQzMjNlMjJmOGEuLmY1YzE3ZjU5
YmJjYjgzNzAzZGFmNWY5ZjNhZmNkNTNiZmVjNzg0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGFkZENsaWVudChSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJik7CiAgICAgdm9p
ZCByZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0Kik7Ci0gICAgdmlydHVhbCBJbWFnZSogaW1hZ2Uo
UmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SW1hZ2U+IGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKSA9IDA7CiAKICAg
ICBTdHlsZUdlbmVyYXRlZEltYWdlKiBnZW5lcmF0ZWRJbWFnZSgpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggZmIw
MjRmYzAyNmQwNjExYjQ0OWIxNjMwNzZjNGI5M2E4MGRmMGRkZC4uNTVhMGM5ZWM1MTdlNTY5NzYz
YTgxYjU5OTgzNTIyMDI3ODdiNmE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC02OTIsOSArNjkyLDkgQEAgdm9pZCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY28KICAgICAgICAgICAgIHBoYXNlICs9IGRlc3RSZWN0LmxvY2F0aW9uKCkg
LSBkZXN0T3JpZ2luOwogICAgICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3Ag
PSBvcCA9PSBDb21wb3NpdGVTb3VyY2VPdmVyID8gYmdMYXllci0+Y29tcG9zaXRlKCkgOiBvcDsK
ICAgICAgICAgICAgIFJlbmRlck9iamVjdCogY2xpZW50Rm9yQmFja2dyb3VuZEltYWdlID0gYmFj
a2dyb3VuZE9iamVjdCA/IGJhY2tncm91bmRPYmplY3QgOiB0aGlzOwotICAgICAgICAgICAgSW1h
Z2UqIGltYWdlID0gYmctPmltYWdlKGNsaWVudEZvckJhY2tncm91bmRJbWFnZSwgdGlsZVNpemUp
OwotICAgICAgICAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRM
b3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBiZ0xheWVyLCB0aWxlU2l6ZSk7Ci0gICAgICAgICAg
ICBjb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBk
ZXN0UmVjdCwgcGhhc2UsIHRpbGVTaXplLCBjb21wb3NpdGVPcCwgdXNlTG93UXVhbGl0eVNjYWxp
bmcpOworICAgICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJnLT5pbWFnZShjbGllbnRG
b3JCYWNrZ3JvdW5kSW1hZ2UsIHRpbGVTaXplKTsKKyAgICAgICAgICAgIGJvb2wgdXNlTG93UXVh
bGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0LCBpbWFnZS5nZXQo
KSwgYmdMYXllciwgdGlsZVNpemUpOworICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RpbGVkSW1h
Z2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgZGVzdFJlY3QsIHBoYXNlLCB0
aWxlU2l6ZSwgY29tcG9zaXRlT3AsIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKICAgICAgICAgfQog
ICAgIH0KIApAQCAtODk2LDcgKzg5Niw3IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
aW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAgICAg
Ym9vbCBkcmF3TWlkZGxlID0gKGltYWdlV2lkdGggLSBsZWZ0U2xpY2UgLSByaWdodFNsaWNlKSA+
IDAgJiYgKHcgLSBsZWZ0V2lkdGggLSByaWdodFdpZHRoKSA+IDAgJiYKICAgICAgICAgICAgICAg
ICAgICAgICAoaW1hZ2VIZWlnaHQgLSB0b3BTbGljZSAtIGJvdHRvbVNsaWNlKSA+IDAgJiYgKGgg
LSB0b3BXaWR0aCAtIGJvdHRvbVdpZHRoKSA+IDA7CiAKLSAgICBJbWFnZSogaW1hZ2UgPSBzdHls
ZUltYWdlLT5pbWFnZSh0aGlzLCBpbWFnZVNpemUpOworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2Ug
PSBzdHlsZUltYWdlLT5pbWFnZSh0aGlzLCBpbWFnZVNpemUpOwogICAgIENvbG9yU3BhY2UgY29s
b3JTcGFjZSA9IHN0eWxlLT5jb2xvclNwYWNlKCk7CiAKICAgICBpZiAoZHJhd0xlZnQpIHsKQEAg
LTkwNSwxOCArOTA1LDE4IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBp
ZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAgICAgICAgIC8vIFRo
ZSB0b3AgbGVmdCBjb3JuZXIgcmVjdCBpcyAodHgsIHR5LCBsZWZ0V2lkdGgsIHRvcFdpZHRoKQog
ICAgICAgICAvLyBUaGUgcmVjdCB0byB1c2UgZnJvbSB3aXRoaW4gdGhlIGltYWdlIGlzIG9idGFp
bmVkIGZyb20gb3VyIHNsaWNlLCBhbmQgaXMgKDAsIDAsIGxlZnRTbGljZSwgdG9wU2xpY2UpCiAg
ICAgICAgIGlmIChkcmF3VG9wKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1h
Z2UoaW1hZ2UsIGNvbG9yU3BhY2UsIEludFJlY3QodHgsIHR5LCBsZWZ0V2lkdGgsIHRvcFdpZHRo
KSwKKyAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBj
b2xvclNwYWNlLCBJbnRSZWN0KHR4LCB0eSwgbGVmdFdpZHRoLCB0b3BXaWR0aCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRSZWN0KDAsIDAsIGxlZnRTbGljZSwg
dG9wU2xpY2UpLCBvcCk7CiAKICAgICAgICAgLy8gVGhlIGJvdHRvbSBsZWZ0IGNvcm5lciByZWN0
IGlzICh0eCwgdHkgKyBoIC0gYm90dG9tV2lkdGgsIGxlZnRXaWR0aCwgYm90dG9tV2lkdGgpCiAg
ICAgICAgIC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhpbiB0aGUgaW1hZ2UgaXMgKDAsIGlt
YWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIGxlZnRTbGljZSwgYm90b21TbGljZSkKICAgICAgICAg
aWYgKGRyYXdCb3R0b20pCi0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShp
bWFnZSwgY29sb3JTcGFjZSwgSW50UmVjdCh0eCwgdHkgKyBoIC0gYm90dG9tV2lkdGgsIGxlZnRX
aWR0aCwgYm90dG9tV2lkdGgpLAorICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1h
Z2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIEludFJlY3QodHgsIHR5ICsgaCAtIGJvdHRvbVdp
ZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEludFJlY3QoMCwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgbGVmdFNs
aWNlLCBib3R0b21TbGljZSksIG9wKTsKIAogICAgICAgICAvLyBQYWludCB0aGUgbGVmdCBlZGdl
LgogICAgICAgICAvLyBIYXZlIHRvIHNjYWxlIGFuZCB0aWxlIGludG8gdGhlIGJvcmRlciByZWN0
LgotICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLCBjb2xvclNw
YWNlLCBJbnRSZWN0KHR4LCB0eSArIHRvcFdpZHRoLCBsZWZ0V2lkdGgsCisgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIEludFJl
Y3QodHgsIHR5ICsgdG9wV2lkdGgsIGxlZnRXaWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoIC0gdG9wV2lkdGggLSBib3R0b21XaWR0aCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50UmVjdCgwLCB0b3BTbGljZSwgbGVmdFNs
aWNlLCBpbWFnZUhlaWdodCAtIHRvcFNsaWNlIC0gYm90dG9tU2xpY2UpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlOjpTdHJldGNoVGlsZSwgKEltYWdlOjpU
aWxlUnVsZSl2UnVsZSwgb3ApOwpAQCAtOTI3LDE3ICs5MjcsMTcgQEAgYm9vbCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
Q29udGV4dCwKICAgICAgICAgLy8gVGhlIHRvcCByaWdodCBjb3JuZXIgcmVjdCBpcyAodHggKyB3
IC0gcmlnaHRXaWR0aCwgdHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoKQogICAgICAgICAvLyBUaGUg
cmVjdCB0byB1c2UgZnJvbSB3aXRoaW4gdGhlIGltYWdlIGlzIG9idGFpbmVkIGZyb20gb3VyIHNs
aWNlLCBhbmQgaXMgKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCAwLCByaWdodFNsaWNlLCB0b3BT
bGljZSkKICAgICAgICAgaWYgKGRyYXdUb3ApCi0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQt
PmRyYXdJbWFnZShpbWFnZSwgY29sb3JTcGFjZSwgSW50UmVjdCh0eCArIHcgLSByaWdodFdpZHRo
LCB0eSwgcmlnaHRXaWR0aCwgdG9wV2lkdGgpLAorICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIEludFJlY3QodHggKyB3IC0gcmln
aHRXaWR0aCwgdHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEludFJlY3QoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIDAsIHJp
Z2h0U2xpY2UsIHRvcFNsaWNlKSwgb3ApOwogCiAgICAgICAgIC8vIFRoZSBib3R0b20gcmlnaHQg
Y29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5ICsgaCAtIGJvdHRvbVdpZHRo
LCByaWdodFdpZHRoLCBib3R0b21XaWR0aCkKICAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZy
b20gd2l0aGluIHRoZSBpbWFnZSBpcyAoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIGltYWdlSGVp
Z2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNlKQogICAgICAgICBpZiAo
ZHJhd0JvdHRvbSkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdl
LCBjb2xvclNwYWNlLCBJbnRSZWN0KHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5ICsgaCAtIGJvdHRv
bVdpZHRoLCByaWdodFdpZHRoLCBib3R0b21XaWR0aCksCisgICAgICAgICAgICBncmFwaGljc0Nv
bnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgSW50UmVjdCh0eCArIHcg
LSByaWdodFdpZHRoLCB0eSArIGggLSBib3R0b21XaWR0aCwgcmlnaHRXaWR0aCwgYm90dG9tV2lk
dGgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50UmVjdChpbWFn
ZVdpZHRoIC0gcmlnaHRTbGljZSwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgcmlnaHRTbGlj
ZSwgYm90dG9tU2xpY2UpLCBvcCk7CiAKICAgICAgICAgLy8gUGFpbnQgdGhlIHJpZ2h0IGVkZ2Uu
Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGNvbG9yU3Bh
Y2UsIEludFJlY3QodHggKyB3IC0gcmlnaHRXaWR0aCwgdHkgKyB0b3BXaWR0aCwgcmlnaHRXaWR0
aCwKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwg
Y29sb3JTcGFjZSwgSW50UmVjdCh0eCArIHcgLSByaWdodFdpZHRoLCB0eSArIHRvcFdpZHRoLCBy
aWdodFdpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGggLSB0
b3BXaWR0aCAtIGJvdHRvbVdpZHRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBJbnRSZWN0KGltYWdlV2lkdGggLSByaWdodFNsaWNlLCB0b3BTbGljZSwgcmlnaHRT
bGljZSwgaW1hZ2VIZWlnaHQgLSB0b3BTbGljZSAtIGJvdHRvbVNsaWNlKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWFnZTo6U3RyZXRjaFRpbGUsIChJbWFnZTo6
VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKQEAgLTk0NSwyMCArOTQ1LDIwIEBAIGJvb2wgUmVuZGVyQm94
TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGlj
c0NvbnRleHQsCiAKICAgICAvLyBQYWludCB0aGUgdG9wIGVkZ2UuCiAgICAgaWYgKGRyYXdUb3Ap
Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UsIGNvbG9yU3Bh
Y2UsIEludFJlY3QodHggKyBsZWZ0V2lkdGgsIHR5LCB3IC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0
aCwgdG9wV2lkdGgpLAorICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGlt
YWdlLmdldCgpLCBjb2xvclNwYWNlLCBJbnRSZWN0KHR4ICsgbGVmdFdpZHRoLCB0eSwgdyAtIGxl
ZnRXaWR0aCAtIHJpZ2h0V2lkdGgsIHRvcFdpZHRoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbnRSZWN0KGxlZnRTbGljZSwgMCwgaW1hZ2VXaWR0aCAtIHJpZ2h0
U2xpY2UgLSBsZWZ0U2xpY2UsIHRvcFNsaWNlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJbWFnZTo6U3RyZXRjaFRpbGUs
IG9wKTsKIAogICAgIC8vIFBhaW50IHRoZSBib3R0b20gZWRnZS4KICAgICBpZiAoZHJhd0JvdHRv
bSkKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZSwgY29sb3JT
cGFjZSwgSW50UmVjdCh0eCArIGxlZnRXaWR0aCwgdHkgKyBoIC0gYm90dG9tV2lkdGgsCisgICAg
ICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3Bh
Y2UsIEludFJlY3QodHggKyBsZWZ0V2lkdGgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcgLSBsZWZ0V2lkdGggLSByaWdodFdp
ZHRoLCBib3R0b21XaWR0aCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSW50UmVjdChsZWZ0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIGltYWdlV2lk
dGggLSByaWdodFNsaWNlIC0gbGVmdFNsaWNlLCBib3R0b21TbGljZSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6
OlN0cmV0Y2hUaWxlLCBvcCk7CiAKICAgICAvLyBQYWludCB0aGUgbWlkZGxlLgogICAgIGlmIChk
cmF3TWlkZGxlKQotICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdl
LCBjb2xvclNwYWNlLCBJbnRSZWN0KHR4ICsgbGVmdFdpZHRoLCB0eSArIHRvcFdpZHRoLCB3IC0g
bGVmdFdpZHRoIC0gcmlnaHRXaWR0aCwKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGls
ZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgSW50UmVjdCh0eCArIGxlZnRXaWR0aCwg
dHkgKyB0b3BXaWR0aCwgdyAtIGxlZnRXaWR0aCAtIHJpZ2h0V2lkdGgsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaCAtIHRvcFdpZHRoIC0gYm90dG9tV2lkdGgpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3QobGVmdFNsaWNl
LCB0b3BTbGljZSwgaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UgLSBsZWZ0U2xpY2UsIGltYWdlSGVp
Z2h0IC0gdG9wU2xpY2UgLSBib3R0b21TbGljZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxlUnVsZSl2
UnVsZSwgb3ApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXgg
ZWYyMzA4YmRjMDBjM2NiY2EwOWE3ZGI5MDU0ZWQ3YmY5YjUwYzg5Yi4uY2VlZGZiODUwOTY1MTU1
N2MzNWZlMTVlNDdkZWY2YzY0MWMyZTU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwCkBAIC0yNjYsNyArMjY2LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6cGFpbnRS
ZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiAgICAgICAgICAg
ICBpbnQgdXNhYmxlV2lkdGggPSBjV2lkdGggLSAyOwogICAgICAgICAgICAgaW50IHVzYWJsZUhl
aWdodCA9IGNIZWlnaHQgLSAyOwogCi0gICAgICAgICAgICBJbWFnZSogaW1hZ2UgPSBtX2ltYWdl
UmVzb3VyY2UtPmltYWdlKCk7CisgICAgICAgICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9p
bWFnZVJlc291cmNlLT5pbWFnZSgpOwogCiAgICAgICAgICAgICBpZiAobV9pbWFnZVJlc291cmNl
LT5lcnJvck9jY3VycmVkKCkgJiYgIWltYWdlLT5pc051bGwoKSAmJiB1c2FibGVXaWR0aCA+PSBp
bWFnZS0+d2lkdGgoKSAmJiB1c2FibGVIZWlnaHQgPj0gaW1hZ2UtPmhlaWdodCgpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gQ2VudGVyIHRoZSBlcnJvciBpbWFnZSwgYWNjb3VudGluZyBmb3IgYm9y
ZGVyIGFuZCBwYWRkaW5nLgpAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnBh
aW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQogICAgICAg
ICAgICAgICAgICAgICBjZW50ZXJZID0gMDsKICAgICAgICAgICAgICAgICBpbWFnZVggPSBsZWZ0
Qm9yZGVyICsgbGVmdFBhZCArIGNlbnRlclggKyAxOwogICAgICAgICAgICAgICAgIGltYWdlWSA9
IHRvcEJvcmRlciArIHRvcFBhZCArIGNlbnRlclkgKyAxOwotICAgICAgICAgICAgICAgIGNvbnRl
eHQtPmRyYXdJbWFnZShpbWFnZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBJbnRQb2ludCh0eCAr
IGltYWdlWCwgdHkgKyBpbWFnZVkpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5kcmF3SW1h
Z2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgSW50UG9pbnQodHggKyBpbWFn
ZVgsIHR5ICsgaW1hZ2VZKSk7CiAgICAgICAgICAgICAgICAgZXJyb3JQaWN0dXJlRHJhd24gPSB0
cnVlOwogICAgICAgICAgICAgfQogCkBAIC0zMDIsNyArMzAyLDcgQEAgdm9pZCBSZW5kZXJJbWFn
ZTo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1faW1hZ2VSZXNvdXJjZS0+
aGFzSW1hZ2UoKSAmJiBjV2lkdGggPiAwICYmIGNIZWlnaHQgPiAwKSB7Ci0gICAgICAgIEltYWdl
KiBpbWcgPSBtX2ltYWdlUmVzb3VyY2UtPmltYWdlKGNXaWR0aCwgY0hlaWdodCk7CisgICAgICAg
IFJlZlB0cjxJbWFnZT4gaW1nID0gbV9pbWFnZVJlc291cmNlLT5pbWFnZShjV2lkdGgsIGNIZWln
aHQpOwogICAgICAgICBpZiAoIWltZyB8fCBpbWctPmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0
dXJuOwogCkBAIC0zNjgsMTQgKzM2OCwxNCBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludEludG9S
ZWN0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBp
ZiAoIW1faW1hZ2VSZXNvdXJjZS0+aGFzSW1hZ2UoKSB8fCBtX2ltYWdlUmVzb3VyY2UtPmVycm9y
T2NjdXJyZWQoKSB8fCByZWN0LndpZHRoKCkgPD0gMCB8fCByZWN0LmhlaWdodCgpIDw9IDApCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEltYWdlKiBpbWcgPSBtX2ltYWdlUmVzb3VyY2UtPmltYWdl
KHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgUmVmUHRyPEltYWdlPiBpbWcgPSBt
X2ltYWdlUmVzb3VyY2UtPmltYWdlKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAg
aWYgKCFpbWcgfHwgaW1nLT5pc051bGwoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSFRNTElt
YWdlRWxlbWVudCogaW1hZ2VFbHQgPSAobm9kZSgpICYmIG5vZGUoKS0+aGFzVGFnTmFtZShpbWdU
YWcpKSA/IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlKCkpIDogMDsKICAgICBD
b21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IGltYWdlRWx0ID8gaW1hZ2VFbHQt
PmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21wb3NpdGVTb3VyY2VPdmVyOwotICAgIGJvb2wgdXNl
TG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0LCBtX2lt
YWdlUmVzb3VyY2UtPmltYWdlKCksIDAsIHJlY3Quc2l6ZSgpKTsKLSAgICBjb250ZXh0LT5kcmF3
SW1hZ2UobV9pbWFnZVJlc291cmNlLT5pbWFnZShyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkp
LCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIHJlY3QsIGNvbXBvc2l0ZU9wZXJhdG9yLCB1c2VMb3dR
dWFsaXR5U2NhbGluZyk7CisgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBh
aW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoKS5nZXQoKSwg
MCwgcmVjdC5zaXplKCkpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX2ltYWdlUmVzb3VyY2Ut
PmltYWdlKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkuZ2V0KCksIHN0eWxlKCktPmNvbG9y
U3BhY2UoKSwgcmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsK
IH0KIAogaW50IFJlbmRlckltYWdlOjptaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmgKaW5kZXggMjM0
NjcxMjZkZTg1MjFjNmM4MTI3MDI4ODIwZmQ1MTEyZmRiMWIxNy4uOWI0NzA5ZjQ2YWFhODRiZGRk
MmUyZWYzZjQ4NTVhMTY1OGM5MzMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2VSZXNvdXJjZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDYWNo
ZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAi
SW1hZ2UuaCIKICNpbmNsdWRlICJTdHlsZUltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAKQEAgLTUzLDcgKzU0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNldEFuaW1h
dGlvbigpOwogCi0gICAgdmlydHVhbCBJbWFnZSogaW1hZ2UoaW50IC8qIHdpZHRoICovID0gMCwg
aW50IC8qIGhlaWdodCAqLyA9IDApIHsgcmV0dXJuIG1fY2FjaGVkSW1hZ2UgPyBtX2NhY2hlZElt
YWdlLT5pbWFnZSgpIDogbnVsbEltYWdlKCk7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1h
Z2U+IGltYWdlKGludCAvKiB3aWR0aCAqLyA9IDAsIGludCAvKiBoZWlnaHQgKi8gPSAwKSBjb25z
dCB7IHJldHVybiBtX2NhY2hlZEltYWdlID8gbV9jYWNoZWRJbWFnZS0+aW1hZ2UoKSA6IG51bGxJ
bWFnZSgpOyB9CiAgICAgdmlydHVhbCBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZEltYWdlICYmIG1fY2FjaGVkSW1hZ2UtPmVycm9yT2NjdXJyZWQoKTsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIHNldEltYWdlQ29udGFpbmVyU2l6ZShjb25zdCBJbnRTaXplJiBzaXpl
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZVJlc291cmNlU3R5bGVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklt
YWdlUmVzb3VyY2VTdHlsZUltYWdlLmgKaW5kZXggZDkxYWFhODE5OWUxZTAzYTIzZWIxOWJhZDU2
MDg2OTBkNWNiZjM1NC4uMjc4YTgyY2NjZDFlOTI5NmQ4ZTU0ODIzNmY3NzM3MzA5YThhMDU2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2VT
dHlsZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVz
b3VyY2VTdHlsZUltYWdlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzaHV0ZG93bigpOwogCiAgICAgdmlydHVhbCBib29sIGhhc0ltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSW1hZ2UqIGltYWdlKGludCB3aWR0aCA9IDAsIGlu
dCBoZWlnaHQgPSAwKSB7IHJldHVybiBtX3N0eWxlSW1hZ2UtPmltYWdlKG1fcmVuZGVyZXIsIElu
dFNpemUod2lkdGgsIGhlaWdodCkpOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdlPiBp
bWFnZShpbnQgd2lkdGggPSAwLCBpbnQgaGVpZ2h0ID0gMCkgY29uc3QgeyByZXR1cm4gbV9zdHls
ZUltYWdlLT5pbWFnZShtX3JlbmRlcmVyLCBJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsgfQogICAg
IHZpcnR1YWwgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZUltYWdl
LT5lcnJvck9jY3VycmVkKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRJbWFnZUNvbnRhaW5l
clNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QgeyBtX3N0eWxlSW1hZ2UtPnNldEltYWdl
Q29udGFpbmVyU2l6ZShzaXplKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuY3BwCmluZGV4IDcxYjFlYWVmMmMyMWI3MDkzZjc1NGFiNjUwZWNhMjkzZDYx
NGNlZTguLjQ1MGZiZmQzNDU2NmE5MzhkMjE1ZjA5ZjM0MzM5MzY5ZDg1OWMzNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTExMjksNyAr
MTEyOSw3IEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6cGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGludCB0eCwgaW50IHR5KQogICAgICAgICBpZiAoc3R5bGUoKS0+aGlnaGxpZ2h0KCkgIT0g
bnVsbEF0b20gJiYgIXBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCiAgICAg
ICAgICAgICBwYWludEN1c3RvbUhpZ2hsaWdodCh0eCwgdHksIHN0eWxlKCktPmhpZ2hsaWdodCgp
LCB0cnVlKTsKICNlbmRpZgotICAgICAgICBjb250ZXh0LT5kcmF3SW1hZ2UobV9pbWFnZS0+aW1h
Z2UodGhpcywgbWFya2VyLnNpemUoKSksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgbWFya2VyKTsK
KyAgICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1faW1hZ2UtPmltYWdlKHRoaXMsIG1hcmtlci5z
aXplKCkpLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIG1hcmtlcik7CiAgICAgICAgIGlm
IChzZWxlY3Rpb25TdGF0ZSgpICE9IFNlbGVjdGlvbk5vbmUpIHsKICAgICAgICAgICAgIEludFJl
Y3Qgc2VsUmVjdCA9IGxvY2FsU2VsZWN0aW9uUmVjdCgpOwogICAgICAgICAgICAgc2VsUmVjdC5t
b3ZlKGJveE9yaWdpbi54KCksIGJveE9yaWdpbi55KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDFkN2FiYTg0MThi
Y2Y0Njc3MTg5NjY2M2M0NDM0NmU2MmYxZjAzMzMuLjA1Y2IwZWFjNDBiZTdhNzJhMWJiOWI4ZjM0
Yzg4MTZjNWQ4MGNkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBTdHlsZUNhY2hl
ZEltYWdlOjpyZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4g
bV9pbWFnZS0+cmVtb3ZlQ2xpZW50KHJlbmRlcmVyKTsKIH0KIAotSW1hZ2UqIFN0eWxlQ2FjaGVk
SW1hZ2U6OmltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKSBjb25zdAorUGFzc1Jl
ZlB0cjxJbWFnZT4gU3R5bGVDYWNoZWRJbWFnZTo6aW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
SW50U2l6ZSYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW1hZ2UtPmltYWdlKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaAppbmRl
eCAzZDZlMWEyOGVhNzM3YTBiNTU5MWI3NDNjZGQ2ZTJiZmRhNjA0MWI0Li4yYmU2ZjRjMWUxMzBk
YWQ1YzM2MmRmOGMzMmU4ZjQ5MjdjZTMzNjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRJbWFnZUNvbnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYp
OwogICAgIHZpcnR1YWwgdm9pZCBhZGRDbGllbnQoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVh
bCB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKTsKLSAgICB2aXJ0dWFsIEltYWdlKiBp
bWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJikgY29uc3Q7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRTaXplJikgY29u
c3Q7CiAgICAgCiBwcml2YXRlOgogICAgIFN0eWxlQ2FjaGVkSW1hZ2UoQ2FjaGVkSW1hZ2UqIGlt
YWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2Vu
ZXJhdGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2Vu
ZXJhdGVkSW1hZ2UuY3BwCmluZGV4IDIzMjJmNWZkMzkyYWEwMDhmZmZjNjMzNmZlYzM2OWFiYjgz
OWFkMGEuLmZhMGFhZDdmNTVkMmE4NGViN2UwNjA3YTc1YWZhZjg4MmEzNzk4MmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTdHlsZUdlbmVyYXRlZEltYWdlOjpyZW1vdmVD
bGllbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICBtX2dlbmVyYXRvci0+cmVtb3ZlQ2xp
ZW50KHJlbmRlcmVyKTsKIH0KIAotSW1hZ2UqIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmltYWdlKFJl
bmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CitQYXNzUmVm
UHRyPEltYWdlPiBTdHlsZUdlbmVyYXRlZEltYWdlOjppbWFnZShSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIHJldHVybiBtX2dlbmVyYXRv
ci0+aW1hZ2UocmVuZGVyZXIsIHNpemUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKaW5kZXggN2JlMWY2YTliYjdjNmYz
YjcyMWIyOTcyNmY1MjM3MTIxNDdhZDY5OS4uOGU2MDc2YWNiZTczOGYwYjUyNzEwYzU2ODQ0YjM3
YmY4YmRmNWVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVHZW5lcmF0ZWRJbWFnZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW1hZ2VDb250YWluZXJTaXplKGNvbnN0IEludFNpemUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgYWRkQ2xpZW50KFJlbmRlck9iamVjdCopOwogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVDbGllbnQoUmVuZGVyT2JqZWN0Kik7Ci0gICAgdmlydHVhbCBJbWFnZSogaW1hZ2UoUmVuZGVy
T2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
bWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogICAgIAog
cHJpdmF0ZToKICAgICBTdHlsZUdlbmVyYXRlZEltYWdlKENTU0ltYWdlR2VuZXJhdG9yVmFsdWUq
IHZhbCwgYm9vbCBmaXhlZFNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlSW1hZ2UuaAppbmRleCBlYWQ4ZDRhY2E4OWYwNDNmZWZkNDBlMjY1YjA2NWZjZmJjM2Y3YjA2
Li4yYzg0NGY2YjE1MmQ5OTVkNDczMTVhYzExMWUxMGQyZWI5NWVhZTc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNk
ZWZpbmUgU3R5bGVJbWFnZV9oCiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIklt
YWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTMzLDcgKzM0LDYgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTVmFsdWU7Ci1jbGFzcyBJbWFnZTsKIGNsYXNzIFJlbmRl
ck9iamVjdDsKIAogdHlwZWRlZiB2b2lkKiBXcmFwcGVkSW1hZ2VQdHI7CkBAIC01OSw3ICs1OSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW1hZ2VDb250YWluZXJTaXplKGNvbnN0
IEludFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFkZENsaWVudChSZW5kZXJPYmplY3Qq
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudChSZW5kZXJPYmplY3QqKSA9IDA7
Ci0gICAgdmlydHVhbCBJbWFnZSogaW1hZ2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50U2l6ZSYp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJlbmRlck9i
amVjdCosIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBXcmFwcGVkSW1h
Z2VQdHIgZGF0YSgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhY2hlZEltYWdl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKaW5kZXggYjBjOWIwMTZlODRjOGI3YjJmNjkz
MzIxMTJhZTU3YzdlYTQxYjc0OS4uNjBjOTkzYzI5YmQ1NTM2YzZjOTRmOTQ2ZTE2ZDNmMDc4MzQw
ZDEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVu
ZGluZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVu
ZGluZ0ltYWdlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgU3R5bGVQZW5kaW5nSW1hZ2Vf
aAogI2RlZmluZSBTdHlsZVBlbmRpbmdJbWFnZV9oCiAKKyNpbmNsdWRlICJJbWFnZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlSW1hZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsNyArNTMs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEltYWdlQ29udGFpbmVyU2l6ZShjb25z
dCBJbnRTaXplJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFkZENsaWVudChSZW5kZXJPYmplY3Qq
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlck9iamVjdCopIHsgfQot
ICAgIHZpcnR1YWwgSW1hZ2UqIGltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKSBj
b25zdAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW1hZ2UuY3BwCmluZGV4IDBmNWE1NWU0ODgwOWY0OTI2ZjBhZjE0NDk5MWI0MmYx
N2E1MDc1OTEuLjgxYTVjZWFiMTM4MmU1Y2M2ZGQxZTViZTUwMzRmMmIzNzQzZDFkMWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgdm9pZCBSZW5kZXJTVkdJbWFnZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGludCwgaW50KQogICAgICAgICAgICAgUGFpbnRJbmZvIHNhdmVkSW5mbyhjaGlsZFBh
aW50SW5mbyk7CiAKICAgICAgICAgICAgIGlmIChTVkdSZW5kZXJTdXBwb3J0OjpwcmVwYXJlVG9S
ZW5kZXJTVkdDb250ZW50KHRoaXMsIGNoaWxkUGFpbnRJbmZvKSkgewotICAgICAgICAgICAgICAg
IEltYWdlKiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoKTsKKyAgICAgICAgICAgICAg
ICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9pbWFnZVJlc291cmNlLT5pbWFnZSgpOwogICAgICAg
ICAgICAgICAgIEZsb2F0UmVjdCBkZXN0UmVjdCA9IG1fb2JqZWN0Qm91bmRpbmdCb3g7CiAgICAg
ICAgICAgICAgICAgRmxvYXRSZWN0IHNyY1JlY3QoMCwgMCwgaW1hZ2UtPndpZHRoKCksIGltYWdl
LT5oZWlnaHQoKSk7CiAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIFJlbmRlclNWR0ltYWdlOjpw
YWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50LCBpbnQpCiAgICAgICAgICAgICAgICAgaWYg
KGltYWdlRWxlbWVudC0+cHJlc2VydmVBc3BlY3RSYXRpbygpLmFsaWduKCkgIT0gU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fTk9ORSkKICAgICAgICAgICAg
ICAgICAgICAgaW1hZ2VFbGVtZW50LT5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkudHJhbnNmb3JtUmVj
dChkZXN0UmVjdCwgc3JjUmVjdCk7CiAKLSAgICAgICAgICAgICAgICBjaGlsZFBhaW50SW5mby5j
b250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RSZWN0LCBz
cmNSZWN0KTsKKyAgICAgICAgICAgICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5kcmF3SW1h
Z2UoaW1hZ2UuZ2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIGRlc3RSZWN0LCBzcmNSZWN0KTsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6ZmluaXNoUmVu
ZGVyU1ZHQ29udGVudCh0aGlzLCBjaGlsZFBhaW50SW5mbywgc2F2ZWRJbmZvLmNvbnRleHQpOwo=
</data>
<flag name="review"
          id="70806"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>