<?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>179409</bug_id>
          
          <creation_ts>2017-11-07 21:10:45 -0800</creation_ts>
          <short_desc>[LayoutState cleanup] Make public data members private.</short_desc>
          <delta_ts>2017-11-08 07:02:16 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1369328</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-11-07 21:10:45 -0800</bug_when>
    <thetext>Interestingly after all these years they are still public.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369329</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-07 21:11:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/35406184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369331</commentid>
    <comment_count>2</comment_count>
      <attachid>326301</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-11-07 21:21:46 -0800</bug_when>
    <thetext>Created attachment 326301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369336</commentid>
    <comment_count>3</comment_count>
      <attachid>326303</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-11-07 21:47:02 -0800</bug_when>
    <thetext>Created attachment 326303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369340</commentid>
    <comment_count>4</comment_count>
      <attachid>326305</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-11-07 22:03:14 -0800</bug_when>
    <thetext>Created attachment 326305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369412</commentid>
    <comment_count>5</comment_count>
      <attachid>326305</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-08 07:02:14 -0800</bug_when>
    <thetext>Comment on attachment 326305
Patch

Clearing flags on attachment: 326305

Committed r224579: &lt;https://trac.webkit.org/changeset/224579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369413</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-08 07:02:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326301</attachid>
            <date>2017-11-07 21:21:46 -0800</date>
            <delta_ts>2017-11-07 21:38:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179409-20171107212145.patch</filename>
            <type>text/plain</type>
            <size>19365</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhMzlhN2VkMjM1NDVk
