<?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>126829</bug_id>
          
          <creation_ts>2014-01-11 18:40:49 -0800</creation_ts>
          <short_desc>[iOS] Move text autosizing code from RenderBlock to RenderBlockFlow</short_desc>
          <delta_ts>2014-01-11 18:47:45 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>966869</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-11 18:40:49 -0800</bug_when>
    <thetext>[iOS] Move text autosizing code from RenderBlock to RenderBlockFlow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966872</commentid>
    <comment_count>1</comment_count>
      <attachid>220950</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-11 18:42:54 -0800</bug_when>
    <thetext>Created attachment 220950
[iOS] Move text autosizing code from RenderBlock to RenderBlockFlow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966874</commentid>
    <comment_count>2</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-11 18:47:45 -0800</bug_when>
    <thetext>Committed r161790: &lt;http://trac.webkit.org/changeset/161790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220950</attachid>
            <date>2014-01-11 18:42:54 -0800</date>
            <delta_ts>2014-01-11 18:45:06 -0800</delta_ts>
            <desc>[iOS] Move text autosizing code from RenderBlock to RenderBlockFlow</desc>
            <filename>bug-126829-20140111184252.patch</filename>
            <type>text/plain</type>
            <size>19654</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQ1YmM2MWIwNjRiZjg3
