<?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>64329</bug_id>
          
          <creation_ts>2011-07-11 16:56:38 -0700</creation_ts>
          <short_desc>Switch preferred width/height and columns to to new layout types</short_desc>
          <delta_ts>2011-07-12 11:42:36 -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>
          
          <blocked>63567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>435312</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-11 16:56:38 -0700</bug_when>
    <thetext>Convert preferred width/height and columns to new layout types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435330</commentid>
    <comment_count>1</comment_count>
      <attachid>100388</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-07-11 17:30:08 -0700</bug_when>
    <thetext>Created attachment 100388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435820</commentid>
    <comment_count>2</comment_count>
      <attachid>100388</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 11:42:32 -0700</bug_when>
    <thetext>Comment on attachment 100388
Patch

Clearing flags on attachment: 100388

Committed r90833: &lt;http://trac.webkit.org/changeset/90833&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435821</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 11:42:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100388</attachid>
            <date>2011-07-11 17:30:08 -0700</date>
            <delta_ts>2011-07-12 11:42:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64329-20110711173007.patch</filename>
            <type>text/plain</type>
            <size>20958</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwNzk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDctMTEgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFN3aXRjaCBwcmVmZXJyZWQgd2lk
dGgvaGVpZ2h0IGFuZCBjb2x1bW5zIHRvIHRvIG5ldyBsYXlvdXQgdHlwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MzI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBuZXcg
ZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9MYXlvdXRUeXBlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6Y2VpbGVkTGF5b3V0VW5pdCk6CisgICAgICAgIEFkZCBjZWlsZWRMYXlv
dXRVbml0IHRvIGdvIHdpdGggdGhlIGZsb29yZWQgdmVyc2lvbi4KKyAgICAgICAgCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjphZGp1c3RSZWN0Rm9yQ29sdW1ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6YWRqdXN0U3RhcnRFZGdlRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1
bW5zKToKKyAgICAgICAgUmVuYW1lIHJlY3QgdmVyc2lvbiBvZiBmbGlwRm9yV3JpdGluZ01vZGVJ
bmNsdWRpbmdDb2x1bW5zIHRvCisgICAgICAgIGFkanVzdFN0YXJ0RWRnZUZvcldyaXRpbmdNb2Rl
SW5jbHVkaW5nQ29sdW1ucyBhcyBpdCBhZGp1c3QgdGhlIHN0YXJ0IGVkZ2UKKyAgICAgICAgYW5k
IGRvZXMgbm90IGZsaXAgdGhlIHJlY3QuCisgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6YWRqdXN0Rm9yQ29sdW1ucyk6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVQcmVm
ZXJyZWRXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om9mZnNldEZyb21Db250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21w
dXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
OjpmbGlwRm9yV3JpdGluZ01vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpmbGlw
Rm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om1pblByZWZlcnJlZExv
Z2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om1heFByZWZlcnJl
ZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmFkanVzdEZv
ckNvbHVtbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsSGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGFibGVMYXlvdXQuaDoKKwogMjAxMS0w
Ny0xMSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3dp
dGNoIGxpbmVUb3AgYW5kIGxpbmVCb3R0b20gdG8gbmV3IGxheW91dCB0eXBlcwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFR5cGVzLmgJKHJldmlzaW9uIDkwNzkxKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTcx
LDYgKzcxLDExIEBAIGlubGluZSBMYXlvdXRVbml0IHJvdW5kZWRMYXlvdXRVbml0KGZsb2EKICAg
ICByZXR1cm4gbHJvdW5kZih2YWx1ZSk7CiB9CiAKK2lubGluZSBMYXlvdXRVbml0IGNlaWxlZExh
eW91dFVuaXQoZmxvYXQgdmFsdWUpCit7CisgICAgcmV0dXJuIGNlaWxmKHZhbHVlKTsKK30KKwog
aW5saW5lIExheW91dFNpemUgdG9MYXlvdXRTaXplKGNvbnN0IExheW91dFBvaW50JiBwKQogewog
ICAgIHJldHVybiBMYXlvdXRTaXplKHAueCgpLCBwLnkoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDkwNzkxKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ5MSw3
ICs0NDkxLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0UG9pbnRUb0NvbHVtbkNvbgogICAg
IH0KIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0UmVjdEZvckNvbHVtbnMoSW50UmVjdCYg
cikgY29uc3QKK3ZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdFJlY3RGb3JDb2x1bW5zKExheW91dFJl
Y3QmIHIpIGNvbnN0CiB7CiAgICAgLy8gSnVzdCBiYWlsIGlmIHdlIGhhdmUgbm8gY29sdW1ucy4K
ICAgICBpZiAoIWhhc0NvbHVtbnMoKSkKQEAgLTQ1MDAsMjUgKzQ1MDAsMjUgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6YWRqdXN0UmVjdEZvckNvbHVtbnMoSQogICAgIENvbHVtbkluZm8qIGNvbEluZm8g
PSBjb2x1bW5JbmZvKCk7CiAKICAgICAvLyBCZWdpbiB3aXRoIGEgcmVzdWx0IHJlY3QgdGhhdCBp
cyBlbXB0eS4KLSAgICBJbnRSZWN0IHJlc3VsdDsKKyAgICBMYXlvdXRSZWN0IHJlc3VsdDsKICAg
ICAKICAgICAvLyBEZXRlcm1pbmUgd2hpY2ggY29sdW1ucyB3ZSBpbnRlcnNlY3QuCiAgICAgdW5z
aWduZWQgY29sQ291bnQgPSBjb2x1bW5Db3VudChjb2xJbmZvKTsKICAgICBpZiAoIWNvbENvdW50
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaW50IGxvZ2ljYWxMZWZ0ID0gbG9naWNhbExl
ZnRPZmZzZXRGb3JDb250ZW50KCk7Ci0gICAgaW50IGN1cnJMb2dpY2FsT2Zmc2V0ID0gMDsKKyAg
ICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0ID0gbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KCk7
CisgICAgTGF5b3V0VW5pdCBjdXJyTG9naWNhbE9mZnNldCA9IDA7CiAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgY29sQ291bnQ7IGkrKykgewotICAgICAgICBJbnRSZWN0IGNvbFJlY3Qg
PSBjb2x1bW5SZWN0QXQoY29sSW5mbywgaSk7Ci0gICAgICAgIEludFJlY3QgcmVwYWludFJlY3Qg
PSByOworICAgICAgICBMYXlvdXRSZWN0IGNvbFJlY3QgPSBjb2x1bW5SZWN0QXQoY29sSW5mbywg
aSk7CisgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QgPSByOwogICAgICAgICBpZiAoaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgaW50IGN1cnJYT2Zmc2V0ID0g
Y29sUmVjdC54KCkgLSBsb2dpY2FsTGVmdDsKKyAgICAgICAgICAgIExheW91dFVuaXQgY3VyclhP
ZmZzZXQgPSBjb2xSZWN0LngoKSAtIGxvZ2ljYWxMZWZ0OwogICAgICAgICAgICAgcmVwYWludFJl
Y3QubW92ZShjdXJyWE9mZnNldCwgY3VyckxvZ2ljYWxPZmZzZXQpOwogICAgICAgICAgICAgY3Vy
ckxvZ2ljYWxPZmZzZXQgLT0gY29sUmVjdC5oZWlnaHQoKTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGludCBjdXJyWU9mZnNldCA9IGNvbFJlY3QueSgpIC0gbG9naWNhbExlZnQ7Cisg
ICAgICAgICAgICBMYXlvdXRVbml0IGN1cnJZT2Zmc2V0ID0gY29sUmVjdC55KCkgLSBsb2dpY2Fs
TGVmdDsKICAgICAgICAgICAgIHJlcGFpbnRSZWN0Lm1vdmUoY3VyckxvZ2ljYWxPZmZzZXQsIGN1
cnJZT2Zmc2V0KTsKICAgICAgICAgICAgIGN1cnJMb2dpY2FsT2Zmc2V0IC09IGNvbFJlY3Qud2lk
dGgoKTsKICAgICAgICAgfQpAQCAtNDUyOSw1NiArNDUyOSw1NyBAQCB2b2lkIFJlbmRlckJsb2Nr
OjphZGp1c3RSZWN0Rm9yQ29sdW1ucyhJCiAgICAgciA9IHJlc3VsdDsKIH0KIAotSW50UG9pbnQg
UmVuZGVyQmxvY2s6OmZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMoY29uc3QgSW50
UG9pbnQmIHBvaW50KSBjb25zdAorTGF5b3V0UG9pbnQgUmVuZGVyQmxvY2s6OmZsaXBGb3JXcml0
aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KSBjb25zdAog
ewogICAgIEFTU0VSVChoYXNDb2x1bW5zKCkpOwogICAgIGlmICghaGFzQ29sdW1ucygpIHx8ICFz
dHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICByZXR1cm4gcG9p
bnQ7CiAgICAgQ29sdW1uSW5mbyogY29sSW5mbyA9IGNvbHVtbkluZm8oKTsKLSAgICBpbnQgY29s
dW1uTG9naWNhbEhlaWdodCA9IGNvbEluZm8tPmNvbHVtbkhlaWdodCgpOwotICAgIGludCBleHBh
bmRlZExvZ2ljYWxIZWlnaHQgPSBib3JkZXJCZWZvcmUoKSArIHBhZGRpbmdCZWZvcmUoKSArIGNv
bHVtbkNvdW50KGNvbEluZm8pICogY29sdW1uTG9naWNhbEhlaWdodCArIGJvcmRlckFmdGVyKCkg
KyBwYWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKKyAgICBMYXlvdXRV
bml0IGNvbHVtbkxvZ2ljYWxIZWlnaHQgPSBjb2xJbmZvLT5jb2x1bW5IZWlnaHQoKTsKKyAgICBM
YXlvdXRVbml0IGV4cGFuZGVkTG9naWNhbEhlaWdodCA9IGJvcmRlckJlZm9yZSgpICsgcGFkZGlu
Z0JlZm9yZSgpICsgY29sdW1uQ291bnQoY29sSW5mbykgKiBjb2x1bW5Mb2dpY2FsSGVpZ2h0ICsg
Ym9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgp
OwogICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICAgICByZXR1cm4gSW50
UG9pbnQocG9pbnQueCgpLCBleHBhbmRlZExvZ2ljYWxIZWlnaHQgLSBwb2ludC55KCkpOwotICAg
IHJldHVybiBJbnRQb2ludChleHBhbmRlZExvZ2ljYWxIZWlnaHQgLSBwb2ludC54KCksIHBvaW50
LnkoKSk7CisgICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCksIGV4cGFuZGVkTG9n
aWNhbEhlaWdodCAtIHBvaW50LnkoKSk7CisgICAgcmV0dXJuIExheW91dFBvaW50KGV4cGFuZGVk
TG9naWNhbEhlaWdodCAtIHBvaW50LngoKSwgcG9pbnQueSgpKTsKIH0KIAotdm9pZCBSZW5kZXJC
bG9jazo6ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhJbnRSZWN0JiByZWN0KSBj
b25zdAordm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0U3RhcnRFZGdlRm9yV3JpdGluZ01vZGVJbmNs
dWRpbmdDb2x1bW5zKExheW91dFJlY3QmIHJlY3QpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc0Nv
bHVtbnMoKSk7CiAgICAgaWYgKCFoYXNDb2x1bW5zKCkgfHwgIXN0eWxlKCktPmlzRmxpcHBlZEJs
b2Nrc1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBDb2x1bW5JbmZv
KiBjb2xJbmZvID0gY29sdW1uSW5mbygpOwotICAgIGludCBjb2x1bW5Mb2dpY2FsSGVpZ2h0ID0g
Y29sSW5mby0+Y29sdW1uSGVpZ2h0KCk7Ci0gICAgaW50IGV4cGFuZGVkTG9naWNhbEhlaWdodCA9
IGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0JlZm9yZSgpICsgY29sdW1uQ291bnQoY29sSW5mbykg
KiBjb2x1bW5Mb2dpY2FsSGVpZ2h0ICsgYm9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpICsg
c2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOworICAgIExheW91dFVuaXQgY29sdW1uTG9naWNhbEhl
aWdodCA9IGNvbEluZm8tPmNvbHVtbkhlaWdodCgpOworICAgIExheW91dFVuaXQgZXhwYW5kZWRM
b2dpY2FsSGVpZ2h0ID0gYm9yZGVyQmVmb3JlKCkgKyBwYWRkaW5nQmVmb3JlKCkgKyBjb2x1bW5D
b3VudChjb2xJbmZvKSAqIGNvbHVtbkxvZ2ljYWxIZWlnaHQgKyBib3JkZXJBZnRlcigpICsgcGFk
ZGluZ0FmdGVyKCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CisgICAgCiAgICAgaWYgKGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJlY3Quc2V0WShleHBhbmRlZExvZ2lj
YWxIZWlnaHQgLSByZWN0Lm1heFkoKSk7CiAgICAgZWxzZQogICAgICAgICByZWN0LnNldFgoZXhw
YW5kZWRMb2dpY2FsSGVpZ2h0IC0gcmVjdC5tYXhYKCkpOwogfQogCi12b2lkIFJlbmRlckJsb2Nr
OjphZGp1c3RGb3JDb2x1bW5zKEludFNpemUmIG9mZnNldCwgY29uc3QgSW50UG9pbnQmIHBvaW50
KSBjb25zdAordm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQ29sdW1ucyhMYXlvdXRTaXplJiBv
ZmZzZXQsIGNvbnN0IExheW91dFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICBpZiAoIWhhc0Nv
bHVtbnMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ29sdW1uSW5mbyogY29sSW5mbyA9IGNv
bHVtbkluZm8oKTsKIAotICAgIGludCBsb2dpY2FsTGVmdCA9IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9y
Q29udGVudCgpOworICAgIExheW91dFVuaXQgbG9naWNhbExlZnQgPSBsb2dpY2FsTGVmdE9mZnNl
dEZvckNvbnRlbnQoKTsKICAgICBzaXplX3QgY29sQ291bnQgPSBjb2x1bW5Db3VudChjb2xJbmZv
KTsKLSAgICBpbnQgY29sTG9naWNhbFdpZHRoID0gY29sSW5mby0+ZGVzaXJlZENvbHVtbldpZHRo
KCk7Ci0gICAgaW50IGNvbExvZ2ljYWxIZWlnaHQgPSBjb2xJbmZvLT5jb2x1bW5IZWlnaHQoKTsK
KyAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxXaWR0aCA9IGNvbEluZm8tPmRlc2lyZWRDb2x1bW5X
aWR0aCgpOworICAgIExheW91dFVuaXQgY29sTG9naWNhbEhlaWdodCA9IGNvbEluZm8tPmNvbHVt
bkhlaWdodCgpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb2xDb3VudDsgKytpKSB7
CiAgICAgICAgIC8vIENvbXB1dGUgdGhlIGVkZ2VzIGZvciBhIGdpdmVuIGNvbHVtbiBpbiB0aGUg
YmxvY2sgcHJvZ3Jlc3Npb24gZGlyZWN0aW9uLgotICAgICAgICBJbnRSZWN0IHNsaWNlUmVjdCA9
IEludFJlY3QobG9naWNhbExlZnQsIGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0JlZm9yZSgpICsg
aSAqIGNvbExvZ2ljYWxIZWlnaHQsIGNvbExvZ2ljYWxXaWR0aCwgY29sTG9naWNhbEhlaWdodCk7
CisgICAgICAgIExheW91dFJlY3Qgc2xpY2VSZWN0ID0gTGF5b3V0UmVjdChsb2dpY2FsTGVmdCwg
Ym9yZGVyQmVmb3JlKCkgKyBwYWRkaW5nQmVmb3JlKCkgKyBpICogY29sTG9naWNhbEhlaWdodCwg
Y29sTG9naWNhbFdpZHRoLCBjb2xMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAgaWYgKCFpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgc2xpY2VSZWN0ID0gc2xpY2VSZWN0LnRy
YW5zcG9zZWRSZWN0KCk7CiAgICAgICAgIAogICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgZmxpcHBl
ZCBibG9ja3Mgd3JpdGluZyBtb2RlLCB0aGVuIGNvbnZlcnQgdGhlIGNvbHVtbiBzbyB0aGF0IGl0
J3MgY29taW5nIGZyb20gdGhlIGFmdGVyIGVkZ2UgKGVpdGhlciB0b3Agb3IgbGVmdCBlZGdlKS4K
LSAgICAgICAgZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhzbGljZVJlY3QpOwor
ICAgICAgICBhZGp1c3RTdGFydEVkZ2VGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMoc2xp
Y2VSZWN0KTsKICAgICAgICAgCi0gICAgICAgIGludCBsb2dpY2FsT2Zmc2V0ID0gc3R5bGUoKS0+
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSA/IChjb2xDb3VudCAtIDEgLSBpKSAqIGNvbExv
Z2ljYWxIZWlnaHQgOiBpICogY29sTG9naWNhbEhlaWdodDsKKyAgICAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsT2Zmc2V0ID0gc3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSA/IChj
b2xDb3VudCAtIDEgLSBpKSAqIGNvbExvZ2ljYWxIZWlnaHQgOiBpICogY29sTG9naWNhbEhlaWdo
dDsKIAogICAgICAgICAvLyBOb3cgd2UncmUgaW4gdGhlIHNhbWUgY29vcmRpbmF0ZSBzcGFjZSBh
cyB0aGUgcG9pbnQuICBTZWUgaWYgaXQgaXMgaW5zaWRlIHRoZSByZWN0YW5nbGUuCiAgICAgICAg
IGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7CkBAIC00NzU1LDkgKzQ3NTYsOSBAQCBz
dGF0aWMgaW5saW5lIHZvaWQgc3RyaXBUcmFpbGluZ1NwYWNlKGZsCiAgICAgfQogfQogCi1zdGF0
aWMgaW5saW5lIHZvaWQgdXBkYXRlUHJlZmVycmVkV2lkdGgoaW50JiBwcmVmZXJyZWRXaWR0aCwg
ZmxvYXQmIHJlc3VsdCkKK3N0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVQcmVmZXJyZWRXaWR0aChM
YXlvdXRVbml0JiBwcmVmZXJyZWRXaWR0aCwgZmxvYXQmIHJlc3VsdCkKIHsKLSAgICBpbnQgc25h
cHBlZFJlc3VsdCA9IGNlaWxmKHJlc3VsdCk7CisgICAgTGF5b3V0VW5pdCBzbmFwcGVkUmVzdWx0
ID0gY2VpbGVkTGF5b3V0VW5pdChyZXN1bHQpOwogICAgIHByZWZlcnJlZFdpZHRoID0gbWF4KHNu
YXBwZWRSZXN1bHQsIHByZWZlcnJlZFdpZHRoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmgJKHJldmlzaW9uIDkwNzkxKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw4ICsxMjcsOCBA
QCBwdWJsaWM6CiAgICAgLy8gQmxvY2sgZmxvd3Mgc3ViY2xhc3MgYXZhaWxhYmxlV2lkdGggdG8g
aGFuZGxlIG11bHRpIGNvbHVtbiBsYXlvdXQgKHNocmlua2luZyB0aGUgd2lkdGggYXZhaWxhYmxl
IHRvIGNoaWxkcmVuIHdoZW4gbGF5aW5nIG91dC4pCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGF2
YWlsYWJsZUxvZ2ljYWxXaWR0aCgpIGNvbnN0OwogCi0gICAgSW50UG9pbnQgZmxpcEZvcldyaXRp
bmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotICAgIHZvaWQg
ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhJbnRSZWN0JikgY29uc3Q7CisgICAg
TGF5b3V0UG9pbnQgZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhjb25zdCBMYXlv
dXRQb2ludCYpIGNvbnN0OworICAgIHZvaWQgYWRqdXN0U3RhcnRFZGdlRm9yV3JpdGluZ01vZGVJ
bmNsdWRpbmdDb2x1bW5zKExheW91dFJlY3QmKSBjb25zdDsKIAogICAgIFJvb3RJbmxpbmVCb3gq
IGZpcnN0Um9vdEJveCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJvb3RJbmxpbmVCb3gq
PihmaXJzdExpbmVCb3goKSk7IH0KICAgICBSb290SW5saW5lQm94KiBsYXN0Um9vdEJveCgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJvb3RJbmxpbmVCb3gqPihsYXN0TGluZUJveCgpKTsg
fQpAQCAtMTQ5LDggKzE0OSw4IEBAIHB1YmxpYzoKICAgICBpbnQgaGVpZ2h0Rm9yTGluZUNvdW50
KGludCk7CiAgICAgdm9pZCBjbGVhclRydW5jYXRpb24oKTsKIAotICAgIHZvaWQgYWRqdXN0UmVj
dEZvckNvbHVtbnMoSW50UmVjdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RGb3JD
b2x1bW5zKEludFNpemUmLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0OworICAgIHZvaWQgYWRqdXN0
UmVjdEZvckNvbHVtbnMoTGF5b3V0UmVjdCYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGp1
c3RGb3JDb2x1bW5zKExheW91dFNpemUmLCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OwogCiAg
ICAgdm9pZCBhZGRDb250aW51YXRpb25XaXRoT3V0bGluZShSZW5kZXJJbmxpbmUqKTsKICAgICBi
b29sIHBhaW50c0NvbnRpbnVhdGlvbk91dGxpbmUoUmVuZGVySW5saW5lKik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gOTA3OTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjY3
LDcgKzY2Nyw3IEBAIGJvb2wgUmVuZGVyQm94OjpuZWVkc1ByZWZlcnJlZFdpZHRoc1JlY2EKICAg
ICByZXR1cm4gc3R5bGUoKS0+cGFkZGluZ1N0YXJ0KCkuaXNQZXJjZW50KCkgfHwgc3R5bGUoKS0+
cGFkZGluZ0VuZCgpLmlzUGVyY2VudCgpOwogfQogCi1pbnQgUmVuZGVyQm94OjptaW5QcmVmZXJy
ZWRMb2dpY2FsV2lkdGgoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1pblByZWZlcnJl
ZExvZ2ljYWxXaWR0aCgpIGNvbnN0CiB7CiAgICAgaWYgKHByZWZlcnJlZExvZ2ljYWxXaWR0aHNE
aXJ0eSgpKQogICAgICAgICBjb25zdF9jYXN0PFJlbmRlckJveCo+KHRoaXMpLT5jb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocygpOwpAQCAtNjc1LDcgKzY3NSw3IEBAIGludCBSZW5kZXJCb3g6
Om1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgKICAgICByZXR1cm4gbV9taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGg7CiB9CiAKLWludCBSZW5kZXJCb3g6Om1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgp
IGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkg
Y29uc3QKIHsKICAgICBpZiAocHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KCkpCiAgICAgICAg
IGNvbnN0X2Nhc3Q8UmVuZGVyQm94Kj4odGhpcyktPmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKCk7CkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBMYXlvdXRTaXplIFJlbmRlckJveDo6b2Zmc2V0
RnJvbUNvbnRhaW5lCiAgICAgICAgIGlmIChzdHlsZSgpLT5wb3NpdGlvbigpICE9IEFic29sdXRl
UG9zaXRpb24gJiYgc3R5bGUoKS0+cG9zaXRpb24oKSAhPSBGaXhlZFBvc2l0aW9uKSB7CiAgICAg
ICAgICAgICBpZiAoby0+aGFzQ29sdW1ucygpKSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVj
dCBjb2x1bW5SZWN0KGZyYW1lUmVjdCgpKTsKLSAgICAgICAgICAgICAgICB0b1JlbmRlckJsb2Nr
KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNvbHVtblJlY3QpOworICAg
ICAgICAgICAgICAgIHRvUmVuZGVyQmxvY2sobyktPmFkanVzdFN0YXJ0RWRnZUZvcldyaXRpbmdN
b2RlSW5jbHVkaW5nQ29sdW1ucyhjb2x1bW5SZWN0KTsKICAgICAgICAgICAgICAgICBvZmZzZXQg
Kz0gTGF5b3V0U2l6ZShjb2x1bW5SZWN0LmxvY2F0aW9uKCkueCgpLCBjb2x1bW5SZWN0LmxvY2F0
aW9uKCkueSgpKTsKICAgICAgICAgICAgICAgICBjb2x1bW5SZWN0Lm1vdmVCeShwb2ludCk7CiAg
ICAgICAgICAgICAgICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhvZmZzZXQsIGNvbHVtblJlY3QubG9j
YXRpb24oKSk7CkBAIC0xOTI3LDcgKzE5MjcsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29t
cHV0ZVBlcmNlbnRhZ2VMCiAgICAgICAgICAgICAvLyBib3ggbW9kZWwuICBUaGlzIGlzIGVzc2Vu
dGlhbCBmb3Igc2l6aW5nIGluc2lkZQogICAgICAgICAgICAgLy8gdGFibGUgY2VsbHMgdXNpbmcg
cGVyY2VudGFnZSBoZWlnaHRzLgogICAgICAgICAgICAgcmVzdWx0IC09IGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgICAgICAgICByZXN1bHQgPSBtYXgoMCwgcmVzdWx0KTsK
KyAgICAgICAgICAgIHJlc3VsdCA9IG1heDxMYXlvdXRVbml0PigwLCByZXN1bHQpOwogICAgICAg
ICB9CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CkBAIC0zMzkzLDcgKzMzOTMsNyBAQCBJbnRS
ZWN0IFJlbmRlckJveDo6bGF5b3V0T3ZlcmZsb3dSZWN0Rm9yCiAgICAgcmV0dXJuIHJlY3Q7CiB9
CiAKLUludFBvaW50IFJlbmRlckJveDo6ZmxpcEZvcldyaXRpbmdNb2RlKGNvbnN0IFJlbmRlckJv
eCogY2hpbGQsIGNvbnN0IEludFBvaW50JiBwb2ludCwgRmxpcHBpbmdBZGp1c3RtZW50IGFkanVz
dG1lbnQpIGNvbnN0CitMYXlvdXRQb2ludCBSZW5kZXJCb3g6OmZsaXBGb3JXcml0aW5nTW9kZShj
b25zdCBSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEZsaXBwaW5n
QWRqdXN0bWVudCBhZGp1c3RtZW50KSBjb25zdAogewogICAgIGlmICghc3R5bGUoKS0+aXNGbGlw
cGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJuIHBvaW50OwpAQCAtMzQwMSw4
ICszNDAxLDggQEAgSW50UG9pbnQgUmVuZGVyQm94OjpmbGlwRm9yV3JpdGluZ01vZGUoYwogICAg
IC8vIFRoZSBjaGlsZCBpcyBnb2luZyB0byBhZGQgaW4gaXRzIHgoKSBhbmQgeSgpLCBzbyB3ZSBo
YXZlIHRvIG1ha2Ugc3VyZSBpdCBlbmRzIHVwIGluCiAgICAgLy8gdGhlIHJpZ2h0IHBsYWNlLgog
ICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICAgICByZXR1cm4gSW50UG9p
bnQocG9pbnQueCgpLCBwb2ludC55KCkgKyBoZWlnaHQoKSAtIGNoaWxkLT5oZWlnaHQoKSAtIGNo
aWxkLT55KCkgLSAoYWRqdXN0bWVudCA9PSBQYXJlbnRUb0NoaWxkRmxpcHBpbmdBZGp1c3RtZW50
ID8gY2hpbGQtPnkoKSA6IDApKTsKLSAgICByZXR1cm4gSW50UG9pbnQocG9pbnQueCgpICsgd2lk
dGgoKSAtIGNoaWxkLT53aWR0aCgpIC0gY2hpbGQtPngoKSAtIChhZGp1c3RtZW50ID09IFBhcmVu
dFRvQ2hpbGRGbGlwcGluZ0FkanVzdG1lbnQgPyBjaGlsZC0+eCgpIDogMCksIHBvaW50LnkoKSk7
CisgICAgICAgIHJldHVybiBMYXlvdXRQb2ludChwb2ludC54KCksIHBvaW50LnkoKSArIGhlaWdo
dCgpIC0gY2hpbGQtPmhlaWdodCgpIC0gY2hpbGQtPnkoKSAtIChhZGp1c3RtZW50ID09IFBhcmVu
dFRvQ2hpbGRGbGlwcGluZ0FkanVzdG1lbnQgPyBjaGlsZC0+eSgpIDogMCkpOworICAgIHJldHVy
biBMYXlvdXRQb2ludChwb2ludC54KCkgKyB3aWR0aCgpIC0gY2hpbGQtPndpZHRoKCkgLSBjaGls
ZC0+eCgpIC0gKGFkanVzdG1lbnQgPT0gUGFyZW50VG9DaGlsZEZsaXBwaW5nQWRqdXN0bWVudCA/
IGNoaWxkLT54KCkgOiAwKSwgcG9pbnQueSgpKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6OmZsaXBG
b3JXcml0aW5nTW9kZShJbnRSZWN0JiByZWN0KSBjb25zdApAQCAtMzQzMCw3ICszNDMwLDcgQEAg
SW50UG9pbnQgUmVuZGVyQm94OjpmbGlwRm9yV3JpdGluZ01vZGUoYwogICAgIHJldHVybiBpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID8gSW50UG9pbnQocG9zaXRpb24ueCgpLCBoZWlnaHQoKSAt
IHBvc2l0aW9uLnkoKSkgOiBJbnRQb2ludCh3aWR0aCgpIC0gcG9zaXRpb24ueCgpLCBwb3NpdGlv
bi55KCkpOwogfQogCi1JbnRQb2ludCBSZW5kZXJCb3g6OmZsaXBGb3JXcml0aW5nTW9kZUluY2x1
ZGluZ0NvbHVtbnMoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAorTGF5b3V0UG9pbnQgUmVu
ZGVyQm94OjpmbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNvbnN0IExheW91dFBv
aW50JiBwb2ludCkgY29uc3QKIHsKICAgICBpZiAoIWhhc0NvbHVtbnMoKSB8fCAhc3R5bGUoKS0+
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJuIGZsaXBGb3JXcml0
aW5nTW9kZShwb2ludCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShy
ZXZpc2lvbiA5MDc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAko
d29ya2luZyBjb3B5KQpAQCAtMjM5LDggKzIzOSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIGJv
b2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29u
c3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CiAKLSAgICB2aXJ0dWFsIGludCBtaW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGludCBtYXhQcmVmZXJyZWRM
b2dpY2FsV2lkdGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluUHJlZmVycmVk
TG9naWNhbFdpZHRoKCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1heFByZWZlcnJl
ZExvZ2ljYWxXaWR0aCgpIGNvbnN0OwogCiAgICAgTGF5b3V0U2l6ZSBvdmVycmlkZVNpemUoKSBj
b25zdDsKICAgICBMYXlvdXRVbml0IG92ZXJyaWRlV2lkdGgoKSBjb25zdDsKQEAgLTM4OCwxMCAr
Mzg4LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRC
YXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25N
b2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdDsKIAogICAgIGVudW0gRmxpcHBp
bmdBZGp1c3RtZW50IHsgQ2hpbGRUb1BhcmVudEZsaXBwaW5nQWRqdXN0bWVudCwgUGFyZW50VG9D
aGlsZEZsaXBwaW5nQWRqdXN0bWVudCB9OwotICAgIEludFBvaW50IGZsaXBGb3JXcml0aW5nTW9k
ZShjb25zdCBSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBJbnRQb2ludCYsIEZsaXBwaW5nQWRqdXN0
bWVudCkgY29uc3Q7CisgICAgTGF5b3V0UG9pbnQgZmxpcEZvcldyaXRpbmdNb2RlKGNvbnN0IFJl
bmRlckJveCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50JiwgRmxpcHBpbmdBZGp1c3RtZW50KSBj
b25zdDsKICAgICBpbnQgZmxpcEZvcldyaXRpbmdNb2RlKGludCBwb3NpdGlvbikgY29uc3Q7IC8v
IFRoZSBvZmZzZXQgaXMgaW4gdGhlIGJsb2NrIGRpcmVjdGlvbiAoeSBmb3IgaG9yaXpvbnRhbCB3
cml0aW5nIG1vZGVzLCB4IGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzKS4KICAgICBJbnRQb2lu
dCBmbGlwRm9yV3JpdGluZ01vZGUoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLSAgICBJbnRQb2lu
dCBmbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNvbnN0IEludFBvaW50JikgY29u
c3Q7CisgICAgTGF5b3V0UG9pbnQgZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhj
b25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OwogICAgIEludFNpemUgZmxpcEZvcldyaXRpbmdNb2Rl
KGNvbnN0IEludFNpemUmKSBjb25zdDsKICAgICB2b2lkIGZsaXBGb3JXcml0aW5nTW9kZShJbnRS
ZWN0JikgY29uc3Q7CiAgICAgRmxvYXRQb2ludCBmbGlwRm9yV3JpdGluZ01vZGUoY29uc3QgRmxv
YXRQb2ludCYpIGNvbnN0OwpAQCAtNDc0LDEwICs0NzQsMTAgQEAgcHJvdGVjdGVkOgogICAgIExh
eW91dFVuaXQgbV9tYXJnaW5Cb3R0b207CiAKICAgICAvLyBUaGUgcHJlZmVycmVkIGxvZ2ljYWwg
d2lkdGggb2YgdGhlIGVsZW1lbnQgaWYgaXQgd2VyZSB0byBicmVhayBpdHMgbGluZXMgYXQgZXZl
cnkgcG9zc2libGUgb3Bwb3J0dW5pdHkuCi0gICAgaW50IG1fbWluUHJlZmVycmVkTG9naWNhbFdp
ZHRoOworICAgIExheW91dFVuaXQgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGg7CiAgICAgCiAg
ICAgLy8gVGhlIHByZWZlcnJlZCBsb2dpY2FsIHdpZHRoIG9mIHRoZSBlbGVtZW50IGlmIGl0IG5l
dmVyIGJyZWFrcyBhbnkgbGluZXMgYXQgYWxsLgotICAgIGludCBtX21heFByZWZlcnJlZExvZ2lj
YWxXaWR0aDsKKyAgICBMYXlvdXRVbml0IG1fbWF4UHJlZmVycmVkTG9naWNhbFdpZHRoOwogCiAg
ICAgLy8gRm9yIGlubGluZSByZXBsYWNlZCBlbGVtZW50cywgdGhlIGlubGluZSBib3ggdGhhdCBv
d25zIHVzLgogICAgIElubGluZUJveCogbV9pbmxpbmVCb3hXcmFwcGVyOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAkocmV2aXNpb24gOTA3OTEpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI1NCw3ICsyNTQsNyBAQCBpbnQgUmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlv
bihGb250CiAgICAgcmV0dXJuIFJlbmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihiYXNlbGluZVR5
cGUsIGZpcnN0TGluZSwgbGluZURpcmVjdGlvbiwgbGluZVBvc2l0aW9uTW9kZSkgLSBiYXNlbGlu
ZUFkanVzdG1lbnQ7CiB9CiAKLUludFJlY3QgUmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94
UmVjdChjb25zdCBJbnRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgaW50IGluZGV4KQorSW50UmVj
dCBSZW5kZXJMaXN0Qm94OjppdGVtQm91bmRpbmdCb3hSZWN0KGNvbnN0IExheW91dFBvaW50JiBh
ZGRpdGlvbmFsT2Zmc2V0LCBpbnQgaW5kZXgpCiB7CiAgICAgcmV0dXJuIEludFJlY3QoYWRkaXRp
b25hbE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpLAogICAgICAgICAg
ICAgICAgICAgIGFkZGl0aW9uYWxPZmZzZXQueSgpICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9w
KCkgKyBpdGVtSGVpZ2h0KCkgKiAoaW5kZXggLSBtX2luZGV4T2Zmc2V0KSwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAkocmV2aXNpb24gOTA3OTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9wdGlvbnNDaGFuZ2VkKGJvb2wg
Y2hhbmdlZCkgeyBtX29wdGlvbnNDaGFuZ2VkID0gY2hhbmdlZDsgfQogCiAgICAgaW50IGxpc3RJ
bmRleEF0T2Zmc2V0KGludCB4LCBpbnQgeSk7Ci0gICAgSW50UmVjdCBpdGVtQm91bmRpbmdCb3hS
ZWN0KGNvbnN0IEludFBvaW50JiwgaW50IGluZGV4KTsKKyAgICBJbnRSZWN0IGl0ZW1Cb3VuZGlu
Z0JveFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmLCBpbnQgaW5kZXgpOwogCiAgICAgYm9vbCBzY3Jv
bGxUb1JldmVhbEVsZW1lbnRBdExpc3RJbmRleChpbnQgaW5kZXgpOwogICAgIGJvb2wgbGlzdElu
ZGV4SXNWaXNpYmxlKGludCBpbmRleCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCShyZXZpc2lvbiA5MDc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjA0LDggKzYwNCw4IEBAIHB1Ymxp
YzoKICAgICAvLyB0aGUgcmVjdCB0aGF0IHdpbGwgYmUgcGFpbnRlZCBpZiB0aGlzIG9iamVjdCBp
cyBwYXNzZWQgYXMgdGhlIHBhaW50aW5nUm9vdAogICAgIExheW91dFJlY3QgcGFpbnRpbmdSb290
UmVjdChMYXlvdXRSZWN0JiB0b3BMZXZlbFJlY3QpOwogCi0gICAgdmlydHVhbCBpbnQgbWluUHJl
ZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgaW50
IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0
dWFsIExheW91dFVuaXQgbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBj
b25zdCB7IHJldHVybiAwOyB9CiAKICAgICBSZW5kZXJTdHlsZSogc3R5bGUoKSBjb25zdCB7IHJl
dHVybiBtX3N0eWxlLmdldCgpOyB9CiAgICAgUmVuZGVyU3R5bGUqIGZpcnN0TGluZVN0eWxlKCkg
Y29uc3QgeyByZXR1cm4gZG9jdW1lbnQoKS0+dXNlc0ZpcnN0TGluZVJ1bGVzKCkgPyBmaXJzdExp
bmVTdHlsZVNsb3dDYXNlKCkgOiBzdHlsZSgpOyB9CkBAIC02NjksNyArNjY5LDcgQEAgcHVibGlj
OgogCiAgICAgLy8gSWYgbXVsdGlwbGUtY29sdW1uIGxheW91dCByZXN1bHRzIGluIGFwcGx5aW5n
IGFuIG9mZnNldCB0byB0aGUgZ2l2ZW4gcG9pbnQsIGFkZCB0aGUgc2FtZQogICAgIC8vIG9mZnNl
dCB0byB0aGUgZ2l2ZW4gc2l6ZS4KLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0Rm9yQ29sdW1ucyhJ
bnRTaXplJiwgY29uc3QgSW50UG9pbnQmKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0Rm9yQ29sdW1ucyhMYXlvdXRTaXplJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCB7IH0K
IAogICAgIHZpcnR1YWwgdW5zaWduZWQgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIDE7IH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCShy
ZXZpc2lvbiA5MDc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3ICsyMTksNyBAQCBpbnQgUmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVJbnRyaW5zaWNMb2dpCiAgICAgcmV0dXJuIGNvbnRlbnRSZW5kZXJlci0+Y29t
cHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFJlc3BlY3RpbmdNaW5NYXhIZWlnaHQoY29udGVudFJl
bmRlcmVyLT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoY29udGVudFJlbmRlcmVy
LT5zdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCkpKTsKIH0KIAotaW50IFJlbmRlclJlcGxhY2VkOjpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbnN0CitM
YXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9v
bCBpbmNsdWRlTWF4V2lkdGgpIGNvbnN0CiB7CiAgICAgaWYgKHN0eWxlKCktPmxvZ2ljYWxXaWR0
aCgpLmlzU3BlY2lmaWVkKCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNp
bmcoc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBpbmNsdWRlTWF4V2lkdGgpOwpAQCAtMzA0LDcg
KzMwNCw3IEBAIGludCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWMKICAgICBy
ZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGlu
dHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbmNsdWRlTWF4V2lkdGgpOwogfQogCi1pbnQgUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdAorTGF5b3V0VW5p
dCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CiB7
CiAgICAgLy8gMTAuNSBDb250ZW50IGhlaWdodDogdGhlICdoZWlnaHQnIHByb3BlcnR5OiBodHRw
Oi8vd3d3LnczLm9yZy9UUi9DU1MyMS92aXN1ZGV0Lmh0bWwjcHJvcGRlZi1oZWlnaHQKICAgICAv
LyBJZiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluaW5nIGJsb2NrIGlzIG5vdCBzcGVjaWZpZWQg
ZXhwbGljaXRseSAoaS5lLiwgaXQgZGVwZW5kcyBvbgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RhYmxlTGF5b3V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RhYmxlTGF5b3V0LmgJKHJldmlzaW9uIDkwNzkxKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1RhYmxlTGF5b3V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+VGFibGVMYXlvdXQoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhpbnQmIG1pbldpZHRoLCBpbnQmIG1heFdp
ZHRoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhz
KExheW91dFVuaXQmIG1pbldpZHRoLCBMYXlvdXRVbml0JiBtYXhXaWR0aCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBsYXlvdXQoKSA9IDA7CiAKIHByb3RlY3RlZDoK
</data>

          </attachment>
      

    </bug>

</bugzilla>