ZDM0YmMyZjNlNThlMzRhNTY0YWUzZmVkMi4uZGI1YTY2MGFkNTc4MjNhYTE0MzQ5YmQ3MWI2OTAx
NDhkZGM2MjM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTExLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFN0YXRlIGNsZWFu
dXBdIE1ha2UgcHVibGljIGRhdGEgbWVtYmVycyBwcml2YXRlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NDA5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTQwNjE4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBhZ2UvTGF5
b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjpsYXlvdXRE
ZWx0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjphZGRMYXlvdXRE
ZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YU1hdGNo
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Q29udGV4dDo6cHVzaExheW91dFN0YXRlRm9y
UGFnaW5hdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dFN0YXRlOjphZGRMYXlvdXREZWx0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRTdGF0ZTo6bGF5b3V0RGVsdGFNYXRjaGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
TGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpzZXRJc1BhZ2lu
YXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6c2V0UGFnZUxvZ2ljYWxIZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OnBhaW50T2Zmc2V0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpyZW5kZXJlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6Y2xpcFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0U3RhdGU6OmlzQ2xpcHBlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRTdGF0ZTo6bGF5b3V0RGVsdGEgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6b2Zmc2V0RnJvbUxvZ2lj
YWxUb3BPZkZpcnN0UGFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y2hpbGRCb3hJc1Vuc3BsaXR0YWJsZUZvckZyYWdtZW50YXRpb24gY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmFwcGx5QmVmb3JlQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjphcHBseUFmdGVyQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpw
YWdlTG9naWNhbFRvcEZvck9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnBhZ2VMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6cGFnZVJlbWFpbmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZz
ZXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
cklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lciBjb25zdCk6CisKIDIwMTctMTEtMDcg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRoZXJlIGlzIG5v
IHN1Y2ggdGhpbmcgYXMgYmxvY2sgZWxlbWVudCBjb250aW51YXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0xheW91dENvbnRleHQuY3BwCmluZGV4IGRmMTE4NWMxMzhlYzdjMjE2Nzc1ODQ1YjE3MTY3ZmNk
MGJlZGJjNGEuLjRmZTBlMWY4MDhiYzNhMWRlNzEzYWM0YjVhMzI2YTMzZGE0NTgwYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9MYXlvdXRDb250ZXh0LmNwcApAQCAtNTMyLDE5ICs1MzIsMTQgQEAgTGF5
b3V0U2l6ZSBMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YSgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X2xheW91dFN0YXRlKQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBtX2xheW91dFN0
YXRlLT5tX2xheW91dERlbHRhOworICAgIHJldHVybiBtX2xheW91dFN0YXRlLT5sYXlvdXREZWx0
YSgpOwogfQogICAgIAogdm9pZCBMYXlvdXRDb250ZXh0OjphZGRMYXlvdXREZWx0YShjb25zdCBM
YXlvdXRTaXplJiBkZWx0YSkKIHsKICAgICBpZiAoIW1fbGF5b3V0U3RhdGUpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhICs9IGRlbHRhOwot
I2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhWFNh
dHVyYXRlZCB8PSBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhLndpZHRoKCkgPT0gTGF5b3V0
VW5pdDo6bWF4KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YS53aWR0aCgpID09IExh
eW91dFVuaXQ6Om1pbigpOwotICAgIG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGFZU2F0dXJh
dGVkIHw9IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgPT0gTGF5b3V0VW5p
dDo6bWF4KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YS5oZWlnaHQoKSA9PSBMYXlv
dXRVbml0OjptaW4oKTsKLSNlbmRpZgorICAgIG1fbGF5b3V0U3RhdGUtPmFkZExheW91dERlbHRh
KGRlbHRhKTsKIH0KICAgICAKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC01NTIsNyArNTQ3LDcg
QEAgYm9vbCBMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YU1hdGNoZXMoY29uc3QgTGF5b3V0U2l6
ZSYgZGVsdGEpCiB7CiAgICAgaWYgKCFtX2xheW91dFN0YXRlKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmV0dXJuIChkZWx0YS53aWR0aCgpID09IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0
RGVsdGEud2lkdGgoKSB8fCBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhWFNhdHVyYXRlZCkg
JiYgKGRlbHRhLmhlaWdodCgpID09IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGEuaGVpZ2h0
KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQpOworICAgIHJldHVy
biBtX2xheW91dFN0YXRlLT5sYXlvdXREZWx0YU1hdGNoZXMoZGVsdGEpOwogfQogI2VuZGlmCiAg
ICAgCkBAIC01NjksOSArNTY0LDkgQEAgYm9vbCBMYXlvdXRDb250ZXh0OjpwdXNoTGF5b3V0U3Rh
dGVGb3JQYWdpbmF0aW9uSWZOZWVkZWQoUmVuZGVyQmxvY2tGbG93JiBsYXlvdXQKICAgICBpZiAo
bV9sYXlvdXRTdGF0ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fbGF5b3V0U3RhdGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPExheW91dFN0YXRlPihsYXlvdXRSb290KTsKLSAgICBtX2xheW91
dFN0YXRlLT5tX2lzUGFnaW5hdGVkID0gdHJ1ZTsKKyAgICBtX2xheW91dFN0YXRlLT5zZXRJc1Bh
Z2luYXRlZCgpOwogICAgIC8vIFRoaXMgaXMganVzdCBhIGZsYWcgZm9yIGtub3duIHBhZ2UgaGVp
Z2h0IChzZWUgUmVuZGVyQmxvY2tGbG93OjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0
Q2hhbmdlKS4KLSAgICBtX2xheW91dFN0YXRlLT5tX3BhZ2VMb2dpY2FsSGVpZ2h0ID0gMTsKKyAg
ICBtX2xheW91dFN0YXRlLT5zZXRQYWdlTG9naWNhbEhlaWdodCgxKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4
IGRkMGUxM2RkNjk2MDY1MGRlODJlYWFkYjJmNDQyNjU0NmU5MGY5OTUuLjM5YTdiZGIzMTlhZDky
YmUyN2VkNjM3MDUwMDQzMDQzYTU1OGEwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmNwcApAQCAtNjEsMTQgKzYxLDE0IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0
ZShSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIH0KIAogTGF5b3V0U3RhdGU6OkxheW91dFN0YXRl
KHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gYW5jZXN0b3IsIFJlbmRlckJveCYgcmVuZGVy
ZXIsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdo
dCwgYm9vbCBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQpCi0gICAgOiBtX2NsaXBwZWQoZmFsc2Up
CisgICAgOiBtX2FuY2VzdG9yKFdURk1vdmUoYW5jZXN0b3IpKQorICAgICwgbV9jbGlwcGVkKGZh
bHNlKQogICAgICwgbV9pc1BhZ2luYXRlZChmYWxzZSkKICAgICAsIG1fcGFnZUxvZ2ljYWxIZWln
aHRDaGFuZ2VkKGZhbHNlKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAsIG1fbGF5b3V0RGVs
dGFYU2F0dXJhdGVkKGZhbHNlKQogICAgICwgbV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQoZmFsc2Up
CiAjZW5kaWYKLSAgICAsIG1fYW5jZXN0b3IoV1RGTW92ZShhbmNlc3RvcikpCiAjaWZuZGVmIE5E
RUJVRwogICAgICwgbV9yZW5kZXJlcigmcmVuZGVyZXIpCiAjZW5kaWYKQEAgLTIxOCw2ICsyMTgs
MjAgQEAgdm9pZCBMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNoTGluZUdyaWQoUmVuZGVyQmxvY2tGbG93
JiByZW5kZXJlcikKICAgICBtX2xpbmVHcmlkT2Zmc2V0ID0gbV9sYXlvdXRPZmZzZXQ7CiB9CiAK
K3ZvaWQgTGF5b3V0U3RhdGU6OmFkZExheW91dERlbHRhKExheW91dFNpemUgZGVsdGEpCit7Cisg
ICAgbV9sYXlvdXREZWx0YSArPSBkZWx0YTsKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9s
YXlvdXREZWx0YVhTYXR1cmF0ZWQgfD0gbV9sYXlvdXREZWx0YS53aWR0aCgpID09IExheW91dFVu
aXQ6Om1heCgpIHx8IG1fbGF5b3V0RGVsdGEud2lkdGgoKSA9PSBMYXlvdXRVbml0OjptaW4oKTsK
KyAgICBtX2xheW91dERlbHRhWVNhdHVyYXRlZCB8PSBtX2xheW91dERlbHRhLmhlaWdodCgpID09
IExheW91dFVuaXQ6Om1heCgpIHx8IG1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgPT0gTGF5b3V0VW5p
dDo6bWluKCk7CisjZW5kaWYKK30KKworYm9vbCBMYXlvdXRTdGF0ZTo6bGF5b3V0RGVsdGFNYXRj
aGVzKExheW91dFNpemUgZGVsdGEpCit7CisgICAgcmV0dXJuIChkZWx0YS53aWR0aCgpID09IG1f
bGF5b3V0RGVsdGEud2lkdGgoKSB8fCBtX2xheW91dERlbHRhWFNhdHVyYXRlZCkgJiYgKGRlbHRh
LmhlaWdodCgpID09IG1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgfHwgbV9sYXlvdXREZWx0YVlTYXR1
cmF0ZWQpOworfQorCiBMYXlvdXRTdGF0ZU1haW50YWluZXI6OkxheW91dFN0YXRlTWFpbnRhaW5l
cihSZW5kZXJCb3gmIHJvb3QsIExheW91dFNpemUgb2Zmc2V0LCBib29sIGRpc2FibGVQYWludE9m
ZnNldENhY2hlLCBMYXlvdXRVbml0IHBhZ2VIZWlnaHQsIGJvb2wgcGFnZUhlaWdodENoYW5nZWQp
CiAgICAgOiBtX2xheW91dENvbnRleHQocm9vdC52aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29u
dGV4dCgpKQogICAgICwgbV9wYWludE9mZnNldENhY2hlSXNEaXNhYmxlZChkaXNhYmxlUGFpbnRP
ZmZzZXRDYWNoZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMWRi
YjE1YmMzMGY3ZDJhMjI5YjllYWVhNjdlN2Q0NWE2YmIzNDc1MC4uYTJjODlkZDA0ZjQ4ZWQ4NWVh
NTcwZTE4YzFjYTY5OGU3YjA2NzQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmgKQEAgLTU1LDEzICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0U3RhdGUoc3RkOjp1
bmlxdWVfcHRyPExheW91dFN0YXRlPiBhbmNlc3RvciwgUmVuZGVyQm94JiwgY29uc3QgTGF5b3V0
U2l6ZSYgb2Zmc2V0LCBMYXlvdXRVbml0IHBhZ2VIZWlnaHQsIGJvb2wgcGFnZUhlaWdodENoYW5n
ZWQpOwogICAgIGV4cGxpY2l0IExheW91dFN0YXRlKFJlbmRlckVsZW1lbnQmKTsKIAotICAgIHZv
aWQgY2xlYXJQYWdpbmF0aW9uSW5mb3JtYXRpb24oKTsKICAgICBib29sIGlzUGFnaW5hdGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1BhZ2luYXRlZDsgfQotICAgIAorICAgIHZvaWQgc2V0SXNQYWdp
bmF0ZWQoKSB7IG1faXNQYWdpbmF0ZWQgPSB0cnVlOyB9CisgICAgdm9pZCBjbGVhclBhZ2luYXRp
b25JbmZvcm1hdGlvbigpOworCiAgICAgLy8gVGhlIHBhZ2UgbG9naWNhbCBvZmZzZXQgaXMgdGhl
IG9iamVjdCdzIG9mZnNldCBmcm9tIHRoZSB0b3Agb2YgdGhlIHBhZ2UgaW4gdGhlIHBhZ2UgcHJv
Z3Jlc3Npb24KICAgICAvLyBkaXJlY3Rpb24gKHNvIGFuIHgtb2Zmc2V0IGluIHZlcnRpY2FsIHRl
eHQgYW5kIGEgeS1vZmZzZXQgZm9yIGhvcml6b250YWwgdGV4dCkuCiAgICAgTGF5b3V0VW5pdCBw
YWdlTG9naWNhbE9mZnNldChSZW5kZXJCb3gqLCBMYXlvdXRVbml0IGNoaWxkTG9naWNhbE9mZnNl
dCkgY29uc3Q7CiAgICAgCisgICAgdm9pZCBzZXRQYWdlTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQpIHsgbV9wYWdlTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7IH0K
ICAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9wYWdl
TG9naWNhbEhlaWdodDsgfQogICAgIGJvb2wgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7IH0KIApAQCAtNjksNiArNzEs
NyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0U2l6ZSBsaW5lR3JpZE9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGluZUdyaWRPZmZzZXQ7IH0KICAgICBMYXlvdXRTaXplIGxpbmVHcmlkUGFnaW5hdGlv
bk9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luOyB9CiAK
KyAgICBMYXlvdXRTaXplIHBhaW50T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9wYWludE9mZnNl
dDsgfQogICAgIExheW91dFNpemUgbGF5b3V0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlv
dXRPZmZzZXQ7IH0KIAogICAgIExheW91dFNpemUgcGFnZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZU9mZnNldDsgfQpAQCAtNzksNiArODIsMTggQEAgcHVibGljOgogICAgIFJlbmRlckZy
YWdtZW50ZWRGbG93KiBjdXJyZW50UmVuZGVyRnJhZ21lbnRlZEZsb3coKSBjb25zdCB7IHJldHVy
biBtX2N1cnJlbnRSZW5kZXJGcmFnbWVudGVkRmxvdzsgfQogICAgIHZvaWQgc2V0Q3VycmVudFJl
bmRlckZyYWdtZW50ZWRGbG93KFJlbmRlckZyYWdtZW50ZWRGbG93KiBmcmFnbWVudGVkRmxvdykg
eyBtX2N1cnJlbnRSZW5kZXJGcmFnbWVudGVkRmxvdyA9IGZyYWdtZW50ZWRGbG93OyB9CiAKKyAg
ICBSZW5kZXJFbGVtZW50KiByZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXI7IH0K
KworICAgIExheW91dFJlY3QgY2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2NsaXBSZWN0OyB9
CisgICAgYm9vbCBpc0NsaXBwZWQoKSBjb25zdCB7IHJldHVybiBtX2NsaXBwZWQ7IH0KKworICAg
IExheW91dFNpemUgbGF5b3V0RGVsdGEoKSBjb25zdCB7IHJldHVybiBtX2xheW91dERlbHRhOyB9
CisgICAgYm9vbCBsYXlvdXREZWx0YU1hdGNoZXMoTGF5b3V0U2l6ZSk7CisgICAgdm9pZCBhZGRM
YXlvdXREZWx0YShMYXlvdXRTaXplKTsKKworICAgIC8vIEZJWE1FOiB3ZWJraXQub3JnL2IvMTc5
NDA4IExheW91dENvbnRleHQgc2hvdWxkIG93biB0aGUgc3RhY2sgb2YgTGF5b3V0U3RhdGUgb2Jq
ZWN0cworICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gbV9hbmNlc3RvcjsKKwogcHJp
dmF0ZToKICAgICB2b2lkIGNvbXB1dGVPZmZzZXRzKFJlbmRlckJveCYsIExheW91dFNpemUgb2Zm
c2V0KTsKICAgICB2b2lkIGNvbXB1dGVDbGlwUmVjdChSZW5kZXJCb3gmKTsKQEAgLTg2LDcgKzEw
MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9wYWdhdGVMaW5lR3JpZEluZm8oUmVuZGVyQm94
Jik7CiAgICAgdm9pZCBlc3RhYmxpc2hMaW5lR3JpZChSZW5kZXJCbG9ja0Zsb3cmKTsKIAotcHVi
bGljOgogICAgIC8vIERvIG5vdCBhZGQgYW55dGhpbmcgYXBhcnQgZnJvbSBiaXRmaWVsZHMuIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMTczCiAgICAgYm9v
bCBtX2NsaXBwZWQgOiAxOwogICAgIGJvb2wgbV9pc1BhZ2luYXRlZCA6IDE7CkBAIC05OSw3ICsx
MTMsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUgY3VycmVudCBsaW5lIGdyaWQgdGhhdCB3ZSdy
ZSBzbmFwcGluZyB0byBhbmQgdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIGdyaWQuCiAg
ICAgUmVuZGVyQmxvY2tGbG93KiBtX2xpbmVHcmlkIHsgbnVsbHB0ciB9OwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxMYXlvdXRTdGF0ZT4gbV9hbmNlc3RvcjsKIAogICAgIC8vIEZJWE1FOiBEaXN0aW5n
dWlzaCBiZXR3ZWVuIHRoZSBsYXlvdXQgY2xpcCByZWN0IGFuZCB0aGUgcGFpbnQgY2xpcCByZWN0
IHdoaWNoIG1heSBiZSBsYXJnZXIsCiAgICAgLy8gZS5nLiwgYmVjYXVzZSBvZiBjb21wb3NpdGVk
IHNjcm9sbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4
IDIyODU0OTlhMWJmOTc3NmUzMzRiNjgzOTY3NmE5N2VmODI4NmU3MDMuLjliMmU0NDVjYzA3ZDMy
ZWIyNjUzNWM3YTYzZWM2MTYzOGRhNWE4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcApAQCAtMzMyMCw5ICszMzIwLDkgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSgpIGNvbnN0CiAgICAgICAgIHJldHVy
biBmcmFnbWVudGVkRmxvdy0+b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0RnJhZ21lbnQodGhp
cyk7CiAKICAgICBpZiAobGF5b3V0U3RhdGUpIHsKLSAgICAgICAgQVNTRVJUKGxheW91dFN0YXRl
LT5tX3JlbmRlcmVyID09IHRoaXMpOworICAgICAgICBBU1NFUlQobGF5b3V0U3RhdGUtPnJlbmRl
cmVyKCkgPT0gdGhpcyk7CiAKLSAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXREZWx0YSA9IGxheW91
dFN0YXRlLT5tX2xheW91dE9mZnNldCAtIGxheW91dFN0YXRlLT5tX3BhZ2VPZmZzZXQ7CisgICAg
ICAgIExheW91dFNpemUgb2Zmc2V0RGVsdGEgPSBsYXlvdXRTdGF0ZS0+bGF5b3V0T2Zmc2V0KCkg
LSBsYXlvdXRTdGF0ZS0+cGFnZU9mZnNldCgpOwogICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IG9mZnNldERlbHRhLmhlaWdodCgpIDogb2Zmc2V0RGVsdGEud2lkdGgo
KTsKICAgICB9CiAgICAgCkBAIC0zMzU3LDcgKzMzNTcsNyBAQCBib29sIFJlbmRlckJsb2NrOjpj
aGlsZEJveElzVW5zcGxpdHRhYmxlRm9yRnJhZ21lbnRhdGlvbihjb25zdCBSZW5kZXJCb3gmIGNo
aWxkKQogewogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBmcmFnbWVudGVkRmxvdyA9IGVuY2xv
c2luZ0ZyYWdtZW50ZWRGbG93KCk7CiAgICAgYm9vbCBjaGVja0NvbHVtbkJyZWFrcyA9IGZyYWdt
ZW50ZWRGbG93ICYmIGZyYWdtZW50ZWRGbG93LT5zaG91bGRDaGVja0NvbHVtbkJyZWFrcygpOwot
ICAgIGJvb2wgY2hlY2tQYWdlQnJlYWtzID0gIWNoZWNrQ29sdW1uQnJlYWtzICYmIHZpZXcoKS5m
cmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+bV9wYWdlTG9naWNhbEhl
aWdodDsKKyAgICBib29sIGNoZWNrUGFnZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJyZWFrcyAmJiB2
aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCktPnBhZ2VMb2dp
Y2FsSGVpZ2h0KCk7CiAgICAgcmV0dXJuIGNoaWxkLmlzVW5zcGxpdHRhYmxlRm9yUGFnaW5hdGlv
bigpIHx8IGNoaWxkLnN0eWxlKCkuYnJlYWtJbnNpZGUoKSA9PSBBdm9pZEJyZWFrSW5zaWRlCiAg
ICAgICAgIHx8IChjaGVja0NvbHVtbkJyZWFrcyAmJiBjaGlsZC5zdHlsZSgpLmJyZWFrSW5zaWRl
KCkgPT0gQXZvaWRDb2x1bW5CcmVha0luc2lkZSkKICAgICAgICAgfHwgKGNoZWNrUGFnZUJyZWFr
cyAmJiBjaGlsZC5zdHlsZSgpLmJyZWFrSW5zaWRlKCkgPT0gQXZvaWRQYWdlQnJlYWtJbnNpZGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA5
NDNlZWU2MDhiYzg5ZmQ4MWMzZWI2NTBjMDg5MzVhMTBmMTJlMDFmLi5iMmQxYmQ2NTliOTlkMTM2
YzkzNTc1MjJmYTFkZjUzNmFlMDY0NTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNTAxLDcgKzUwMSw2IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxv
Z2ljYWxICiAgICAgICAgICAgICBzZXRIYXNNYXJnaW5BZnRlclF1aXJrKHN0eWxlVG9Vc2UuaGFz
TWFyZ2luQWZ0ZXJRdWlyaygpKTsKICAgICAgICAgICAgIHNldFBhZ2luYXRpb25TdHJ1dCgwKTsK
ICAgICAgICAgfQotCiAgICAgICAgIExheW91dFVuaXQgbWF4RmxvYXRMb2dpY2FsQm90dG9tID0g
MDsKICAgICAgICAgaWYgKCFmaXJzdENoaWxkKCkgJiYgIWlzQW5vbnltb3VzQmxvY2soKSkKICAg
ICAgICAgICAgIHNldENoaWxkcmVuSW5saW5lKHRydWUpOwpAQCAtNTU0LDkgKzU1Myw4IEBAIHZv
aWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExh
eW91dFVuaXQgcGFnZUxvZ2ljYWxICiAKICAgICAgICAgZml0Qm9yZGVyVG9MaW5lc0lmTmVlZGVk
KCk7CiAgICAgfQotCiAgICAgYXV0byogc3RhdGUgPSB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0
Q29udGV4dCgpLmxheW91dFN0YXRlKCk7Ci0gICAgaWYgKHN0YXRlICYmIHN0YXRlLT5tX3BhZ2VM
b2dpY2FsSGVpZ2h0KQorICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+cGFnZUxvZ2ljYWxIZWlnaHQo
KSkKICAgICAgICAgc2V0UGFnZUxvZ2ljYWxPZmZzZXQoc3RhdGUtPnBhZ2VMb2dpY2FsT2Zmc2V0
KHRoaXMsIGxvZ2ljYWxUb3AoKSkpOwogCiAgICAgdXBkYXRlTGF5ZXJUcmFuc2Zvcm0oKTsKQEAg
LTE0OTksNyArMTQ5Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphcHBseUJlZm9y
ZUJyZWFrKFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQgbG9naWNhCiAgICAgUmVuZGVyRnJh
Z21lbnRlZEZsb3cqIGZyYWdtZW50ZWRGbG93ID0gZW5jbG9zaW5nRnJhZ21lbnRlZEZsb3coKTsK
ICAgICBib29sIGlzSW5zaWRlTXVsdGljb2xGbG93ID0gZnJhZ21lbnRlZEZsb3c7CiAgICAgYm9v
bCBjaGVja0NvbHVtbkJyZWFrcyA9IGZyYWdtZW50ZWRGbG93ICYmIGZyYWdtZW50ZWRGbG93LT5z
aG91bGRDaGVja0NvbHVtbkJyZWFrcygpOwotICAgIGJvb2wgY2hlY2tQYWdlQnJlYWtzID0gIWNo
ZWNrQ29sdW1uQnJlYWtzICYmIHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5
b3V0U3RhdGUoKS0+bV9wYWdlTG9naWNhbEhlaWdodDsgLy8gRklYTUU6IE9uY2UgY29sdW1ucyBj
YW4gcHJpbnQgd2UgaGF2ZSB0byBjaGVjayB0aGlzLgorICAgIGJvb2wgY2hlY2tQYWdlQnJlYWtz
ID0gIWNoZWNrQ29sdW1uQnJlYWtzICYmIHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0
KCkubGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxIZWlnaHQoKTsgLy8gRklYTUU6IE9uY2UgY29s
dW1ucyBjYW4gcHJpbnQgd2UgaGF2ZSB0byBjaGVjayB0aGlzLgogICAgIGJvb2wgY2hlY2tGcmFn
bWVudEJyZWFrcyA9IGZhbHNlOwogICAgIGJvb2wgY2hlY2tCZWZvcmVBbHdheXMgPSAoY2hlY2tD
b2x1bW5CcmVha3MgJiYgY2hpbGQuc3R5bGUoKS5icmVha0JlZm9yZSgpID09IENvbHVtbkJyZWFr
QmV0d2VlbikKICAgICAgICAgfHwgKGNoZWNrUGFnZUJyZWFrcyAmJiBhbHdheXNQYWdlQnJlYWso
Y2hpbGQuc3R5bGUoKS5icmVha0JlZm9yZSgpKSk7CkBAIC0xNTI0LDcgKzE1MjIsNyBAQCBMYXlv
dXRVbml0IFJlbmRlckJsb2NrRmxvdzo6YXBwbHlBZnRlckJyZWFrKFJlbmRlckJveCYgY2hpbGQs
IExheW91dFVuaXQgbG9naWNhbAogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBmcmFnbWVudGVk
RmxvdyA9IGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCk7CiAgICAgYm9vbCBpc0luc2lkZU11bHRp
Y29sRmxvdyA9IGZyYWdtZW50ZWRGbG93OwogICAgIGJvb2wgY2hlY2tDb2x1bW5CcmVha3MgPSBm
cmFnbWVudGVkRmxvdyAmJiBmcmFnbWVudGVkRmxvdy0+c2hvdWxkQ2hlY2tDb2x1bW5CcmVha3Mo
KTsKLSAgICBib29sIGNoZWNrUGFnZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJyZWFrcyAmJiB2aWV3
KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCktPm1fcGFnZUxvZ2lj
YWxIZWlnaHQ7IC8vIEZJWE1FOiBPbmNlIGNvbHVtbnMgY2FuIHByaW50IHdlIGhhdmUgdG8gY2hl
Y2sgdGhpcy4KKyAgICBib29sIGNoZWNrUGFnZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJyZWFrcyAm
JiB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCktPnBhZ2VM
b2dpY2FsSGVpZ2h0KCk7IC8vIEZJWE1FOiBPbmNlIGNvbHVtbnMgY2FuIHByaW50IHdlIGhhdmUg
dG8gY2hlY2sgdGhpcy4KICAgICBib29sIGNoZWNrRnJhZ21lbnRCcmVha3MgPSBmYWxzZTsKICAg
ICBib29sIGNoZWNrQWZ0ZXJBbHdheXMgPSAoY2hlY2tDb2x1bW5CcmVha3MgJiYgY2hpbGQuc3R5
bGUoKS5icmVha0FmdGVyKCkgPT0gQ29sdW1uQnJlYWtCZXR3ZWVuKQogICAgICAgICB8fCAoY2hl
Y2tQYWdlQnJlYWtzICYmIGFsd2F5c1BhZ2VCcmVhayhjaGlsZC5zdHlsZSgpLmJyZWFrQWZ0ZXIo
KSkpOwpAQCAtMTkxMSwxMiArMTkwOSwxMiBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6
cGFnZUxvZ2ljYWxUb3BGb3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQpIGNvbnN0CiAgICAgLy8g
VW5zcGxpdHRhYmxlIG9iamVjdHMgY2xlYXIgb3V0IHRoZSBwYWdlTG9naWNhbEhlaWdodCBpbiB0
aGUgbGF5b3V0IHN0YXRlIGFzIGEgd2F5IG9mIHNpZ25hbGluZyB0aGF0IG5vCiAgICAgLy8gcGFn
aW5hdGlvbiBzaG91bGQgb2NjdXIuIFRoZXJlZm9yZSB3ZSBoYXZlIHRvIGNoZWNrIHRoaXMgZmly
c3QgYW5kIGJhaWwgaWYgdGhlIHZhbHVlIGhhcyBiZWVuIHNldCB0byAwLgogICAgIGF1dG8qIGxh
eW91dFN0YXRlID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0
ZSgpOwotICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSBsYXlvdXRTdGF0ZS0+bV9w
YWdlTG9naWNhbEhlaWdodDsKKyAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gbGF5
b3V0U3RhdGUtPnBhZ2VMb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYgKCFwYWdlTG9naWNhbEhlaWdo
dCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBMYXlvdXRVbml0IGZpcnN0UGFnZUxvZ2ljYWxU
b3AgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0U3RhdGUtPm1fcGFnZU9mZnNl
dC5oZWlnaHQoKSA6IGxheW91dFN0YXRlLT5tX3BhZ2VPZmZzZXQud2lkdGgoKTsKLSAgICBMYXlv
dXRVbml0IGJsb2NrTG9naWNhbFRvcCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBsYXlv
dXRTdGF0ZS0+bV9sYXlvdXRPZmZzZXQuaGVpZ2h0KCkgOiBsYXlvdXRTdGF0ZS0+bV9sYXlvdXRP
ZmZzZXQud2lkdGgoKTsKKyAgICBMYXlvdXRVbml0IGZpcnN0UGFnZUxvZ2ljYWxUb3AgPSBpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0U3RhdGUtPnBhZ2VPZmZzZXQoKS5oZWlnaHQo
KSA6IGxheW91dFN0YXRlLT5wYWdlT2Zmc2V0KCkud2lkdGgoKTsKKyAgICBMYXlvdXRVbml0IGJs
b2NrTG9naWNhbFRvcCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBsYXlvdXRTdGF0ZS0+
bGF5b3V0T2Zmc2V0KCkuaGVpZ2h0KCkgOiBsYXlvdXRTdGF0ZS0+bGF5b3V0T2Zmc2V0KCkud2lk
dGgoKTsKIAogICAgIExheW91dFVuaXQgY3VtdWxhdGl2ZU9mZnNldCA9IG9mZnNldCArIGJsb2Nr
TG9naWNhbFRvcDsKICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBl
bmNsb3NpbmdGcmFnbWVudGVkRmxvdygpOwpAQCAtMTkyOSw3ICsxOTI3LDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCbG9ja0Zsb3c6OnBhZ2VMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0KExheW91dFVuaXQg
b2Zmc2V0KSBjb25zdAogewogICAgIC8vIFVuc3BsaXR0YWJsZSBvYmplY3RzIGNsZWFyIG91dCB0
aGUgcGFnZUxvZ2ljYWxIZWlnaHQgaW4gdGhlIGxheW91dCBzdGF0ZSBhcyBhIHdheSBvZiBzaWdu
YWxpbmcgdGhhdCBubwogICAgIC8vIHBhZ2luYXRpb24gc2hvdWxkIG9jY3VyLiBUaGVyZWZvcmUg
d2UgaGF2ZSB0byBjaGVjayB0aGlzIGZpcnN0IGFuZCBiYWlsIGlmIHRoZSB2YWx1ZSBoYXMgYmVl
biBzZXQgdG8gMC4KLSAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gdmlldygpLmZy
YW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpLT5tX3BhZ2VMb2dpY2FsSGVp
Z2h0OworICAgIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSB2aWV3KCkuZnJhbWVWaWV3
KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCktPnBhZ2VMb2dpY2FsSGVpZ2h0KCk7CiAg
ICAgaWYgKCFwYWdlTG9naWNhbEhlaWdodCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCkBAIC0x
OTQ2LDcgKzE5NDQsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6cGFnZVJlbWFpbmlu
Z0xvZ2ljYWxIZWlnaHRGb3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZQogICAgIAogICAgIFJlbmRl
ckZyYWdtZW50ZWRGbG93KiBmcmFnbWVudGVkRmxvdyA9IGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93
KCk7CiAgICAgaWYgKCFmcmFnbWVudGVkRmxvdykgewotICAgICAgICBMYXlvdXRVbml0IHBhZ2VM
b2dpY2FsSGVpZ2h0ID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRT
dGF0ZSgpLT5tX3BhZ2VMb2dpY2FsSGVpZ2h0OworICAgICAgICBMYXlvdXRVbml0IHBhZ2VMb2dp
Y2FsSGVpZ2h0ID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0
ZSgpLT5wYWdlTG9naWNhbEhlaWdodCgpOwogICAgICAgICBMYXlvdXRVbml0IHJlbWFpbmluZ0hl
aWdodCA9IHBhZ2VMb2dpY2FsSGVpZ2h0IC0gaW50TW9kKG9mZnNldCwgcGFnZUxvZ2ljYWxIZWln
aHQpOwogICAgICAgICBpZiAocGFnZUJvdW5kYXJ5UnVsZSA9PSBJbmNsdWRlUGFnZUJvdW5kYXJ5
KSB7CiAgICAgICAgICAgICAvLyBJZiBpbmNsdWRlQm91bmRhcnlQb2ludCBpcyB0cnVlIHRoZSBs
aW5lIGV4YWN0bHkgb24gdGhlIHRvcCBlZGdlIG9mIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKaW5kZXggMjNjZmY3MjJiNDZjMjMyZTYyNDM4NDRhNzc3NmI1NDM0YTQ3ZjEw
My4uMDA3YmZmYzc2OTAzMTEyNjEwM2NmMWM2YzlhNDFjMDQwZGIzZmY1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE5MjYsNyArMTkyNiw3IEBAIHZvaWQgUmVu
ZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluCiAKICAgICBpZiAodmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRl
eHQoKS5pc1BhaW50T2Zmc2V0Q2FjaGVFbmFibGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsK
ICAgICAgICAgYXV0byogbGF5b3V0U3RhdGUgPSB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29u
dGV4dCgpLmxheW91dFN0YXRlKCk7Ci0gICAgICAgIExheW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0
U3RhdGUtPm1fcGFpbnRPZmZzZXQgKyBsb2NhdGlvbk9mZnNldCgpOworICAgICAgICBMYXlvdXRT
aXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5wYWludE9mZnNldCgpICsgbG9jYXRpb25PZmZzZXQo
KTsKICAgICAgICAgaWYgKHN0eWxlKCkuaGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigpKQog
ICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7
CiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUob2Zmc2V0KTsKQEAgLTIxNTEsOSArMjE1MSw5
IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5
b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3QubW92
ZShsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKIAogICAgICAgICBhZGp1c3Rl
ZFJlY3QubW92ZUJ5KGxvY2F0aW9uKCkpOwotICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShsYXlv
dXRTdGF0ZS0+bV9wYWludE9mZnNldCk7Ci0gICAgICAgIGlmIChsYXlvdXRTdGF0ZS0+bV9jbGlw
cGVkKQotICAgICAgICAgICAgYWRqdXN0ZWRSZWN0LmludGVyc2VjdChsYXlvdXRTdGF0ZS0+bV9j
bGlwUmVjdCk7CisgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlKGxheW91dFN0YXRlLT5wYWludE9m
ZnNldCgpKTsKKyAgICAgICAgaWYgKGxheW91dFN0YXRlLT5pc0NsaXBwZWQoKSkKKyAgICAgICAg
ICAgIGFkanVzdGVkUmVjdC5pbnRlcnNlY3QobGF5b3V0U3RhdGUtPmNsaXBSZWN0KCkpOwogICAg
ICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcAppbmRleCBhY2UyNjA1ZmY3ZDc2ZGQ0NjI5ZjY0ZTliMmI0YWFl
NDMwODA1N2E5Li5mMDFhZGZhYjhjYWQ0YzMyODExMDRjNjQyYTY2NDc2YjQ2MGY4YWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtMTIyNiw5ICsxMjI2
LDkgQEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25z
dCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBSZW4KICAgICAgICAgYXV0byogbGF5b3V0U3RhdGUg
PSB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCk7CiAgICAg
ICAgIGlmIChzdHlsZSgpLmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKICAgICAgICAg
ICAgIGFkanVzdGVkUmVjdC5tb3ZlKGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCkp
OwotICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldCk7
Ci0gICAgICAgIGlmIChsYXlvdXRTdGF0ZS0+bV9jbGlwcGVkKQotICAgICAgICAgICAgYWRqdXN0
ZWRSZWN0LmludGVyc2VjdChsYXlvdXRTdGF0ZS0+bV9jbGlwUmVjdCk7CisgICAgICAgIGFkanVz
dGVkUmVjdC5tb3ZlKGxheW91dFN0YXRlLT5wYWludE9mZnNldCgpKTsKKyAgICAgICAgaWYgKGxh
eW91dFN0YXRlLT5pc0NsaXBwZWQoKSkKKyAgICAgICAgICAgIGFkanVzdGVkUmVjdC5pbnRlcnNl
Y3QobGF5b3V0U3RhdGUtPmNsaXBSZWN0KCkpOwogICAgICAgICByZXR1cm4gYWRqdXN0ZWRSZWN0
OwogICAgIH0KIApAQCAtMTI5Miw3ICsxMjkyLDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExv
Y2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnQK
IAogICAgIGlmICh2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzUGFpbnRPZmZz
ZXRDYWNoZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRhaW5lcikgewogICAgICAgICBhdXRvKiBs
YXlvdXRTdGF0ZSA9IHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3Rh
dGUoKTsKLSAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0ZS0+bV9wYWludE9m
ZnNldDsKKyAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0ZS0+cGFpbnRPZmZz
ZXQoKTsKICAgICAgICAgaWYgKHN0eWxlKCkuaGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXllcigp
KQogICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9u
KCk7CiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUob2Zmc2V0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326303</attachid>
            <date>2017-11-07 21:47:02 -0800</date>
            <delta_ts>2017-11-07 21:56:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179409-20171107214702.patch</filename>
            <type>text/plain</type>
            <size>19348</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhMzlhN2VkMjM1NDVk