MmRhOGEyMmMxZDkyOGNhNjE2ZTM5ZWRhOS4uMWE3OTRmMmJkZTVlZDUwM2MyNWJkMjI5YmJiYmMx
NDkyYTdlN2NjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTAxLTExICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBNb3ZlIHRleHQgYXV0
b3NpemluZyBjb2RlIGZyb20gUmVuZGVyQmxvY2sgdG8gUmVuZGVyQmxvY2tGbG93CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY4MjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG5ld2x5LXVwc3Ry
ZWFtZWQgaU9TIHRleHQgYXV0b3NpemluZyBjb2RlIG5lZWRzIHRvIG1vdmUgdG8KKyAgICAgICAg
UmVuZGVyQmxvY2tGbG93IGluIG9yZGVyIHRvIGJ1aWxkLgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpSZW5kZXJC
bG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
a0Zsb3c6OlJlbmRlckJsb2NrRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjppc1Zpc2libGVSZW5k
ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2l6ZVRleHRQZXJtaXR0ZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjppbW1lZGlhdGVMaW5lQ291bnQpOgorICAgICAg
ICAoV2ViQ29yZTo6aXNOb25CbG9ja3NPck5vbkZpeGVkSGVpZ2h0TGlzdEl0ZW1zKToKKyAgICAg
ICAgKFdlYkNvcmU6Om9uZUxpbmVUZXh0TXVsdGlwbGllcik6CisgICAgICAgIChXZWJDb3JlOjp0
ZXh0TXVsdGlwbGllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkanVz
dENvbXB1dGVkRm9udFNpemVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnJlc2V0Q29tcHV0ZWRGb250
U2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmFkanVzdENvbXB1dGVkRm9udFNpemVzT25CbG9ja3MpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXNldFRleHRBdXRvc2l6aW5nKToKKwog
MjAxNC0wMS0xMSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEV4dHJh
Y3QgdGhlIEZvcm1hdENvbnZlcnRlciBjbGFzcyBvdXQgb2YgR3JhcGhpY3NDb250ZXh0M0QuY3Bw
IGFuZCBpbnRvIGl0cyBvd24gZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggY2ZkYjljYzQ3ZWQxZWVkYWNmZjZiZmY4MzM2MGM1NTFhZTczOWQ1ZC4uY2Fj
MTgyMDVkN2IzZWZiNjM2YTQ3NTk0ZGM1Yjc4MWE0ZDY0ZjQzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC03NCwxMCArNzQsNiBAQAogI2luY2x1ZGUgIlNo
YXBlT3V0c2lkZUluZm8uaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJ
TkcpCi0jaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2Ug
V1RGOwogdXNpbmcgbmFtZXNwYWNlIFVuaWNvZGU7CiAKQEAgLTE4MSwxMCArMTc3LDYgQEAgUmVu
ZGVyQmxvY2s6OlJlbmRlckJsb2NrKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+IHN0eWxlLCB1bnNpZ25lZAogICAgICwgbV9oYXNNYXJrdXBUcnVuY2F0aW9uKGZhbHNlKQog
ICAgICwgbV9oYXNCb3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2VkKGZhbHNlKQogICAg
ICwgbV9saW5lTGF5b3V0UGF0aChVbmRldGVybWluZWRQYXRoKQotI2lmIEVOQUJMRShJT1NfVEVY
VF9BVVRPU0laSU5HKQotICAgICwgbV93aWR0aEZvclRleHRBdXRvc2l6aW5nKC0xKQotICAgICwg
bV9saW5lQ291bnRGb3JUZXh0QXV0b3NpemluZyhOT1RfU0VUKQotI2VuZGlmCiB7CiB9CiAKQEAg
LTE5NywxMCArMTg5LDYgQEAgUmVuZGVyQmxvY2s6OlJlbmRlckJsb2NrKERvY3VtZW50JiBkb2N1
bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIHVuc2lnbmUKICAgICAsIG1faGFzTWFy
a3VwVHJ1bmNhdGlvbihmYWxzZSkKICAgICAsIG1faGFzQm9yZGVyT3JQYWRkaW5nTG9naWNhbFdp
ZHRoQ2hhbmdlZChmYWxzZSkKICAgICAsIG1fbGluZUxheW91dFBhdGgoVW5kZXRlcm1pbmVkUGF0
aCkKLSNpZiBFTkFCTEUoSU9TX1RFWFRfQVVUT1NJWklORykKLSAgICAsIG1fd2lkdGhGb3JUZXh0
QXV0b3NpemluZygtMSkKLSAgICAsIG1fbGluZUNvdW50Rm9yVGV4dEF1dG9zaXppbmcoTk9UX1NF
VCkKLSNlbmRpZgogewogfQogCkBAIC01NTU3LDEyMCArNTU0NSw0IEBAIHZvaWQgUmVuZGVyQmxv
Y2s6OnNob3dMaW5lVHJlZUFuZE1hcmsoY29uc3QgSW5saW5lQm94KiwgY29uc3QgY2hhciosIGNv
bnN0IElubGluCiAKICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCi1p
bmxpbmUgc3RhdGljIGJvb2wgaXNWaXNpYmxlUmVuZGVyVGV4dChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyKQotewotICAgIGlmICghcmVuZGVyZXItPmlzVGV4dCgpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgUmVuZGVyVGV4dCogcmVuZGVyVGV4dCA9IHRvUmVuZGVyVGV4dChyZW5kZXJlcik7
Ci0gICAgcmV0dXJuICFyZW5kZXJUZXh0LT5saW5lc0JvdW5kaW5nQm94KCkuaXNFbXB0eSgpICYm
ICFyZW5kZXJUZXh0LT50ZXh0KCktPmNvbnRhaW5zT25seVdoaXRlc3BhY2UoKTsKLX0KLQotaW5s
aW5lIHN0YXRpYyBib29sIHJlc2l6ZVRleHRQZXJtaXR0ZWQoUmVuZGVyT2JqZWN0KiByZW5kZXIp
Ci17Ci0gICAgLy8gV2UgZGlzYWxsb3cgcmVzaXppbmcgZm9yIHRleHQgaW5wdXQgZmllbGRzIGFu
ZCB0ZXh0YXJlYSB0byBhZGRyZXNzIDxyZGFyOi8vcHJvYmxlbS81NzkyOTg3PiBhbmQgPHJkYXI6
Ly9wcm9ibGVtLzgwMjExMjM+Ci0gICAgYXV0byByZW5kZXJlciA9IHJlbmRlci0+cGFyZW50KCk7
Ci0gICAgd2hpbGUgKHJlbmRlcmVyKSB7Ci0gICAgICAgIC8vIEdldCB0aGUgZmlyc3Qgbm9uLXNo
YWRvdyBIVE1MRWxlbWVudCBhbmQgc2VlIGlmIGl0J3MgYW4gaW5wdXQuCi0gICAgICAgIGlmIChy
ZW5kZXJlci0+ZWxlbWVudCgpICYmIHJlbmRlcmVyLT5lbGVtZW50KCktPmlzSFRNTEVsZW1lbnQo
KSAmJiAhcmVuZGVyZXItPmVsZW1lbnQoKS0+aXNJblNoYWRvd1RyZWUoKSkgewotICAgICAgICAg
ICAgY29uc3QgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KCpyZW5kZXJlci0+
ZWxlbWVudCgpKTsKLSAgICAgICAgICAgIHJldHVybiAhaXNIVE1MSW5wdXRFbGVtZW50KGVsZW1l
bnQpICYmICFpc0hUTUxUZXh0QXJlYUVsZW1lbnQoZWxlbWVudCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmVuZGVyZXIgPSByZW5kZXJlci0+cGFyZW50KCk7Ci0gICAgfQotICAgIHJldHVybiB0cnVl
OwotfQotCi1pbnQgUmVuZGVyQmxvY2s6OmltbWVkaWF0ZUxpbmVDb3VudCgpCi17Ci0gICAgLy8g
Q29waWVkIGFuZCBtb2RpZmllZCBmcm9tIFJlbmRlckJsb2NrOjpsaW5lQ291bnQuCi0gICAgLy8g
T25seSBkZXNjZW5kIGludG8gbGlzdCBpdGVtcy4KLSAgICBpbnQgY291bnQgPSAwOwotICAgIGlm
IChzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFKSB7Ci0gICAgICAgIGlmIChjaGlsZHJl
bklubGluZSgpKSB7Ci0gICAgICAgICAgICBmb3IgKFJvb3RJbmxpbmVCb3gqIGJveCA9IGZpcnN0
Um9vdEJveCgpOyBib3g7IGJveCA9IGJveC0+bmV4dFJvb3RCb3goKSkKLSAgICAgICAgICAgICAg
ICBjb3VudCsrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yIChSZW5kZXJPYmpl
Y3QqIG9iaiA9IGZpcnN0Q2hpbGQoKTsgb2JqOyBvYmogPSBvYmotPm5leHRTaWJsaW5nKCkpIHsK
LSAgICAgICAgICAgICAgICBpZiAob2JqLT5pc0xpc3RJdGVtKCkpCi0gICAgICAgICAgICAgICAg
ICAgIGNvdW50ICs9IHRvUmVuZGVyQmxvY2sob2JqKS0+bGluZUNvdW50KCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGNvdW50OwotfQotCi1zdGF0aWMgYm9v
bCBpc05vbkJsb2Nrc09yTm9uRml4ZWRIZWlnaHRMaXN0SXRlbXMoY29uc3QgUmVuZGVyT2JqZWN0
KiByZW5kZXIpCi17Ci0gICAgaWYgKCFyZW5kZXItPmlzUmVuZGVyQmxvY2soKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgaWYgKHJlbmRlci0+aXNMaXN0SXRlbSgpKQotICAgICAgICByZXR1
cm4gcmVuZGVyLT5zdHlsZSgpLmhlaWdodCgpLnR5cGUoKSAhPSBGaXhlZDsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLS8vICBGb3Igbm93LCB3ZSBhdXRvIHNpemUgc2luZ2xlIGxpbmVzIG9mIHRl
eHQgdGhlIHNhbWUgYXMgbXVsdGlwbGUgbGluZXMuCi0vLyAgV2UndmUgYmVlbiBleHBlcmltZW50
aW5nIHdpdGggbG93IHZhbHVlcyBmb3Igc2luZ2xlIGxpbmVzIG9mIHRleHQuCi1zdGF0aWMgaW5s
aW5lIGZsb2F0IG9uZUxpbmVUZXh0TXVsdGlwbGllcihmbG9hdCBzcGVjaWZpZWRTaXplKQotewot
ICAgIHJldHVybiBzdGQ6Om1heCgoMS4wZiAvIGxvZzEwZihzcGVjaWZpZWRTaXplKSAqIDEuN2Yp
LCAxLjBmKTsKLX0KLQotc3RhdGljIGlubGluZSBmbG9hdCB0ZXh0TXVsdGlwbGllcihmbG9hdCBz
cGVjaWZpZWRTaXplKQotewotICAgIHJldHVybiBzdGQ6Om1heCgoMS4wZiAvIGxvZzEwZihzcGVj
aWZpZWRTaXplKSAqIDEuOTVmKSwgMS4wZik7Ci19Ci0KLXZvaWQgUmVuZGVyQmxvY2s6OmFkanVz
dENvbXB1dGVkRm9udFNpemVzKGZsb2F0IHNpemUsIGZsb2F0IHZpc2libGVXaWR0aCkKLXsKLSAg
ICAvLyBEb24ndCBkbyBhbnkgd29yayBpZiB0aGUgYmxvY2sgaXMgc21hbGxlciB0aGFuIHRoZSB2
aXNpYmxlIGFyZWEuCi0gICAgaWYgKHZpc2libGVXaWR0aCA+PSB3aWR0aCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICB1bnNpZ25lZCBsaW5lQ291bnQ7Ci0gICAgaWYgKG1fbGluZUNvdW50Rm9y
VGV4dEF1dG9zaXppbmcgPT0gTk9UX1NFVCkgewotICAgICAgICBpbnQgY291bnQgPSBpbW1lZGlh
dGVMaW5lQ291bnQoKTsKLSAgICAgICAgaWYgKCFjb3VudCkKLSAgICAgICAgICAgIGxpbmVDb3Vu
dCA9IE5PX0xJTkU7Ci0gICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDEpCi0gICAgICAgICAgICBs
aW5lQ291bnQgPSBPTkVfTElORTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbGluZUNvdW50
ID0gTVVMVElfTElORTsKLSAgICB9IGVsc2UKLSAgICAgICAgbGluZUNvdW50ID0gbV9saW5lQ291
bnRGb3JUZXh0QXV0b3NpemluZzsKLQotICAgIEFTU0VSVChsaW5lQ291bnQgIT0gTk9UX1NFVCk7
Ci0gICAgaWYgKGxpbmVDb3VudCA9PSBOT19MSU5FKQotICAgICAgICByZXR1cm47Ci0KLSAgICBm
bG9hdCBhY3R1YWxXaWR0aCA9IG1fd2lkdGhGb3JUZXh0QXV0b3NpemluZyAhPSAtMSA/IHN0YXRp
Y19jYXN0PGZsb2F0PihtX3dpZHRoRm9yVGV4dEF1dG9zaXppbmcpIDogc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHdpZHRoKCkpOwotICAgIGZsb2F0IHNjYWxlID0gdmlzaWJsZVdpZHRoIC8gYWN0dWFsV2lk
dGg7Ci0gICAgZmxvYXQgbWluRm9udFNpemUgPSByb3VuZGYoc2l6ZSAvIHNjYWxlKTsgICAKLQot
ICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kZW50ID0gdHJhdmVyc2VOZXh0KHRoaXMsIGlz
Tm9uQmxvY2tzT3JOb25GaXhlZEhlaWdodExpc3RJdGVtcyk7IGRlc2NlbmRlbnQ7IGRlc2NlbmRl
bnQgPSBkZXNjZW5kZW50LT50cmF2ZXJzZU5leHQodGhpcywgaXNOb25CbG9ja3NPck5vbkZpeGVk
SGVpZ2h0TGlzdEl0ZW1zKSkgewotICAgICAgICBpZiAoaXNWaXNpYmxlUmVuZGVyVGV4dChkZXNj
ZW5kZW50KSAmJiByZXNpemVUZXh0UGVybWl0dGVkKGRlc2NlbmRlbnQpKSB7Ci0gICAgICAgICAg
ICBSZW5kZXJUZXh0KiB0ZXh0ID0gdG9SZW5kZXJUZXh0KGRlc2NlbmRlbnQpOwotICAgICAgICAg
ICAgUmVuZGVyU3R5bGUmIG9sZFN0eWxlID0gdGV4dC0+c3R5bGUoKTsKLSAgICAgICAgICAgIEZv
bnREZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb24gPSBvbGRTdHlsZS5mb250RGVzY3JpcHRpb24o
KTsKLSAgICAgICAgICAgIGZsb2F0IHNwZWNpZmllZFNpemUgPSBmb250RGVzY3JpcHRpb24uc3Bl
Y2lmaWVkU2l6ZSgpOwotICAgICAgICAgICAgZmxvYXQgc2NhbGVkU2l6ZSA9IHJvdW5kZihzcGVj
aWZpZWRTaXplICogc2NhbGUpOwotICAgICAgICAgICAgaWYgKHNjYWxlZFNpemUgPiAwICYmIHNj
YWxlZFNpemUgPCBtaW5Gb250U2l6ZSkgewotICAgICAgICAgICAgICAgIC8vIFJlY29yZCB0aGUg
d2lkdGggb2YgdGhlIGJsb2NrIGFuZCB0aGUgbGluZSBjb3VudCB0aGUgZmlyc3QgdGltZSB3ZSBy
ZXNpemUgdGV4dCBhbmQgdXNlIGl0IGZyb20gdGhlbiBvbiBmb3IgdGV4dCByZXNpemluZy4KLSAg
ICAgICAgICAgICAgICAvLyBUaGlzIG1ha2VzIHRleHQgcmVzaXppbmcgY29uc2lzdGVudCBldmVu
IGlmIHRoZSBibG9jaydzIHdpZHRoIG9yIGxpbmUgY291bnQgY2hhbmdlcyAod2hpY2ggY2FuIGJl
IGNhdXNlZCBieSB0ZXh0IHJlc2l6aW5nIGl0c2VsZiA1MTU5OTE1KS4KLSAgICAgICAgICAgICAg
ICBpZiAobV9saW5lQ291bnRGb3JUZXh0QXV0b3NpemluZyA9PSBOT1RfU0VUKQotICAgICAgICAg
ICAgICAgICAgICBtX2xpbmVDb3VudEZvclRleHRBdXRvc2l6aW5nID0gbGluZUNvdW50OwotICAg
ICAgICAgICAgICAgIGlmIChtX3dpZHRoRm9yVGV4dEF1dG9zaXppbmcgPT0gLTEpCi0gICAgICAg
ICAgICAgICAgICAgIG1fd2lkdGhGb3JUZXh0QXV0b3NpemluZyA9IGFjdHVhbFdpZHRoOwotCi0g
ICAgICAgICAgICAgICAgZmxvYXQgY2FuZGlkYXRlTmV3U2l6ZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgZmxvYXQgbGluZVRleHRNdWx0aXBsaWVyID0gbGluZUNvdW50ID09IE9ORV9MSU5FID8gb25l
TGluZVRleHRNdWx0aXBsaWVyKHNwZWNpZmllZFNpemUpIDogdGV4dE11bHRpcGxpZXIoc3BlY2lm
aWVkU2l6ZSk7Ci0gICAgICAgICAgICAgICAgY2FuZGlkYXRlTmV3U2l6ZSA9IHJvdW5kZihzdGQ6
Om1pbihtaW5Gb250U2l6ZSwgc3BlY2lmaWVkU2l6ZSAqIGxpbmVUZXh0TXVsdGlwbGllcikpOwot
ICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGVOZXdTaXplID4gc3BlY2lmaWVkU2l6ZSAmJiBj
YW5kaWRhdGVOZXdTaXplICE9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSAmJiB0ZXh0
LT5ub2RlKCkgJiYgb2xkU3R5bGUudGV4dFNpemVBZGp1c3QoKS5pc0F1dG8oKSkKLSAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRBdXRvU2l6aW5nTm9kZSh0ZXh0LT5ub2RlKCksIGNh
bmRpZGF0ZU5ld1NpemUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotI2Vu
ZGlmIC8vIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGQwMjdlNmUxMmE5
ZmYzMmYwZDA0ZjRlZTY4OGQ0OGUxNTViMjdmMjQuLjQxNTA1OTU0ZDExMWMxMGQzZjA0YTg0MDU4
NjNiMzlhOTc2Mzg5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBA
IC01MSwxMiArNTEsNiBAQCB0eXBlZGVmIFdURjo6SGFzaE1hcDxjb25zdCBSZW5kZXJCb3gqLCBP
d25QdHI8SGFzaFNldDxSZW5kZXJCbG9jayo+Pj4gVHJhY2tlZENvbgogZW51bSBDYXJldFR5cGUg
eyBDdXJzb3JDYXJldCwgRHJhZ0NhcmV0IH07CiBlbnVtIENvbnRhaW5pbmdCbG9ja1N0YXRlIHsg
TmV3Q29udGFpbmluZ0Jsb2NrLCBTYW1lQ29udGFpbmluZ0Jsb2NrIH07CiAKLSNpZiBFTkFCTEUo
SU9TX1RFWFRfQVVUT1NJWklORykKLWVudW0gTGluZUNvdW50IHsKLSAgICBOT1RfU0VUID0gMCwg
Tk9fTElORSA9IDEsIE9ORV9MSU5FID0gMiwgTVVMVElfTElORSA9IDMKLX07Ci0jZW5kaWYKLQog
ZW51bSBUZXh0UnVuRmxhZyB7CiAgICAgRGVmYXVsdFRleHRSdW5GbGFncyA9IDAsCiAgICAgUmVz
cGVjdERpcmVjdGlvbiA9IDEgPDwgMCwKQEAgLTM1NCwxNiArMzQ4LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzaG93TGluZVRyZWVBbmRNYXJrKGNvbnN0IElubGluZUJveCogPSBudWxs
cHRyLCBjb25zdCBjaGFyKiA9IG51bGxwdHIsIGNvbnN0IElubGluZUJveCogPSBudWxscHRyLCBj
b25zdCBjaGFyKiA9IG51bGxwdHIsIGNvbnN0IFJlbmRlck9iamVjdCogPSBudWxscHRyKSBjb25z
dDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCi0gICAgaW50IGlt
bWVkaWF0ZUxpbmVDb3VudCgpOwotICAgIHZvaWQgYWRqdXN0Q29tcHV0ZWRGb250U2l6ZXMoZmxv
YXQgc2l6ZSwgZmxvYXQgdmlzaWJsZVdpZHRoKTsKLSAgICB2b2lkIHJlc2V0Q29tcHV0ZWRGb250
U2l6ZSgpCi0gICAgewotICAgICAgICBtX3dpZHRoRm9yVGV4dEF1dG9zaXppbmcgPSAtMTsKLSAg
ICAgICAgbV9saW5lQ291bnRGb3JUZXh0QXV0b3NpemluZyA9IE5PVF9TRVQ7Ci0gICAgfQotI2Vu
ZGlmCi0KICNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKICAgICBTaGFwZUluc2lkZUluZm8mIGVuc3Vy
ZVNoYXBlSW5zaWRlSW5mbygpOwogICAgIFNoYXBlSW5zaWRlSW5mbyogc2hhcGVJbnNpZGVJbmZv
KCkgY29uc3Q7CkBAIC02MzAsMTEgKzYxNCw2IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBtX2hh
c0JvcmRlck9yUGFkZGluZ0xvZ2ljYWxXaWR0aENoYW5nZWQgOiAxOwogICAgIGVudW0gTGluZUxh
eW91dFBhdGggeyBVbmRldGVybWluZWRQYXRoLCBTaW1wbGVMaW5lc1BhdGgsIExpbmVCb3hlc1Bh
dGgsIEZvcmNlTGluZUJveGVzUGF0aCB9OwogICAgIHVuc2lnbmVkIG1fbGluZUxheW91dFBhdGgg
OiAyOwotCi0jaWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCi0gICAgaW50IG1fd2lkdGhG
b3JUZXh0QXV0b3NpemluZzsKLSAgICB1bnNpZ25lZCBtX2xpbmVDb3VudEZvclRleHRBdXRvc2l6
aW5nIDogMjsKLSNlbmRpZgogICAgIAogICAgIC8vIFJlbmRlclJ1YnlCYXNlIG9iamVjdHMgbmVl
ZCB0byBiZSBhYmxlIHRvIHNwbGl0IGFuZCBtZXJnZSwgbW92aW5nIHRoZWlyIGNoaWxkcmVuIGFy
b3VuZAogICAgIC8vIChjYWxsaW5nIG1vdmVDaGlsZFRvLCBtb3ZlQWxsQ2hpbGRyZW5UbywgYW5k
IG1ha2VDaGlsZHJlbk5vbklubGluZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDllZTlkMDAyZjJjMGYzMTBmNjE5ODIxNDIzM2RhN2U0MTAx
MmNkYmEuLjE4MzlhNjQxM2E1ZDRlZTU1MTk2NDM5OTIzZmU5NDk3YjJkNDU4MTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC00NCw2ICs0NCwx
MCBAQAogI2luY2x1ZGUgIlNoYXBlSW5zaWRlSW5mby5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
SU9TX1RFWFRfQVVUT1NJWklORykKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBSZW5kZXJCbG9jazo6c19jYW5Qcm9wYWdhdGVG
bG9hdEludG9TaWJsaW5nID0gZmFsc2U7CkBAIC05MSwxMiArOTUsMjAgQEAgUmVuZGVyQmxvY2tG
bG93OjpNYXJnaW5JbmZvOjpNYXJnaW5JbmZvKFJlbmRlckJsb2NrRmxvdyYgYmxvY2ssIExheW91
dFVuaXQgYmVmb3IKIAogUmVuZGVyQmxvY2tGbG93OjpSZW5kZXJCbG9ja0Zsb3coRWxlbWVudCYg
ZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAgICAgOiBSZW5kZXJCbG9jayhl
bGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCBSZW5kZXJCbG9ja0Zsb3dGbGFnKQorI2lmIEVOQUJM
RShJT1NfVEVYVF9BVVRPU0laSU5HKQorICAgICwgbV93aWR0aEZvclRleHRBdXRvc2l6aW5nKC0x
KQorICAgICwgbV9saW5lQ291bnRGb3JUZXh0QXV0b3NpemluZyhOT1RfU0VUKQorI2VuZGlmCiB7
CiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUodHJ1ZSk7CiB9CiAKIFJlbmRlckJsb2NrRmxvdzo6UmVu
ZGVyQmxvY2tGbG93KERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5
bGUpCiAgICAgOiBSZW5kZXJCbG9jayhkb2N1bWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgUmVuZGVy
QmxvY2tGbG93RmxhZykKKyNpZiBFTkFCTEUoSU9TX1RFWFRfQVVUT1NJWklORykKKyAgICAsIG1f
d2lkdGhGb3JUZXh0QXV0b3NpemluZygtMSkKKyAgICAsIG1fbGluZUNvdW50Rm9yVGV4dEF1dG9z
aXppbmcoTk9UX1NFVCkKKyNlbmRpZgogewogICAgIHNldENoaWxkcmVuSW5saW5lKHRydWUpOwog
fQpAQCAtMzI2MCw1ICszMjcyLDEyMSBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bWF0ZXJpYWxp
emVSYXJlQmxvY2tGbG93RGF0YSgpCiAgICAgbV9yYXJlQmxvY2tGbG93RGF0YSA9IHN0ZDo6bWFr
ZV91bmlxdWU8UmVuZGVyQmxvY2tGbG93OjpSZW5kZXJCbG9ja0Zsb3dSYXJlRGF0YT4oKnRoaXMp
OwogfQogCisjaWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCitpbmxpbmUgc3RhdGljIGJv
b2wgaXNWaXNpYmxlUmVuZGVyVGV4dChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQoreworICAgIGlm
ICghcmVuZGVyZXItPmlzVGV4dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUmVuZGVy
VGV4dCogcmVuZGVyVGV4dCA9IHRvUmVuZGVyVGV4dChyZW5kZXJlcik7CisgICAgcmV0dXJuICFy
ZW5kZXJUZXh0LT5saW5lc0JvdW5kaW5nQm94KCkuaXNFbXB0eSgpICYmICFyZW5kZXJUZXh0LT50
ZXh0KCktPmNvbnRhaW5zT25seVdoaXRlc3BhY2UoKTsKK30KKworaW5saW5lIHN0YXRpYyBib29s
IHJlc2l6ZVRleHRQZXJtaXR0ZWQoUmVuZGVyT2JqZWN0KiByZW5kZXIpCit7CisgICAgLy8gV2Ug
ZGlzYWxsb3cgcmVzaXppbmcgZm9yIHRleHQgaW5wdXQgZmllbGRzIGFuZCB0ZXh0YXJlYSB0byBh
ZGRyZXNzIDxyZGFyOi8vcHJvYmxlbS81NzkyOTg3PiBhbmQgPHJkYXI6Ly9wcm9ibGVtLzgwMjEx
MjM+CisgICAgYXV0byByZW5kZXJlciA9IHJlbmRlci0+cGFyZW50KCk7CisgICAgd2hpbGUgKHJl
bmRlcmVyKSB7CisgICAgICAgIC8vIEdldCB0aGUgZmlyc3Qgbm9uLXNoYWRvdyBIVE1MRWxlbWVu
dCBhbmQgc2VlIGlmIGl0J3MgYW4gaW5wdXQuCisgICAgICAgIGlmIChyZW5kZXJlci0+ZWxlbWVu
dCgpICYmIHJlbmRlcmVyLT5lbGVtZW50KCktPmlzSFRNTEVsZW1lbnQoKSAmJiAhcmVuZGVyZXIt
PmVsZW1lbnQoKS0+aXNJblNoYWRvd1RyZWUoKSkgeworICAgICAgICAgICAgY29uc3QgSFRNTEVs
ZW1lbnQmIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KCpyZW5kZXJlci0+ZWxlbWVudCgpKTsKKyAg
ICAgICAgICAgIHJldHVybiAhaXNIVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpICYmICFpc0hUTUxU
ZXh0QXJlYUVsZW1lbnQoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICAgICAgcmVuZGVyZXIgPSBy
ZW5kZXJlci0+cGFyZW50KCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitpbnQgUmVu
ZGVyQmxvY2tGbG93OjppbW1lZGlhdGVMaW5lQ291bnQoKQoreworICAgIC8vIENvcGllZCBhbmQg
bW9kaWZpZWQgZnJvbSBSZW5kZXJCbG9jazo6bGluZUNvdW50LgorICAgIC8vIE9ubHkgZGVzY2Vu
ZCBpbnRvIGxpc3QgaXRlbXMuCisgICAgaW50IGNvdW50ID0gMDsKKyAgICBpZiAoc3R5bGUoKS52
aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkgeworICAgICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkg
eworICAgICAgICAgICAgZm9yIChSb290SW5saW5lQm94KiBib3ggPSBmaXJzdFJvb3RCb3goKTsg
Ym94OyBib3ggPSBib3gtPm5leHRSb290Qm94KCkpCisgICAgICAgICAgICAgICAgY291bnQrKzsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBvYmogPSBm
aXJzdENoaWxkKCk7IG9iajsgb2JqID0gb2JqLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAg
ICAgICAgaWYgKG9iai0+aXNMaXN0SXRlbSgpKQorICAgICAgICAgICAgICAgICAgICBjb3VudCAr
PSB0b1JlbmRlckJsb2NrRmxvdyhvYmopLT5saW5lQ291bnQoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBib29sIGlzTm9u
QmxvY2tzT3JOb25GaXhlZEhlaWdodExpc3RJdGVtcyhjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRl
cikKK3sKKyAgICBpZiAoIXJlbmRlci0+aXNSZW5kZXJCbG9jaygpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBpZiAocmVuZGVyLT5pc0xpc3RJdGVtKCkpCisgICAgICAgIHJldHVybiByZW5k
ZXItPnN0eWxlKCkuaGVpZ2h0KCkudHlwZSgpICE9IEZpeGVkOworICAgIHJldHVybiBmYWxzZTsK
K30KKworLy8gIEZvciBub3csIHdlIGF1dG8gc2l6ZSBzaW5nbGUgbGluZXMgb2YgdGV4dCB0aGUg
c2FtZSBhcyBtdWx0aXBsZSBsaW5lcy4KKy8vICBXZSd2ZSBiZWVuIGV4cGVyaW1lbnRpbmcgd2l0
aCBsb3cgdmFsdWVzIGZvciBzaW5nbGUgbGluZXMgb2YgdGV4dC4KK3N0YXRpYyBpbmxpbmUgZmxv
YXQgb25lTGluZVRleHRNdWx0aXBsaWVyKGZsb2F0IHNwZWNpZmllZFNpemUpCit7CisgICAgcmV0
dXJuIHN0ZDo6bWF4KCgxLjBmIC8gbG9nMTBmKHNwZWNpZmllZFNpemUpICogMS43ZiksIDEuMGYp
OworfQorCitzdGF0aWMgaW5saW5lIGZsb2F0IHRleHRNdWx0aXBsaWVyKGZsb2F0IHNwZWNpZmll
ZFNpemUpCit7CisgICAgcmV0dXJuIHN0ZDo6bWF4KCgxLjBmIC8gbG9nMTBmKHNwZWNpZmllZFNp
emUpICogMS45NWYpLCAxLjBmKTsKK30KKwordm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmFkanVzdENv
bXB1dGVkRm9udFNpemVzKGZsb2F0IHNpemUsIGZsb2F0IHZpc2libGVXaWR0aCkKK3sKKyAgICAv
LyBEb24ndCBkbyBhbnkgd29yayBpZiB0aGUgYmxvY2sgaXMgc21hbGxlciB0aGFuIHRoZSB2aXNp
YmxlIGFyZWEuCisgICAgaWYgKHZpc2libGVXaWR0aCA+PSB3aWR0aCgpKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgdW5zaWduZWQgbGluZUNvdW50OworICAgIGlmIChtX2xpbmVDb3VudEZv
clRleHRBdXRvc2l6aW5nID09IE5PVF9TRVQpIHsKKyAgICAgICAgaW50IGNvdW50ID0gaW1tZWRp
YXRlTGluZUNvdW50KCk7CisgICAgICAgIGlmICghY291bnQpCisgICAgICAgICAgICBsaW5lQ291
bnQgPSBOT19MSU5FOworICAgICAgICBlbHNlIGlmIChjb3VudCA9PSAxKQorICAgICAgICAgICAg
bGluZUNvdW50ID0gT05FX0xJTkU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxpbmVDb3Vu
dCA9IE1VTFRJX0xJTkU7CisgICAgfSBlbHNlCisgICAgICAgIGxpbmVDb3VudCA9IG1fbGluZUNv
dW50Rm9yVGV4dEF1dG9zaXppbmc7CisgICAgCisgICAgQVNTRVJUKGxpbmVDb3VudCAhPSBOT1Rf
U0VUKTsKKyAgICBpZiAobGluZUNvdW50ID09IE5PX0xJTkUpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBmbG9hdCBhY3R1YWxXaWR0aCA9IG1fd2lkdGhGb3JUZXh0QXV0b3NpemluZyAhPSAt
MSA/IHN0YXRpY19jYXN0PGZsb2F0PihtX3dpZHRoRm9yVGV4dEF1dG9zaXppbmcpIDogc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHdpZHRoKCkpOworICAgIGZsb2F0IHNjYWxlID0gdmlzaWJsZVdpZHRoIC8g
YWN0dWFsV2lkdGg7CisgICAgZmxvYXQgbWluRm9udFNpemUgPSByb3VuZGYoc2l6ZSAvIHNjYWxl
KTsKKyAgICAKKyAgICBmb3IgKFJlbmRlck9iamVjdCogZGVzY2VuZGVudCA9IHRyYXZlcnNlTmV4
dCh0aGlzLCBpc05vbkJsb2Nrc09yTm9uRml4ZWRIZWlnaHRMaXN0SXRlbXMpOyBkZXNjZW5kZW50
OyBkZXNjZW5kZW50ID0gZGVzY2VuZGVudC0+dHJhdmVyc2VOZXh0KHRoaXMsIGlzTm9uQmxvY2tz
T3JOb25GaXhlZEhlaWdodExpc3RJdGVtcykpIHsKKyAgICAgICAgaWYgKGlzVmlzaWJsZVJlbmRl
clRleHQoZGVzY2VuZGVudCkgJiYgcmVzaXplVGV4dFBlcm1pdHRlZChkZXNjZW5kZW50KSkgewor
ICAgICAgICAgICAgUmVuZGVyVGV4dCogdGV4dCA9IHRvUmVuZGVyVGV4dChkZXNjZW5kZW50KTsK
KyAgICAgICAgICAgIFJlbmRlclN0eWxlJiBvbGRTdHlsZSA9IHRleHQtPnN0eWxlKCk7CisgICAg
ICAgICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uID0gb2xkU3R5bGUuZm9udERl
c2NyaXB0aW9uKCk7CisgICAgICAgICAgICBmbG9hdCBzcGVjaWZpZWRTaXplID0gZm9udERlc2Ny
aXB0aW9uLnNwZWNpZmllZFNpemUoKTsKKyAgICAgICAgICAgIGZsb2F0IHNjYWxlZFNpemUgPSBy
b3VuZGYoc3BlY2lmaWVkU2l6ZSAqIHNjYWxlKTsKKyAgICAgICAgICAgIGlmIChzY2FsZWRTaXpl
ID4gMCAmJiBzY2FsZWRTaXplIDwgbWluRm9udFNpemUpIHsKKyAgICAgICAgICAgICAgICAvLyBS
ZWNvcmQgdGhlIHdpZHRoIG9mIHRoZSBibG9jayBhbmQgdGhlIGxpbmUgY291bnQgdGhlIGZpcnN0
IHRpbWUgd2UgcmVzaXplIHRleHQgYW5kIHVzZSBpdCBmcm9tIHRoZW4gb24gZm9yIHRleHQgcmVz
aXppbmcuCisgICAgICAgICAgICAgICAgLy8gVGhpcyBtYWtlcyB0ZXh0IHJlc2l6aW5nIGNvbnNp
c3RlbnQgZXZlbiBpZiB0aGUgYmxvY2sncyB3aWR0aCBvciBsaW5lIGNvdW50IGNoYW5nZXMgKHdo
aWNoIGNhbiBiZSBjYXVzZWQgYnkgdGV4dCByZXNpemluZyBpdHNlbGYgNTE1OTkxNSkuCisgICAg
ICAgICAgICAgICAgaWYgKG1fbGluZUNvdW50Rm9yVGV4dEF1dG9zaXppbmcgPT0gTk9UX1NFVCkK
KyAgICAgICAgICAgICAgICAgICAgbV9saW5lQ291bnRGb3JUZXh0QXV0b3NpemluZyA9IGxpbmVD
b3VudDsKKyAgICAgICAgICAgICAgICBpZiAobV93aWR0aEZvclRleHRBdXRvc2l6aW5nID09IC0x
KQorICAgICAgICAgICAgICAgICAgICBtX3dpZHRoRm9yVGV4dEF1dG9zaXppbmcgPSBhY3R1YWxX
aWR0aDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmbG9hdCBjYW5kaWRhdGVO
ZXdTaXplID0gMDsKKyAgICAgICAgICAgICAgICBmbG9hdCBsaW5lVGV4dE11bHRpcGxpZXIgPSBs
aW5lQ291bnQgPT0gT05FX0xJTkUgPyBvbmVMaW5lVGV4dE11bHRpcGxpZXIoc3BlY2lmaWVkU2l6
ZSkgOiB0ZXh0TXVsdGlwbGllcihzcGVjaWZpZWRTaXplKTsKKyAgICAgICAgICAgICAgICBjYW5k
aWRhdGVOZXdTaXplID0gcm91bmRmKHN0ZDo6bWluKG1pbkZvbnRTaXplLCBzcGVjaWZpZWRTaXpl
ICogbGluZVRleHRNdWx0aXBsaWVyKSk7CisgICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZU5l
d1NpemUgPiBzcGVjaWZpZWRTaXplICYmIGNhbmRpZGF0ZU5ld1NpemUgIT0gZm9udERlc2NyaXB0
aW9uLmNvbXB1dGVkU2l6ZSgpICYmIHRleHQtPnRleHROb2RlKCkgJiYgb2xkU3R5bGUudGV4dFNp
emVBZGp1c3QoKS5pc0F1dG8oKSkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRB
dXRvU2l6aW5nTm9kZSh0ZXh0LT50ZXh0Tm9kZSgpLCBjYW5kaWRhdGVOZXdTaXplKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKyNlbmRpZiAvLyBFTkFCTEUoSU9TX1RFWFRf
QVVUT1NJWklORykKKwogfQogLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAppbmRleCA4OTA3NjUxODkxNDNkZTEwNDQxYmZjNDk2
NjlhYWY0YjVlMzdhNTgwLi4yNDRiMDdhYzU3ODAxOWQ1Y2ZhNjJhZDdkNzliY2IyNGQxYmI5ZDhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCkBAIC00NCw2
ICs0NCwxMiBAQCBzdHJ1Y3QgRmxvYXRXaXRoUmVjdDsKIHRlbXBsYXRlIDxjbGFzcyBSdW4+IGNs
YXNzIEJpZGlSdW5MaXN0OwogdHlwZWRlZiBWZWN0b3I8V29yZE1lYXN1cmVtZW50LCA2ND4gV29y
ZE1lYXN1cmVtZW50czsKIAorI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQorZW51bSBM
aW5lQ291bnQgeworICAgIE5PVF9TRVQgPSAwLCBOT19MSU5FID0gMSwgT05FX0xJTkUgPSAyLCBN
VUxUSV9MSU5FID0gMworfTsKKyNlbmRpZgorCiBjbGFzcyBSZW5kZXJCbG9ja0Zsb3cgOiBwdWJs
aWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlckJsb2NrRmxvdyhFbGVtZW50Jiwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4pOwpAQCAtNTI2LDYgKzUzMiwxMSBAQCBwcml2YXRlOgogICAg
IGJvb2wgbmFtZWRGbG93RnJhZ21lbnROZWVkc1VwZGF0ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERTsKIAorI2lmIEVOQUJMRShJT1Nf
VEVYVF9BVVRPU0laSU5HKQorICAgIGludCBtX3dpZHRoRm9yVGV4dEF1dG9zaXppbmc7CisgICAg
dW5zaWduZWQgbV9saW5lQ291bnRGb3JUZXh0QXV0b3NpemluZyA6IDI7CisjZW5kaWYKKwogcHVi
bGljOgogICAgIC8vIEZJWE1FLUJMT0NLRkxPVzogVGhlc2UgY2FuIGJlIG1hZGUgcHJvdGVjdGVk
IGFnYWluIG9uY2UgYWxsIGNhbGxlcnMgaGF2ZSBiZWVuIG1vdmVkIGhlcmUuCiAgICAgdm9pZCBh
ZGp1c3RMaW5lUG9zaXRpb25Gb3JQYWdpbmF0aW9uKFJvb3RJbmxpbmVCb3gqLCBMYXlvdXRVbml0
JiBkZWx0YU9mZnNldCwgUmVuZGVyRmxvd1RocmVhZCopOyAvLyBDb21wdXRlcyBhIGRlbHRhT2Zm
c2V0IHZhbHVlIHRoYXQgcHV0IGEgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBuZXh0IHBhZ2UgaWYg
aXQgZG9lc24ndCBmaXQgb24gdGhlIGN1cnJlbnQgcGFnZS4KQEAgLTU0MCw2ICs1NTEsMTYgQEAg
cHVibGljOgogICAgIFJlbmRlckJsb2NrRmxvd1JhcmVEYXRhJiBlbnN1cmVSYXJlQmxvY2tGbG93
RGF0YSgpOwogICAgIHZvaWQgbWF0ZXJpYWxpemVSYXJlQmxvY2tGbG93RGF0YSgpOwogCisjaWYg
RU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCisgICAgaW50IGltbWVkaWF0ZUxpbmVDb3VudCgp
OworICAgIHZvaWQgYWRqdXN0Q29tcHV0ZWRGb250U2l6ZXMoZmxvYXQgc2l6ZSwgZmxvYXQgdmlz
aWJsZVdpZHRoKTsKKyAgICB2b2lkIHJlc2V0Q29tcHV0ZWRGb250U2l6ZSgpCisgICAgeworICAg
ICAgICBtX3dpZHRoRm9yVGV4dEF1dG9zaXppbmcgPSAtMTsKKyAgICAgICAgbV9saW5lQ291bnRG
b3JUZXh0QXV0b3NpemluZyA9IE5PVF9TRVQ7CisgICAgfQorI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICBPd25QdHI8RmxvYXRpbmdPYmplY3RzPiBtX2Zsb2F0aW5nT2JqZWN0czsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyQmxvY2tGbG93UmFyZURhdGE+IG1fcmFyZUJsb2NrRmxvd0RhdGE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGI0YWU4Yjdj
MTk1MWNmYTc0ZWQ2YzEzNDliOWFmYjA0MTUyNWQ5YWUuLjdkZDNkYWRmZTljYmY5NjNmN2QzYTUz
ZDEyNTdiNjcxZDk0MjAxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCkBAIC00MzUsOCArNDM1LDggQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmFkanVzdENvbXB1
dGVkRm9udFNpemVzT25CbG9ja3MoZmxvYXQgc2l6ZSwgZmxvYXQgdmlzaWJsZVdpZHQKICAgICAg
ICAgICAgIGRlcHRoU3RhY2suYXBwZW5kKG5ld0ZpeGVkRGVwdGgpOwogCiAgICAgICAgIGludCBz
dGFja1NpemUgPSBkZXB0aFN0YWNrLnNpemUoKTsKLSAgICAgICAgaWYgKGRlc2NlbmRlbnQtPmlz
UmVuZGVyQmxvY2soKSAmJiAhZGVzY2VuZGVudC0+aXNMaXN0SXRlbSgpICYmICghc3RhY2tTaXpl
IHx8IGN1cnJlbnREZXB0aCAtIGRlcHRoU3RhY2tbc3RhY2tTaXplIC0gMV0gPiBUZXh0QXV0b1Np
emluZ0ZpeGVkSGVpZ2h0RGVwdGgpKQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyQmxv
Y2sqPihkZXNjZW5kZW50KS0+YWRqdXN0Q29tcHV0ZWRGb250U2l6ZXMoc2l6ZSwgdmlzaWJsZVdp
ZHRoKTsKKyAgICAgICAgaWYgKGRlc2NlbmRlbnQtPmlzUmVuZGVyQmxvY2tGbG93KCkgJiYgIWRl
c2NlbmRlbnQtPmlzTGlzdEl0ZW0oKSAmJiAoIXN0YWNrU2l6ZSB8fCBjdXJyZW50RGVwdGggLSBk
ZXB0aFN0YWNrW3N0YWNrU2l6ZSAtIDFdID4gVGV4dEF1dG9TaXppbmdGaXhlZEhlaWdodERlcHRo
KSkKKyAgICAgICAgICAgIHRvUmVuZGVyQmxvY2tGbG93KGRlc2NlbmRlbnQpLT5hZGp1c3RDb21w
dXRlZEZvbnRTaXplcyhzaXplLCB2aXNpYmxlV2lkdGgpOwogICAgICAgICBuZXdGaXhlZERlcHRo
ID0gMDsKICAgICB9CiAKQEAgLTQ2Myw4ICs0NjMsOCBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVz
ZXRUZXh0QXV0b3NpemluZygpCiAgICAgICAgICAgICBkZXB0aFN0YWNrLmFwcGVuZChuZXdGaXhl
ZERlcHRoKTsKIAogICAgICAgICBpbnQgc3RhY2tTaXplID0gZGVwdGhTdGFjay5zaXplKCk7Ci0g
ICAgICAgIGlmIChkZXNjZW5kZW50LT5pc1JlbmRlckJsb2NrKCkgJiYgIWRlc2NlbmRlbnQtPmlz
TGlzdEl0ZW0oKSAmJiAoIXN0YWNrU2l6ZSB8fCBjdXJyZW50RGVwdGggLSBkZXB0aFN0YWNrW3N0
YWNrU2l6ZSAtIDFdID4gVGV4dEF1dG9TaXppbmdGaXhlZEhlaWdodERlcHRoKSkKLSAgICAgICAg
ICAgIHRvUmVuZGVyQmxvY2soZGVzY2VuZGVudCktPnJlc2V0Q29tcHV0ZWRGb250U2l6ZSgpOwor
ICAgICAgICBpZiAoZGVzY2VuZGVudC0+aXNSZW5kZXJCbG9ja0Zsb3coKSAmJiAhZGVzY2VuZGVu
dC0+aXNMaXN0SXRlbSgpICYmICghc3RhY2tTaXplIHx8IGN1cnJlbnREZXB0aCAtIGRlcHRoU3Rh
Y2tbc3RhY2tTaXplIC0gMV0gPiBUZXh0QXV0b1NpemluZ0ZpeGVkSGVpZ2h0RGVwdGgpKQorICAg
ICAgICAgICAgdG9SZW5kZXJCbG9ja0Zsb3coZGVzY2VuZGVudCktPnJlc2V0Q29tcHV0ZWRGb250
U2l6ZSgpOwogICAgICAgICBuZXdGaXhlZERlcHRoID0gMDsKICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="244767"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>