<?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>48156</bug_id>
          
          <creation_ts>2010-10-22 15:14:06 -0700</creation_ts>
          <short_desc>Make vertical lines hit test properly and show a vertical i-beam cursor.</short_desc>
          <delta_ts>2010-10-22 15:36:55 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298211</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-22 15:14:06 -0700</bug_when>
    <thetext>Make vertical lines hit test properly and show a vertical i-beam cursor.  Numerous bugs with overflow were discovered while getting this to work, so these are in the patch as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298213</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-22 15:14:35 -0700</bug_when>
    <thetext>The layout tests also caught these overflow regressions already and are currently broken, so they test those changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298214</commentid>
    <comment_count>2</comment_count>
      <attachid>71601</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-22 15:16:01 -0700</bug_when>
    <thetext>Created attachment 71601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298222</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-10-22 15:36:55 -0700</bug_when>
    <thetext>Fixed in r70356.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71601</attachid>
            <date>2010-10-22 15:16:01 -0700</date>
            <delta_ts>2010-10-22 15:19:01 -0700</delta_ts>
            <desc>Patch </desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>20812</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDM1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMTAtMjIgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE1NgorCisgICAgICAgIE1ha2Ug
dmVydGljYWwgbGluZXMgaGl0IHRlc3QgcHJvcGVybHkgYW5kIHNob3cgYSB2ZXJ0aWNhbCBpLWJl
YW0gY3Vyc29yLiAgTnVtZXJvdXMgYnVncyB3aXRoIG92ZXJmbG93IHdlcmUgZGlzY292ZXJlZCB3
aGlsZSBnZXR0aW5nIHRoaXMgdG8gd29yaywKKyAgICAgICAgc28gdGhlc2UgYXJlIGluIHRoZSBw
YXRjaCBhcyB3ZWxsLiAgVGhlIGJyb2tlbiBsYXlvdXQgdGVzdHMgYXJlIGZpeGVkIGJ5IHRoZSBv
dmVyZmxvdyBidWcgZml4ZXMgYXMgd2VsbCAod2hpY2gganVzdCByZXN0b3JlIHRoZSBvbGQgYmVo
YXZpb3IpLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9J
bmxpbmVCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUJveDo6d2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lQm94OjpoZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OnBsYWNlQm94
ZXNJbklubGluZURpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpj
b21wdXRlQmxvY2tEaXJlY3Rpb25PdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVG
bG93Qm94Ojpub2RlQXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
aDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmxvZ2ljYWxUb3BWaXNpYmxlT3Zl
cmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bG9naWNhbEJvdHRvbVZp
c2libGVPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojp2aXNpYmxl
T3ZlcmZsb3dSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmxheW91dE92
ZXJmbG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojpsb2dpY2FsVG9w
TGF5b3V0T3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bG9naWNh
bEJvdHRvbUxheW91dE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6
OnZpc3VhbE92ZXJmbG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVGbG93Qm94Ojps
b2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0Jv
eDo6bG9naWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUZsb3dCb3g6OnNldEJsb2NrRGlyZWN0aW9uT3ZlcmZsb3dQb3NpdGlvbnMpOgorICAgICAgICAq
IHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRl
eHRCb3g6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YmxvY2tEaXJlY3Rpb25PdmVyZmxvdyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMaW5lQm94TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaW5lQm94TGlzdDo6
aGl0VGVzdCk6CisKIDIwMTAtMTAtMjIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShy
ZXZpc2lvbiA3MDI2MCkKKysrIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDU2LDE1ICsxMDU2LDE4IEBAIHN0YXRpYyBib29sIG5vZGVJc05vdEJlaW5n
RWRpdGVkKE5vZGUqIG4KIAogQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBTY3JvbGxiYXIqIHNjcm9sbGJh
cikKIHsKLSAgICAvLyBEdXJpbmcgc2VsZWN0aW9uLCB1c2UgYW4gSS1iZWFtIG5vIG1hdHRlciB3
aGF0IHdlJ3JlIG92ZXIuCi0gICAgLy8gSWYgeW91J3JlIGNhcHR1cmluZyBtb3VzZSBldmVudHMg
Zm9yIGEgcGFydGljdWxhciBub2RlLCBkb24ndCB0cmVhdCB0aGlzIGFzIGEgc2VsZWN0aW9uLgot
ICAgIGlmIChtX21vdXNlUHJlc3NlZCAmJiBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0ICYmIG1f
ZnJhbWUtPnNlbGVjdGlvbigpLT5pc0NhcmV0T3JSYW5nZSgpICYmICFtX2NhcHR1cmluZ01vdXNl
RXZlbnRzTm9kZSkKLSAgICAgICAgcmV0dXJuIGlCZWFtQ3Vyc29yKCk7Ci0KICAgICBOb2RlKiBu
b2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOwogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBu
b2RlID8gbm9kZS0+cmVuZGVyZXIoKSA6IDA7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVu
ZGVyZXIgPyByZW5kZXJlci0+c3R5bGUoKSA6IDA7CiAKKyAgICBib29sIGhvcml6b250YWxUZXh0
ID0gIXN0eWxlIHx8IHN0eWxlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAgIGNvbnN0
IEN1cnNvciYgaUJlYW0gPSBob3Jpem9udGFsVGV4dCA/IGlCZWFtQ3Vyc29yKCkgOiB2ZXJ0aWNh
bFRleHRDdXJzb3IoKTsKKworICAgIC8vIER1cmluZyBzZWxlY3Rpb24sIHVzZSBhbiBJLWJlYW0g
bm8gbWF0dGVyIHdoYXQgd2UncmUgb3Zlci4KKyAgICAvLyBJZiB5b3UncmUgY2FwdHVyaW5nIG1v
dXNlIGV2ZW50cyBmb3IgYSBwYXJ0aWN1bGFyIG5vZGUsIGRvbid0IHRyZWF0IHRoaXMgYXMgYSBz
ZWxlY3Rpb24uCisgICAgaWYgKG1fbW91c2VQcmVzc2VkICYmIG1fbW91c2VEb3duTWF5U3RhcnRT
ZWxlY3QgJiYgbV9mcmFtZS0+c2VsZWN0aW9uKCktPmlzQ2FyZXRPclJhbmdlKCkgJiYgIW1fY2Fw
dHVyaW5nTW91c2VFdmVudHNOb2RlKQorICAgICAgICByZXR1cm4gaUJlYW07CisKICAgICBpZiAo
cmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzRnJhbWVTZXQoKSkgewogICAgICAgICBSZW5kZXJGcmFt
ZVNldCogZnJhbWVTZXRSZW5kZXJlciA9IHRvUmVuZGVyRnJhbWVTZXQocmVuZGVyZXIpOwogICAg
ICAgICBpZiAoZnJhbWVTZXRSZW5kZXJlci0+Y2FuUmVzaXplUm93KGV2ZW50LmxvY2FsUG9pbnQo
KSkpCkBAIC0xMTMzLDcgKzExMzYsNyBAQCBDdXJzb3IgRXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJz
b3IoY29uc3QgCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKChlZGl0YWJs
ZSB8fCAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzVGV4dCgpICYmIG5vZGUtPmNhblN0YXJ0U2Vs
ZWN0aW9uKCkpKSAmJiAhaW5SZXNpemVyICYmICFzY3JvbGxiYXIpCi0gICAgICAgICAgICByZXR1
cm4gaUJlYW1DdXJzb3IoKTsKKyAgICAgICAgICAgIHJldHVybiBpQmVhbTsKICAgICAgICAgcmV0
dXJuIHBvaW50ZXJDdXJzb3IoKTsKICAgICB9CiAgICAgY2FzZSBDVVJTT1JfQ1JPU1M6CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVCb3guaAkocmV2aXNpb24gNzAzMzApCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDYgKzIxNiw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFkoaW50IHkpIHsgbV95ID0geTsgfQogICAgIGludCB5KCkgY29uc3QgeyBy
ZXR1cm4gbV95OyB9CiAKKyAgICBpbnQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2lzVmVydGlj
YWwgPyBsb2dpY2FsSGVpZ2h0KCkgOiBsb2dpY2FsV2lkdGgoKTsgfQorICAgIGludCBoZWlnaHQo
KSBjb25zdCB7IHJldHVybiBtX2lzVmVydGljYWwgPyBsb2dpY2FsV2lkdGgoKSA6IGxvZ2ljYWxI
ZWlnaHQoKTsgfQorCiAgICAgLy8gVGhlIGxvZ2ljYWxMZWZ0IHBvc2l0aW9uIGlzIHRoZSBsZWZ0
IGVkZ2Ugb2YgdGhlIGxpbmUgYm94IGluIGEgaG9yaXpvbnRhbCBsaW5lIGFuZCB0aGUgdG9wIGVk
Z2UgaW4gYSB2ZXJ0aWNhbCBsaW5lLgogICAgIGludCBsb2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0
dXJuICFtX2lzVmVydGljYWwgPyBtX3ggOiBtX3k7IH0KICAgICBpbnQgbG9naWNhbFJpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbG9naWNhbExlZnQoKSArIGxvZ2ljYWxXaWR0aCgpOyB9CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gNzAzMzApCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk5LDggKzI5
OSw4IEBAIGludCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5JbmxpbmVEaXIKICAgICAgICAg
ICAgIGludCB0ZXh0U2hhZG93TG9naWNhbExlZnQ7CiAgICAgICAgICAgICBpbnQgdGV4dFNoYWRv
d0xvZ2ljYWxSaWdodDsKICAgICAgICAgICAgIHJ0LT5zdHlsZShtX2ZpcnN0TGluZSktPmdldFRl
eHRTaGFkb3dJbmxpbmVEaXJlY3Rpb25FeHRlbnQodGV4dFNoYWRvd0xvZ2ljYWxMZWZ0LCB0ZXh0
U2hhZG93TG9naWNhbFJpZ2h0KTsKLSAgICAgICAgICAgIGNoaWxkT3ZlcmZsb3dMb2dpY2FsTGVm
dCA9IG1pbihjaGlsZE92ZXJmbG93TG9naWNhbExlZnQsIHRleHRTaGFkb3dMb2dpY2FsTGVmdCk7
Ci0gICAgICAgICAgICBjaGlsZE92ZXJmbG93TG9naWNhbFJpZ2h0ID0gbWF4KGNoaWxkT3ZlcmZs
b3dMb2dpY2FsUmlnaHQsIHRleHRTaGFkb3dMb2dpY2FsUmlnaHQpOworICAgICAgICAgICAgY2hp
bGRPdmVyZmxvd0xvZ2ljYWxMZWZ0ID0gbWluKGNoaWxkT3ZlcmZsb3dMb2dpY2FsTGVmdCwgdGV4
dFNoYWRvd0xvZ2ljYWxMZWZ0ICsgbG9naWNhbExlZnRHbHlwaE92ZXJmbG93KTsKKyAgICAgICAg
ICAgIGNoaWxkT3ZlcmZsb3dMb2dpY2FsUmlnaHQgPSBtYXgoY2hpbGRPdmVyZmxvd0xvZ2ljYWxS
aWdodCwgdGV4dFNoYWRvd0xvZ2ljYWxSaWdodCArIGxvZ2ljYWxSaWdodEdseXBoT3ZlcmZsb3cp
OwogICAgICAgICAgICAgbG9naWNhbExlZnRWaXN1YWxPdmVyZmxvdyA9IG1pbihsb2dpY2FsTGVm
dCArIGNoaWxkT3ZlcmZsb3dMb2dpY2FsTGVmdCwgbG9naWNhbExlZnRWaXN1YWxPdmVyZmxvdyk7
CiAgICAgICAgICAgICBsb2dpY2FsUmlnaHRWaXN1YWxPdmVyZmxvdyA9IG1heChsb2dpY2FsTGVm
dCArIHRleHQtPmxvZ2ljYWxXaWR0aCgpICsgY2hpbGRPdmVyZmxvd0xvZ2ljYWxSaWdodCwgbG9n
aWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3cpOwogICAgICAgICAgICAgCkBAIC02MTIsMTggKzYxMiwx
OCBAQCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVCbG9ja0RpcmVjdGlvCiAgICAgICAgICAg
ICBpbnQgdGV4dFNoYWRvd0JvdHRvbTsKICAgICAgICAgICAgIGN1cnItPnJlbmRlcmVyKCktPnN0
eWxlKG1fZmlyc3RMaW5lKS0+Z2V0VGV4dFNoYWRvd0Jsb2NrRGlyZWN0aW9uRXh0ZW50KHRleHRT
aGFkb3dUb3AsIHRleHRTaGFkb3dCb3R0b20pOwogICAgICAgICAKLSAgICAgICAgICAgIGludCBj
aGlsZE92ZXJmbG93VG9wID0gbWluKHRleHRTaGFkb3dUb3AsIHRvcEdseXBoT3ZlcmZsb3cpOwot
ICAgICAgICAgICAgaW50IGNoaWxkT3ZlcmZsb3dCb3R0b20gPSBtYXgodGV4dFNoYWRvd0JvdHRv
bSwgYm90dG9tR2x5cGhPdmVyZmxvdyk7CisgICAgICAgICAgICBpbnQgY2hpbGRPdmVyZmxvd1Rv
cCA9IG1pbih0ZXh0U2hhZG93VG9wICsgdG9wR2x5cGhPdmVyZmxvdywgdG9wR2x5cGhPdmVyZmxv
dyk7CisgICAgICAgICAgICBpbnQgY2hpbGRPdmVyZmxvd0JvdHRvbSA9IG1heCh0ZXh0U2hhZG93
Qm90dG9tICsgYm90dG9tR2x5cGhPdmVyZmxvdywgYm90dG9tR2x5cGhPdmVyZmxvdyk7CiAgICAg
CiAgICAgICAgICAgICB0b3BWaXN1YWxPdmVyZmxvdyA9IG1pbihjdXJyLT5sb2dpY2FsVG9wKCkg
KyBjaGlsZE92ZXJmbG93VG9wLCB0b3BWaXN1YWxPdmVyZmxvdyk7CiAgICAgICAgICAgICBib3R0
b21WaXN1YWxPdmVyZmxvdyA9IG1heChjdXJyLT5sb2dpY2FsVG9wKCkgKyB0ZXh0LT5sb2dpY2Fs
SGVpZ2h0KCkgKyBjaGlsZE92ZXJmbG93Qm90dG9tLCBib3R0b21WaXN1YWxPdmVyZmxvdyk7CiAg
ICAgICAgIH0gZWxzZSAgaWYgKGN1cnItPnJlbmRlcmVyKCktPmlzUmVuZGVySW5saW5lKCkpIHsK
ICAgICAgICAgICAgIElubGluZUZsb3dCb3gqIGZsb3cgPSBzdGF0aWNfY2FzdDxJbmxpbmVGbG93
Qm94Kj4oY3Vycik7CiAgICAgICAgICAgICBmbG93LT5jb21wdXRlQmxvY2tEaXJlY3Rpb25PdmVy
ZmxvdyhsaW5lVG9wLCBsaW5lQm90dG9tLCBzdHJpY3RNb2RlLCB0ZXh0Qm94RGF0YU1hcCk7Ci0g
ICAgICAgICAgICB0b3BMYXlvdXRPdmVyZmxvdyA9IG1pbih0b3BMYXlvdXRPdmVyZmxvdywgZmxv
dy0+dG9wTGF5b3V0T3ZlcmZsb3coKSk7Ci0gICAgICAgICAgICBib3R0b21MYXlvdXRPdmVyZmxv
dyA9IG1heChib3R0b21MYXlvdXRPdmVyZmxvdywgZmxvdy0+Ym90dG9tTGF5b3V0T3ZlcmZsb3co
KSk7Ci0gICAgICAgICAgICB0b3BWaXN1YWxPdmVyZmxvdyA9IG1pbih0b3BWaXN1YWxPdmVyZmxv
dywgZmxvdy0+dG9wVmlzdWFsT3ZlcmZsb3coKSk7Ci0gICAgICAgICAgICBib3R0b21WaXN1YWxP
dmVyZmxvdyA9IG1heChib3R0b21WaXN1YWxPdmVyZmxvdywgZmxvdy0+Ym90dG9tVmlzdWFsT3Zl
cmZsb3coKSk7CisgICAgICAgICAgICB0b3BMYXlvdXRPdmVyZmxvdyA9IG1pbih0b3BMYXlvdXRP
dmVyZmxvdywgZmxvdy0+bG9naWNhbFRvcExheW91dE92ZXJmbG93KCkpOworICAgICAgICAgICAg
Ym90dG9tTGF5b3V0T3ZlcmZsb3cgPSBtYXgoYm90dG9tTGF5b3V0T3ZlcmZsb3csIGZsb3ctPmxv
Z2ljYWxCb3R0b21MYXlvdXRPdmVyZmxvdygpKTsKKyAgICAgICAgICAgIHRvcFZpc3VhbE92ZXJm
bG93ID0gbWluKHRvcFZpc3VhbE92ZXJmbG93LCBmbG93LT5sb2dpY2FsVG9wVmlzdWFsT3ZlcmZs
b3coKSk7CisgICAgICAgICAgICBib3R0b21WaXN1YWxPdmVyZmxvdyA9IG1heChib3R0b21WaXN1
YWxPdmVyZmxvdywgZmxvdy0+bG9naWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93KCkpOwogICAgICAg
ICB9IGVsc2UgaWYgKCFjdXJyLT5ib3hNb2RlbE9iamVjdCgpLT5oYXNTZWxmUGFpbnRpbmdMYXll
cigpKXsKICAgICAgICAgICAgIC8vIE9ubHkgaW5jbHVkZSBvdmVyZmxvdyBmcm9tIHJlcGxhY2Vk
IGlubGluZXMgaWYgdGhleSBkbyBub3QgcGFpbnQgdGhlbXNlbHZlcy4KICAgICAgICAgICAgIGlu
dCBib3hMb2dpY2FsVG9wID0gY3Vyci0+bG9naWNhbFRvcCgpOwpAQCAtNjMzLDkgKzYzMywxNCBA
QCB2b2lkIElubGluZUZsb3dCb3g6OmNvbXB1dGVCbG9ja0RpcmVjdGlvCiAgICAgICAgICAgICBp
bnQgY2hpbGRCb3R0b21WaXN1YWxPdmVyZmxvdzsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
UmVuZGVyQm94KiBib3ggPSB0b1JlbmRlckJveChjdXJyLT5yZW5kZXJlcigpKTsKLSAgICAgICAg
ICAgIGJveC0+YmxvY2tEaXJlY3Rpb25PdmVyZmxvdyhpc1ZlcnRpY2FsKCksIGlzRmxpcHBlZExp
bmUsIGNoaWxkVG9wTGF5b3V0T3ZlcmZsb3csIGNoaWxkQm90dG9tTGF5b3V0T3ZlcmZsb3csCisg
ICAgICAgICAgICBib3gtPmJsb2NrRGlyZWN0aW9uT3ZlcmZsb3coaXNWZXJ0aWNhbCgpLCBjaGls
ZFRvcExheW91dE92ZXJmbG93LCBjaGlsZEJvdHRvbUxheW91dE92ZXJmbG93LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkVG9wVmlzdWFsT3ZlcmZsb3csIGNo
aWxkQm90dG9tVmlzdWFsT3ZlcmZsb3cpOwogICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAo
Ym94LT5oYXNPdmVyZmxvd0NsaXAoKSkgeworICAgICAgICAgICAgICAgIGNoaWxkVG9wTGF5b3V0
T3ZlcmZsb3cgPSAwOworICAgICAgICAgICAgICAgIGNoaWxkQm90dG9tTGF5b3V0T3ZlcmZsb3cg
PSBjdXJyLT5sb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHRv
cExheW91dE92ZXJmbG93ID0gbWluKGJveExvZ2ljYWxUb3AgKyBjaGlsZFRvcExheW91dE92ZXJm
bG93LCB0b3BMYXlvdXRPdmVyZmxvdyk7CiAgICAgICAgICAgICBib3R0b21MYXlvdXRPdmVyZmxv
dyA9IG1heChib3hMb2dpY2FsVG9wICsgY2hpbGRCb3R0b21MYXlvdXRPdmVyZmxvdywgYm90dG9t
TGF5b3V0T3ZlcmZsb3cpOwogICAgICAgICAgICAgdG9wVmlzdWFsT3ZlcmZsb3cgPSBtaW4oYm94
TG9naWNhbFRvcCArIGNoaWxkVG9wVmlzdWFsT3ZlcmZsb3csIHRvcFZpc3VhbE92ZXJmbG93KTsK
QEAgLTY2Miw3ICs2NjcsNyBAQCBib29sIElubGluZUZsb3dCb3g6Om5vZGVBdFBvaW50KGNvbnN0
IEhpCiAgICAgfQogCiAgICAgLy8gTm93IGNoZWNrIG91cnNlbHZlcy4KLSAgICBJbnRSZWN0IHJl
Y3QodHggKyBtX3gsIHR5ICsgbV95LCBtX2xvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCgpKTsK
KyAgICBJbnRSZWN0IHJlY3QodHggKyBtX3gsIHR5ICsgbV95LCB3aWR0aCgpLCBoZWlnaHQoKSk7
CiAgICAgaWYgKHZpc2libGVUb0hpdFRlc3RpbmcoKSAmJiByZWN0LmludGVyc2VjdHMocmVzdWx0
LnJlY3RGb3JQb2ludCh4LCB5KSkpIHsKICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlSGl0VGVz
dFJlc3VsdChyZXN1bHQsIEludFBvaW50KHggLSB0eCwgeSAtIHR5KSk7IC8vIERvbid0IGFkZCBp
biBtX3ggb3IgbV95IGhlcmUsIHdlIHdhbnQgY29vcmRzIGluIHRoZSBjb250YWluaW5nIGJsb2Nr
J3Mgc3BhY2UuCiAgICAgICAgIGlmICghcmVzdWx0LmFkZE5vZGVUb1JlY3RCYXNlZFRlc3RSZXN1
bHQocmVuZGVyZXIoKS0+bm9kZSgpLCB4LCB5LCByZWN0KSkKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL0lubGluZUZsb3dCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmgJKHJldmlzaW9uIDcwMzMwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQsMjggKzE3NCwzOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRIYXNCYWRDaGls
ZExpc3QoKTsKIAorICAgIC8vIExpbmUgdmlzdWFsIGFuZCBsYXlvdXQgb3ZlcmZsb3cgYXJlIGlu
IHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBibG9jay4gIFRoaXMgbWVhbnMgdGhhdCAtIHVu
bGlrZSBvdGhlciB1bnByZWZpeGVkIHVzZXMgb2YgdGhlIHdvcmRzCisgICAgLy8gdG9wL3JpZ2h0
L2JvdHRvbS9sZWZ0IGluIHRoZSBjb2RlIC0gdGhlc2UgYXJlbid0IHB1cmVseSBwaHlzaWNhbCBk
aXJlY3Rpb25zLiAgRm9yIGhvcml6b250YWwtdGIgYW5kIHZlcnRpY2FsLWxyIHRoZXkgd2lsbCBt
YXRjaCBwaHlzaWNhbAorICAgIC8vIGRpcmVjdGlvbnMsIGJ1dCBmb3IgaG9yaXpvbnRhbC1idCBh
bmQgdmVydGljYWwtcmwsIHRoZSB0b3AvYm90dG9tIGFuZCBsZWZ0L3JpZ2h0IHJlc3BlY3RpdmVs
eSBhcmUgaW52ZXJ0ZWQgd2hlbiBjb21wYXJlZCB0bworICAgIC8vIHRoZWlyIHBoeXNpY2FsIGNv
dW50ZXJwYXJ0cy4KICAgICBpbnQgdG9wVmlzaWJsZU92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4g
c3RkOjptaW4odG9wTGF5b3V0T3ZlcmZsb3coKSwgdG9wVmlzdWFsT3ZlcmZsb3coKSk7IH0KICAg
ICBpbnQgYm90dG9tVmlzaWJsZU92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gc3RkOjptYXgoYm90
dG9tTGF5b3V0T3ZlcmZsb3coKSwgYm90dG9tVmlzdWFsT3ZlcmZsb3coKSk7IH0KICAgICBpbnQg
bGVmdFZpc2libGVPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWluKGxlZnRMYXlvdXRP
dmVyZmxvdygpLCBsZWZ0VmlzdWFsT3ZlcmZsb3coKSk7IH0KICAgICBpbnQgcmlnaHRWaXNpYmxl
T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heChyaWdodExheW91dE92ZXJmbG93KCks
IHJpZ2h0VmlzdWFsT3ZlcmZsb3coKSk7IH0KLSAgICBJbnRSZWN0IHZpc2libGVPdmVyZmxvd1Jl
Y3QoKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxvdy0+dmlzaWJsZU92ZXJm
bG93UmVjdCgpIDogSW50UmVjdChtX3gsIG1feSwgbV9sb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWln
aHQoKSk7ICB9CisgICAgaW50IGxvZ2ljYWxUb3BWaXNpYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBzdGQ6Om1pbihsb2dpY2FsVG9wTGF5b3V0T3ZlcmZsb3coKSwgbG9naWNhbFRvcFZpc3Vh
bE92ZXJmbG93KCkpOyB9CisgICAgaW50IGxvZ2ljYWxCb3R0b21WaXNpYmxlT3ZlcmZsb3coKSBj
b25zdCB7IHJldHVybiBzdGQ6Om1heChsb2dpY2FsQm90dG9tTGF5b3V0T3ZlcmZsb3coKSwgbG9n
aWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93KCkpOyB9CisKKyAgICBJbnRSZWN0IHZpc2libGVPdmVy
Zmxvd1JlY3QoKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxvdy0+dmlzaWJs
ZU92ZXJmbG93UmVjdCgpIDogSW50UmVjdChtX3gsIG1feSwgd2lkdGgoKSwgaGVpZ2h0KCkpOyAg
fQogCiAgICAgaW50IHRvcExheW91dE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxv
dyA/IG1fb3ZlcmZsb3ctPnRvcExheW91dE92ZXJmbG93KCkgOiBtX3k7IH0KICAgICBpbnQgYm90
dG9tTGF5b3V0T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVyZmxv
dy0+Ym90dG9tTGF5b3V0T3ZlcmZsb3coKSA6IG1feSArIGxvZ2ljYWxIZWlnaHQoKTsgfQogICAg
IGludCBsZWZ0TGF5b3V0T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9v
dmVyZmxvdy0+bGVmdExheW91dE92ZXJmbG93KCkgOiBtX3g7IH0KICAgICBpbnQgcmlnaHRMYXlv
dXRPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT5yaWdo
dExheW91dE92ZXJmbG93KCkgOiBtX3ggKyBtX2xvZ2ljYWxXaWR0aDsgfQotICAgIEludFJlY3Qg
bGF5b3V0T3ZlcmZsb3dSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdyA/IG1fb3ZlcmZs
b3ctPmxheW91dE92ZXJmbG93UmVjdCgpIDogSW50UmVjdChtX3gsIG1feSwgbV9sb2dpY2FsV2lk
dGgsIGxvZ2ljYWxIZWlnaHQoKSk7IH0KKyAgICBJbnRSZWN0IGxheW91dE92ZXJmbG93UmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT5sYXlvdXRPdmVyZmxvd1Jl
Y3QoKSA6IEludFJlY3QobV94LCBtX3ksIHdpZHRoKCksIGhlaWdodCgpKTsgfQogICAgIGludCBs
b2dpY2FsTGVmdExheW91dE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS0+c3R5
bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGxlZnRMYXlvdXRPdmVyZmxvdygpIDog
dG9wTGF5b3V0T3ZlcmZsb3coKTsgfQogICAgIGludCBsb2dpY2FsUmlnaHRMYXlvdXRPdmVyZmxv
dygpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgPyByaWdodExheW91dE92ZXJmbG93KCkgOiBib3R0b21MYXlvdXRPdmVyZmxvdygp
OyB9Ci0gICAgCisgICAgaW50IGxvZ2ljYWxUb3BMYXlvdXRPdmVyZmxvdygpIGNvbnN0IHsgcmV0
dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyB0b3BW
aXN1YWxPdmVyZmxvdygpIDogbGVmdFZpc3VhbE92ZXJmbG93KCk7IH0KKyAgICBpbnQgbG9naWNh
bEJvdHRvbUxheW91dE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXIoKS0+c3R5bGUo
KS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvdHRvbUxheW91dE92ZXJmbG93KCkgOiBy
aWdodExheW91dE92ZXJmbG93KCk7IH0KKwogICAgIGludCB0b3BWaXN1YWxPdmVyZmxvdygpIGNv
bnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT50b3BWaXN1YWxPdmVyZmxvdygp
IDogbV95OyB9CiAgICAgaW50IGJvdHRvbVZpc3VhbE92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4g
bV9vdmVyZmxvdyA/IG1fb3ZlcmZsb3ctPmJvdHRvbVZpc3VhbE92ZXJmbG93KCkgOiBtX3kgKyBs
b2dpY2FsSGVpZ2h0KCk7IH0KICAgICBpbnQgbGVmdFZpc3VhbE92ZXJmbG93KCkgY29uc3QgeyBy
ZXR1cm4gbV9vdmVyZmxvdyA/IG1fb3ZlcmZsb3ctPmxlZnRWaXN1YWxPdmVyZmxvdygpIDogbV94
OyB9CiAgICAgaW50IHJpZ2h0VmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX292ZXJm
bG93ID8gbV9vdmVyZmxvdy0+cmlnaHRWaXN1YWxPdmVyZmxvdygpIDogbV94ICsgbV9sb2dpY2Fs
V2lkdGg7IH0KLSAgICBJbnRSZWN0IHZpc3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fb3ZlcmZsb3cgPyBtX292ZXJmbG93LT52aXN1YWxPdmVyZmxvd1JlY3QoKSA6IEludFJlY3Qo
bV94LCBtX3ksIG1fbG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KCkpOyB9CisgICAgSW50UmVj
dCB2aXN1YWxPdmVyZmxvd1JlY3QoKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93ID8gbV9vdmVy
Zmxvdy0+dmlzdWFsT3ZlcmZsb3dSZWN0KCkgOiBJbnRSZWN0KG1feCwgbV95LCB3aWR0aCgpLCBo
ZWlnaHQoKSk7IH0KICAgICBpbnQgbG9naWNhbExlZnRWaXN1YWxPdmVyZmxvdygpIGNvbnN0IHsg
cmV0dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBs
ZWZ0VmlzdWFsT3ZlcmZsb3coKSA6IHRvcFZpc3VhbE92ZXJmbG93KCk7IH0KICAgICBpbnQgbG9n
aWNhbFJpZ2h0VmlzdWFsT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLT5zdHls
ZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcmlnaHRWaXN1YWxPdmVyZmxvdygpIDog
Ym90dG9tVmlzdWFsT3ZlcmZsb3coKTsgfQotICAgIAorICAgIGludCBsb2dpY2FsVG9wVmlzdWFs
T3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLT5pc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gdG9wVmlzdWFsT3ZlcmZsb3coKSA6IGxlZnRWaXN1YWxPdmVyZmxv
dygpOyB9CisgICAgaW50IGxvZ2ljYWxCb3R0b21WaXN1YWxPdmVyZmxvdygpIGNvbnN0IHsgcmV0
dXJuIHJlbmRlcmVyKCktPnN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBib3R0
b21WaXN1YWxPdmVyZmxvdygpIDogcmlnaHRWaXN1YWxPdmVyZmxvdygpOyB9CisKICAgICB2b2lk
IHNldElubGluZURpcmVjdGlvbk92ZXJmbG93UG9zaXRpb25zKGludCBsb2dpY2FsTGVmdExheW91
dE92ZXJmbG93LCBpbnQgbG9naWNhbFJpZ2h0TGF5b3V0T3ZlcmZsb3csCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG9naWNhbExlZnRWaXN1YWxPdmVy
ZmxvdywgaW50IGxvZ2ljYWxSaWdodFZpc3VhbE92ZXJmbG93KTsKICAgICB2b2lkIHNldEJsb2Nr
RGlyZWN0aW9uT3ZlcmZsb3dQb3NpdGlvbnMoaW50IGxvZ2ljYWxUb3BMYXlvdXRPdmVyZmxvdywg
aW50IGxvZ2ljYWxCb3R0b21MYXlvdXRPdmVyZmxvdywKQEAgLTI2Niw3ICsyNzcsNyBAQCBpbmxp
bmUgdm9pZCBJbmxpbmVGbG93Qm94OjpzZXRCbG9ja0RpcmVjCiAgICAgICAgIG1fb3ZlcmZsb3ct
PnNldFRvcExheW91dE92ZXJmbG93KGxvZ2ljYWxUb3BMYXlvdXRPdmVyZmxvdyk7CiAgICAgICAg
IG1fb3ZlcmZsb3ctPnNldEJvdHRvbUxheW91dE92ZXJmbG93KGxvZ2ljYWxCb3R0b21MYXlvdXRP
dmVyZmxvdyk7CiAgICAgICAgIG1fb3ZlcmZsb3ctPnNldFRvcFZpc3VhbE92ZXJmbG93KGxvZ2lj
YWxUb3BWaXN1YWxPdmVyZmxvdyk7IAotICAgICAgICBtX292ZXJmbG93LT5zZXRCb3R0b21WaXN1
YWxPdmVyZmxvdyhsb2dpY2FsQm90dG9tVmlzdWFsT3ZlcmZsb3cpOyAgCisgICAgICAgIG1fb3Zl
cmZsb3ctPnNldEJvdHRvbVZpc3VhbE92ZXJmbG93KGxvZ2ljYWxCb3R0b21WaXN1YWxPdmVyZmxv
dyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9vdmVyZmxvdy0+c2V0TGVmdExheW91dE92ZXJm
bG93KGxvZ2ljYWxUb3BMYXlvdXRPdmVyZmxvdyk7CiAgICAgICAgIG1fb3ZlcmZsb3ctPnNldFJp
Z2h0TGF5b3V0T3ZlcmZsb3cobG9naWNhbEJvdHRvbUxheW91dE92ZXJmbG93KTsKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA3MDI2MykKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDIsNyArMzAy
LDcgQEAgYm9vbCBJbmxpbmVUZXh0Qm94Ojpub2RlQXRQb2ludChjb25zdCBIaQogICAgIGlmIChp
c0xpbmVCcmVhaygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBJbnRSZWN0IHJlY3Qo
dHggKyBtX3gsIHR5ICsgbV95LCBtX2xvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCgpKTsKKyAg
ICBJbnRSZWN0IHJlY3QodHggKyBtX3gsIHR5ICsgbV95LCB3aWR0aCgpLCBoZWlnaHQoKSk7CiAg
ICAgaWYgKG1fdHJ1bmNhdGlvbiAhPSBjRnVsbFRydW5jYXRpb24gJiYgdmlzaWJsZVRvSGl0VGVz
dGluZygpICYmIHJlY3QuaW50ZXJzZWN0cyhyZXN1bHQucmVjdEZvclBvaW50KHgsIHkpKSkgewog
ICAgICAgICByZW5kZXJlcigpLT51cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgSW50UG9pbnQo
eCAtIHR4LCB5IC0gdHkpKTsKICAgICAgICAgaWYgKCFyZXN1bHQuYWRkTm9kZVRvUmVjdEJhc2Vk
VGVzdFJlc3VsdChyZW5kZXJlcigpLT5ub2RlKCksIHgsIHksIHJlY3QpKQpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiA3MDMzMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNzIsMzMgKzMxNzIsMTkgQEAgaW50IFJl
bmRlckJveDo6YmFzZWxpbmVQb3NpdGlvbihib29sIC8qZgogICAgIHJldHVybiAwOwogfQogCi12
b2lkIFJlbmRlckJveDo6YmxvY2tEaXJlY3Rpb25PdmVyZmxvdyhib29sIGlzTGluZVZlcnRpY2Fs
LCBib29sIGlzRmxpcHBlZExpbmUsIGludCYgbG9naWNhbFRvcExheW91dE92ZXJmbG93LCBpbnQm
IGxvZ2ljYWxCb3R0b21MYXlvdXRPdmVyZmxvdywKK3ZvaWQgUmVuZGVyQm94OjpibG9ja0RpcmVj
dGlvbk92ZXJmbG93KGJvb2wgaXNMaW5lVmVydGljYWwsIGludCYgbG9naWNhbFRvcExheW91dE92
ZXJmbG93LCBpbnQmIGxvZ2ljYWxCb3R0b21MYXlvdXRPdmVyZmxvdywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCYgbG9naWNhbFRvcFZpc3VhbE92ZXJmbG93LCBp
bnQmIGxvZ2ljYWxCb3R0b21WaXN1YWxPdmVyZmxvdykKIHsKICAgICBpZiAoaXNMaW5lVmVydGlj
YWwpIHsKLSAgICAgICAgaWYgKGlzRmxpcHBlZExpbmUpIHsKLSAgICAgICAgICAgIGxvZ2ljYWxU
b3BMYXlvdXRPdmVyZmxvdyA9IGxlZnRMYXlvdXRPdmVyZmxvdygpOwotICAgICAgICAgICAgbG9n
aWNhbEJvdHRvbUxheW91dE92ZXJmbG93ID0gcmlnaHRMYXlvdXRPdmVyZmxvdygpOwotICAgICAg
ICAgICAgbG9naWNhbFRvcFZpc3VhbE92ZXJmbG93ID0gbGVmdFZpc3VhbE92ZXJmbG93KCk7Ci0g
ICAgICAgICAgICBsb2dpY2FsQm90dG9tVmlzdWFsT3ZlcmZsb3cgPSByaWdodFZpc3VhbE92ZXJm
bG93KCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsb2dpY2FsVG9wTGF5b3V0T3Zl
cmZsb3cgPSByaWdodExheW91dE92ZXJmbG93KCk7Ci0gICAgICAgICAgICBsb2dpY2FsQm90dG9t
TGF5b3V0T3ZlcmZsb3cgPSBsZWZ0TGF5b3V0T3ZlcmZsb3coKTsKLSAgICAgICAgICAgIGxvZ2lj
YWxUb3BWaXN1YWxPdmVyZmxvdyA9IHJpZ2h0VmlzdWFsT3ZlcmZsb3coKTsKLSAgICAgICAgICAg
IGxvZ2ljYWxCb3R0b21WaXN1YWxPdmVyZmxvdyA9IGxlZnRWaXN1YWxPdmVyZmxvdygpOwotICAg
ICAgICB9IAorICAgICAgICBsb2dpY2FsVG9wTGF5b3V0T3ZlcmZsb3cgPSBsZWZ0TGF5b3V0T3Zl
cmZsb3coKTsKKyAgICAgICAgbG9naWNhbEJvdHRvbUxheW91dE92ZXJmbG93ID0gcmlnaHRMYXlv
dXRPdmVyZmxvdygpOworICAgICAgICBsb2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3cgPSBsZWZ0Vmlz
dWFsT3ZlcmZsb3coKTsKKyAgICAgICAgbG9naWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93ID0gcmln
aHRWaXN1YWxPdmVyZmxvdygpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChpc0ZsaXBwZWRM
aW5lKSB7Ci0gICAgICAgICAgICBsb2dpY2FsVG9wTGF5b3V0T3ZlcmZsb3cgPSBib3R0b21MYXlv
dXRPdmVyZmxvdygpOwotICAgICAgICAgICAgbG9naWNhbEJvdHRvbUxheW91dE92ZXJmbG93ID0g
dG9wTGF5b3V0T3ZlcmZsb3coKTsKLSAgICAgICAgICAgIGxvZ2ljYWxUb3BWaXN1YWxPdmVyZmxv
dyA9IGJvdHRvbVZpc3VhbE92ZXJmbG93KCk7Ci0gICAgICAgICAgICBsb2dpY2FsQm90dG9tVmlz
dWFsT3ZlcmZsb3cgPSB0b3BWaXN1YWxPdmVyZmxvdygpOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgbG9naWNhbFRvcExheW91dE92ZXJmbG93ID0gdG9wTGF5b3V0T3ZlcmZsb3coKTsK
LSAgICAgICAgICAgIGxvZ2ljYWxCb3R0b21MYXlvdXRPdmVyZmxvdyA9IGJvdHRvbUxheW91dE92
ZXJmbG93KCk7Ci0gICAgICAgICAgICBsb2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3cgPSB0b3BWaXN1
YWxPdmVyZmxvdygpOwotICAgICAgICAgICAgbG9naWNhbEJvdHRvbVZpc3VhbE92ZXJmbG93ID0g
Ym90dG9tVmlzdWFsT3ZlcmZsb3coKTsKLSAgICAgICAgfQorICAgICAgICBsb2dpY2FsVG9wTGF5
b3V0T3ZlcmZsb3cgPSB0b3BMYXlvdXRPdmVyZmxvdygpOworICAgICAgICBsb2dpY2FsQm90dG9t
TGF5b3V0T3ZlcmZsb3cgPSBib3R0b21MYXlvdXRPdmVyZmxvdygpOworICAgICAgICBsb2dpY2Fs
VG9wVmlzdWFsT3ZlcmZsb3cgPSB0b3BWaXN1YWxPdmVyZmxvdygpOworICAgICAgICBsb2dpY2Fs
Qm90dG9tVmlzdWFsT3ZlcmZsb3cgPSBib3R0b21WaXN1YWxPdmVyZmxvdygpOwogICAgIH0KIH0K
IApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDcwMzMwKQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21DaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBj
b25zdCBJbnRTaXplJiBkZWx0YSk7CiAgICAgdm9pZCBjbGVhckxheW91dE92ZXJmbG93KCk7CiAK
LSAgICB2b2lkIGJsb2NrRGlyZWN0aW9uT3ZlcmZsb3coYm9vbCBpc0xpbmVWZXJ0aWNhbCwgYm9v
bCBpc0ZsaXBwZWRMaW5lLCBpbnQmIGxvZ2ljYWxUb3BMYXlvdXRPdmVyZmxvdywgaW50JiBsb2dp
Y2FsQm90dG9tTGF5b3V0T3ZlcmZsb3csCisgICAgdm9pZCBibG9ja0RpcmVjdGlvbk92ZXJmbG93
KGJvb2wgaXNMaW5lVmVydGljYWwsIGludCYgbG9naWNhbFRvcExheW91dE92ZXJmbG93LCBpbnQm
IGxvZ2ljYWxCb3R0b21MYXlvdXRPdmVyZmxvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50JiBsb2dpY2FsVG9wVmlzdWFsT3ZlcmZsb3csIGludCYgbG9naWNhbEJvdHRvbVZp
c3VhbE92ZXJmbG93KTsKIAogICAgIGludCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBj
bGllbnRXaWR0aCgpIC0gcGFkZGluZ0xlZnQoKSAtIHBhZGRpbmdSaWdodCgpOyB9CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaW5lQm94TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJveExpc3QuY3BwCShyZXZpc2lvbiA3MDI2MCkKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCb3hMaXN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjQ2LDIwICsyNDYsMjYgQEAgYm9vbCBSZW5kZXJMaW5lQm94TGlzdDo6aGl0VGVzdChSZW5k
ZXJCbwogICAgIGlmICghZmlyc3RMaW5lQm94KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAor
ICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGZpcnN0TGluZUJveCgpLT5pc1ZlcnRpY2FsKCk7CisgICAg
CisgICAgaW50IGxvZ2ljYWxQb2ludFN0YXJ0ID0gaXNWZXJ0aWNhbCA/IHggLSByZXN1bHQubGVm
dFBhZGRpbmcoKSA6IHkgLSByZXN1bHQudG9wUGFkZGluZygpOworICAgIGludCBsb2dpY2FsUG9p
bnRFbmQgPSBpc1ZlcnRpY2FsID8geCArIHJlc3VsdC5yaWdodFBhZGRpbmcoKSA6IHkgKyByZXN1
bHQuYm90dG9tUGFkZGluZygpOworICAgIGludCBvZmZzZXQgPSBpc1ZlcnRpY2FsID8gdHggOiB0
eTsKKwogICAgIC8vIFdlIGNhbiBjaGVjayB0aGUgZmlyc3QgYm94IGFuZCBsYXN0IGJveCBhbmQg
YXZvaWQgaGl0IHRlc3RpbmcgaWYgd2UgZG9uJ3QKICAgICAvLyBjb250YWluIHRoZSBwb2ludC4g
IFRoaXMgaXMgYSBxdWljayBzaG9ydC1jaXJjdWl0IHRoYXQgd2UgY2FuIHRha2UgdG8gYXZvaWQg
d2Fsa2luZyBhbnkgbGluZXMuCiAgICAgLy8gRklYTUU6IFRoaXMgY2hlY2sgaXMgZmxhd2VkIGlu
IHRoZSBmb2xsb3dpbmcgZXh0cmVtZWx5IG9ic2N1cmUgd2F5OgogICAgIC8vIGlmIHNvbWUgbGlu
ZSBpbiB0aGUgbWlkZGxlIGhhcyBhIGh1Z2Ugb3ZlcmZsb3csIGl0IG1pZ2h0IGFjdHVhbGx5IGV4
dGVuZCBiZWxvdyB0aGUgbGFzdCBsaW5lLgotICAgIGlmICh5IC0gcmVzdWx0LnRvcFBhZGRpbmco
KSA+PSB0eSArIGxhc3RMaW5lQm94KCktPnJvb3QoKS0+Ym90dG9tVmlzaWJsZU92ZXJmbG93KCkK
LSAgICAgfHwgeSArIHJlc3VsdC5ib3R0b21QYWRkaW5nKCkgPCB0eSArIGZpcnN0TGluZUJveCgp
LT5yb290KCktPnRvcFZpc2libGVPdmVyZmxvdygpKQorICAgIGlmIChsb2dpY2FsUG9pbnRTdGFy
dCA+PSBvZmZzZXQgKyBsYXN0TGluZUJveCgpLT5yb290KCktPmxvZ2ljYWxCb3R0b21WaXNpYmxl
T3ZlcmZsb3coKQorICAgICAgICB8fCBsb2dpY2FsUG9pbnRFbmQgPCBvZmZzZXQgKyBmaXJzdExp
bmVCb3goKS0+cm9vdCgpLT5sb2dpY2FsVG9wVmlzaWJsZU92ZXJmbG93KCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIFNlZSBpZiBvdXIgcm9vdCBsaW5lcyBjb250YWluIHRoZSBw
b2ludC4gIElmIHNvLCB0aGVuIHdlIGhpdCB0ZXN0CiAgICAgLy8gdGhlbSBmdXJ0aGVyLiAgTm90
ZSB0aGF0IGJveGVzIGNhbiBlYXNpbHkgb3ZlcmxhcCwgc28gd2UgY2FuJ3QgbWFrZSBhbnkgYXNz
dW1wdGlvbnMKICAgICAvLyBiYXNlZCBvZmYgcG9zaXRpb25zIG9mIG91ciBmaXJzdCBsaW5lIGJv
eCBvciBvdXIgbGFzdCBsaW5lIGJveC4KICAgICBmb3IgKElubGluZUZsb3dCb3gqIGN1cnIgPSBs
YXN0TGluZUJveCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+cHJldkxpbmVCb3goKSkgewotICAgICAg
ICBpZiAoeSArIHJlc3VsdC5ib3R0b21QYWRkaW5nKCkgPj0gdHkgKyBjdXJyLT5yb290KCktPnRv
cFZpc2libGVPdmVyZmxvdygpCi0gICAgICAgICAmJiB5IC0gcmVzdWx0LnRvcFBhZGRpbmcoKSA8
IHR5ICsgY3Vyci0+cm9vdCgpLT5ib3R0b21WaXNpYmxlT3ZlcmZsb3coKSkgeworICAgICAgICBp
ZiAobG9naWNhbFBvaW50RW5kID49IG9mZnNldCArIGN1cnItPnJvb3QoKS0+bG9naWNhbFRvcFZp
c2libGVPdmVyZmxvdygpCisgICAgICAgICAmJiBsb2dpY2FsUG9pbnRTdGFydCA8IG9mZnNldCAr
IGN1cnItPnJvb3QoKS0+bG9naWNhbEJvdHRvbVZpc2libGVPdmVyZmxvdygpKSB7CiAgICAgICAg
ICAgICBib29sIGluc2lkZSA9IGN1cnItPm5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3VsdCwgeCwg
eSwgdHgsIHR5KTsKICAgICAgICAgICAgIGlmIChpbnNpZGUpIHsKICAgICAgICAgICAgICAgICBy
ZW5kZXJlci0+dXBkYXRlSGl0VGVzdFJlc3VsdChyZXN1bHQsIEludFBvaW50KHggLSB0eCwgeSAt
IHR5KSk7Cg==
</data>
<flag name="review"
          id="61690"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>