ZDM0YmMyZjNlNThlMzRhNTY0YWUzZmVkMi4uZGI1YTY2MGFkNTc4MjNhYTE0MzQ5YmQ3MWI2OTAx
NDhkZGM2MjM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTExLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFN0YXRlIGNsZWFu
dXBdIE1ha2UgcHVibGljIGRhdGEgbWVtYmVycyBwcml2YXRlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NDA5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTQwNjE4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBhZ2UvTGF5
b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjpsYXlvdXRE
ZWx0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjphZGRMYXlvdXRE
ZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YU1hdGNo
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Q29udGV4dDo6cHVzaExheW91dFN0YXRlRm9y
UGFnaW5hdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dFN0YXRlOjphZGRMYXlvdXREZWx0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRTdGF0ZTo6bGF5b3V0RGVsdGFNYXRjaGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
TGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpzZXRJc1BhZ2lu
YXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6c2V0UGFnZUxvZ2ljYWxIZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OnBhaW50T2Zmc2V0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpyZW5kZXJlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6Y2xpcFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0U3RhdGU6OmlzQ2xpcHBlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRTdGF0ZTo6bGF5b3V0RGVsdGEgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6b2Zmc2V0RnJvbUxvZ2lj
YWxUb3BPZkZpcnN0UGFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y2hpbGRCb3hJc1Vuc3BsaXR0YWJsZUZvckZyYWdtZW50YXRpb24gY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmFwcGx5QmVmb3JlQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjphcHBseUFmdGVyQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpw
YWdlTG9naWNhbFRvcEZvck9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnBhZ2VMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6cGFnZVJlbWFpbmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZz
ZXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
cklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lciBjb25zdCk6CisKIDIwMTctMTEtMDcg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRoZXJlIGlzIG5v
IHN1Y2ggdGhpbmcgYXMgYmxvY2sgZWxlbWVudCBjb250aW51YXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0xheW91dENvbnRleHQuY3BwCmluZGV4IGRmMTE4NWMxMzhlYzdjMjE2Nzc1ODQ1YjE3MTY3ZmNk
MGJlZGJjNGEuLjRmZTBlMWY4MDhiYzNhMWRlNzEzYWM0YjVhMzI2YTMzZGE0NTgwYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9MYXlvdXRDb250ZXh0LmNwcApAQCAtNTMyLDE5ICs1MzIsMTQgQEAgTGF5
b3V0U2l6ZSBMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YSgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X2xheW91dFN0YXRlKQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBtX2xheW91dFN0
YXRlLT5tX2xheW91dERlbHRhOworICAgIHJldHVybiBtX2xheW91dFN0YXRlLT5sYXlvdXREZWx0
YSgpOwogfQogICAgIAogdm9pZCBMYXlvdXRDb250ZXh0OjphZGRMYXlvdXREZWx0YShjb25zdCBM
YXlvdXRTaXplJiBkZWx0YSkKIHsKICAgICBpZiAoIW1fbGF5b3V0U3RhdGUpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhICs9IGRlbHRhOwot
I2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhWFNh
dHVyYXRlZCB8PSBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhLndpZHRoKCkgPT0gTGF5b3V0
VW5pdDo6bWF4KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YS53aWR0aCgpID09IExh
eW91dFVuaXQ6Om1pbigpOwotICAgIG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGFZU2F0dXJh
dGVkIHw9IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgPT0gTGF5b3V0VW5p
dDo6bWF4KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YS5oZWlnaHQoKSA9PSBMYXlv
dXRVbml0OjptaW4oKTsKLSNlbmRpZgorICAgIG1fbGF5b3V0U3RhdGUtPmFkZExheW91dERlbHRh
KGRlbHRhKTsKIH0KICAgICAKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC01NTIsNyArNTQ3LDcg
QEAgYm9vbCBMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YU1hdGNoZXMoY29uc3QgTGF5b3V0U2l6
ZSYgZGVsdGEpCiB7CiAgICAgaWYgKCFtX2xheW91dFN0YXRlKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmV0dXJuIChkZWx0YS53aWR0aCgpID09IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0
RGVsdGEud2lkdGgoKSB8fCBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhWFNhdHVyYXRlZCkg
JiYgKGRlbHRhLmhlaWdodCgpID09IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGEuaGVpZ2h0
KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQpOworICAgIHJldHVy
biBtX2xheW91dFN0YXRlLT5sYXlvdXREZWx0YU1hdGNoZXMoZGVsdGEpOwogfQogI2VuZGlmCiAg
ICAgCkBAIC01NjksOSArNTY0LDkgQEAgYm9vbCBMYXlvdXRDb250ZXh0OjpwdXNoTGF5b3V0U3Rh
dGVGb3JQYWdpbmF0aW9uSWZOZWVkZWQoUmVuZGVyQmxvY2tGbG93JiBsYXlvdXQKICAgICBpZiAo
bV9sYXlvdXRTdGF0ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fbGF5b3V0U3RhdGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPExheW91dFN0YXRlPihsYXlvdXRSb290KTsKLSAgICBtX2xheW91
dFN0YXRlLT5tX2lzUGFnaW5hdGVkID0gdHJ1ZTsKKyAgICBtX2xheW91dFN0YXRlLT5zZXRJc1Bh
Z2luYXRlZCgpOwogICAgIC8vIFRoaXMgaXMganVzdCBhIGZsYWcgZm9yIGtub3duIHBhZ2UgaGVp
Z2h0IChzZWUgUmVuZGVyQmxvY2tGbG93OjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0
Q2hhbmdlKS4KLSAgICBtX2xheW91dFN0YXRlLT5tX3BhZ2VMb2dpY2FsSGVpZ2h0ID0gMTsKKyAg
ICBtX2xheW91dFN0YXRlLT5zZXRQYWdlTG9naWNhbEhlaWdodCgxKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4
IGRkMGUxM2RkNjk2MDY1MGRlODJlYWFkYjJmNDQyNjU0NmU5MGY5OTUuLjM5YTdiZGIzMTlhZDky
YmUyN2VkNjM3MDUwMDQzMDQzYTU1OGEwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmNwcApAQCAtNjEsMTQgKzYxLDE0IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0
ZShSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIH0KIAogTGF5b3V0U3RhdGU6OkxheW91dFN0YXRl
KHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gYW5jZXN0b3IsIFJlbmRlckJveCYgcmVuZGVy
ZXIsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdo
dCwgYm9vbCBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQpCi0gICAgOiBtX2NsaXBwZWQoZmFsc2Up
CisgICAgOiBtX2FuY2VzdG9yKFdURk1vdmUoYW5jZXN0b3IpKQorICAgICwgbV9jbGlwcGVkKGZh
bHNlKQogICAgICwgbV9pc1BhZ2luYXRlZChmYWxzZSkKICAgICAsIG1fcGFnZUxvZ2ljYWxIZWln
aHRDaGFuZ2VkKGZhbHNlKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAsIG1fbGF5b3V0RGVs
dGFYU2F0dXJhdGVkKGZhbHNlKQogICAgICwgbV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQoZmFsc2Up
CiAjZW5kaWYKLSAgICAsIG1fYW5jZXN0b3IoV1RGTW92ZShhbmNlc3RvcikpCiAjaWZuZGVmIE5E
RUJVRwogICAgICwgbV9yZW5kZXJlcigmcmVuZGVyZXIpCiAjZW5kaWYKQEAgLTIxOCw2ICsyMTgs
MjAgQEAgdm9pZCBMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNoTGluZUdyaWQoUmVuZGVyQmxvY2tGbG93
JiByZW5kZXJlcikKICAgICBtX2xpbmVHcmlkT2Zmc2V0ID0gbV9sYXlvdXRPZmZzZXQ7CiB9CiAK
K3ZvaWQgTGF5b3V0U3RhdGU6OmFkZExheW91dERlbHRhKExheW91dFNpemUgZGVsdGEpCit7Cisg
ICAgbV9sYXlvdXREZWx0YSArPSBkZWx0YTsKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9s
YXlvdXREZWx0YVhTYXR1cmF0ZWQgfD0gbV9sYXlvdXREZWx0YS53aWR0aCgpID09IExheW91dFVu
aXQ6Om1heCgpIHx8IG1fbGF5b3V0RGVsdGEud2lkdGgoKSA9PSBMYXlvdXRVbml0OjptaW4oKTsK
KyAgICBtX2xheW91dERlbHRhWVNhdHVyYXRlZCB8PSBtX2xheW91dERlbHRhLmhlaWdodCgpID09
IExheW91dFVuaXQ6Om1heCgpIHx8IG1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgPT0gTGF5b3V0VW5p
dDo6bWluKCk7CisjZW5kaWYKK30KKworYm9vbCBMYXlvdXRTdGF0ZTo6bGF5b3V0RGVsdGFNYXRj
aGVzKExheW91dFNpemUgZGVsdGEpCit7CisgICAgcmV0dXJuIChkZWx0YS53aWR0aCgpID09IG1f
bGF5b3V0RGVsdGEud2lkdGgoKSB8fCBtX2xheW91dERlbHRhWFNhdHVyYXRlZCkgJiYgKGRlbHRh
LmhlaWdodCgpID09IG1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgfHwgbV9sYXlvdXREZWx0YVlTYXR1
cmF0ZWQpOworfQorCiBMYXlvdXRTdGF0ZU1haW50YWluZXI6OkxheW91dFN0YXRlTWFpbnRhaW5l
cihSZW5kZXJCb3gmIHJvb3QsIExheW91dFNpemUgb2Zmc2V0LCBib29sIGRpc2FibGVQYWludE9m
ZnNldENhY2hlLCBMYXlvdXRVbml0IHBhZ2VIZWlnaHQsIGJvb2wgcGFnZUhlaWdodENoYW5nZWQp
CiAgICAgOiBtX2xheW91dENvbnRleHQocm9vdC52aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29u
dGV4dCgpKQogICAgICwgbV9wYWludE9mZnNldENhY2hlSXNEaXNhYmxlZChkaXNhYmxlUGFpbnRP
ZmZzZXRDYWNoZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMWRi
YjE1YmMzMGY3ZDJhMjI5YjllYWVhNjdlN2Q0NWE2YmIzNDc1MC4uZjlmNzBlZmE4NmQ4Y2M0ZTNl
NzVjNmNlZGNhNDFhZDIxNjVhNzAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmgKQEAgLTU1LDEzICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0U3RhdGUoc3RkOjp1
bmlxdWVfcHRyPExheW91dFN0YXRlPiBhbmNlc3RvciwgUmVuZGVyQm94JiwgY29uc3QgTGF5b3V0
U2l6ZSYgb2Zmc2V0LCBMYXlvdXRVbml0IHBhZ2VIZWlnaHQsIGJvb2wgcGFnZUhlaWdodENoYW5n
ZWQpOwogICAgIGV4cGxpY2l0IExheW91dFN0YXRlKFJlbmRlckVsZW1lbnQmKTsKIAotICAgIHZv
aWQgY2xlYXJQYWdpbmF0aW9uSW5mb3JtYXRpb24oKTsKICAgICBib29sIGlzUGFnaW5hdGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1BhZ2luYXRlZDsgfQotICAgIAorICAgIHZvaWQgc2V0SXNQYWdp
bmF0ZWQoKSB7IG1faXNQYWdpbmF0ZWQgPSB0cnVlOyB9CisgICAgdm9pZCBjbGVhclBhZ2luYXRp
b25JbmZvcm1hdGlvbigpOworCiAgICAgLy8gVGhlIHBhZ2UgbG9naWNhbCBvZmZzZXQgaXMgdGhl
IG9iamVjdCdzIG9mZnNldCBmcm9tIHRoZSB0b3Agb2YgdGhlIHBhZ2UgaW4gdGhlIHBhZ2UgcHJv
Z3Jlc3Npb24KICAgICAvLyBkaXJlY3Rpb24gKHNvIGFuIHgtb2Zmc2V0IGluIHZlcnRpY2FsIHRl
eHQgYW5kIGEgeS1vZmZzZXQgZm9yIGhvcml6b250YWwgdGV4dCkuCiAgICAgTGF5b3V0VW5pdCBw
YWdlTG9naWNhbE9mZnNldChSZW5kZXJCb3gqLCBMYXlvdXRVbml0IGNoaWxkTG9naWNhbE9mZnNl
dCkgY29uc3Q7CiAgICAgCisgICAgdm9pZCBzZXRQYWdlTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQpIHsgbV9wYWdlTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7IH0K
ICAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9wYWdl
TG9naWNhbEhlaWdodDsgfQogICAgIGJvb2wgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7IH0KIApAQCAtNjksNiArNzEs
NyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0U2l6ZSBsaW5lR3JpZE9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGluZUdyaWRPZmZzZXQ7IH0KICAgICBMYXlvdXRTaXplIGxpbmVHcmlkUGFnaW5hdGlv
bk9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luOyB9CiAK
KyAgICBMYXlvdXRTaXplIHBhaW50T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9wYWludE9mZnNl
dDsgfQogICAgIExheW91dFNpemUgbGF5b3V0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlv
dXRPZmZzZXQ7IH0KIAogICAgIExheW91dFNpemUgcGFnZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZU9mZnNldDsgfQpAQCAtNzgsNiArODEsMTggQEAgcHVibGljOgogCiAgICAgUmVuZGVy
RnJhZ21lbnRlZEZsb3cqIGN1cnJlbnRSZW5kZXJGcmFnbWVudGVkRmxvdygpIGNvbnN0IHsgcmV0
dXJuIG1fY3VycmVudFJlbmRlckZyYWdtZW50ZWRGbG93OyB9CiAgICAgdm9pZCBzZXRDdXJyZW50
UmVuZGVyRnJhZ21lbnRlZEZsb3coUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGZyYWdtZW50ZWRGbG93
KSB7IG1fY3VycmVudFJlbmRlckZyYWdtZW50ZWRGbG93ID0gZnJhZ21lbnRlZEZsb3c7IH0KKyNp
Zm5kZWYgTkRFQlVHCisgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIoKSBjb25zdCB7IHJldHVy
biBtX3JlbmRlcmVyOyB9CisjZW5kaWYKKyAgICBMYXlvdXRSZWN0IGNsaXBSZWN0KCkgY29uc3Qg
eyByZXR1cm4gbV9jbGlwUmVjdDsgfQorICAgIGJvb2wgaXNDbGlwcGVkKCkgY29uc3QgeyByZXR1
cm4gbV9jbGlwcGVkOyB9CisKKyAgICBMYXlvdXRTaXplIGxheW91dERlbHRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXlvdXREZWx0YTsgfQorICAgIGJvb2wgbGF5b3V0RGVsdGFNYXRjaGVzKExheW91
dFNpemUpOworICAgIHZvaWQgYWRkTGF5b3V0RGVsdGEoTGF5b3V0U2l6ZSk7CisKKyAgICAvLyBG
SVhNRTogd2Via2l0Lm9yZy9iLzE3OTQwOCBMYXlvdXRDb250ZXh0IHNob3VsZCBvd24gdGhlIHN0
YWNrIG9mIExheW91dFN0YXRlIG9iamVjdHMKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3Rh
dGU+IG1fYW5jZXN0b3I7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlT2Zmc2V0cyhSZW5k
ZXJCb3gmLCBMYXlvdXRTaXplIG9mZnNldCk7CkBAIC04Niw3ICsxMDEsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcHJvcGFnYXRlTGluZUdyaWRJbmZvKFJlbmRlckJveCYpOwogICAgIHZvaWQgZXN0
YWJsaXNoTGluZUdyaWQoUmVuZGVyQmxvY2tGbG93Jik7CiAKLXB1YmxpYzoKICAgICAvLyBEbyBu
b3QgYWRkIGFueXRoaW5nIGFwYXJ0IGZyb20gYml0ZmllbGRzLiBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDE3MwogICAgIGJvb2wgbV9jbGlwcGVkIDogMTsK
ICAgICBib29sIG1faXNQYWdpbmF0ZWQgOiAxOwpAQCAtOTksNyArMTEzLDYgQEAgcHVibGljOgog
CiAgICAgLy8gVGhlIGN1cnJlbnQgbGluZSBncmlkIHRoYXQgd2UncmUgc25hcHBpbmcgdG8gYW5k
IHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBncmlkLgogICAgIFJlbmRlckJsb2NrRmxv
dyogbV9saW5lR3JpZCB7IG51bGxwdHIgfTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3Rh
dGU+IG1fYW5jZXN0b3I7CiAKICAgICAvLyBGSVhNRTogRGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUg
bGF5b3V0IGNsaXAgcmVjdCBhbmQgdGhlIHBhaW50IGNsaXAgcmVjdCB3aGljaCBtYXkgYmUgbGFy
Z2VyLAogICAgIC8vIGUuZy4sIGJlY2F1c2Ugb2YgY29tcG9zaXRlZCBzY3JvbGxpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAyMjg1NDk5YTFiZjk3NzZl
MzM0YjY4Mzk2NzZhOTdlZjgyODZlNzAzLi45YjJlNDQ1Y2MwN2QzMmViMjY1MzVjN2E2M2VjNjE2
MzhkYTVhOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAg
LTMzMjAsOSArMzMyMCw5IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6Om9mZnNldEZyb21Mb2dp
Y2FsVG9wT2ZGaXJzdFBhZ2UoKSBjb25zdAogICAgICAgICByZXR1cm4gZnJhZ21lbnRlZEZsb3ct
Pm9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdEZyYWdtZW50KHRoaXMpOwogCiAgICAgaWYgKGxh
eW91dFN0YXRlKSB7Ci0gICAgICAgIEFTU0VSVChsYXlvdXRTdGF0ZS0+bV9yZW5kZXJlciA9PSB0
aGlzKTsKKyAgICAgICAgQVNTRVJUKGxheW91dFN0YXRlLT5yZW5kZXJlcigpID09IHRoaXMpOwog
Ci0gICAgICAgIExheW91dFNpemUgb2Zmc2V0RGVsdGEgPSBsYXlvdXRTdGF0ZS0+bV9sYXlvdXRP
ZmZzZXQgLSBsYXlvdXRTdGF0ZS0+bV9wYWdlT2Zmc2V0OworICAgICAgICBMYXlvdXRTaXplIG9m
ZnNldERlbHRhID0gbGF5b3V0U3RhdGUtPmxheW91dE9mZnNldCgpIC0gbGF5b3V0U3RhdGUtPnBh
Z2VPZmZzZXQoKTsKICAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBv
ZmZzZXREZWx0YS5oZWlnaHQoKSA6IG9mZnNldERlbHRhLndpZHRoKCk7CiAgICAgfQogICAgIApA
QCAtMzM1Nyw3ICszMzU3LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6Y2hpbGRCb3hJc1Vuc3BsaXR0
YWJsZUZvckZyYWdtZW50YXRpb24oY29uc3QgUmVuZGVyQm94JiBjaGlsZCkKIHsKICAgICBSZW5k
ZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBlbmNsb3NpbmdGcmFnbWVudGVkRmxv
dygpOwogICAgIGJvb2wgY2hlY2tDb2x1bW5CcmVha3MgPSBmcmFnbWVudGVkRmxvdyAmJiBmcmFn
bWVudGVkRmxvdy0+c2hvdWxkQ2hlY2tDb2x1bW5CcmVha3MoKTsKLSAgICBib29sIGNoZWNrUGFn
ZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJyZWFrcyAmJiB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0
Q29udGV4dCgpLmxheW91dFN0YXRlKCktPm1fcGFnZUxvZ2ljYWxIZWlnaHQ7CisgICAgYm9vbCBj
aGVja1BhZ2VCcmVha3MgPSAhY2hlY2tDb2x1bW5CcmVha3MgJiYgdmlldygpLmZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpLT5wYWdlTG9naWNhbEhlaWdodCgpOwogICAg
IHJldHVybiBjaGlsZC5pc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSB8fCBjaGlsZC5zdHls
ZSgpLmJyZWFrSW5zaWRlKCkgPT0gQXZvaWRCcmVha0luc2lkZQogICAgICAgICB8fCAoY2hlY2tD
b2x1bW5CcmVha3MgJiYgY2hpbGQuc3R5bGUoKS5icmVha0luc2lkZSgpID09IEF2b2lkQ29sdW1u
QnJlYWtJbnNpZGUpCiAgICAgICAgIHx8IChjaGVja1BhZ2VCcmVha3MgJiYgY2hpbGQuc3R5bGUo
KS5icmVha0luc2lkZSgpID09IEF2b2lkUGFnZUJyZWFrSW5zaWRlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggOTQzZWVlNjA4YmM4OWZkODFj
M2ViNjUwYzA4OTM1YTEwZjEyZTAxZi4uYjJkMWJkNjU5Yjk5ZDEzNmM5MzU3NTIyZmExZGY1MzZh
ZTA2NDUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKQEAgLTUwMSw3ICs1MDEsNiBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2so
Ym9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSAogICAgICAgICAg
ICAgc2V0SGFzTWFyZ2luQWZ0ZXJRdWlyayhzdHlsZVRvVXNlLmhhc01hcmdpbkFmdGVyUXVpcmso
KSk7CiAgICAgICAgICAgICBzZXRQYWdpbmF0aW9uU3RydXQoMCk7CiAgICAgICAgIH0KLQogICAg
ICAgICBMYXlvdXRVbml0IG1heEZsb2F0TG9naWNhbEJvdHRvbSA9IDA7CiAgICAgICAgIGlmICgh
Zmlyc3RDaGlsZCgpICYmICFpc0Fub255bW91c0Jsb2NrKCkpCiAgICAgICAgICAgICBzZXRDaGls
ZHJlbklubGluZSh0cnVlKTsKQEAgLTU1NCw5ICs1NTMsOCBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dp
Y2FsSAogCiAgICAgICAgIGZpdEJvcmRlclRvTGluZXNJZk5lZWRlZCgpOwogICAgIH0KLQogICAg
IGF1dG8qIHN0YXRlID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRT
dGF0ZSgpOwotICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+bV9wYWdlTG9naWNhbEhlaWdodCkKKyAg
ICBpZiAoc3RhdGUgJiYgc3RhdGUtPnBhZ2VMb2dpY2FsSGVpZ2h0KCkpCiAgICAgICAgIHNldFBh
Z2VMb2dpY2FsT2Zmc2V0KHN0YXRlLT5wYWdlTG9naWNhbE9mZnNldCh0aGlzLCBsb2dpY2FsVG9w
KCkpKTsKIAogICAgIHVwZGF0ZUxheWVyVHJhbnNmb3JtKCk7CkBAIC0xNDk5LDcgKzE0OTcsNyBA
QCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6YXBwbHlCZWZvcmVCcmVhayhSZW5kZXJCb3gm
IGNoaWxkLCBMYXlvdXRVbml0IGxvZ2ljYQogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBmcmFn
bWVudGVkRmxvdyA9IGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCk7CiAgICAgYm9vbCBpc0luc2lk
ZU11bHRpY29sRmxvdyA9IGZyYWdtZW50ZWRGbG93OwogICAgIGJvb2wgY2hlY2tDb2x1bW5CcmVh
a3MgPSBmcmFnbWVudGVkRmxvdyAmJiBmcmFnbWVudGVkRmxvdy0+c2hvdWxkQ2hlY2tDb2x1bW5C
cmVha3MoKTsKLSAgICBib29sIGNoZWNrUGFnZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJyZWFrcyAm
JiB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCktPm1fcGFn
ZUxvZ2ljYWxIZWlnaHQ7IC8vIEZJWE1FOiBPbmNlIGNvbHVtbnMgY2FuIHByaW50IHdlIGhhdmUg
dG8gY2hlY2sgdGhpcy4KKyAgICBib29sIGNoZWNrUGFnZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJy
ZWFrcyAmJiB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCkt
PnBhZ2VMb2dpY2FsSGVpZ2h0KCk7IC8vIEZJWE1FOiBPbmNlIGNvbHVtbnMgY2FuIHByaW50IHdl
IGhhdmUgdG8gY2hlY2sgdGhpcy4KICAgICBib29sIGNoZWNrRnJhZ21lbnRCcmVha3MgPSBmYWxz
ZTsKICAgICBib29sIGNoZWNrQmVmb3JlQWx3YXlzID0gKGNoZWNrQ29sdW1uQnJlYWtzICYmIGNo
aWxkLnN0eWxlKCkuYnJlYWtCZWZvcmUoKSA9PSBDb2x1bW5CcmVha0JldHdlZW4pCiAgICAgICAg
IHx8IChjaGVja1BhZ2VCcmVha3MgJiYgYWx3YXlzUGFnZUJyZWFrKGNoaWxkLnN0eWxlKCkuYnJl
YWtCZWZvcmUoKSkpOwpAQCAtMTUyNCw3ICsxNTIyLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9j
a0Zsb3c6OmFwcGx5QWZ0ZXJCcmVhayhSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0IGxvZ2lj
YWwKICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBlbmNsb3NpbmdG
cmFnbWVudGVkRmxvdygpOwogICAgIGJvb2wgaXNJbnNpZGVNdWx0aWNvbEZsb3cgPSBmcmFnbWVu
dGVkRmxvdzsKICAgICBib29sIGNoZWNrQ29sdW1uQnJlYWtzID0gZnJhZ21lbnRlZEZsb3cgJiYg
ZnJhZ21lbnRlZEZsb3ctPnNob3VsZENoZWNrQ29sdW1uQnJlYWtzKCk7Ci0gICAgYm9vbCBjaGVj
a1BhZ2VCcmVha3MgPSAhY2hlY2tDb2x1bW5CcmVha3MgJiYgdmlldygpLmZyYW1lVmlldygpLmxh
eW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpLT5tX3BhZ2VMb2dpY2FsSGVpZ2h0OyAvLyBGSVhN
RTogT25jZSBjb2x1bW5zIGNhbiBwcmludCB3ZSBoYXZlIHRvIGNoZWNrIHRoaXMuCisgICAgYm9v
bCBjaGVja1BhZ2VCcmVha3MgPSAhY2hlY2tDb2x1bW5CcmVha3MgJiYgdmlldygpLmZyYW1lVmll
dygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpLT5wYWdlTG9naWNhbEhlaWdodCgpOyAv
LyBGSVhNRTogT25jZSBjb2x1bW5zIGNhbiBwcmludCB3ZSBoYXZlIHRvIGNoZWNrIHRoaXMuCiAg
ICAgYm9vbCBjaGVja0ZyYWdtZW50QnJlYWtzID0gZmFsc2U7CiAgICAgYm9vbCBjaGVja0FmdGVy
QWx3YXlzID0gKGNoZWNrQ29sdW1uQnJlYWtzICYmIGNoaWxkLnN0eWxlKCkuYnJlYWtBZnRlcigp
ID09IENvbHVtbkJyZWFrQmV0d2VlbikKICAgICAgICAgfHwgKGNoZWNrUGFnZUJyZWFrcyAmJiBh
bHdheXNQYWdlQnJlYWsoY2hpbGQuc3R5bGUoKS5icmVha0FmdGVyKCkpKTsKQEAgLTE5MTEsMTIg
KzE5MDksMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OnBhZ2VMb2dpY2FsVG9wRm9y
T2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0KSBjb25zdAogICAgIC8vIFVuc3BsaXR0YWJsZSBvYmpl
Y3RzIGNsZWFyIG91dCB0aGUgcGFnZUxvZ2ljYWxIZWlnaHQgaW4gdGhlIGxheW91dCBzdGF0ZSBh
cyBhIHdheSBvZiBzaWduYWxpbmcgdGhhdCBubwogICAgIC8vIHBhZ2luYXRpb24gc2hvdWxkIG9j
Y3VyLiBUaGVyZWZvcmUgd2UgaGF2ZSB0byBjaGVjayB0aGlzIGZpcnN0IGFuZCBiYWlsIGlmIHRo
ZSB2YWx1ZSBoYXMgYmVlbiBzZXQgdG8gMC4KICAgICBhdXRvKiBsYXlvdXRTdGF0ZSA9IHZpZXco
KS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKTsKLSAgICBMYXlvdXRV
bml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gbGF5b3V0U3RhdGUtPm1fcGFnZUxvZ2ljYWxIZWlnaHQ7
CisgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IGxheW91dFN0YXRlLT5wYWdlTG9n
aWNhbEhlaWdodCgpOwogICAgIGlmICghcGFnZUxvZ2ljYWxIZWlnaHQpCiAgICAgICAgIHJldHVy
biAwOwogCi0gICAgTGF5b3V0VW5pdCBmaXJzdFBhZ2VMb2dpY2FsVG9wID0gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IGxheW91dFN0YXRlLT5tX3BhZ2VPZmZzZXQuaGVpZ2h0KCkgOiBsYXlv
dXRTdGF0ZS0+bV9wYWdlT2Zmc2V0LndpZHRoKCk7Ci0gICAgTGF5b3V0VW5pdCBibG9ja0xvZ2lj
YWxUb3AgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0U3RhdGUtPm1fbGF5b3V0
T2Zmc2V0LmhlaWdodCgpIDogbGF5b3V0U3RhdGUtPm1fbGF5b3V0T2Zmc2V0LndpZHRoKCk7Cisg
ICAgTGF5b3V0VW5pdCBmaXJzdFBhZ2VMb2dpY2FsVG9wID0gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSA/IGxheW91dFN0YXRlLT5wYWdlT2Zmc2V0KCkuaGVpZ2h0KCkgOiBsYXlvdXRTdGF0ZS0+
cGFnZU9mZnNldCgpLndpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBibG9ja0xvZ2ljYWxUb3AgPSBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0U3RhdGUtPmxheW91dE9mZnNldCgpLmhl
aWdodCgpIDogbGF5b3V0U3RhdGUtPmxheW91dE9mZnNldCgpLndpZHRoKCk7CiAKICAgICBMYXlv
dXRVbml0IGN1bXVsYXRpdmVPZmZzZXQgPSBvZmZzZXQgKyBibG9ja0xvZ2ljYWxUb3A7CiAgICAg
UmVuZGVyRnJhZ21lbnRlZEZsb3cqIGZyYWdtZW50ZWRGbG93ID0gZW5jbG9zaW5nRnJhZ21lbnRl
ZEZsb3coKTsKQEAgLTE5MjksNyArMTkyNyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93
OjpwYWdlTG9naWNhbEhlaWdodEZvck9mZnNldChMYXlvdXRVbml0IG9mZnNldCkgY29uc3QKIHsK
ICAgICAvLyBVbnNwbGl0dGFibGUgb2JqZWN0cyBjbGVhciBvdXQgdGhlIHBhZ2VMb2dpY2FsSGVp
Z2h0IGluIHRoZSBsYXlvdXQgc3RhdGUgYXMgYSB3YXkgb2Ygc2lnbmFsaW5nIHRoYXQgbm8KICAg
ICAvLyBwYWdpbmF0aW9uIHNob3VsZCBvY2N1ci4gVGhlcmVmb3JlIHdlIGhhdmUgdG8gY2hlY2sg
dGhpcyBmaXJzdCBhbmQgYmFpbCBpZiB0aGUgdmFsdWUgaGFzIGJlZW4gc2V0IHRvIDAuCi0gICAg
TGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRD
b250ZXh0KCkubGF5b3V0U3RhdGUoKS0+bV9wYWdlTG9naWNhbEhlaWdodDsKKyAgICBMYXlvdXRV
bml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQo
KS5sYXlvdXRTdGF0ZSgpLT5wYWdlTG9naWNhbEhlaWdodCgpOwogICAgIGlmICghcGFnZUxvZ2lj
YWxIZWlnaHQpCiAgICAgICAgIHJldHVybiAwOwogICAgIApAQCAtMTk0Niw3ICsxOTQ0LDcgQEAg
TGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OnBhZ2VSZW1haW5pbmdMb2dpY2FsSGVpZ2h0Rm9y
T2Zmc2V0KExheW91dFVuaXQgb2Zmc2UKICAgICAKICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyog
ZnJhZ21lbnRlZEZsb3cgPSBlbmNsb3NpbmdGcmFnbWVudGVkRmxvdygpOwogICAgIGlmICghZnJh
Z21lbnRlZEZsb3cpIHsKLSAgICAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IHZp
ZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+bV9wYWdlTG9n
aWNhbEhlaWdodDsKKyAgICAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IHZpZXco
KS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxI
ZWlnaHQoKTsKICAgICAgICAgTGF5b3V0VW5pdCByZW1haW5pbmdIZWlnaHQgPSBwYWdlTG9naWNh
bEhlaWdodCAtIGludE1vZChvZmZzZXQsIHBhZ2VMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgaWYg
KHBhZ2VCb3VuZGFyeVJ1bGUgPT0gSW5jbHVkZVBhZ2VCb3VuZGFyeSkgewogICAgICAgICAgICAg
Ly8gSWYgaW5jbHVkZUJvdW5kYXJ5UG9pbnQgaXMgdHJ1ZSB0aGUgbGluZSBleGFjdGx5IG9uIHRo
ZSB0b3AgZWRnZSBvZiBhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4
IDIzY2ZmNzIyYjQ2YzIzMmU2MjQzODQ0YTc3NzZiNTQzNGE0N2YxMDMuLjAwN2JmZmM3NjkwMzEx
MjYxMDNjZjFjNmM5YTQxYzA0MGRiM2ZmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCkBAIC0xOTI2LDcgKzE5MjYsNyBAQCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbgog
CiAgICAgaWYgKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNQYWludE9mZnNl
dENhY2hlRW5hYmxlZCgpICYmICFyZXBhaW50Q29udGFpbmVyKSB7CiAgICAgICAgIGF1dG8qIGxh
eW91dFN0YXRlID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0
ZSgpOwotICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zm
c2V0ICsgbG9jYXRpb25PZmZzZXQoKTsKKyAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlv
dXRTdGF0ZS0+cGFpbnRPZmZzZXQoKSArIGxvY2F0aW9uT2Zmc2V0KCk7CiAgICAgICAgIGlmIChz
dHlsZSgpLmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKICAgICAgICAgICAgIG9mZnNl
dCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwogICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKG9mZnNldCk7CkBAIC0yMTUxLDkgKzIxNTEsOSBAQCBMYXlvdXRSZWN0IFJl
bmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNv
bnN0IFJlbmRlcgogICAgICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUobGF5ZXIoKS0+b2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb24oKSk7CiAKICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmVCeShsb2Nh
dGlvbigpKTsKLSAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUobGF5b3V0U3RhdGUtPm1fcGFpbnRP
ZmZzZXQpOwotICAgICAgICBpZiAobGF5b3V0U3RhdGUtPm1fY2xpcHBlZCkKLSAgICAgICAgICAg
IGFkanVzdGVkUmVjdC5pbnRlcnNlY3QobGF5b3V0U3RhdGUtPm1fY2xpcFJlY3QpOworICAgICAg
ICBhZGp1c3RlZFJlY3QubW92ZShsYXlvdXRTdGF0ZS0+cGFpbnRPZmZzZXQoKSk7CisgICAgICAg
IGlmIChsYXlvdXRTdGF0ZS0+aXNDbGlwcGVkKCkpCisgICAgICAgICAgICBhZGp1c3RlZFJlY3Qu
aW50ZXJzZWN0KGxheW91dFN0YXRlLT5jbGlwUmVjdCgpKTsKICAgICAgICAgcmV0dXJuIGFkanVz
dGVkUmVjdDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKaW5kZXggYWNlMjYwNWZmN2Q3NmRkNDYyOWY2NGU5YjJiNGFhZTQzMDgwNTdhOS4uZjAxYWRm
YWI4Y2FkNGMzMjgxMTA0YzY0MmE2NjQ3NmI0NjBmOGFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTEyMjYsOSArMTIyNiw5IEBAIExheW91dFJlY3Qg
UmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCwgY29uc3QgUmVuCiAgICAgICAgIGF1dG8qIGxheW91dFN0YXRlID0gdmlldygpLmZyYW1lVmll
dygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpOwogICAgICAgICBpZiAoc3R5bGUoKS5o
YXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3Qu
bW92ZShsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKLSAgICAgICAgYWRqdXN0
ZWRSZWN0Lm1vdmUobGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQpOwotICAgICAgICBpZiAobGF5
b3V0U3RhdGUtPm1fY2xpcHBlZCkKLSAgICAgICAgICAgIGFkanVzdGVkUmVjdC5pbnRlcnNlY3Qo
bGF5b3V0U3RhdGUtPm1fY2xpcFJlY3QpOworICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShsYXlv
dXRTdGF0ZS0+cGFpbnRPZmZzZXQoKSk7CisgICAgICAgIGlmIChsYXlvdXRTdGF0ZS0+aXNDbGlw
cGVkKCkpCisgICAgICAgICAgICBhZGp1c3RlZFJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRlLT5j
bGlwUmVjdCgpKTsKICAgICAgICAgcmV0dXJuIGFkanVzdGVkUmVjdDsKICAgICB9CiAKQEAgLTEy
OTIsNyArMTI5Miw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250CiAKICAgICBpZiAodmlldygp
LmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc1BhaW50T2Zmc2V0Q2FjaGVFbmFibGVkKCkg
JiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgYXV0byogbGF5b3V0U3RhdGUgPSB2aWV3
KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCk7Ci0gICAgICAgIExh
eW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQ7CisgICAgICAgIExh
eW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUtPnBhaW50T2Zmc2V0KCk7CiAgICAgICAgIGlm
IChzdHlsZSgpLmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKICAgICAgICAgICAgIG9m
ZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwogICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326305</attachid>
            <date>2017-11-07 22:03:14 -0800</date>
            <delta_ts>2017-11-08 07:02:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179409-20171107220313.patch</filename>
            <type>text/plain</type>
            <size>19408</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhMzlhN2VkMjM1NDVk
