<?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>131209</bug_id>
          
          <creation_ts>2014-04-03 20:55:39 -0700</creation_ts>
          <short_desc>Subpixel rendering: Make border images device pixel aware.</short_desc>
          <delta_ts>2014-04-10 11:41:00 -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>Layout and Rendering</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>
          <dependson>131144</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997454</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-04-03 20:55:39 -0700</bug_when>
    <thetext>size and position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997455</commentid>
    <comment_count>1</comment_count>
      <attachid>228576</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-04-03 21:05:12 -0700</bug_when>
    <thetext>Created attachment 228576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997462</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-04-03 21:15:32 -0700</bug_when>
    <thetext>won&apos;t compile. blocked by bug 131144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997600</commentid>
    <comment_count>3</comment_count>
      <attachid>228597</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-04-04 09:43:47 -0700</bug_when>
    <thetext>Created attachment 228597
Patch

EWS should be able to build this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998560</commentid>
    <comment_count>4</comment_count>
      <attachid>228597</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-08 07:51:04 -0700</bug_when>
    <thetext>Comment on attachment 228597
Patch

Clearing flags on attachment: 228597

Committed r166925: &lt;http://trac.webkit.org/changeset/166925&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998561</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-08 07:51:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999587</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-04-10 11:41:00 -0700</bug_when>
    <thetext>This caused Bug 131500.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228576</attachid>
            <date>2014-04-03 21:05:12 -0700</date>
            <delta_ts>2014-04-04 09:43:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>17405</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZWEwNzg1Li4wMTExNjQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDQt
MDMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBTdWJwaXhlbCBy
ZW5kZXJpbmc6IE1ha2UgYm9yZGVyIGltYWdlcyBkZXZpY2UgcGl4ZWwgYXdhcmUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyMDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbmFwIGJvcmRlci1pbWFn
ZSBzaXplIGFuZCBwb3NpdGlvbiB0byBkZXZpY2UgcGl4ZWxzLiBJdCB3b3JrcyBib3RoIG9uIGdl
bmVyYXRlZCBhbmQgYml0bWFwIGltYWdlcy4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9oaWRw
aS1ib3JkZXItaW1hZ2UtZ3JhZGllbnQtb24tc3VicGl4ZWxzLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvYm9yZGVycy9oaWRwaS1ib3JkZXItaW1hZ2UtZ3JhZGllbnQtb24t
c3VicGl4ZWxzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA0LTAyICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBNb3ZlIGJhY2tncm91
bmQgaW1hZ2VzIHRvIGRldmljZSBwaXhlbCBib3VuZGFyaWVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLWJvcmRlci1pbWFnZS1ncmFkaWVudC1vbi1zdWJwaXhl
bHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1ib3JkZXIt
aW1hZ2UtZ3JhZGllbnQtb24tc3VicGl4ZWxzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjU3NWRhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1ib3JkZXItaW1hZ2UtZ3JhZGllbnQtb24tc3VicGl4ZWxz
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCBib3JkZXIgaW1hZ2VzIHNpemVkIGFuZCBw
b3NpdGlvbmVkIHByb3Blcmx5IG9uIHN1YnBpeGVscy48L3RpdGxlPgorPHN0eWxlPgorICBkaXYg
eworICAgIGJvcmRlci13aWR0aDowcHggMHB4IDBweCAwLjVweDsKKyAgICBib3JkZXItY29sb3I6
IGJsYWNrOworICAgIGJvcmRlci1zdHlsZTogc29saWQ7CisgICAgcG9zaXRpb246IGZpeGVkOwor
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iY29udGFpbmVyIj48L3A+Cis8
c2NyaXB0PgorICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRh
aW5lciIpOworICB3PTU7IGg9NTsKKyAgZm9yIChpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICBi
ID0gMDsKKyAgICBmb3IgKGogPSAwOyBqIDwgMTU7ICsraikgeworICAgICAgdmFyIGUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgIGUuc3R5bGUudG9wID0gKCh3ICsgMSkg
KiBpKSArICJweCI7CisgICAgICBlLnN0eWxlLmxlZnQgPSAoKHcgKyAxKSAqIGopICsgInB4IjsK
KyAgICAgIGUuc3R5bGUud2lkdGggPSB3ICsgInB4IjsKKyAgICAgIGUuc3R5bGUuaGVpZ2h0ID0g
aCArICJweCI7CisgICAgICBlLnN0eWxlLmJvcmRlckxlZnRXaWR0aCA9IGIgKyAicHgiOworICAg
ICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUpOworICAgICAgdys9MC4xOworICAgICAgaCs9MC4x
OworICAgICAgYis9MC41OworICAgIH0KKyAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlkcGktYm9yZGVyLWltYWdl
LWdyYWRpZW50LW9uLXN1YnBpeGVscy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hp
ZHBpLWJvcmRlci1pbWFnZS1ncmFkaWVudC1vbi1zdWJwaXhlbHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWJmYTcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLWJvcmRlci1pbWFnZS1ncmFkaWVudC1vbi1zdWJwaXhl
bHMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IGJvcmRlciBpbWFnZXMgc2l6ZWQgYW5kIHBvc2l0aW9u
ZWQgcHJvcGVybHkgb24gc3VicGl4ZWxzLjwvdGl0bGU+Cis8c3R5bGU+CisgIGRpdiB7CisgICAg
Ym9yZGVyLXdpZHRoOjBweCAwcHggMHB4IDAuNXB4OworICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAg
ICAtd2Via2l0LWJvcmRlci1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIGJs
YWNrKSAxIDEwMCU7CisgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJjb250
YWluZXIiPjwvcD4KKzxzY3JpcHQ+CisgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGFpbmVyIik7CisgIHc9NTsgaD01OworICBmb3IgKGkgPSAwOyBpIDwgMTU7
ICsraSkgeworICAgIGIgPSAwOworICAgIGZvciAoaiA9IDA7IGogPCAxNTsgKytqKSB7CisgICAg
ICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgZS5zdHlsZS50
b3AgPSAoKHcgKyAxKSAqIGkpICsgInB4IjsKKyAgICAgIGUuc3R5bGUubGVmdCA9ICgodyArIDEp
ICogaikgKyAicHgiOworICAgICAgZS5zdHlsZS53aWR0aCA9IHcgKyAicHgiOworICAgICAgZS5z
dHlsZS5oZWlnaHQgPSBoICsgInB4IjsKKyAgICAgIGUuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0g
YiArICJweCI7CisgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZSk7CisgICAgICB3Kz0wLjE7
CisgICAgICBoKz0wLjE7CisgICAgICBiKz0wLjU7CisgICAgfQorICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMjkwNGZkLi4zMjY5NGM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDQtMDMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IE1ha2UgYm9yZGVyIGltYWdlcyBk
ZXZpY2UgcGl4ZWwgYXdhcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzEyMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTbmFwIGJvcmRlci1pbWFnZSBzaXplIGFuZCBwb3NpdGlvbiB0byBkZXZpY2Ug
cGl4ZWxzLiBJdCB3b3JrcyBib3RoIG9uIGdlbmVyYXRlZCBhbmQgYml0bWFwIGltYWdlcy4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2JvcmRlcnMvaGlkcGktYm9yZGVyLWltYWdlLWdyYWRpZW50LW9u
LXN1YnBpeGVscy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Tmlu
ZVBpZWNlSW1hZ2UpOgorCiAyMDE0LTA0LTAyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBNb3ZlIGJhY2tncm91bmQgaW1hZ2Vz
IHRvIGRldmljZSBwaXhlbCBib3VuZGFyaWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggYjY1MTAzYi4uZmUzYjkzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CkBAIC0xMjQ1LDM5ICsxMjQ1LDQwIEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAKICAgICAv
LyBGSVhNRTogYm9yZGVyLWltYWdlIGlzIGJyb2tlbiB3aXRoIGZ1bGwgcGFnZSB6b29taW5nIHdo
ZW4gdGlsaW5nIGhhcyB0byBoYXBwZW4sIHNpbmNlIHRoZSB0aWxpbmcgZnVuY3Rpb24KICAgICAv
LyBkb2Vzbid0IGhhdmUgYW55IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHpvb20gdGhhdCBpcyBpbiBl
ZmZlY3Qgb24gdGhlIHRpbGUuCisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBkb2N1bWVu
dCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgTGF5b3V0UmVjdCByZWN0V2l0aE91dHNldHMg
PSByZWN0OwogICAgIHJlY3RXaXRoT3V0c2V0cy5leHBhbmQoc3R5bGUuaW1hZ2VPdXRzZXRzKG5p
bmVQaWVjZUltYWdlKSk7Ci0gICAgSW50UmVjdCBib3JkZXJJbWFnZVJlY3QgPSBwaXhlbFNuYXBw
ZWRJbnRSZWN0KHJlY3RXaXRoT3V0c2V0cyk7CisgICAgTGF5b3V0UmVjdCBib3JkZXJJbWFnZVJl
Y3QgPSBMYXlvdXRSZWN0KHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHJlY3RXaXRoT3V0c2V0cywg
ZGV2aWNlU2NhbGVGYWN0b3IpKTsKIAogICAgIExheW91dFNpemUgaW1hZ2VTaXplID0gY2FsY3Vs
YXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGJvcmRlckltYWdlUmVjdC5z
aXplKCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20pOwogCiAgICAgLy8gSWYgYm90aCB2YWx1
ZXMgYXJlIOKAmGF1dG/igJkgdGhlbiB0aGUgaW50cmluc2ljIHdpZHRoIGFuZC9vciBoZWlnaHQg
b2YgdGhlIGltYWdlIHNob3VsZCBiZSB1c2VkLCBpZiBhbnkuCiAgICAgc3R5bGVJbWFnZS0+c2V0
Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKHRoaXMsIGltYWdlU2l6ZSwgc3R5bGUuZWZmZWN0aXZl
Wm9vbSgpKTsKIAotICAgIGludCBpbWFnZVdpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7Ci0gICAg
aW50IGltYWdlSGVpZ2h0ID0gaW1hZ2VTaXplLmhlaWdodCgpOworICAgIExheW91dFVuaXQgaW1h
Z2VXaWR0aCA9IGltYWdlU2l6ZS53aWR0aCgpOworICAgIExheW91dFVuaXQgaW1hZ2VIZWlnaHQg
PSBpbWFnZVNpemUuaGVpZ2h0KCk7CiAgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9ICZ2aWV3
KCk7CiAKICAgICBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yID0gc3R5bGVJbWFnZS0+aW1hZ2VTY2Fs
ZUZhY3RvcigpOwotICAgIGludCB0b3BTbGljZSA9IHN0ZDo6bWluPGludD4oaW1hZ2VIZWlnaHQs
IHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkudG9wKCksIGltYWdl
SGVpZ2h0KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotICAgIGludCByaWdodFNsaWNlID0gc3RkOjpt
aW48aW50PihpbWFnZVdpZHRoLCB2YWx1ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNs
aWNlcygpLnJpZ2h0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7Ci0gICAgaW50
IGJvdHRvbVNsaWNlID0gc3RkOjptaW48aW50PihpbWFnZUhlaWdodCwgdmFsdWVGb3JMZW5ndGgo
bmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5ib3R0b20oKSwgaW1hZ2VIZWlnaHQpKSAqIGlt
YWdlU2NhbGVGYWN0b3I7Ci0gICAgaW50IGxlZnRTbGljZSA9IHN0ZDo6bWluPGludD4oaW1hZ2VX
aWR0aCwgdmFsdWVGb3JMZW5ndGgobmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5sZWZ0KCks
IGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7CisgICAgTGF5b3V0VW5pdCB0b3BTbGlj
ZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlSGVpZ2h0LCB2YWx1ZUZvckxlbmd0aChuaW5l
UGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLnRvcCgpLCBpbWFnZUhlaWdodCkpICogaW1hZ2VTY2Fs
ZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IHJpZ2h0U2xpY2UgPSBzdGQ6Om1pbjxMYXlvdXRVbml0
PihpbWFnZVdpZHRoLCB2YWx1ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygp
LnJpZ2h0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7CisgICAgTGF5b3V0VW5p
dCBib3R0b21TbGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlSGVpZ2h0LCB2YWx1ZUZv
ckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLmJvdHRvbSgpLCBpbWFnZUhlaWdo
dCkpICogaW1hZ2VTY2FsZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IGxlZnRTbGljZSA9IHN0ZDo6
bWluPExheW91dFVuaXQ+KGltYWdlV2lkdGgsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdl
LmltYWdlU2xpY2VzKCkubGVmdCgpLCBpbWFnZVdpZHRoKSkgKiBpbWFnZVNjYWxlRmFjdG9yOwog
CiAgICAgRU5pbmVQaWVjZUltYWdlUnVsZSBoUnVsZSA9IG5pbmVQaWVjZUltYWdlLmhvcml6b250
YWxSdWxlKCk7CiAgICAgRU5pbmVQaWVjZUltYWdlUnVsZSB2UnVsZSA9IG5pbmVQaWVjZUltYWdl
LnZlcnRpY2FsUnVsZSgpOwogCi0gICAgaW50IHRvcFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdl
U2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS50b3AoKSwgc3R5bGUuYm9yZGVyVG9w
V2lkdGgoKSwgdG9wU2xpY2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSwgcmVuZGVyVmlldyk7
Ci0gICAgaW50IHJpZ2h0V2lkdGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUlt
YWdlLmJvcmRlclNsaWNlcygpLnJpZ2h0KCksIHN0eWxlLmJvcmRlclJpZ2h0V2lkdGgoKSwgcmln
aHRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCksIHJlbmRlclZpZXcpOwotICAgIGludCBi
b3R0b21XaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVy
U2xpY2VzKCkuYm90dG9tKCksIHN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKCksIGJvdHRvbVNsaWNl
LCBib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCksIHJlbmRlclZpZXcpOwotICAgIGludCBsZWZ0V2lk
dGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygp
LmxlZnQoKSwgc3R5bGUuYm9yZGVyTGVmdFdpZHRoKCksIGxlZnRTbGljZSwgYm9yZGVySW1hZ2VS
ZWN0LndpZHRoKCksIHJlbmRlclZpZXcpOworICAgIExheW91dFVuaXQgdG9wV2lkdGggPSBjb21w
dXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLnRvcCgpLCBz
dHlsZS5ib3JkZXJUb3BXaWR0aCgpLCB0b3BTbGljZSwgYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgp
LCByZW5kZXJWaWV3KTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0V2lkdGggPSBjb21wdXRlQm9yZGVy
SW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLnJpZ2h0KCksIHN0eWxlLmJv
cmRlclJpZ2h0V2lkdGgoKSwgcmlnaHRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCksIHJl
bmRlclZpZXcpOworICAgIExheW91dFVuaXQgYm90dG9tV2lkdGggPSBjb21wdXRlQm9yZGVySW1h
Z2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmJvdHRvbSgpLCBzdHlsZS5ib3Jk
ZXJCb3R0b21XaWR0aCgpLCBib3R0b21TbGljZSwgYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgpLCBy
ZW5kZXJWaWV3KTsKKyAgICBMYXlvdXRVbml0IGxlZnRXaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFn
ZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkubGVmdCgpLCBzdHlsZS5ib3JkZXJM
ZWZ0V2lkdGgoKSwgbGVmdFNsaWNlLCBib3JkZXJJbWFnZVJlY3Qud2lkdGgoKSwgcmVuZGVyVmll
dyk7CiAgICAgCiAgICAgLy8gUmVkdWNlIHRoZSB3aWR0aHMgaWYgdGhleSdyZSB0b28gbGFyZ2Uu
CiAgICAgLy8gVGhlIHNwZWMgc2F5czogR2l2ZW4gTHdpZHRoIGFzIHRoZSB3aWR0aCBvZiB0aGUg
Ym9yZGVyIGltYWdlIGFyZWEsIExoZWlnaHQgYXMgaXRzIGhlaWdodCwgYW5kIFdzaWRlIGFzIHRo
ZSBib3JkZXIgaW1hZ2Ugd2lkdGgKICAgICAvLyBvZmZzZXQgZm9yIHRoZSBzaWRlLCBsZXQgZiA9
IG1pbihMd2lkdGgvKFdsZWZ0K1dyaWdodCksIExoZWlnaHQvKFd0b3ArV2JvdHRvbSkpLiBJZiBm
IDwgMSwgdGhlbiBhbGwgVyBhcmUgcmVkdWNlZCBieQogICAgIC8vIG11bHRpcGx5aW5nIHRoZW0g
YnkgZi4KLSAgICBpbnQgYm9yZGVyU2lkZVdpZHRoID0gc3RkOjptYXgoMSwgbGVmdFdpZHRoICsg
cmlnaHRXaWR0aCk7Ci0gICAgaW50IGJvcmRlclNpZGVIZWlnaHQgPSBzdGQ6Om1heCgxLCB0b3BX
aWR0aCArIGJvdHRvbVdpZHRoKTsKKyAgICBMYXlvdXRVbml0IGJvcmRlclNpZGVXaWR0aCA9IHN0
ZDo6bWF4PExheW91dFVuaXQ+KDEgLyBkZXZpY2VTY2FsZUZhY3RvciwgbGVmdFdpZHRoICsgcmln
aHRXaWR0aCk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJTaWRlSGVpZ2h0ID0gc3RkOjptYXg8TGF5
b3V0VW5pdD4oMSAvIGRldmljZVNjYWxlRmFjdG9yLCB0b3BXaWR0aCArIGJvdHRvbVdpZHRoKTsK
ICAgICBmbG9hdCBib3JkZXJTaWRlU2NhbGVGYWN0b3IgPSBzdGQ6Om1pbigoZmxvYXQpYm9yZGVy
SW1hZ2VSZWN0LndpZHRoKCkgLyBib3JkZXJTaWRlV2lkdGgsIChmbG9hdClib3JkZXJJbWFnZVJl
Y3QuaGVpZ2h0KCkgLyBib3JkZXJTaWRlSGVpZ2h0KTsKICAgICBpZiAoYm9yZGVyU2lkZVNjYWxl
RmFjdG9yIDwgMSkgewogICAgICAgICB0b3BXaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7
CkBAIC0xMzA2LDI5ICsxMzA3LDI5IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAgICAgZmxv
YXQgcmlnaHRTaWRlU2NhbGUgPSBkcmF3UmlnaHQgPyAoZmxvYXQpcmlnaHRXaWR0aCAvIHJpZ2h0
U2xpY2UgOiAxOwogICAgIGZsb2F0IHRvcFNpZGVTY2FsZSA9IGRyYXdUb3AgPyAoZmxvYXQpdG9w
V2lkdGggLyB0b3BTbGljZSA6IDE7CiAgICAgZmxvYXQgYm90dG9tU2lkZVNjYWxlID0gZHJhd0Jv
dHRvbSA/IChmbG9hdClib3R0b21XaWR0aCAvIGJvdHRvbVNsaWNlIDogMTsKLSAgICAKKworICAg
IGZsb2F0IHggPSBib3JkZXJJbWFnZVJlY3QubG9jYXRpb24oKS54KCk7CisgICAgZmxvYXQgeSA9
IGJvcmRlckltYWdlUmVjdC5sb2NhdGlvbigpLnkoKTsKICAgICBpZiAoZHJhd0xlZnQpIHsKICAg
ICAgICAgLy8gUGFpbnQgdGhlIHRvcCBhbmQgYm90dG9tIGxlZnQgY29ybmVycy4KIAogICAgICAg
ICAvLyBUaGUgdG9wIGxlZnQgY29ybmVyIHJlY3QgaXMgKHR4LCB0eSwgbGVmdFdpZHRoLCB0b3BX
aWR0aCkKICAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBp
cyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzICgwLCAwLCBsZWZ0U2xpY2UsIHRvcFNs
aWNlKQogICAgICAgICBpZiAoZHJhd1RvcCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+
ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBJbnRSZWN0KGJvcmRlckltYWdlUmVj
dC5sb2NhdGlvbigpLCBJbnRTaXplKGxlZnRXaWR0aCwgdG9wV2lkdGgpKSwKLSAgICAgICAgICAg
ICAgICBMYXlvdXRSZWN0KDAsIDAsIGxlZnRTbGljZSwgdG9wU2xpY2UpLCBvcCwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3
SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHgs
IHksIGxlZnRXaWR0aCwgdG9wV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwKKyAgICAgICAgICAg
ICAgICBwaXhlbFNuYXBwZWRGb3JQYWludGluZygwLCAwLCBsZWZ0U2xpY2UsIHRvcFNsaWNlLCBk
ZXZpY2VTY2FsZUZhY3RvciksIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAK
ICAgICAgICAgLy8gVGhlIGJvdHRvbSBsZWZ0IGNvcm5lciByZWN0IGlzICh0eCwgdHkgKyBoIC0g
Ym90dG9tV2lkdGgsIGxlZnRXaWR0aCwgYm90dG9tV2lkdGgpCiAgICAgICAgIC8vIFRoZSByZWN0
IHRvIHVzZSBmcm9tIHdpdGhpbiB0aGUgaW1hZ2UgaXMgKDAsIGltYWdlSGVpZ2h0IC0gYm90dG9t
U2xpY2UsIGxlZnRTbGljZSwgYm90b21TbGljZSkKICAgICAgICAgaWYgKGRyYXdCb3R0b20pCi0g
ICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JT
cGFjZSwgSW50UmVjdChib3JkZXJJbWFnZVJlY3QueCgpLCBib3JkZXJJbWFnZVJlY3QubWF4WSgp
IC0gYm90dG9tV2lkdGgsIGxlZnRXaWR0aCwgYm90dG9tV2lkdGgpLAotICAgICAgICAgICAgICAg
IExheW91dFJlY3QoMCwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgbGVmdFNsaWNlLCBib3R0
b21TbGljZSksIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CisgICAgICAgICAg
ICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgcGl4
ZWxTbmFwcGVkRm9yUGFpbnRpbmcoeCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdp
ZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCisgICAgICAg
ICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoMCwgaW1hZ2VIZWlnaHQgLSBib3R0b21T
bGljZSwgbGVmdFNsaWNlLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBvcCwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogCiAgICAgICAgIC8vIFBhaW50IHRoZSBsZWZ0
IGVkZ2UuCiAgICAgICAgIC8vIEhhdmUgdG8gc2NhbGUgYW5kIHRpbGUgaW50byB0aGUgYm9yZGVy
IHJlY3QuCiAgICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQotICAgICAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgSW50UmVj
dChib3JkZXJJbWFnZVJlY3QueCgpLCBib3JkZXJJbWFnZVJlY3QueSgpICsgdG9wV2lkdGgsIGxl
ZnRXaWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVz
dGluYXRpb25IZWlnaHQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJbnRSZWN0KDAsIHRvcFNsaWNlLCBsZWZ0U2xpY2UsIHNvdXJjZUhlaWdodCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0U2l6ZShsZWZ0U2lk
ZVNjYWxlLCBsZWZ0U2lkZVNjYWxlKSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVS
dWxlKXZSdWxlLCBvcCk7CisgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZElt
YWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4LCB5
ICsgdG9wV2lkdGgsIGxlZnRXaWR0aCwgZGVzdGluYXRpb25IZWlnaHQsIGRldmljZVNjYWxlRmFj
dG9yKSwKKyAgICAgICAgICAgICAgICBwaXhlbFNuYXBwZWRGb3JQYWludGluZygwLCB0b3BTbGlj
ZSwgbGVmdFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXpl
KGxlZnRTaWRlU2NhbGUsIGxlZnRTaWRlU2NhbGUpLCBJbWFnZTo6U3RyZXRjaFRpbGUsIChJbWFn
ZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKICAgICB9CiAKICAgICBpZiAoZHJhd1JpZ2h0KSB7CkBA
IC0xMzM2LDM3ICsxMzM3LDMzIEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Tmlu
ZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAgICAgICAgIC8v
IFRoZSB0b3AgcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5LCBy
aWdodFdpZHRoLCB0b3BXaWR0aCkKICAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0
aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzIChpbWFnZVdp
ZHRoIC0gcmlnaHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UpCiAgICAgICAgIGlmIChk
cmF3VG9wKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0
KCksIGNvbG9yU3BhY2UsIEludFJlY3QoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lk
dGgsIGJvcmRlckltYWdlUmVjdC55KCksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoKSwKLSAgICAgICAg
ICAgICAgICBMYXlvdXRSZWN0KGltYWdlV2lkdGggLSByaWdodFNsaWNlLCAwLCByaWdodFNsaWNl
LCB0b3BTbGljZSksIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CisgICAgICAg
ICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwg
cGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lk
dGgsIHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCisgICAgICAg
ICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2Us
IDAsIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAKICAgICAgICAgLy8gVGhlIGJvdHRvbSByaWdodCBj
b3JuZXIgcmVjdCBpcyAodHggKyB3IC0gcmlnaHRXaWR0aCwgdHkgKyBoIC0gYm90dG9tV2lkdGgs
IHJpZ2h0V2lkdGgsIGJvdHRvbVdpZHRoKQogICAgICAgICAvLyBUaGUgcmVjdCB0byB1c2UgZnJv
bSB3aXRoaW4gdGhlIGltYWdlIGlzIChpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgaW1hZ2VIZWln
aHQgLSBib3R0b21TbGljZSwgcmlnaHRTbGljZSwgYm90dG9tU2xpY2UpCiAgICAgICAgIGlmIChk
cmF3Qm90dG9tKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2Uu
Z2V0KCksIGNvbG9yU3BhY2UsIEludFJlY3QoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0
V2lkdGgsIGJvcmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0b21XaWR0aCwgcmlnaHRXaWR0aCwg
Ym90dG9tV2lkdGgpLAotICAgICAgICAgICAgICAgIExheW91dFJlY3QoaW1hZ2VXaWR0aCAtIHJp
Z2h0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNs
aWNlKSwgb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIGdy
YXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBwaXhlbFNu
YXBwZWRGb3JQYWludGluZyhib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgYm9y
ZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLAorICAgICAgICAgICAgICAgIHJpZ2h0
V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksIHBpeGVsU25hcHBlZEZvclBh
aW50aW5nKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNl
LCByaWdodFNsaWNlLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLAorICAgICAgICAg
ICAgICAgIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAKICAgICAgICAgLy8g
UGFpbnQgdGhlIHJpZ2h0IGVkZ2UuCiAgICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQotICAg
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29s
b3JTcGFjZSwgSW50UmVjdChib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgYm9y
ZGVySW1hZ2VSZWN0LnkoKSArIHRvcFdpZHRoLCByaWdodFdpZHRoLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkhlaWdodCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3QoaW1hZ2VXaWR0aCAt
IHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCByaWdodFNsaWNlLCBzb3VyY2VIZWlnaHQpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdFNpemUocmlnaHRTaWRl
U2NhbGUsIHJpZ2h0U2lkZVNjYWxlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBv
cCk7CisgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdl
dCgpLCBjb2xvclNwYWNlLCBwaXhlbFNuYXBwZWRGb3JQYWludGluZyhib3JkZXJJbWFnZVJlY3Qu
bWF4WCgpIC0gcmlnaHRXaWR0aCwgeSArIHRvcFdpZHRoLCByaWdodFdpZHRoLCBkZXZpY2VTY2Fs
ZUZhY3RvciwKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkhlaWdodCksIHBpeGVsU25hcHBl
ZEZvclBhaW50aW5nKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCB0b3BTbGljZSwgcmlnaHRTbGlj
ZSwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksIEZsb2F0U2l6ZShyaWdodFNpZGVT
Y2FsZSwgcmlnaHRTaWRlU2NhbGUpLAorICAgICAgICAgICAgICAgIEltYWdlOjpTdHJldGNoVGls
ZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwgb3ApOwogICAgIH0KIAogICAgIC8vIFBhaW50IHRo
ZSB0b3AgZWRnZS4KICAgICBpZiAoZHJhd1RvcCAmJiBzb3VyY2VXaWR0aCA+IDApCi0gICAgICAg
IGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2Us
IEludFJlY3QoYm9yZGVySW1hZ2VSZWN0LngoKSArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0
LnkoKSwgZGVzdGluYXRpb25XaWR0aCwgdG9wV2lkdGgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEludFJlY3QobGVmdFNsaWNlLCAwLCBzb3VyY2VXaWR0aCwgdG9w
U2xpY2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0U2l6
ZSh0b3BTaWRlU2NhbGUsIHRvcFNpZGVTY2FsZSksIChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIElt
YWdlOjpTdHJldGNoVGlsZSwgb3ApOworICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxl
ZEltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4
ICsgbGVmdFdpZHRoLCB5LCBkZXN0aW5hdGlvbldpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVG
YWN0b3IpLAorICAgICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcobGVmdFNsaWNlLCAw
LCBzb3VyY2VXaWR0aCwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKHRv
cFNpZGVTY2FsZSwgdG9wU2lkZVNjYWxlKSwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6
OlN0cmV0Y2hUaWxlLCBvcCk7CiAKICAgICAvLyBQYWludCB0aGUgYm90dG9tIGVkZ2UuCiAgICAg
aWYgKGRyYXdCb3R0b20gJiYgc291cmNlV2lkdGggPiAwKQotICAgICAgICBncmFwaGljc0NvbnRl
eHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBJbnRSZWN0KGJvcmRl
ckltYWdlUmVjdC54KCkgKyBsZWZ0V2lkdGgsIGJvcmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0
b21XaWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5h
dGlvbldpZHRoLCBib3R0b21XaWR0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSW50UmVjdChsZWZ0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHNv
dXJjZVdpZHRoLCBib3R0b21TbGljZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRmxvYXRTaXplKGJvdHRvbVNpZGVTY2FsZSwgYm90dG9tU2lkZVNjYWxlKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW1hZ2U6OlRpbGVSdWxlKWhS
dWxlLCBJbWFnZTo6U3RyZXRjaFRpbGUsIG9wKTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgcGl4ZWxTbmFwcGVkRm9yUGFp
bnRpbmcoeCArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRo
LCBkZXN0aW5hdGlvbldpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAorICAg
ICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcobGVmdFNsaWNlLCBpbWFnZUhlaWdodCAt
IGJvdHRvbVNsaWNlLCBzb3VyY2VXaWR0aCwgYm90dG9tU2xpY2UsIGRldmljZVNjYWxlRmFjdG9y
KSwgRmxvYXRTaXplKGJvdHRvbVNpZGVTY2FsZSwgYm90dG9tU2lkZVNjYWxlKSwKKyAgICAgICAg
ICAgIChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIEltYWdlOjpTdHJldGNoVGlsZSwgb3ApOwogCiAg
ICAgLy8gUGFpbnQgdGhlIG1pZGRsZS4KICAgICBpZiAoZHJhd01pZGRsZSkgewpAQCAtMTM5MSw4
ICsxMzg4LDggQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFn
ZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwKICAgICAgICAgICAgIG1pZGRsZVNj
YWxlRmFjdG9yLnNldEhlaWdodChkZXN0aW5hdGlvbkhlaWdodCAvIHNvdXJjZUhlaWdodCk7CiAg
ICAgICAgIAogICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdl
dCgpLCBjb2xvclNwYWNlLAotICAgICAgICAgICAgSW50UmVjdChib3JkZXJJbWFnZVJlY3QueCgp
ICsgbGVmdFdpZHRoLCBib3JkZXJJbWFnZVJlY3QueSgpICsgdG9wV2lkdGgsIGRlc3RpbmF0aW9u
V2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0KSwKLSAgICAgICAgICAgIEludFJlY3QobGVmdFNsaWNl
LCB0b3BTbGljZSwgc291cmNlV2lkdGgsIHNvdXJjZUhlaWdodCksCisgICAgICAgICAgICBwaXhl
bFNuYXBwZWRGb3JQYWludGluZyh4ICsgbGVmdFdpZHRoLCB5ICsgdG9wV2lkdGgsIGRlc3RpbmF0
aW9uV2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCisgICAgICAg
ICAgICBwaXhlbFNuYXBwZWRGb3JQYWludGluZyhsZWZ0U2xpY2UsIHRvcFNsaWNlLCBzb3VyY2VX
aWR0aCwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCiAgICAgICAgICAgICBtaWRk
bGVTY2FsZUZhY3RvciwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxlUnVsZSl2
UnVsZSwgb3ApOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228597</attachid>
            <date>2014-04-04 09:43:47 -0700</date>
            <delta_ts>2014-04-08 07:51:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>17405</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZWEwNzg1Li4wMTExNjQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDQt
MDMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBTdWJwaXhlbCBy
ZW5kZXJpbmc6IE1ha2UgYm9yZGVyIGltYWdlcyBkZXZpY2UgcGl4ZWwgYXdhcmUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEyMDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbmFwIGJvcmRlci1pbWFn
ZSBzaXplIGFuZCBwb3NpdGlvbiB0byBkZXZpY2UgcGl4ZWxzLiBJdCB3b3JrcyBib3RoIG9uIGdl
bmVyYXRlZCBhbmQgYml0bWFwIGltYWdlcy4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9oaWRw
aS1ib3JkZXItaW1hZ2UtZ3JhZGllbnQtb24tc3VicGl4ZWxzLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvYm9yZGVycy9oaWRwaS1ib3JkZXItaW1hZ2UtZ3JhZGllbnQtb24t
c3VicGl4ZWxzLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA0LTAyICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBNb3ZlIGJhY2tncm91
bmQgaW1hZ2VzIHRvIGRldmljZSBwaXhlbCBib3VuZGFyaWVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLWJvcmRlci1pbWFnZS1ncmFkaWVudC1vbi1zdWJwaXhl
bHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1ib3JkZXIt
aW1hZ2UtZ3JhZGllbnQtb24tc3VicGl4ZWxzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjU3NWRhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1ib3JkZXItaW1hZ2UtZ3JhZGllbnQtb24tc3VicGl4ZWxz
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCBib3JkZXIgaW1hZ2VzIHNpemVkIGFuZCBw
b3NpdGlvbmVkIHByb3Blcmx5IG9uIHN1YnBpeGVscy48L3RpdGxlPgorPHN0eWxlPgorICBkaXYg
eworICAgIGJvcmRlci13aWR0aDowcHggMHB4IDBweCAwLjVweDsKKyAgICBib3JkZXItY29sb3I6
IGJsYWNrOworICAgIGJvcmRlci1zdHlsZTogc29saWQ7CisgICAgcG9zaXRpb246IGZpeGVkOwor
ICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iY29udGFpbmVyIj48L3A+Cis8
c2NyaXB0PgorICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRh
aW5lciIpOworICB3PTU7IGg9NTsKKyAgZm9yIChpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICBi
ID0gMDsKKyAgICBmb3IgKGogPSAwOyBqIDwgMTU7ICsraikgeworICAgICAgdmFyIGUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgIGUuc3R5bGUudG9wID0gKCh3ICsgMSkg
KiBpKSArICJweCI7CisgICAgICBlLnN0eWxlLmxlZnQgPSAoKHcgKyAxKSAqIGopICsgInB4IjsK
KyAgICAgIGUuc3R5bGUud2lkdGggPSB3ICsgInB4IjsKKyAgICAgIGUuc3R5bGUuaGVpZ2h0ID0g
aCArICJweCI7CisgICAgICBlLnN0eWxlLmJvcmRlckxlZnRXaWR0aCA9IGIgKyAicHgiOworICAg
ICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUpOworICAgICAgdys9MC4xOworICAgICAgaCs9MC4x
OworICAgICAgYis9MC41OworICAgIH0KKyAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlkcGktYm9yZGVyLWltYWdl
LWdyYWRpZW50LW9uLXN1YnBpeGVscy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hp
ZHBpLWJvcmRlci1pbWFnZS1ncmFkaWVudC1vbi1zdWJwaXhlbHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWJmYTcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLWJvcmRlci1pbWFnZS1ncmFkaWVudC1vbi1zdWJwaXhl
bHMuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IGJvcmRlciBpbWFnZXMgc2l6ZWQgYW5kIHBvc2l0aW9u
ZWQgcHJvcGVybHkgb24gc3VicGl4ZWxzLjwvdGl0bGU+Cis8c3R5bGU+CisgIGRpdiB7CisgICAg
Ym9yZGVyLXdpZHRoOjBweCAwcHggMHB4IDAuNXB4OworICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAg
ICAtd2Via2l0LWJvcmRlci1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYmxhY2ssIGJs
YWNrKSAxIDEwMCU7CisgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJjb250
YWluZXIiPjwvcD4KKzxzY3JpcHQ+CisgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGFpbmVyIik7CisgIHc9NTsgaD01OworICBmb3IgKGkgPSAwOyBpIDwgMTU7
ICsraSkgeworICAgIGIgPSAwOworICAgIGZvciAoaiA9IDA7IGogPCAxNTsgKytqKSB7CisgICAg
ICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgZS5zdHlsZS50
b3AgPSAoKHcgKyAxKSAqIGkpICsgInB4IjsKKyAgICAgIGUuc3R5bGUubGVmdCA9ICgodyArIDEp
ICogaikgKyAicHgiOworICAgICAgZS5zdHlsZS53aWR0aCA9IHcgKyAicHgiOworICAgICAgZS5z
dHlsZS5oZWlnaHQgPSBoICsgInB4IjsKKyAgICAgIGUuc3R5bGUuYm9yZGVyTGVmdFdpZHRoID0g
YiArICJweCI7CisgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZSk7CisgICAgICB3Kz0wLjE7
CisgICAgICBoKz0wLjE7CisgICAgICBiKz0wLjU7CisgICAgfQorICB9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhMjkwNGZkLi4zMjY5NGM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDQtMDMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IE1ha2UgYm9yZGVyIGltYWdlcyBk
ZXZpY2UgcGl4ZWwgYXdhcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzEyMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTbmFwIGJvcmRlci1pbWFnZSBzaXplIGFuZCBwb3NpdGlvbiB0byBkZXZpY2Ug
cGl4ZWxzLiBJdCB3b3JrcyBib3RoIG9uIGdlbmVyYXRlZCBhbmQgYml0bWFwIGltYWdlcy4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2JvcmRlcnMvaGlkcGktYm9yZGVyLWltYWdlLWdyYWRpZW50LW9u
LXN1YnBpeGVscy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Tmlu
ZVBpZWNlSW1hZ2UpOgorCiAyMDE0LTA0LTAyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBNb3ZlIGJhY2tncm91bmQgaW1hZ2Vz
IHRvIGRldmljZSBwaXhlbCBib3VuZGFyaWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggYjY1MTAzYi4uZmUzYjkzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
CkBAIC0xMjQ1LDM5ICsxMjQ1LDQwIEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAKICAgICAv
LyBGSVhNRTogYm9yZGVyLWltYWdlIGlzIGJyb2tlbiB3aXRoIGZ1bGwgcGFnZSB6b29taW5nIHdo
ZW4gdGlsaW5nIGhhcyB0byBoYXBwZW4sIHNpbmNlIHRoZSB0aWxpbmcgZnVuY3Rpb24KICAgICAv
LyBkb2Vzbid0IGhhdmUgYW55IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHpvb20gdGhhdCBpcyBpbiBl
ZmZlY3Qgb24gdGhlIHRpbGUuCisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBkb2N1bWVu
dCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgTGF5b3V0UmVjdCByZWN0V2l0aE91dHNldHMg
PSByZWN0OwogICAgIHJlY3RXaXRoT3V0c2V0cy5leHBhbmQoc3R5bGUuaW1hZ2VPdXRzZXRzKG5p
bmVQaWVjZUltYWdlKSk7Ci0gICAgSW50UmVjdCBib3JkZXJJbWFnZVJlY3QgPSBwaXhlbFNuYXBw
ZWRJbnRSZWN0KHJlY3RXaXRoT3V0c2V0cyk7CisgICAgTGF5b3V0UmVjdCBib3JkZXJJbWFnZVJl
Y3QgPSBMYXlvdXRSZWN0KHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHJlY3RXaXRoT3V0c2V0cywg
ZGV2aWNlU2NhbGVGYWN0b3IpKTsKIAogICAgIExheW91dFNpemUgaW1hZ2VTaXplID0gY2FsY3Vs
YXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGJvcmRlckltYWdlUmVjdC5z
aXplKCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20pOwogCiAgICAgLy8gSWYgYm90aCB2YWx1
ZXMgYXJlIOKAmGF1dG/igJkgdGhlbiB0aGUgaW50cmluc2ljIHdpZHRoIGFuZC9vciBoZWlnaHQg
b2YgdGhlIGltYWdlIHNob3VsZCBiZSB1c2VkLCBpZiBhbnkuCiAgICAgc3R5bGVJbWFnZS0+c2V0
Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKHRoaXMsIGltYWdlU2l6ZSwgc3R5bGUuZWZmZWN0aXZl
Wm9vbSgpKTsKIAotICAgIGludCBpbWFnZVdpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7Ci0gICAg
aW50IGltYWdlSGVpZ2h0ID0gaW1hZ2VTaXplLmhlaWdodCgpOworICAgIExheW91dFVuaXQgaW1h
Z2VXaWR0aCA9IGltYWdlU2l6ZS53aWR0aCgpOworICAgIExheW91dFVuaXQgaW1hZ2VIZWlnaHQg
PSBpbWFnZVNpemUuaGVpZ2h0KCk7CiAgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9ICZ2aWV3
KCk7CiAKICAgICBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yID0gc3R5bGVJbWFnZS0+aW1hZ2VTY2Fs
ZUZhY3RvcigpOwotICAgIGludCB0b3BTbGljZSA9IHN0ZDo6bWluPGludD4oaW1hZ2VIZWlnaHQs
IHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkudG9wKCksIGltYWdl
SGVpZ2h0KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotICAgIGludCByaWdodFNsaWNlID0gc3RkOjpt
aW48aW50PihpbWFnZVdpZHRoLCB2YWx1ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNs
aWNlcygpLnJpZ2h0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7Ci0gICAgaW50
IGJvdHRvbVNsaWNlID0gc3RkOjptaW48aW50PihpbWFnZUhlaWdodCwgdmFsdWVGb3JMZW5ndGgo
bmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5ib3R0b20oKSwgaW1hZ2VIZWlnaHQpKSAqIGlt
YWdlU2NhbGVGYWN0b3I7Ci0gICAgaW50IGxlZnRTbGljZSA9IHN0ZDo6bWluPGludD4oaW1hZ2VX
aWR0aCwgdmFsdWVGb3JMZW5ndGgobmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5sZWZ0KCks
IGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7CisgICAgTGF5b3V0VW5pdCB0b3BTbGlj
ZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlSGVpZ2h0LCB2YWx1ZUZvckxlbmd0aChuaW5l
UGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLnRvcCgpLCBpbWFnZUhlaWdodCkpICogaW1hZ2VTY2Fs
ZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IHJpZ2h0U2xpY2UgPSBzdGQ6Om1pbjxMYXlvdXRVbml0
PihpbWFnZVdpZHRoLCB2YWx1ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygp
LnJpZ2h0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7CisgICAgTGF5b3V0VW5p
dCBib3R0b21TbGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlSGVpZ2h0LCB2YWx1ZUZv
ckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLmJvdHRvbSgpLCBpbWFnZUhlaWdo
dCkpICogaW1hZ2VTY2FsZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IGxlZnRTbGljZSA9IHN0ZDo6
bWluPExheW91dFVuaXQ+KGltYWdlV2lkdGgsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdl
LmltYWdlU2xpY2VzKCkubGVmdCgpLCBpbWFnZVdpZHRoKSkgKiBpbWFnZVNjYWxlRmFjdG9yOwog
CiAgICAgRU5pbmVQaWVjZUltYWdlUnVsZSBoUnVsZSA9IG5pbmVQaWVjZUltYWdlLmhvcml6b250
YWxSdWxlKCk7CiAgICAgRU5pbmVQaWVjZUltYWdlUnVsZSB2UnVsZSA9IG5pbmVQaWVjZUltYWdl
LnZlcnRpY2FsUnVsZSgpOwogCi0gICAgaW50IHRvcFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdl
U2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS50b3AoKSwgc3R5bGUuYm9yZGVyVG9w
V2lkdGgoKSwgdG9wU2xpY2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSwgcmVuZGVyVmlldyk7
Ci0gICAgaW50IHJpZ2h0V2lkdGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUlt
YWdlLmJvcmRlclNsaWNlcygpLnJpZ2h0KCksIHN0eWxlLmJvcmRlclJpZ2h0V2lkdGgoKSwgcmln
aHRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCksIHJlbmRlclZpZXcpOwotICAgIGludCBi
b3R0b21XaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVy
U2xpY2VzKCkuYm90dG9tKCksIHN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKCksIGJvdHRvbVNsaWNl
LCBib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCksIHJlbmRlclZpZXcpOwotICAgIGludCBsZWZ0V2lk
dGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygp
LmxlZnQoKSwgc3R5bGUuYm9yZGVyTGVmdFdpZHRoKCksIGxlZnRTbGljZSwgYm9yZGVySW1hZ2VS
ZWN0LndpZHRoKCksIHJlbmRlclZpZXcpOworICAgIExheW91dFVuaXQgdG9wV2lkdGggPSBjb21w
dXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLnRvcCgpLCBz
dHlsZS5ib3JkZXJUb3BXaWR0aCgpLCB0b3BTbGljZSwgYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgp
LCByZW5kZXJWaWV3KTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0V2lkdGggPSBjb21wdXRlQm9yZGVy
SW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLnJpZ2h0KCksIHN0eWxlLmJv
cmRlclJpZ2h0V2lkdGgoKSwgcmlnaHRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCksIHJl
bmRlclZpZXcpOworICAgIExheW91dFVuaXQgYm90dG9tV2lkdGggPSBjb21wdXRlQm9yZGVySW1h
Z2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmJvdHRvbSgpLCBzdHlsZS5ib3Jk
ZXJCb3R0b21XaWR0aCgpLCBib3R0b21TbGljZSwgYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgpLCBy
ZW5kZXJWaWV3KTsKKyAgICBMYXlvdXRVbml0IGxlZnRXaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFn
ZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkubGVmdCgpLCBzdHlsZS5ib3JkZXJM
ZWZ0V2lkdGgoKSwgbGVmdFNsaWNlLCBib3JkZXJJbWFnZVJlY3Qud2lkdGgoKSwgcmVuZGVyVmll
dyk7CiAgICAgCiAgICAgLy8gUmVkdWNlIHRoZSB3aWR0aHMgaWYgdGhleSdyZSB0b28gbGFyZ2Uu
CiAgICAgLy8gVGhlIHNwZWMgc2F5czogR2l2ZW4gTHdpZHRoIGFzIHRoZSB3aWR0aCBvZiB0aGUg
Ym9yZGVyIGltYWdlIGFyZWEsIExoZWlnaHQgYXMgaXRzIGhlaWdodCwgYW5kIFdzaWRlIGFzIHRo
ZSBib3JkZXIgaW1hZ2Ugd2lkdGgKICAgICAvLyBvZmZzZXQgZm9yIHRoZSBzaWRlLCBsZXQgZiA9
IG1pbihMd2lkdGgvKFdsZWZ0K1dyaWdodCksIExoZWlnaHQvKFd0b3ArV2JvdHRvbSkpLiBJZiBm
IDwgMSwgdGhlbiBhbGwgVyBhcmUgcmVkdWNlZCBieQogICAgIC8vIG11bHRpcGx5aW5nIHRoZW0g
YnkgZi4KLSAgICBpbnQgYm9yZGVyU2lkZVdpZHRoID0gc3RkOjptYXgoMSwgbGVmdFdpZHRoICsg
cmlnaHRXaWR0aCk7Ci0gICAgaW50IGJvcmRlclNpZGVIZWlnaHQgPSBzdGQ6Om1heCgxLCB0b3BX
aWR0aCArIGJvdHRvbVdpZHRoKTsKKyAgICBMYXlvdXRVbml0IGJvcmRlclNpZGVXaWR0aCA9IHN0
ZDo6bWF4PExheW91dFVuaXQ+KDEgLyBkZXZpY2VTY2FsZUZhY3RvciwgbGVmdFdpZHRoICsgcmln
aHRXaWR0aCk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJTaWRlSGVpZ2h0ID0gc3RkOjptYXg8TGF5
b3V0VW5pdD4oMSAvIGRldmljZVNjYWxlRmFjdG9yLCB0b3BXaWR0aCArIGJvdHRvbVdpZHRoKTsK
ICAgICBmbG9hdCBib3JkZXJTaWRlU2NhbGVGYWN0b3IgPSBzdGQ6Om1pbigoZmxvYXQpYm9yZGVy
SW1hZ2VSZWN0LndpZHRoKCkgLyBib3JkZXJTaWRlV2lkdGgsIChmbG9hdClib3JkZXJJbWFnZVJl
Y3QuaGVpZ2h0KCkgLyBib3JkZXJTaWRlSGVpZ2h0KTsKICAgICBpZiAoYm9yZGVyU2lkZVNjYWxl
RmFjdG9yIDwgMSkgewogICAgICAgICB0b3BXaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7
CkBAIC0xMzA2LDI5ICsxMzA3LDI5IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50
TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAgICAgZmxv
YXQgcmlnaHRTaWRlU2NhbGUgPSBkcmF3UmlnaHQgPyAoZmxvYXQpcmlnaHRXaWR0aCAvIHJpZ2h0
U2xpY2UgOiAxOwogICAgIGZsb2F0IHRvcFNpZGVTY2FsZSA9IGRyYXdUb3AgPyAoZmxvYXQpdG9w
V2lkdGggLyB0b3BTbGljZSA6IDE7CiAgICAgZmxvYXQgYm90dG9tU2lkZVNjYWxlID0gZHJhd0Jv
dHRvbSA/IChmbG9hdClib3R0b21XaWR0aCAvIGJvdHRvbVNsaWNlIDogMTsKLSAgICAKKworICAg
IGZsb2F0IHggPSBib3JkZXJJbWFnZVJlY3QubG9jYXRpb24oKS54KCk7CisgICAgZmxvYXQgeSA9
IGJvcmRlckltYWdlUmVjdC5sb2NhdGlvbigpLnkoKTsKICAgICBpZiAoZHJhd0xlZnQpIHsKICAg
ICAgICAgLy8gUGFpbnQgdGhlIHRvcCBhbmQgYm90dG9tIGxlZnQgY29ybmVycy4KIAogICAgICAg
ICAvLyBUaGUgdG9wIGxlZnQgY29ybmVyIHJlY3QgaXMgKHR4LCB0eSwgbGVmdFdpZHRoLCB0b3BX
aWR0aCkKICAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBp
cyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzICgwLCAwLCBsZWZ0U2xpY2UsIHRvcFNs
aWNlKQogICAgICAgICBpZiAoZHJhd1RvcCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+
ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBJbnRSZWN0KGJvcmRlckltYWdlUmVj
dC5sb2NhdGlvbigpLCBJbnRTaXplKGxlZnRXaWR0aCwgdG9wV2lkdGgpKSwKLSAgICAgICAgICAg
ICAgICBMYXlvdXRSZWN0KDAsIDAsIGxlZnRTbGljZSwgdG9wU2xpY2UpLCBvcCwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uKCkpOworICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3
SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHBpeGVsU25hcHBlZEZvclBhaW50aW5nKHgs
IHksIGxlZnRXaWR0aCwgdG9wV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwKKyAgICAgICAgICAg
ICAgICBwaXhlbFNuYXBwZWRGb3JQYWludGluZygwLCAwLCBsZWZ0U2xpY2UsIHRvcFNsaWNlLCBk
ZXZpY2VTY2FsZUZhY3RvciksIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAK
ICAgICAgICAgLy8gVGhlIGJvdHRvbSBsZWZ0IGNvcm5lciByZWN0IGlzICh0eCwgdHkgKyBoIC0g
Ym90dG9tV2lkdGgsIGxlZnRXaWR0aCwgYm90dG9tV2lkdGgpCiAgICAgICAgIC8vIFRoZSByZWN0
IHRvIHVzZSBmcm9tIHdpdGhpbiB0aGUgaW1hZ2UgaXMgKDAsIGltYWdlSGVpZ2h0IC0gYm90dG9t
U2xpY2UsIGxlZnRTbGljZSwgYm90b21TbGljZSkKICAgICAgICAgaWYgKGRyYXdCb3R0b20pCi0g
ICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JT
cGFjZSwgSW50UmVjdChib3JkZXJJbWFnZVJlY3QueCgpLCBib3JkZXJJbWFnZVJlY3QubWF4WSgp
IC0gYm90dG9tV2lkdGgsIGxlZnRXaWR0aCwgYm90dG9tV2lkdGgpLAotICAgICAgICAgICAgICAg
IExheW91dFJlY3QoMCwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgbGVmdFNsaWNlLCBib3R0
b21TbGljZSksIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CisgICAgICAgICAg
ICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgcGl4
ZWxTbmFwcGVkRm9yUGFpbnRpbmcoeCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdp
ZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCisgICAgICAg
ICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoMCwgaW1hZ2VIZWlnaHQgLSBib3R0b21T
bGljZSwgbGVmdFNsaWNlLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBvcCwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKCkpOwogCiAgICAgICAgIC8vIFBhaW50IHRoZSBsZWZ0
IGVkZ2UuCiAgICAgICAgIC8vIEhhdmUgdG8gc2NhbGUgYW5kIHRpbGUgaW50byB0aGUgYm9yZGVy
IHJlY3QuCiAgICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQotICAgICAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgSW50UmVj
dChib3JkZXJJbWFnZVJlY3QueCgpLCBib3JkZXJJbWFnZVJlY3QueSgpICsgdG9wV2lkdGgsIGxl
ZnRXaWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVz
dGluYXRpb25IZWlnaHQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBJbnRSZWN0KDAsIHRvcFNsaWNlLCBsZWZ0U2xpY2UsIHNvdXJjZUhlaWdodCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0U2l6ZShsZWZ0U2lk
ZVNjYWxlLCBsZWZ0U2lkZVNjYWxlKSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVS
dWxlKXZSdWxlLCBvcCk7CisgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZElt
YWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4LCB5
ICsgdG9wV2lkdGgsIGxlZnRXaWR0aCwgZGVzdGluYXRpb25IZWlnaHQsIGRldmljZVNjYWxlRmFj
dG9yKSwKKyAgICAgICAgICAgICAgICBwaXhlbFNuYXBwZWRGb3JQYWludGluZygwLCB0b3BTbGlj
ZSwgbGVmdFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXpl
KGxlZnRTaWRlU2NhbGUsIGxlZnRTaWRlU2NhbGUpLCBJbWFnZTo6U3RyZXRjaFRpbGUsIChJbWFn
ZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKICAgICB9CiAKICAgICBpZiAoZHJhd1JpZ2h0KSB7CkBA
IC0xMzM2LDM3ICsxMzM3LDMzIEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Tmlu
ZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsCiAgICAgICAgIC8v
IFRoZSB0b3AgcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5LCBy
aWdodFdpZHRoLCB0b3BXaWR0aCkKICAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0
aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzIChpbWFnZVdp
ZHRoIC0gcmlnaHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UpCiAgICAgICAgIGlmIChk
cmF3VG9wKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0
KCksIGNvbG9yU3BhY2UsIEludFJlY3QoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lk
dGgsIGJvcmRlckltYWdlUmVjdC55KCksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoKSwKLSAgICAgICAg
ICAgICAgICBMYXlvdXRSZWN0KGltYWdlV2lkdGggLSByaWdodFNsaWNlLCAwLCByaWdodFNsaWNl
LCB0b3BTbGljZSksIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CisgICAgICAg
ICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwg
cGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lk
dGgsIHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCisgICAgICAg
ICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2Us
IDAsIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAKICAgICAgICAgLy8gVGhlIGJvdHRvbSByaWdodCBj
b3JuZXIgcmVjdCBpcyAodHggKyB3IC0gcmlnaHRXaWR0aCwgdHkgKyBoIC0gYm90dG9tV2lkdGgs
IHJpZ2h0V2lkdGgsIGJvdHRvbVdpZHRoKQogICAgICAgICAvLyBUaGUgcmVjdCB0byB1c2UgZnJv
bSB3aXRoaW4gdGhlIGltYWdlIGlzIChpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgaW1hZ2VIZWln
aHQgLSBib3R0b21TbGljZSwgcmlnaHRTbGljZSwgYm90dG9tU2xpY2UpCiAgICAgICAgIGlmIChk
cmF3Qm90dG9tKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2Uu
Z2V0KCksIGNvbG9yU3BhY2UsIEludFJlY3QoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0
V2lkdGgsIGJvcmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0b21XaWR0aCwgcmlnaHRXaWR0aCwg
Ym90dG9tV2lkdGgpLAotICAgICAgICAgICAgICAgIExheW91dFJlY3QoaW1hZ2VXaWR0aCAtIHJp
Z2h0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNs
aWNlKSwgb3AsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIGdy
YXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBwaXhlbFNu
YXBwZWRGb3JQYWludGluZyhib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgYm9y
ZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLAorICAgICAgICAgICAgICAgIHJpZ2h0
V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksIHBpeGVsU25hcHBlZEZvclBh
aW50aW5nKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNl
LCByaWdodFNsaWNlLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLAorICAgICAgICAg
ICAgICAgIG9wLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSk7CiAKICAgICAgICAgLy8g
UGFpbnQgdGhlIHJpZ2h0IGVkZ2UuCiAgICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQotICAg
ICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29s
b3JTcGFjZSwgSW50UmVjdChib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgYm9y
ZGVySW1hZ2VSZWN0LnkoKSArIHRvcFdpZHRoLCByaWdodFdpZHRoLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkhlaWdodCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3QoaW1hZ2VXaWR0aCAt
IHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCByaWdodFNsaWNlLCBzb3VyY2VIZWlnaHQpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdFNpemUocmlnaHRTaWRl
U2NhbGUsIHJpZ2h0U2lkZVNjYWxlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBv
cCk7CisgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdl
dCgpLCBjb2xvclNwYWNlLCBwaXhlbFNuYXBwZWRGb3JQYWludGluZyhib3JkZXJJbWFnZVJlY3Qu
bWF4WCgpIC0gcmlnaHRXaWR0aCwgeSArIHRvcFdpZHRoLCByaWdodFdpZHRoLCBkZXZpY2VTY2Fs
ZUZhY3RvciwKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbkhlaWdodCksIHBpeGVsU25hcHBl
ZEZvclBhaW50aW5nKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCB0b3BTbGljZSwgcmlnaHRTbGlj
ZSwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksIEZsb2F0U2l6ZShyaWdodFNpZGVT
Y2FsZSwgcmlnaHRTaWRlU2NhbGUpLAorICAgICAgICAgICAgICAgIEltYWdlOjpTdHJldGNoVGls
ZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwgb3ApOwogICAgIH0KIAogICAgIC8vIFBhaW50IHRo
ZSB0b3AgZWRnZS4KICAgICBpZiAoZHJhd1RvcCAmJiBzb3VyY2VXaWR0aCA+IDApCi0gICAgICAg
IGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2Us
IEludFJlY3QoYm9yZGVySW1hZ2VSZWN0LngoKSArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0
LnkoKSwgZGVzdGluYXRpb25XaWR0aCwgdG9wV2lkdGgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEludFJlY3QobGVmdFNsaWNlLCAwLCBzb3VyY2VXaWR0aCwgdG9w
U2xpY2UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0U2l6
ZSh0b3BTaWRlU2NhbGUsIHRvcFNpZGVTY2FsZSksIChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIElt
YWdlOjpTdHJldGNoVGlsZSwgb3ApOworICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxl
ZEltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4
ICsgbGVmdFdpZHRoLCB5LCBkZXN0aW5hdGlvbldpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVG
YWN0b3IpLAorICAgICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcobGVmdFNsaWNlLCAw
LCBzb3VyY2VXaWR0aCwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKHRv
cFNpZGVTY2FsZSwgdG9wU2lkZVNjYWxlKSwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6
OlN0cmV0Y2hUaWxlLCBvcCk7CiAKICAgICAvLyBQYWludCB0aGUgYm90dG9tIGVkZ2UuCiAgICAg
aWYgKGRyYXdCb3R0b20gJiYgc291cmNlV2lkdGggPiAwKQotICAgICAgICBncmFwaGljc0NvbnRl
eHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBJbnRSZWN0KGJvcmRl
ckltYWdlUmVjdC54KCkgKyBsZWZ0V2lkdGgsIGJvcmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0
b21XaWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5h
dGlvbldpZHRoLCBib3R0b21XaWR0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgSW50UmVjdChsZWZ0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHNv
dXJjZVdpZHRoLCBib3R0b21TbGljZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRmxvYXRTaXplKGJvdHRvbVNpZGVTY2FsZSwgYm90dG9tU2lkZVNjYWxlKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSW1hZ2U6OlRpbGVSdWxlKWhS
dWxlLCBJbWFnZTo6U3RyZXRjaFRpbGUsIG9wKTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgcGl4ZWxTbmFwcGVkRm9yUGFp
bnRpbmcoeCArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRo
LCBkZXN0aW5hdGlvbldpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAorICAg
ICAgICAgICAgcGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcobGVmdFNsaWNlLCBpbWFnZUhlaWdodCAt
IGJvdHRvbVNsaWNlLCBzb3VyY2VXaWR0aCwgYm90dG9tU2xpY2UsIGRldmljZVNjYWxlRmFjdG9y
KSwgRmxvYXRTaXplKGJvdHRvbVNpZGVTY2FsZSwgYm90dG9tU2lkZVNjYWxlKSwKKyAgICAgICAg
ICAgIChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIEltYWdlOjpTdHJldGNoVGlsZSwgb3ApOwogCiAg
ICAgLy8gUGFpbnQgdGhlIG1pZGRsZS4KICAgICBpZiAoZHJhd01pZGRsZSkgewpAQCAtMTM5MSw4
ICsxMzg4LDggQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFn
ZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwKICAgICAgICAgICAgIG1pZGRsZVNj
YWxlRmFjdG9yLnNldEhlaWdodChkZXN0aW5hdGlvbkhlaWdodCAvIHNvdXJjZUhlaWdodCk7CiAg
ICAgICAgIAogICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdl
dCgpLCBjb2xvclNwYWNlLAotICAgICAgICAgICAgSW50UmVjdChib3JkZXJJbWFnZVJlY3QueCgp
ICsgbGVmdFdpZHRoLCBib3JkZXJJbWFnZVJlY3QueSgpICsgdG9wV2lkdGgsIGRlc3RpbmF0aW9u
V2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0KSwKLSAgICAgICAgICAgIEludFJlY3QobGVmdFNsaWNl
LCB0b3BTbGljZSwgc291cmNlV2lkdGgsIHNvdXJjZUhlaWdodCksCisgICAgICAgICAgICBwaXhl
bFNuYXBwZWRGb3JQYWludGluZyh4ICsgbGVmdFdpZHRoLCB5ICsgdG9wV2lkdGgsIGRlc3RpbmF0
aW9uV2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCisgICAgICAg
ICAgICBwaXhlbFNuYXBwZWRGb3JQYWludGluZyhsZWZ0U2xpY2UsIHRvcFNsaWNlLCBzb3VyY2VX
aWR0aCwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCiAgICAgICAgICAgICBtaWRk
bGVTY2FsZUZhY3RvciwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxlUnVsZSl2
UnVsZSwgb3ApOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>