ZDM0YmMyZjNlNThlMzRhNTY0YWUzZmVkMi4uZGI1YTY2MGFkNTc4MjNhYTE0MzQ5YmQ3MWI2OTAx
NDhkZGM2MjM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTExLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xheW91dFN0YXRlIGNsZWFu
dXBdIE1ha2UgcHVibGljIGRhdGEgbWVtYmVycyBwcml2YXRlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NDA5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNTQwNjE4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBhZ2UvTGF5
b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjpsYXlvdXRE
ZWx0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjphZGRMYXlvdXRE
ZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YU1hdGNo
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0Q29udGV4dDo6cHVzaExheW91dFN0YXRlRm9y
UGFnaW5hdGlvbklmTmVlZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dFN0YXRlOjphZGRMYXlvdXREZWx0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRTdGF0ZTo6bGF5b3V0RGVsdGFNYXRjaGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
TGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpzZXRJc1BhZ2lu
YXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6c2V0UGFnZUxvZ2ljYWxIZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OnBhaW50T2Zmc2V0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpyZW5kZXJlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6Y2xpcFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0U3RhdGU6OmlzQ2xpcHBlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRTdGF0ZTo6bGF5b3V0RGVsdGEgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6b2Zmc2V0RnJvbUxvZ2lj
YWxUb3BPZkZpcnN0UGFnZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y2hpbGRCb3hJc1Vuc3BsaXR0YWJsZUZvckZyYWdtZW50YXRpb24gY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2tGbG93OjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmFwcGx5QmVmb3JlQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93
OjphcHBseUFmdGVyQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpw
YWdlTG9naWNhbFRvcEZvck9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnBhZ2VMb2dpY2FsSGVpZ2h0Rm9yT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6cGFnZVJlbWFpbmluZ0xvZ2ljYWxIZWlnaHRGb3JPZmZz
ZXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
cklubGluZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lciBjb25zdCk6CisKIDIwMTctMTEtMDcg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRoZXJlIGlzIG5v
IHN1Y2ggdGhpbmcgYXMgYmxvY2sgZWxlbWVudCBjb250aW51YXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0xheW91dENvbnRleHQuY3BwCmluZGV4IGRmMTE4NWMxMzhlYzdjMjE2Nzc1ODQ1YjE3MTY3ZmNk
MGJlZGJjNGEuLjRmZTBlMWY4MDhiYzNhMWRlNzEzYWM0YjVhMzI2YTMzZGE0NTgwYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9MYXlvdXRDb250ZXh0LmNwcApAQCAtNTMyLDE5ICs1MzIsMTQgQEAgTGF5
b3V0U2l6ZSBMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YSgpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X2xheW91dFN0YXRlKQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBtX2xheW91dFN0
YXRlLT5tX2xheW91dERlbHRhOworICAgIHJldHVybiBtX2xheW91dFN0YXRlLT5sYXlvdXREZWx0
YSgpOwogfQogICAgIAogdm9pZCBMYXlvdXRDb250ZXh0OjphZGRMYXlvdXREZWx0YShjb25zdCBM
YXlvdXRTaXplJiBkZWx0YSkKIHsKICAgICBpZiAoIW1fbGF5b3V0U3RhdGUpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhICs9IGRlbHRhOwot
I2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhWFNh
dHVyYXRlZCB8PSBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhLndpZHRoKCkgPT0gTGF5b3V0
VW5pdDo6bWF4KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YS53aWR0aCgpID09IExh
eW91dFVuaXQ6Om1pbigpOwotICAgIG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGFZU2F0dXJh
dGVkIHw9IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgPT0gTGF5b3V0VW5p
dDo6bWF4KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YS5oZWlnaHQoKSA9PSBMYXlv
dXRVbml0OjptaW4oKTsKLSNlbmRpZgorICAgIG1fbGF5b3V0U3RhdGUtPmFkZExheW91dERlbHRh
KGRlbHRhKTsKIH0KICAgICAKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC01NTIsNyArNTQ3LDcg
QEAgYm9vbCBMYXlvdXRDb250ZXh0OjpsYXlvdXREZWx0YU1hdGNoZXMoY29uc3QgTGF5b3V0U2l6
ZSYgZGVsdGEpCiB7CiAgICAgaWYgKCFtX2xheW91dFN0YXRlKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmV0dXJuIChkZWx0YS53aWR0aCgpID09IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0
RGVsdGEud2lkdGgoKSB8fCBtX2xheW91dFN0YXRlLT5tX2xheW91dERlbHRhWFNhdHVyYXRlZCkg
JiYgKGRlbHRhLmhlaWdodCgpID09IG1fbGF5b3V0U3RhdGUtPm1fbGF5b3V0RGVsdGEuaGVpZ2h0
KCkgfHwgbV9sYXlvdXRTdGF0ZS0+bV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQpOworICAgIHJldHVy
biBtX2xheW91dFN0YXRlLT5sYXlvdXREZWx0YU1hdGNoZXMoZGVsdGEpOwogfQogI2VuZGlmCiAg
ICAgCkBAIC01NjksOSArNTY0LDkgQEAgYm9vbCBMYXlvdXRDb250ZXh0OjpwdXNoTGF5b3V0U3Rh
dGVGb3JQYWdpbmF0aW9uSWZOZWVkZWQoUmVuZGVyQmxvY2tGbG93JiBsYXlvdXQKICAgICBpZiAo
bV9sYXlvdXRTdGF0ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG1fbGF5b3V0U3RhdGUg
PSBzdGQ6Om1ha2VfdW5pcXVlPExheW91dFN0YXRlPihsYXlvdXRSb290KTsKLSAgICBtX2xheW91
dFN0YXRlLT5tX2lzUGFnaW5hdGVkID0gdHJ1ZTsKKyAgICBtX2xheW91dFN0YXRlLT5zZXRJc1Bh
Z2luYXRlZCgpOwogICAgIC8vIFRoaXMgaXMganVzdCBhIGZsYWcgZm9yIGtub3duIHBhZ2UgaGVp
Z2h0IChzZWUgUmVuZGVyQmxvY2tGbG93OjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0
Q2hhbmdlKS4KLSAgICBtX2xheW91dFN0YXRlLT5tX3BhZ2VMb2dpY2FsSGVpZ2h0ID0gMTsKKyAg
ICBtX2xheW91dFN0YXRlLT5zZXRQYWdlTG9naWNhbEhlaWdodCgxKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4
IGRkMGUxM2RkNjk2MDY1MGRlODJlYWFkYjJmNDQyNjU0NmU5MGY5OTUuLjVlOGI5OTVjZTA3ZmJl
ZDQ2YTQ5MDZiYTkzMjkwZmQxZjk3Mzk1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmNwcApAQCAtNjEsMTQgKzYxLDE0IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0
ZShSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIH0KIAogTGF5b3V0U3RhdGU6OkxheW91dFN0YXRl
KHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gYW5jZXN0b3IsIFJlbmRlckJveCYgcmVuZGVy
ZXIsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdo
dCwgYm9vbCBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQpCi0gICAgOiBtX2NsaXBwZWQoZmFsc2Up
CisgICAgOiBtX2FuY2VzdG9yKFdURk1vdmUoYW5jZXN0b3IpKQorICAgICwgbV9jbGlwcGVkKGZh
bHNlKQogICAgICwgbV9pc1BhZ2luYXRlZChmYWxzZSkKICAgICAsIG1fcGFnZUxvZ2ljYWxIZWln
aHRDaGFuZ2VkKGZhbHNlKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAsIG1fbGF5b3V0RGVs
dGFYU2F0dXJhdGVkKGZhbHNlKQogICAgICwgbV9sYXlvdXREZWx0YVlTYXR1cmF0ZWQoZmFsc2Up
CiAjZW5kaWYKLSAgICAsIG1fYW5jZXN0b3IoV1RGTW92ZShhbmNlc3RvcikpCiAjaWZuZGVmIE5E
RUJVRwogICAgICwgbV9yZW5kZXJlcigmcmVuZGVyZXIpCiAjZW5kaWYKQEAgLTIxOCw2ICsyMTgs
MjIgQEAgdm9pZCBMYXlvdXRTdGF0ZTo6ZXN0YWJsaXNoTGluZUdyaWQoUmVuZGVyQmxvY2tGbG93
JiByZW5kZXJlcikKICAgICBtX2xpbmVHcmlkT2Zmc2V0ID0gbV9sYXlvdXRPZmZzZXQ7CiB9CiAK
K3ZvaWQgTGF5b3V0U3RhdGU6OmFkZExheW91dERlbHRhKExheW91dFNpemUgZGVsdGEpCit7Cisg
ICAgbV9sYXlvdXREZWx0YSArPSBkZWx0YTsKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9s
YXlvdXREZWx0YVhTYXR1cmF0ZWQgfD0gbV9sYXlvdXREZWx0YS53aWR0aCgpID09IExheW91dFVu
aXQ6Om1heCgpIHx8IG1fbGF5b3V0RGVsdGEud2lkdGgoKSA9PSBMYXlvdXRVbml0OjptaW4oKTsK
KyAgICBtX2xheW91dERlbHRhWVNhdHVyYXRlZCB8PSBtX2xheW91dERlbHRhLmhlaWdodCgpID09
IExheW91dFVuaXQ6Om1heCgpIHx8IG1fbGF5b3V0RGVsdGEuaGVpZ2h0KCkgPT0gTGF5b3V0VW5p
dDo6bWluKCk7CisjZW5kaWYKK30KKworI2lmICFBU1NFUlRfRElTQUJMRUQKK2Jvb2wgTGF5b3V0
U3RhdGU6OmxheW91dERlbHRhTWF0Y2hlcyhMYXlvdXRTaXplIGRlbHRhKQoreworICAgIHJldHVy
biAoZGVsdGEud2lkdGgoKSA9PSBtX2xheW91dERlbHRhLndpZHRoKCkgfHwgbV9sYXlvdXREZWx0
YVhTYXR1cmF0ZWQpICYmIChkZWx0YS5oZWlnaHQoKSA9PSBtX2xheW91dERlbHRhLmhlaWdodCgp
IHx8IG1fbGF5b3V0RGVsdGFZU2F0dXJhdGVkKTsKK30KKyNlbmRpZgorCiBMYXlvdXRTdGF0ZU1h
aW50YWluZXI6OkxheW91dFN0YXRlTWFpbnRhaW5lcihSZW5kZXJCb3gmIHJvb3QsIExheW91dFNp
emUgb2Zmc2V0LCBib29sIGRpc2FibGVQYWludE9mZnNldENhY2hlLCBMYXlvdXRVbml0IHBhZ2VI
ZWlnaHQsIGJvb2wgcGFnZUhlaWdodENoYW5nZWQpCiAgICAgOiBtX2xheW91dENvbnRleHQocm9v
dC52aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpKQogICAgICwgbV9wYWludE9mZnNl
dENhY2hlSXNEaXNhYmxlZChkaXNhYmxlUGFpbnRPZmZzZXRDYWNoZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMWRiYjE1YmMzMGY3ZDJhMjI5YjllYWVhNjdlN2Q0
NWE2YmIzNDc1MC4uZDFmMTAyOTliNTQ3NjExY2VhZWU4NTQ0NDM3M2QyMmY1NGM4MmYwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTU1LDEzICs1NSwxNSBAQCBw
dWJsaWM6CiAgICAgTGF5b3V0U3RhdGUoc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBhbmNl
c3RvciwgUmVuZGVyQm94JiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0LCBMYXlvdXRVbml0IHBh
Z2VIZWlnaHQsIGJvb2wgcGFnZUhlaWdodENoYW5nZWQpOwogICAgIGV4cGxpY2l0IExheW91dFN0
YXRlKFJlbmRlckVsZW1lbnQmKTsKIAotICAgIHZvaWQgY2xlYXJQYWdpbmF0aW9uSW5mb3JtYXRp
b24oKTsKICAgICBib29sIGlzUGFnaW5hdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1BhZ2luYXRl
ZDsgfQotICAgIAorICAgIHZvaWQgc2V0SXNQYWdpbmF0ZWQoKSB7IG1faXNQYWdpbmF0ZWQgPSB0
cnVlOyB9CisgICAgdm9pZCBjbGVhclBhZ2luYXRpb25JbmZvcm1hdGlvbigpOworCiAgICAgLy8g
VGhlIHBhZ2UgbG9naWNhbCBvZmZzZXQgaXMgdGhlIG9iamVjdCdzIG9mZnNldCBmcm9tIHRoZSB0
b3Agb2YgdGhlIHBhZ2UgaW4gdGhlIHBhZ2UgcHJvZ3Jlc3Npb24KICAgICAvLyBkaXJlY3Rpb24g
KHNvIGFuIHgtb2Zmc2V0IGluIHZlcnRpY2FsIHRleHQgYW5kIGEgeS1vZmZzZXQgZm9yIGhvcml6
b250YWwgdGV4dCkuCiAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbE9mZnNldChSZW5kZXJCb3gq
LCBMYXlvdXRVbml0IGNoaWxkTG9naWNhbE9mZnNldCkgY29uc3Q7CiAgICAgCisgICAgdm9pZCBz
ZXRQYWdlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpIHsgbV9wYWdlTG9n
aWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7IH0KICAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2Fs
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbEhlaWdodDsgfQogICAgIGJvb2wg
cGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbEhl
aWdodENoYW5nZWQ7IH0KIApAQCAtNjksNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0U2l6
ZSBsaW5lR3JpZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUdyaWRPZmZzZXQ7IH0KICAg
ICBMYXlvdXRTaXplIGxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
bGluZUdyaWRQYWdpbmF0aW9uT3JpZ2luOyB9CiAKKyAgICBMYXlvdXRTaXplIHBhaW50T2Zmc2V0
KCkgY29uc3QgeyByZXR1cm4gbV9wYWludE9mZnNldDsgfQogICAgIExheW91dFNpemUgbGF5b3V0
T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRPZmZzZXQ7IH0KIAogICAgIExheW91dFNp
emUgcGFnZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZU9mZnNldDsgfQpAQCAtNzgsNiAr
ODEsMjAgQEAgcHVibGljOgogCiAgICAgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGN1cnJlbnRSZW5k
ZXJGcmFnbWVudGVkRmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFJlbmRlckZyYWdtZW50
ZWRGbG93OyB9CiAgICAgdm9pZCBzZXRDdXJyZW50UmVuZGVyRnJhZ21lbnRlZEZsb3coUmVuZGVy
RnJhZ21lbnRlZEZsb3cqIGZyYWdtZW50ZWRGbG93KSB7IG1fY3VycmVudFJlbmRlckZyYWdtZW50
ZWRGbG93ID0gZnJhZ21lbnRlZEZsb3c7IH0KKyNpZm5kZWYgTkRFQlVHCisgICAgUmVuZGVyRWxl
bWVudCogcmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlcmVyOyB9CisjZW5kaWYKKyAg
ICBMYXlvdXRSZWN0IGNsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGlwUmVjdDsgfQorICAg
IGJvb2wgaXNDbGlwcGVkKCkgY29uc3QgeyByZXR1cm4gbV9jbGlwcGVkOyB9CisKKyAgICB2b2lk
IGFkZExheW91dERlbHRhKExheW91dFNpemUpOworICAgIExheW91dFNpemUgbGF5b3V0RGVsdGEo
KSBjb25zdCB7IHJldHVybiBtX2xheW91dERlbHRhOyB9CisjaWYgIUFTU0VSVF9ESVNBQkxFRAor
ICAgIGJvb2wgbGF5b3V0RGVsdGFNYXRjaGVzKExheW91dFNpemUpOworI2VuZGlmCisKKyAgICAv
LyBGSVhNRTogd2Via2l0Lm9yZy9iLzE3OTQwOCBMYXlvdXRDb250ZXh0IHNob3VsZCBvd24gdGhl
IHN0YWNrIG9mIExheW91dFN0YXRlIG9iamVjdHMKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0
U3RhdGU+IG1fYW5jZXN0b3I7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlT2Zmc2V0cyhS
ZW5kZXJCb3gmLCBMYXlvdXRTaXplIG9mZnNldCk7CkBAIC04Niw3ICsxMDMsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgcHJvcGFnYXRlTGluZUdyaWRJbmZvKFJlbmRlckJveCYpOwogICAgIHZvaWQg
ZXN0YWJsaXNoTGluZUdyaWQoUmVuZGVyQmxvY2tGbG93Jik7CiAKLXB1YmxpYzoKICAgICAvLyBE
byBub3QgYWRkIGFueXRoaW5nIGFwYXJ0IGZyb20gYml0ZmllbGRzLiBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDE3MwogICAgIGJvb2wgbV9jbGlwcGVkIDog
MTsKICAgICBib29sIG1faXNQYWdpbmF0ZWQgOiAxOwpAQCAtOTksNyArMTE1LDYgQEAgcHVibGlj
OgogCiAgICAgLy8gVGhlIGN1cnJlbnQgbGluZSBncmlkIHRoYXQgd2UncmUgc25hcHBpbmcgdG8g
YW5kIHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBncmlkLgogICAgIFJlbmRlckJsb2Nr
RmxvdyogbV9saW5lR3JpZCB7IG51bGxwdHIgfTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0
U3RhdGU+IG1fYW5jZXN0b3I7CiAKICAgICAvLyBGSVhNRTogRGlzdGluZ3Vpc2ggYmV0d2VlbiB0
aGUgbGF5b3V0IGNsaXAgcmVjdCBhbmQgdGhlIHBhaW50IGNsaXAgcmVjdCB3aGljaCBtYXkgYmUg
bGFyZ2VyLAogICAgIC8vIGUuZy4sIGJlY2F1c2Ugb2YgY29tcG9zaXRlZCBzY3JvbGxpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAyMjg1NDk5YTFiZjk3
NzZlMzM0YjY4Mzk2NzZhOTdlZjgyODZlNzAzLi45YjJlNDQ1Y2MwN2QzMmViMjY1MzVjN2E2M2Vj
NjE2MzhkYTVhOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
QEAgLTMzMjAsOSArMzMyMCw5IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6Om9mZnNldEZyb21M
b2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSBjb25zdAogICAgICAgICByZXR1cm4gZnJhZ21lbnRlZEZs
b3ctPm9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdEZyYWdtZW50KHRoaXMpOwogCiAgICAgaWYg
KGxheW91dFN0YXRlKSB7Ci0gICAgICAgIEFTU0VSVChsYXlvdXRTdGF0ZS0+bV9yZW5kZXJlciA9
PSB0aGlzKTsKKyAgICAgICAgQVNTRVJUKGxheW91dFN0YXRlLT5yZW5kZXJlcigpID09IHRoaXMp
OwogCi0gICAgICAgIExheW91dFNpemUgb2Zmc2V0RGVsdGEgPSBsYXlvdXRTdGF0ZS0+bV9sYXlv
dXRPZmZzZXQgLSBsYXlvdXRTdGF0ZS0+bV9wYWdlT2Zmc2V0OworICAgICAgICBMYXlvdXRTaXpl
IG9mZnNldERlbHRhID0gbGF5b3V0U3RhdGUtPmxheW91dE9mZnNldCgpIC0gbGF5b3V0U3RhdGUt
PnBhZ2VPZmZzZXQoKTsKICAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBvZmZzZXREZWx0YS5oZWlnaHQoKSA6IG9mZnNldERlbHRhLndpZHRoKCk7CiAgICAgfQogICAg
IApAQCAtMzM1Nyw3ICszMzU3LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6Y2hpbGRCb3hJc1Vuc3Bs
aXR0YWJsZUZvckZyYWdtZW50YXRpb24oY29uc3QgUmVuZGVyQm94JiBjaGlsZCkKIHsKICAgICBS
ZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBlbmNsb3NpbmdGcmFnbWVudGVk
RmxvdygpOwogICAgIGJvb2wgY2hlY2tDb2x1bW5CcmVha3MgPSBmcmFnbWVudGVkRmxvdyAmJiBm
cmFnbWVudGVkRmxvdy0+c2hvdWxkQ2hlY2tDb2x1bW5CcmVha3MoKTsKLSAgICBib29sIGNoZWNr
UGFnZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJyZWFrcyAmJiB2aWV3KCkuZnJhbWVWaWV3KCkubGF5
b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCktPm1fcGFnZUxvZ2ljYWxIZWlnaHQ7CisgICAgYm9v
bCBjaGVja1BhZ2VCcmVha3MgPSAhY2hlY2tDb2x1bW5CcmVha3MgJiYgdmlldygpLmZyYW1lVmll
dygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpLT5wYWdlTG9naWNhbEhlaWdodCgpOwog
ICAgIHJldHVybiBjaGlsZC5pc1Vuc3BsaXR0YWJsZUZvclBhZ2luYXRpb24oKSB8fCBjaGlsZC5z
dHlsZSgpLmJyZWFrSW5zaWRlKCkgPT0gQXZvaWRCcmVha0luc2lkZQogICAgICAgICB8fCAoY2hl
Y2tDb2x1bW5CcmVha3MgJiYgY2hpbGQuc3R5bGUoKS5icmVha0luc2lkZSgpID09IEF2b2lkQ29s
dW1uQnJlYWtJbnNpZGUpCiAgICAgICAgIHx8IChjaGVja1BhZ2VCcmVha3MgJiYgY2hpbGQuc3R5
bGUoKS5icmVha0luc2lkZSgpID09IEF2b2lkUGFnZUJyZWFrSW5zaWRlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggOTQzZWVlNjA4YmM4OWZk
ODFjM2ViNjUwYzA4OTM1YTEwZjEyZTAxZi4uYjJkMWJkNjU5Yjk5ZDEzNmM5MzU3NTIyZmExZGY1
MzZhZTA2NDUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAKQEAgLTUwMSw3ICs1MDEsNiBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0Qmxv
Y2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSAogICAgICAg
ICAgICAgc2V0SGFzTWFyZ2luQWZ0ZXJRdWlyayhzdHlsZVRvVXNlLmhhc01hcmdpbkFmdGVyUXVp
cmsoKSk7CiAgICAgICAgICAgICBzZXRQYWdpbmF0aW9uU3RydXQoMCk7CiAgICAgICAgIH0KLQog
ICAgICAgICBMYXlvdXRVbml0IG1heEZsb2F0TG9naWNhbEJvdHRvbSA9IDA7CiAgICAgICAgIGlm
ICghZmlyc3RDaGlsZCgpICYmICFpc0Fub255bW91c0Jsb2NrKCkpCiAgICAgICAgICAgICBzZXRD
aGlsZHJlbklubGluZSh0cnVlKTsKQEAgLTU1NCw5ICs1NTMsOCBAQCB2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VM
b2dpY2FsSAogCiAgICAgICAgIGZpdEJvcmRlclRvTGluZXNJZk5lZWRlZCgpOwogICAgIH0KLQog
ICAgIGF1dG8qIHN0YXRlID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlv
dXRTdGF0ZSgpOwotICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS0+bV9wYWdlTG9naWNhbEhlaWdodCkK
KyAgICBpZiAoc3RhdGUgJiYgc3RhdGUtPnBhZ2VMb2dpY2FsSGVpZ2h0KCkpCiAgICAgICAgIHNl
dFBhZ2VMb2dpY2FsT2Zmc2V0KHN0YXRlLT5wYWdlTG9naWNhbE9mZnNldCh0aGlzLCBsb2dpY2Fs
VG9wKCkpKTsKIAogICAgIHVwZGF0ZUxheWVyVHJhbnNmb3JtKCk7CkBAIC0xNDk5LDcgKzE0OTcs
NyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6YXBwbHlCZWZvcmVCcmVhayhSZW5kZXJC
b3gmIGNoaWxkLCBMYXlvdXRVbml0IGxvZ2ljYQogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBm
cmFnbWVudGVkRmxvdyA9IGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCk7CiAgICAgYm9vbCBpc0lu
c2lkZU11bHRpY29sRmxvdyA9IGZyYWdtZW50ZWRGbG93OwogICAgIGJvb2wgY2hlY2tDb2x1bW5C
cmVha3MgPSBmcmFnbWVudGVkRmxvdyAmJiBmcmFnbWVudGVkRmxvdy0+c2hvdWxkQ2hlY2tDb2x1
bW5CcmVha3MoKTsKLSAgICBib29sIGNoZWNrUGFnZUJyZWFrcyA9ICFjaGVja0NvbHVtbkJyZWFr
cyAmJiB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCktPm1f
cGFnZUxvZ2ljYWxIZWlnaHQ7IC8vIEZJWE1FOiBPbmNlIGNvbHVtbnMgY2FuIHByaW50IHdlIGhh
dmUgdG8gY2hlY2sgdGhpcy4KKyAgICBib29sIGNoZWNrUGFnZUJyZWFrcyA9ICFjaGVja0NvbHVt
bkJyZWFrcyAmJiB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRl
KCktPnBhZ2VMb2dpY2FsSGVpZ2h0KCk7IC8vIEZJWE1FOiBPbmNlIGNvbHVtbnMgY2FuIHByaW50
IHdlIGhhdmUgdG8gY2hlY2sgdGhpcy4KICAgICBib29sIGNoZWNrRnJhZ21lbnRCcmVha3MgPSBm
YWxzZTsKICAgICBib29sIGNoZWNrQmVmb3JlQWx3YXlzID0gKGNoZWNrQ29sdW1uQnJlYWtzICYm
IGNoaWxkLnN0eWxlKCkuYnJlYWtCZWZvcmUoKSA9PSBDb2x1bW5CcmVha0JldHdlZW4pCiAgICAg
ICAgIHx8IChjaGVja1BhZ2VCcmVha3MgJiYgYWx3YXlzUGFnZUJyZWFrKGNoaWxkLnN0eWxlKCku
YnJlYWtCZWZvcmUoKSkpOwpAQCAtMTUyNCw3ICsxNTIyLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJC
bG9ja0Zsb3c6OmFwcGx5QWZ0ZXJCcmVhayhSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0IGxv
Z2ljYWwKICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBlbmNsb3Np
bmdGcmFnbWVudGVkRmxvdygpOwogICAgIGJvb2wgaXNJbnNpZGVNdWx0aWNvbEZsb3cgPSBmcmFn
bWVudGVkRmxvdzsKICAgICBib29sIGNoZWNrQ29sdW1uQnJlYWtzID0gZnJhZ21lbnRlZEZsb3cg
JiYgZnJhZ21lbnRlZEZsb3ctPnNob3VsZENoZWNrQ29sdW1uQnJlYWtzKCk7Ci0gICAgYm9vbCBj
aGVja1BhZ2VCcmVha3MgPSAhY2hlY2tDb2x1bW5CcmVha3MgJiYgdmlldygpLmZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpLT5tX3BhZ2VMb2dpY2FsSGVpZ2h0OyAvLyBG
SVhNRTogT25jZSBjb2x1bW5zIGNhbiBwcmludCB3ZSBoYXZlIHRvIGNoZWNrIHRoaXMuCisgICAg
Ym9vbCBjaGVja1BhZ2VCcmVha3MgPSAhY2hlY2tDb2x1bW5CcmVha3MgJiYgdmlldygpLmZyYW1l
VmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpLT5wYWdlTG9naWNhbEhlaWdodCgp
OyAvLyBGSVhNRTogT25jZSBjb2x1bW5zIGNhbiBwcmludCB3ZSBoYXZlIHRvIGNoZWNrIHRoaXMu
CiAgICAgYm9vbCBjaGVja0ZyYWdtZW50QnJlYWtzID0gZmFsc2U7CiAgICAgYm9vbCBjaGVja0Fm
dGVyQWx3YXlzID0gKGNoZWNrQ29sdW1uQnJlYWtzICYmIGNoaWxkLnN0eWxlKCkuYnJlYWtBZnRl
cigpID09IENvbHVtbkJyZWFrQmV0d2VlbikKICAgICAgICAgfHwgKGNoZWNrUGFnZUJyZWFrcyAm
JiBhbHdheXNQYWdlQnJlYWsoY2hpbGQuc3R5bGUoKS5icmVha0FmdGVyKCkpKTsKQEAgLTE5MTEs
MTIgKzE5MDksMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OnBhZ2VMb2dpY2FsVG9w
Rm9yT2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0KSBjb25zdAogICAgIC8vIFVuc3BsaXR0YWJsZSBv
YmplY3RzIGNsZWFyIG91dCB0aGUgcGFnZUxvZ2ljYWxIZWlnaHQgaW4gdGhlIGxheW91dCBzdGF0
ZSBhcyBhIHdheSBvZiBzaWduYWxpbmcgdGhhdCBubwogICAgIC8vIHBhZ2luYXRpb24gc2hvdWxk
IG9jY3VyLiBUaGVyZWZvcmUgd2UgaGF2ZSB0byBjaGVjayB0aGlzIGZpcnN0IGFuZCBiYWlsIGlm
IHRoZSB2YWx1ZSBoYXMgYmVlbiBzZXQgdG8gMC4KICAgICBhdXRvKiBsYXlvdXRTdGF0ZSA9IHZp
ZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKTsKLSAgICBMYXlv
dXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gbGF5b3V0U3RhdGUtPm1fcGFnZUxvZ2ljYWxIZWln
aHQ7CisgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IGxheW91dFN0YXRlLT5wYWdl
TG9naWNhbEhlaWdodCgpOwogICAgIGlmICghcGFnZUxvZ2ljYWxIZWlnaHQpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgTGF5b3V0VW5pdCBmaXJzdFBhZ2VMb2dpY2FsVG9wID0gaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IGxheW91dFN0YXRlLT5tX3BhZ2VPZmZzZXQuaGVpZ2h0KCkgOiBs
YXlvdXRTdGF0ZS0+bV9wYWdlT2Zmc2V0LndpZHRoKCk7Ci0gICAgTGF5b3V0VW5pdCBibG9ja0xv
Z2ljYWxUb3AgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0U3RhdGUtPm1fbGF5
b3V0T2Zmc2V0LmhlaWdodCgpIDogbGF5b3V0U3RhdGUtPm1fbGF5b3V0T2Zmc2V0LndpZHRoKCk7
CisgICAgTGF5b3V0VW5pdCBmaXJzdFBhZ2VMb2dpY2FsVG9wID0gaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IGxheW91dFN0YXRlLT5wYWdlT2Zmc2V0KCkuaGVpZ2h0KCkgOiBsYXlvdXRTdGF0
ZS0+cGFnZU9mZnNldCgpLndpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBibG9ja0xvZ2ljYWxUb3Ag
PSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0U3RhdGUtPmxheW91dE9mZnNldCgp
LmhlaWdodCgpIDogbGF5b3V0U3RhdGUtPmxheW91dE9mZnNldCgpLndpZHRoKCk7CiAKICAgICBM
YXlvdXRVbml0IGN1bXVsYXRpdmVPZmZzZXQgPSBvZmZzZXQgKyBibG9ja0xvZ2ljYWxUb3A7CiAg
ICAgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGZyYWdtZW50ZWRGbG93ID0gZW5jbG9zaW5nRnJhZ21l
bnRlZEZsb3coKTsKQEAgLTE5MjksNyArMTkyNyw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tG
bG93OjpwYWdlTG9naWNhbEhlaWdodEZvck9mZnNldChMYXlvdXRVbml0IG9mZnNldCkgY29uc3QK
IHsKICAgICAvLyBVbnNwbGl0dGFibGUgb2JqZWN0cyBjbGVhciBvdXQgdGhlIHBhZ2VMb2dpY2Fs
SGVpZ2h0IGluIHRoZSBsYXlvdXQgc3RhdGUgYXMgYSB3YXkgb2Ygc2lnbmFsaW5nIHRoYXQgbm8K
ICAgICAvLyBwYWdpbmF0aW9uIHNob3VsZCBvY2N1ci4gVGhlcmVmb3JlIHdlIGhhdmUgdG8gY2hl
Y2sgdGhpcyBmaXJzdCBhbmQgYmFpbCBpZiB0aGUgdmFsdWUgaGFzIGJlZW4gc2V0IHRvIDAuCi0g
ICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlv
dXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+bV9wYWdlTG9naWNhbEhlaWdodDsKKyAgICBMYXlv
dXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRl
eHQoKS5sYXlvdXRTdGF0ZSgpLT5wYWdlTG9naWNhbEhlaWdodCgpOwogICAgIGlmICghcGFnZUxv
Z2ljYWxIZWlnaHQpCiAgICAgICAgIHJldHVybiAwOwogICAgIApAQCAtMTk0Niw3ICsxOTQ0LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6OnBhZ2VSZW1haW5pbmdMb2dpY2FsSGVpZ2h0
Rm9yT2Zmc2V0KExheW91dFVuaXQgb2Zmc2UKICAgICAKICAgICBSZW5kZXJGcmFnbWVudGVkRmxv
dyogZnJhZ21lbnRlZEZsb3cgPSBlbmNsb3NpbmdGcmFnbWVudGVkRmxvdygpOwogICAgIGlmICgh
ZnJhZ21lbnRlZEZsb3cpIHsKLSAgICAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9
IHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+bV9wYWdl
TG9naWNhbEhlaWdodDsKKyAgICAgICAgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IHZp
ZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2lj
YWxIZWlnaHQoKTsKICAgICAgICAgTGF5b3V0VW5pdCByZW1haW5pbmdIZWlnaHQgPSBwYWdlTG9n
aWNhbEhlaWdodCAtIGludE1vZChvZmZzZXQsIHBhZ2VMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAg
aWYgKHBhZ2VCb3VuZGFyeVJ1bGUgPT0gSW5jbHVkZVBhZ2VCb3VuZGFyeSkgewogICAgICAgICAg
ICAgLy8gSWYgaW5jbHVkZUJvdW5kYXJ5UG9pbnQgaXMgdHJ1ZSB0aGUgbGluZSBleGFjdGx5IG9u
IHRoZSB0b3AgZWRnZSBvZiBhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IDIzY2ZmNzIyYjQ2YzIzMmU2MjQzODQ0YTc3NzZiNTQzNGE0N2YxMDMuLjAwN2JmZmM3Njkw
MzExMjYxMDNjZjFjNmM5YTQxYzA0MGRiM2ZmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC0xOTI2LDcgKzE5MjYsNyBAQCB2b2lkIFJlbmRlckJveDo6bWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bgogCiAgICAgaWYgKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNQYWludE9m
ZnNldENhY2hlRW5hYmxlZCgpICYmICFyZXBhaW50Q29udGFpbmVyKSB7CiAgICAgICAgIGF1dG8q
IGxheW91dFN0YXRlID0gdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRT
dGF0ZSgpOwotICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50
T2Zmc2V0ICsgbG9jYXRpb25PZmZzZXQoKTsKKyAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBs
YXlvdXRTdGF0ZS0+cGFpbnRPZmZzZXQoKSArIGxvY2F0aW9uT2Zmc2V0KCk7CiAgICAgICAgIGlm
IChzdHlsZSgpLmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKICAgICAgICAgICAgIG9m
ZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwogICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CkBAIC0yMTUxLDkgKzIxNTEsOSBAQCBMYXlvdXRSZWN0
IFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IExheW91dFJlY3QmIHJlY3Qs
IGNvbnN0IFJlbmRlcgogICAgICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUobGF5ZXIoKS0+b2Zm
c2V0Rm9ySW5GbG93UG9zaXRpb24oKSk7CiAKICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmVCeShs
b2NhdGlvbigpKTsKLSAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUobGF5b3V0U3RhdGUtPm1fcGFp
bnRPZmZzZXQpOwotICAgICAgICBpZiAobGF5b3V0U3RhdGUtPm1fY2xpcHBlZCkKLSAgICAgICAg
ICAgIGFkanVzdGVkUmVjdC5pbnRlcnNlY3QobGF5b3V0U3RhdGUtPm1fY2xpcFJlY3QpOworICAg
ICAgICBhZGp1c3RlZFJlY3QubW92ZShsYXlvdXRTdGF0ZS0+cGFpbnRPZmZzZXQoKSk7CisgICAg
ICAgIGlmIChsYXlvdXRTdGF0ZS0+aXNDbGlwcGVkKCkpCisgICAgICAgICAgICBhZGp1c3RlZFJl
Y3QuaW50ZXJzZWN0KGxheW91dFN0YXRlLT5jbGlwUmVjdCgpKTsKICAgICAgICAgcmV0dXJuIGFk
anVzdGVkUmVjdDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5jcHAKaW5kZXggYWNlMjYwNWZmN2Q3NmRkNDYyOWY2NGU5YjJiNGFhZTQzMDgwNTdhOS4uZjAx
YWRmYWI4Y2FkNGMzMjgxMTA0YzY0MmE2NjQ3NmI0NjBmOGFkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTEyMjYsOSArMTIyNiw5IEBAIExheW91dFJl
Y3QgUmVuZGVySW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYg
cmVjdCwgY29uc3QgUmVuCiAgICAgICAgIGF1dG8qIGxheW91dFN0YXRlID0gdmlldygpLmZyYW1l
VmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpOwogICAgICAgICBpZiAoc3R5bGUo
KS5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCiAgICAgICAgICAgICBhZGp1c3RlZFJl
Y3QubW92ZShsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpKTsKLSAgICAgICAgYWRq
dXN0ZWRSZWN0Lm1vdmUobGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQpOwotICAgICAgICBpZiAo
bGF5b3V0U3RhdGUtPm1fY2xpcHBlZCkKLSAgICAgICAgICAgIGFkanVzdGVkUmVjdC5pbnRlcnNl
Y3QobGF5b3V0U3RhdGUtPm1fY2xpcFJlY3QpOworICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShs
YXlvdXRTdGF0ZS0+cGFpbnRPZmZzZXQoKSk7CisgICAgICAgIGlmIChsYXlvdXRTdGF0ZS0+aXND
bGlwcGVkKCkpCisgICAgICAgICAgICBhZGp1c3RlZFJlY3QuaW50ZXJzZWN0KGxheW91dFN0YXRl
LT5jbGlwUmVjdCgpKTsKICAgICAgICAgcmV0dXJuIGFkanVzdGVkUmVjdDsKICAgICB9CiAKQEAg
LTEyOTIsNyArMTI5Miw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250CiAKICAgICBpZiAodmll
dygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc1BhaW50T2Zmc2V0Q2FjaGVFbmFibGVk
KCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgYXV0byogbGF5b3V0U3RhdGUgPSB2
aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dFN0YXRlKCk7Ci0gICAgICAg
IExheW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQ7CisgICAgICAg
IExheW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUtPnBhaW50T2Zmc2V0KCk7CiAgICAgICAg
IGlmIChzdHlsZSgpLmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKICAgICAgICAgICAg
IG9mZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwogICAgICAgICB0
cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>