<?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>63774</bug_id>
          
          <creation_ts>2011-06-30 17:26:27 -0700</creation_ts>
          <short_desc>Switch positionForPoint to new layout types</short_desc>
          <delta_ts>2011-07-01 11:33:32 -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="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>eae</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>430883</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-30 17:26:27 -0700</bug_when>
    <thetext>Stop! Abstraction time!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430888</commentid>
    <comment_count>1</comment_count>
      <attachid>99405</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-06-30 17:29:13 -0700</bug_when>
    <thetext>Created attachment 99405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430946</commentid>
    <comment_count>2</comment_count>
      <attachid>99405</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-30 19:55:42 -0700</bug_when>
    <thetext>Comment on attachment 99405
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431287</commentid>
    <comment_count>3</comment_count>
      <attachid>99405</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-01 11:33:28 -0700</bug_when>
    <thetext>Comment on attachment 99405
Patch

Clearing flags on attachment: 99405

Committed r90250: &lt;http://trac.webkit.org/changeset/90250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431289</commentid>
    <comment_count>4</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-07-01 11:33:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99405</attachid>
            <date>2011-06-30 17:29:13 -0700</date>
            <delta_ts>2011-07-01 11:33:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63774-20110630172912.patch</filename>
            <type>text/plain</type>
            <size>23842</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwMTg3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDYtMzAgIExldmkgV2Vp
bnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN3aXRjaCBwb3NpdGlvbkZvclBvaW50IHRvIG5ldyBsYXlv
dXQgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYzNzc0CisKKyAgICAgICAgU3dpdGNoaW5nIHBvc2l0aW9uRm9yUG9pbnQgZnVuY3Rpb25zIHRv
IG5ldyBsYXlvdXQgdW5pdCBhYnN0cmFjdGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5v
IGZ1bmN0aW9uYWxpdHkgY2hhbmdlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCUi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCUjo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJSLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwb3NpdGlvbkZvclBvaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cG9zaXRpb25G
b3JQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnBvc2l0aW9u
Rm9yUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpwb3NpdGlvbkZvclBv
aW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpw
b3NpdGlvbkZvclBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrOjpwb3NpdGlvbkZvclBvaW50
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR0lubGluZVRleHQ6OnBvc2l0aW9uRm9yUG9pbnQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdU
ZXh0Ojpwb3NpdGlvbkZvclBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHQuaDoKKwogMjAxMS0wNi0zMCAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCUi5jcHAJKHJldmlzaW9uIDkwMTg2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJSLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBA
QCB1bnNpZ25lZCBSZW5kZXJCUjo6Y2FyZXRNYXhSZW5kZXJlZE9mZnNlCiAgICAgcmV0dXJuIDE7
CiB9CiAKLVZpc2libGVQb3NpdGlvbiBSZW5kZXJCUjo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBJ
bnRQb2ludCYpCitWaXNpYmxlUG9zaXRpb24gUmVuZGVyQlI6OnBvc2l0aW9uRm9yUG9pbnQoY29u
c3QgTGF5b3V0UG9pbnQmKQogewogICAgIHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRpb24oMCwg
RE9XTlNUUkVBTSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuaAkocmV2
aXNpb24gOTAxODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuaAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgY2Fy
ZXRNYXhPZmZzZXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGNhcmV0TWF4UmVuZGVy
ZWRPZmZzZXQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9u
Rm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBw
b3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7CiAKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCShyZXZpc2lvbiA5MDE4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMDIsMTUgKzQyMDIsMTUgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzQ2hpbGRIaXRUZXN0Q2FuZGlkYQogICAgIHJldHVybiBib3gtPmhlaWdo
dCgpICYmIGJveC0+c3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUgJiYgIWJveC0+aXNG
bG9hdGluZ09yUG9zaXRpb25lZCgpOwogfQogCi1WaXNpYmxlUG9zaXRpb24gUmVuZGVyQmxvY2s6
OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQorVmlzaWJsZVBvc2l0aW9u
IFJlbmRlckJsb2NrOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCkK
IHsKICAgICBpZiAoaXNUYWJsZSgpKQogICAgICAgICByZXR1cm4gUmVuZGVyQm94Ojpwb3NpdGlv
bkZvclBvaW50KHBvaW50KTsKIAogICAgIGlmIChpc1JlcGxhY2VkKCkpIHsKICAgICAgICAgLy8g
RklYTUU6IFRoaXMgc2VlbXMgd3Jvbmcgd2hlbiB0aGUgb2JqZWN0J3Mgd3JpdGluZy1tb2RlIGRv
ZXNuJ3QgbWF0Y2ggdGhlIGxpbmUncyB3cml0aW5nLW1vZGUuCi0gICAgICAgIGludCBwb2ludExv
Z2ljYWxMZWZ0ID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHBvaW50LngoKSA6IHBvaW50
LnkoKTsKLSAgICAgICAgaW50IHBvaW50TG9naWNhbFRvcCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgPyBwb2ludC55KCkgOiBwb2ludC54KCk7CisgICAgICAgIExheW91dFVuaXQgcG9pbnRM
b2dpY2FsTGVmdCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBwb2ludC54KCkgOiBwb2lu
dC55KCk7CisgICAgICAgIExheW91dFVuaXQgcG9pbnRMb2dpY2FsVG9wID0gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IHBvaW50LnkoKSA6IHBvaW50LngoKTsKIAogICAgICAgICBpZiAocG9p
bnRMb2dpY2FsVG9wIDwgMCB8fCAocG9pbnRMb2dpY2FsVG9wIDwgbG9naWNhbEhlaWdodCgpICYm
IHBvaW50TG9naWNhbExlZnQgPCAwKSkKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVWaXNpYmxl
UG9zaXRpb24oY2FyZXRNaW5PZmZzZXQoKSwgRE9XTlNUUkVBTSk7CkBAIC00MjE4LDkgKzQyMTgs
OSBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyQmxvY2s6OnBvc2l0aW9uRm9yCiAgICAgICAgICAg
ICByZXR1cm4gY3JlYXRlVmlzaWJsZVBvc2l0aW9uKGNhcmV0TWF4T2Zmc2V0KCksIERPV05TVFJF
QU0pOwogICAgIH0gCiAKLSAgICBJbnRQb2ludCBwb2ludEluQ29udGVudHMgPSBwb2ludDsKKyAg
ICBMYXlvdXRQb2ludCBwb2ludEluQ29udGVudHMgPSBwb2ludDsKICAgICBvZmZzZXRGb3JDb250
ZW50cyhwb2ludEluQ29udGVudHMpOwotICAgIEludFBvaW50IHBvaW50SW5Mb2dpY2FsQ29udGVu
dHMocG9pbnRJbkNvbnRlbnRzKTsKKyAgICBMYXlvdXRQb2ludCBwb2ludEluTG9naWNhbENvbnRl
bnRzKHBvaW50SW5Db250ZW50cyk7CiAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
KQogICAgICAgICBwb2ludEluTG9naWNhbENvbnRlbnRzID0gcG9pbnRJbkxvZ2ljYWxDb250ZW50
cy50cmFuc3Bvc2VkUG9pbnQoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgJKHJldmlzaW9uIDkwMTg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAg
ICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlv
biwgYm9vbCBmaXJzdExpbmUpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGlu
ZShwb3NpdGlvbiwgbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KCksIGZpcnN0TGluZSk7IH0K
ICAgICBMYXlvdXRVbml0IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBi
b29sIGZpcnN0TGluZSkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpID8gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUpIDog
bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RMaW5lKTsgfQogCi0gICAg
dmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYp
OworICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5
b3V0UG9pbnQmKTsKICAgICAKICAgICAvLyBCbG9jayBmbG93cyBzdWJjbGFzcyBhdmFpbGFibGVX
aWR0aCB0byBoYW5kbGUgbXVsdGkgY29sdW1uIGxheW91dCAoc2hyaW5raW5nIHRoZSB3aWR0aCBh
dmFpbGFibGUgdG8gY2hpbGRyZW4gd2hlbiBsYXlpbmcgb3V0LikKICAgICB2aXJ0dWFsIExheW91
dFVuaXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gOTAxODYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA5NSwxOCArMzA5
NSwxNSBAQCBJbnRSZWN0IFJlbmRlckJveDo6bG9jYWxDYXJldFJlY3QoSW5saW5lCiAgICAgcmV0
dXJuIHJlY3Q7CiB9CiAKLVZpc2libGVQb3NpdGlvbiBSZW5kZXJCb3g6OnBvc2l0aW9uRm9yUG9p
bnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQorVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJveDo6cG9z
aXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiB7CiAgICAgLy8gbm8gY2hp
bGRyZW4uLi5yZXR1cm4gdGhpcyByZW5kZXIgb2JqZWN0J3MgZWxlbWVudCwgaWYgdGhlcmUgaXMg
b25lLCBhbmQgb2Zmc2V0IDAKICAgICBpZiAoIWZpcnN0Q2hpbGQoKSkKICAgICAgICAgcmV0dXJu
IGNyZWF0ZVZpc2libGVQb3NpdGlvbihub2RlKCkgPyBmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5v
ZGUobm9kZSgpKSA6IFBvc2l0aW9uKCkpOwogCi0gICAgaW50IHhQb3MgPSBwb2ludC54KCk7Ci0g
ICAgaW50IHlQb3MgPSBwb2ludC55KCk7Ci0KICAgICBpZiAoaXNUYWJsZSgpICYmIG5vZGUoKSkg
ewotICAgICAgICBpbnQgcmlnaHQgPSBjb250ZW50V2lkdGgoKSArIGJvcmRlckFuZFBhZGRpbmdX
aWR0aCgpOwotICAgICAgICBpbnQgYm90dG9tID0gY29udGVudEhlaWdodCgpICsgYm9yZGVyQW5k
UGFkZGluZ0hlaWdodCgpOworICAgICAgICBMYXlvdXRVbml0IHJpZ2h0ID0gY29udGVudFdpZHRo
KCkgKyBib3JkZXJBbmRQYWRkaW5nV2lkdGgoKTsKKyAgICAgICAgTGF5b3V0VW5pdCBib3R0b20g
PSBjb250ZW50SGVpZ2h0KCkgKyBib3JkZXJBbmRQYWRkaW5nSGVpZ2h0KCk7CiAgICAgICAgIAog
ICAgICAgICBpZiAocG9pbnQueCgpIDwgMCB8fCBwb2ludC54KCkgPiByaWdodCB8fCBwb2ludC55
KCkgPCAwIHx8IHBvaW50LnkoKSA+IGJvdHRvbSkgewogICAgICAgICAgICAgaWYgKHBvaW50Lngo
KSA8PSByaWdodCAvIDIpCkBAIC0zMTE2LDkgKzMxMTMsOSBAQCBWaXNpYmxlUG9zaXRpb24gUmVu
ZGVyQm94Ojpwb3NpdGlvbkZvclBvCiAgICAgfQogCiAgICAgLy8gUGFzcyBvZmYgdG8gdGhlIGNs
b3Nlc3QgY2hpbGQuCi0gICAgaW50IG1pbkRpc3QgPSBJTlRfTUFYOworICAgIExheW91dFVuaXQg
bWluRGlzdCA9IG51bWVyaWNfbGltaXRzPExheW91dFVuaXQ+OjptYXgoKTsKICAgICBSZW5kZXJC
b3gqIGNsb3Nlc3RSZW5kZXJlciA9IDA7Ci0gICAgSW50UG9pbnQgYWRqdXN0ZWRQb2ludCA9IHBv
aW50OworICAgIExheW91dFBvaW50IGFkanVzdGVkUG9pbnQgPSBwb2ludDsKICAgICBpZiAoaXNU
YWJsZVJvdygpKQogICAgICAgICBhZGp1c3RlZFBvaW50Lm1vdmUobG9jYXRpb24oKSk7CiAKQEAg
LTMxMzIsMTAgKzMxMjksMTAgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJveDo6cG9zaXRpb25G
b3JQbwogICAgICAgICAKICAgICAgICAgUmVuZGVyQm94KiByZW5kZXJlciA9IHRvUmVuZGVyQm94
KHJlbmRlck9iamVjdCk7CiAKLSAgICAgICAgaW50IHRvcCA9IHJlbmRlcmVyLT5ib3JkZXJUb3Ao
KSArIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkgKyAoaXNUYWJsZVJvdygpID8gMCA6IHJlbmRlcmVy
LT55KCkpOwotICAgICAgICBpbnQgYm90dG9tID0gdG9wICsgcmVuZGVyZXItPmNvbnRlbnRIZWln
aHQoKTsKLSAgICAgICAgaW50IGxlZnQgPSByZW5kZXJlci0+Ym9yZGVyTGVmdCgpICsgcmVuZGVy
ZXItPnBhZGRpbmdMZWZ0KCkgKyAoaXNUYWJsZVJvdygpID8gMCA6IHJlbmRlcmVyLT54KCkpOwot
ICAgICAgICBpbnQgcmlnaHQgPSBsZWZ0ICsgcmVuZGVyZXItPmNvbnRlbnRXaWR0aCgpOworICAg
ICAgICBMYXlvdXRVbml0IHRvcCA9IHJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIHJlbmRlcmVyLT5w
YWRkaW5nVG9wKCkgKyAoaXNUYWJsZVJvdygpID8gMCA6IHJlbmRlcmVyLT55KCkpOworICAgICAg
ICBMYXlvdXRVbml0IGJvdHRvbSA9IHRvcCArIHJlbmRlcmVyLT5jb250ZW50SGVpZ2h0KCk7Cisg
ICAgICAgIExheW91dFVuaXQgbGVmdCA9IHJlbmRlcmVyLT5ib3JkZXJMZWZ0KCkgKyByZW5kZXJl
ci0+cGFkZGluZ0xlZnQoKSArIChpc1RhYmxlUm93KCkgPyAwIDogcmVuZGVyZXItPngoKSk7Cisg
ICAgICAgIExheW91dFVuaXQgcmlnaHQgPSBsZWZ0ICsgcmVuZGVyZXItPmNvbnRlbnRXaWR0aCgp
OwogICAgICAgICAKICAgICAgICAgaWYgKHBvaW50LngoKSA8PSByaWdodCAmJiBwb2ludC54KCkg
Pj0gbGVmdCAmJiBwb2ludC55KCkgPD0gdG9wICYmIHBvaW50LnkoKSA+PSBib3R0b20pIHsKICAg
ICAgICAgICAgIGlmIChyZW5kZXJlci0+aXNUYWJsZVJvdygpKQpAQCAtMzE0NSwzMSArMzE0Miwz
MSBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyQm94Ojpwb3NpdGlvbkZvclBvCiAKICAgICAgICAg
Ly8gRmluZCB0aGUgZGlzdGFuY2UgZnJvbSAoeCwgeSkgdG8gdGhlIGJveC4gIFNwbGl0IHRoZSBz
cGFjZSBhcm91bmQgdGhlIGJveCBpbnRvIDggcGllY2VzCiAgICAgICAgIC8vIGFuZCB1c2UgYSBk
aWZmZXJlbnQgY29tcGFyZSBkZXBlbmRpbmcgb24gd2hpY2ggcGllY2UgKHgsIHkpIGlzIGluLgot
ICAgICAgICBJbnRQb2ludCBjbXA7Ci0gICAgICAgIGlmICh4UG9zID4gcmlnaHQpIHsKLSAgICAg
ICAgICAgIGlmICh5UG9zIDwgdG9wKQotICAgICAgICAgICAgICAgIGNtcCA9IEludFBvaW50KHJp
Z2h0LCB0b3ApOwotICAgICAgICAgICAgZWxzZSBpZiAoeVBvcyA+IGJvdHRvbSkKLSAgICAgICAg
ICAgICAgICBjbXAgPSBJbnRQb2ludChyaWdodCwgYm90dG9tKTsKKyAgICAgICAgTGF5b3V0UG9p
bnQgY21wOworICAgICAgICBpZiAocG9pbnQueCgpID4gcmlnaHQpIHsKKyAgICAgICAgICAgIGlm
IChwb2ludC55KCkgPCB0b3ApCisgICAgICAgICAgICAgICAgY21wID0gTGF5b3V0UG9pbnQocmln
aHQsIHRvcCk7CisgICAgICAgICAgICBlbHNlIGlmIChwb2ludC55KCkgPiBib3R0b20pCisgICAg
ICAgICAgICAgICAgY21wID0gTGF5b3V0UG9pbnQocmlnaHQsIGJvdHRvbSk7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgY21wID0gSW50UG9pbnQocmlnaHQsIHlQb3MpOwotICAg
ICAgICB9IGVsc2UgaWYgKHhQb3MgPCBsZWZ0KSB7Ci0gICAgICAgICAgICBpZiAoeVBvcyA8IHRv
cCkKLSAgICAgICAgICAgICAgICBjbXAgPSBJbnRQb2ludChsZWZ0LCB0b3ApOwotICAgICAgICAg
ICAgZWxzZSBpZiAoeVBvcyA+IGJvdHRvbSkKLSAgICAgICAgICAgICAgICBjbXAgPSBJbnRQb2lu
dChsZWZ0LCBib3R0b20pOworICAgICAgICAgICAgICAgIGNtcCA9IExheW91dFBvaW50KHJpZ2h0
LCBwb2ludC55KCkpOworICAgICAgICB9IGVsc2UgaWYgKHBvaW50LngoKSA8IGxlZnQpIHsKKyAg
ICAgICAgICAgIGlmIChwb2ludC55KCkgPCB0b3ApCisgICAgICAgICAgICAgICAgY21wID0gTGF5
b3V0UG9pbnQobGVmdCwgdG9wKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHBvaW50LnkoKSA+IGJv
dHRvbSkKKyAgICAgICAgICAgICAgICBjbXAgPSBMYXlvdXRQb2ludChsZWZ0LCBib3R0b20pOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNtcCA9IEludFBvaW50KGxlZnQsIHlQ
b3MpOworICAgICAgICAgICAgICAgIGNtcCA9IExheW91dFBvaW50KGxlZnQsIHBvaW50LnkoKSk7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoeVBvcyA8IHRvcCkKLSAgICAgICAg
ICAgICAgICBjbXAgPSBJbnRQb2ludCh4UG9zLCB0b3ApOworICAgICAgICAgICAgaWYgKHBvaW50
LnkoKSA8IHRvcCkKKyAgICAgICAgICAgICAgICBjbXAgPSBMYXlvdXRQb2ludChwb2ludC54KCks
IHRvcCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY21wID0gSW50UG9pbnQo
eFBvcywgYm90dG9tKTsKKyAgICAgICAgICAgICAgICBjbXAgPSBMYXlvdXRQb2ludChwb2ludC54
KCksIGJvdHRvbSk7CiAgICAgICAgIH0KIAotICAgICAgICBJbnRTaXplIGRpZmZlcmVuY2UgPSBj
bXAgLSBwb2ludDsKKyAgICAgICAgTGF5b3V0U2l6ZSBkaWZmZXJlbmNlID0gY21wIC0gcG9pbnQ7
CiAKLSAgICAgICAgaW50IGRpc3QgPSBkaWZmZXJlbmNlLndpZHRoKCkgKiBkaWZmZXJlbmNlLndp
ZHRoKCkgKyBkaWZmZXJlbmNlLmhlaWdodCgpICogZGlmZmVyZW5jZS5oZWlnaHQoKTsKKyAgICAg
ICAgTGF5b3V0VW5pdCBkaXN0ID0gZGlmZmVyZW5jZS53aWR0aCgpICogZGlmZmVyZW5jZS53aWR0
aCgpICsgZGlmZmVyZW5jZS5oZWlnaHQoKSAqIGRpZmZlcmVuY2UuaGVpZ2h0KCk7CiAgICAgICAg
IGlmIChkaXN0IDwgbWluRGlzdCkgewogICAgICAgICAgICAgY2xvc2VzdFJlbmRlcmVyID0gcmVu
ZGVyZXI7CiAgICAgICAgICAgICBtaW5EaXN0ID0gZGlzdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDkwMTg2KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsNyArMzcyLDcgQEAgcHVi
bGljOgogCiAgICAgSW50UmVjdCBtYXNrQ2xpcFJlY3QoKTsKIAotICAgIHZpcnR1YWwgVmlzaWJs
ZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFs
IFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7CiAK
ICAgICB2b2lkIHJlbW92ZUZsb2F0aW5nT3JQb3NpdGlvbmVkQ2hpbGRGcm9tQmxvY2tMaXN0cygp
OwogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwCShyZXZpc2lvbiA5MDE4NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4NCw3ICsxODQsNyBAQCB2b2lkIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpjb21wdXRlUHJl
CiAgICAgc2V0UHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KGZhbHNlKTsKIH0KIAotVmlzaWJs
ZVBvc2l0aW9uIFJlbmRlckZpbGVVcGxvYWRDb250cm9sOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0
IEludFBvaW50JikKK1Zpc2libGVQb3NpdGlvbiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6cG9z
aXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpCiB7CiAgICAgcmV0dXJuIFZpc2libGVQ
b3NpdGlvbigpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVV
cGxvYWRDb250cm9sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZpbGVVcGxvYWRDb250cm9sLmgJKHJldmlzaW9uIDkwMTg2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKIAogICAgIGludCBtYXhGaWxlbmFtZVdpZHRoKCkgY29u
c3Q7CiAgICAgCi0gICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChj
b25zdCBJbnRQb2ludCYpOworICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9y
UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIEhUTUxJbnB1dEVsZW1lbnQqIHVwbG9h
ZEJ1dHRvbigpIGNvbnN0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCShyZXZpc2lvbiA5MDE4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTUsNyArNzE1LDcgQEAgYm9v
bCBSZW5kZXJJbmxpbmU6Om5vZGVBdFBvaW50KGNvbnN0IEhpdAogICAgIHJldHVybiBtX2xpbmVC
b3hlcy5oaXRUZXN0KHRoaXMsIHJlcXVlc3QsIHJlc3VsdCwgcG9pbnRJbkNvbnRhaW5lciwgYWNj
dW11bGF0ZWRPZmZzZXQsIGhpdFRlc3RBY3Rpb24pOwogfQogCi1WaXNpYmxlUG9zaXRpb24gUmVu
ZGVySW5saW5lOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKK1Zpc2li
bGVQb3NpdGlvbiBSZW5kZXJJbmxpbmU6OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9p
bnQmIHBvaW50KQogewogICAgIC8vIEZJWE1FOiBEb2VzIG5vdCBkZWFsIHdpdGggcmVsYXRpdmUg
cG9zaXRpb25lZCBpbmxpbmVzIChzaG91bGQgaXQ/KQogICAgIFJlbmRlckJsb2NrKiBjYiA9IGNv
bnRhaW5pbmdCbG9jaygpOwpAQCAtNzI2LDcgKzcyNiw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5k
ZXJJbmxpbmU6OnBvc2l0aW9uRm8KICAgICB9CiAKICAgICAvLyBUcmFuc2xhdGUgdGhlIGNvb3Jk
cyBmcm9tIHRoZSBwcmUtYW5vbnltb3VzIGJsb2NrIHRvIHRoZSBwb3N0LWFub255bW91cyBibG9j
ay4KLSAgICBJbnRQb2ludCBwYXJlbnRCbG9ja1BvaW50ID0gY2ItPmxvY2F0aW9uKCkgKyBwb2lu
dDsgIAorICAgIExheW91dFBvaW50IHBhcmVudEJsb2NrUG9pbnQgPSBjYi0+bG9jYXRpb24oKSAr
IHBvaW50OyAgCiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGMgPSBjb250aW51YXRpb24oKTsK
ICAgICB3aGlsZSAoYykgewogICAgICAgICBSZW5kZXJCb3gqIGNvbnRCbG9jayA9IGMtPmlzSW5s
aW5lKCkgPyBjLT5jb250YWluaW5nQmxvY2soKSA6IHRvUmVuZGVyQmxvY2soYyk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiA5MDE4NikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkod29ya2luZyBjb3B5KQpA
QCAtMTMzLDcgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29s
IGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50
Jik7CisgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBM
YXlvdXRQb2ludCYpOwogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvcmRlckJvdW5kaW5nQm94
KCkgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcAkocmV2aXNpb24gOTAxODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEyMiw3ICsyMTIyLDcgQEAgdm9pZCBS
ZW5kZXJPYmplY3Q6OmFyZW5hRGVsZXRlKFJlbmRlckFyZQogICAgIGFyZW5hLT5mcmVlKCooc2l6
ZV90KiliYXNlLCBiYXNlKTsKIH0KIAotVmlzaWJsZVBvc2l0aW9uIFJlbmRlck9iamVjdDo6cG9z
aXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpCitWaXNpYmxlUG9zaXRpb24gUmVuZGVyT2Jq
ZWN0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JikKIHsKICAgICByZXR1cm4g
Y3JlYXRlVmlzaWJsZVBvc2l0aW9uKGNhcmV0TWluT2Zmc2V0KCksIERPV05TVFJFQU0pOwogfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCShyZXZp
c2lvbiA5MDE4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMCw3ICs0MDAsNyBAQCB1bnNpZ25lZCBSZW5kZXJSZXBs
YWNlZDo6Y2FyZXRNYXhSZW5kZXJlCiAgICAgcmV0dXJuIDE7IAogfQogCi1WaXNpYmxlUG9zaXRp
b24gUmVuZGVyUmVwbGFjZWQ6OnBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50
KQorVmlzaWJsZVBvc2l0aW9uIFJlbmRlclJlcGxhY2VkOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0
IExheW91dFBvaW50JiBwb2ludCkKIHsKICAgICBJbmxpbmVCb3gqIGJveCA9IGlubGluZUJveFdy
YXBwZXIoKTsKICAgICBpZiAoIWJveCkKQEAgLTQxMCwxMSArNDEwLDExIEBAIFZpc2libGVQb3Np
dGlvbiBSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb24KIAogICAgIFJvb3RJbmxpbmVCb3gqIHJvb3Qg
PSBib3gtPnJvb3QoKTsKIAotICAgIGludCB0b3AgPSByb290LT5zZWxlY3Rpb25Ub3AoKTsKLSAg
ICBpbnQgYm90dG9tID0gcm9vdC0+c2VsZWN0aW9uQm90dG9tKCk7CisgICAgTGF5b3V0VW5pdCB0
b3AgPSByb290LT5zZWxlY3Rpb25Ub3AoKTsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSA9IHJvb3Qt
PnNlbGVjdGlvbkJvdHRvbSgpOwogCi0gICAgaW50IGJsb2NrRGlyZWN0aW9uUG9zaXRpb24gPSBi
b3gtPmlzSG9yaXpvbnRhbCgpID8gcG9pbnQueSgpICsgeSgpIDogcG9pbnQueCgpICsgeCgpOwot
ICAgIGludCBsaW5lRGlyZWN0aW9uUG9zaXRpb24gPSBib3gtPmlzSG9yaXpvbnRhbCgpID8gcG9p
bnQueCgpICsgeCgpIDogcG9pbnQueSgpICsgeSgpOworICAgIExheW91dFVuaXQgYmxvY2tEaXJl
Y3Rpb25Qb3NpdGlvbiA9IGJveC0+aXNIb3Jpem9udGFsKCkgPyBwb2ludC55KCkgKyB5KCkgOiBw
b2ludC54KCkgKyB4KCk7CisgICAgTGF5b3V0VW5pdCBsaW5lRGlyZWN0aW9uUG9zaXRpb24gPSBi
b3gtPmlzSG9yaXpvbnRhbCgpID8gcG9pbnQueCgpICsgeCgpIDogcG9pbnQueSgpICsgeSgpOwog
CiAgICAgaWYgKGJsb2NrRGlyZWN0aW9uUG9zaXRpb24gPCB0b3ApCiAgICAgICAgIHJldHVybiBj
cmVhdGVWaXNpYmxlUG9zaXRpb24oY2FyZXRNaW5PZmZzZXQoKSwgRE9XTlNUUkVBTSk7IC8vIGNv
b3JkaW5hdGVzIGFyZSBhYm92ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmgJKHJldmlzaW9uIDkwMTg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIEludFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwogCiAgICAgdmlydHVhbCB1bnNp
Z25lZCBjYXJldE1heFJlbmRlcmVkT2Zmc2V0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBWaXNpYmxl
UG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpOworICAgIHZpcnR1YWwg
VmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKICAg
ICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShy
ZXZpc2lvbiA5MDE4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0YXRpYyBib29sIGxpbmVEaXJl
Y3Rpb25Qb2ludEZpdHNJbkJveCgKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVZpc2libGVQb3Np
dGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkK
K1Zpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91
dFBvaW50JiBwb2ludCkKIHsKICAgICBpZiAoIWZpcnN0VGV4dEJveCgpIHx8IHRleHRMZW5ndGgo
KSA9PSAwKQogICAgICAgICByZXR1cm4gY3JlYXRlVmlzaWJsZVBvc2l0aW9uKDAsIERPV05TVFJF
QU0pOwpAQCAtNDc2LDggKzQ3Niw4IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3Np
dGlvbkZvclAKICAgICAvLyBHZXQgdGhlIG9mZnNldCBmb3IgdGhlIHBvc2l0aW9uLCBzaW5jZSB0
aGlzIHdpbGwgdGFrZSBydGwgdGV4dCBpbnRvIGFjY291bnQuCiAgICAgaW50IG9mZnNldDsKIAot
ICAgIGludCBwb2ludExpbmVEaXJlY3Rpb24gPSBmaXJzdFRleHRCb3goKS0+aXNIb3Jpem9udGFs
KCkgPyBwb2ludC54KCkgOiBwb2ludC55KCk7Ci0gICAgaW50IHBvaW50QmxvY2tEaXJlY3Rpb24g
PSBmaXJzdFRleHRCb3goKS0+aXNIb3Jpem9udGFsKCkgPyBwb2ludC55KCkgOiBwb2ludC54KCk7
CisgICAgTGF5b3V0VW5pdCBwb2ludExpbmVEaXJlY3Rpb24gPSBmaXJzdFRleHRCb3goKS0+aXNI
b3Jpem9udGFsKCkgPyBwb2ludC54KCkgOiBwb2ludC55KCk7CisgICAgTGF5b3V0VW5pdCBwb2lu
dEJsb2NrRGlyZWN0aW9uID0gZmlyc3RUZXh0Qm94KCktPmlzSG9yaXpvbnRhbCgpID8gcG9pbnQu
eSgpIDogcG9pbnQueCgpOwogICAgIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0
byByb2xsIHRoZXNlIHNwZWNpYWwgY2FzZXMgaW50byB0aGUgZ2VuZXJhbCBjYXNlcyBpbiB0aGUg
bG9vcCBiZWxvdy4KICAgICBpZiAoZmlyc3RUZXh0Qm94KCkgJiYgcG9pbnRCbG9ja0RpcmVjdGlv
biA8ICBmaXJzdFRleHRCb3goKS0+cm9vdCgpLT5zZWxlY3Rpb25Cb3R0b20oKSAmJiBwb2ludExp
bmVEaXJlY3Rpb24gPCBmaXJzdFRleHRCb3goKS0+bG9naWNhbExlZnQoKSkgewpAQCAtNDk3LDcg
KzQ5Nyw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclAKICAgICBm
b3IgKElubGluZVRleHRCb3gqIGJveCA9IGZpcnN0VGV4dEJveCgpOyBib3g7IGJveCA9IGJveC0+
bmV4dFRleHRCb3goKSkgewogICAgICAgICBSb290SW5saW5lQm94KiByb290Qm94ID0gYm94LT5y
b290KCk7CiAgICAgICAgIGlmIChwb2ludEJsb2NrRGlyZWN0aW9uID49IHJvb3RCb3gtPnNlbGVj
dGlvblRvcCgpIHx8IHBvaW50QmxvY2tEaXJlY3Rpb24gPj0gcm9vdEJveC0+bGluZVRvcCgpKSB7
Ci0gICAgICAgICAgICBpbnQgYm90dG9tID0gcm9vdEJveC0+c2VsZWN0aW9uQm90dG9tKCk7Cisg
ICAgICAgICAgICBMYXlvdXRVbml0IGJvdHRvbSA9IHJvb3RCb3gtPnNlbGVjdGlvbkJvdHRvbSgp
OwogICAgICAgICAgICAgaWYgKHJvb3RCb3gtPm5leHRSb290Qm94KCkpCiAgICAgICAgICAgICAg
ICAgYm90dG9tID0gbWluKGJvdHRvbSwgcm9vdEJveC0+bmV4dFJvb3RCb3goKS0+bGluZVRvcCgp
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCShyZXZpc2lvbiA5
MDE4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIGVudW0gQ2xpcHBpbmdPcHRpb24g
eyBOb0NsaXBwaW5nLCBDbGlwVG9FbGxpcHNpcyB9OwogICAgIHZvaWQgYWJzb2x1dGVRdWFkcyhW
ZWN0b3I8RmxvYXRRdWFkPiYsIENsaXBwaW5nT3B0aW9uIG9wdGlvbiA9IE5vQ2xpcHBpbmcpOwog
Ci0gICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQ
b2ludCYpOworICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29u
c3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzKCkgY29uc3Qg
eyByZXR1cm4gbV90ZXh0LmNoYXJhY3RlcnMoKTsgfQogICAgIHVuc2lnbmVkIHRleHRMZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX3RleHQubGVuZ3RoKCk7IH0gLy8gbm9uIHZpcnR1YWwgaW1wbGVt
ZW50YXRpb24gb2YgbGVuZ3RoKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCShyZXZpc2lvbiA5MDE4
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxp
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw5ICs1Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotVmlzaWJsZVBvc2l0aW9uIFJlbmRl
clRleHRDb250cm9sSW5uZXJCbG9jazo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYg
cG9pbnQpCitWaXNpYmxlUG9zaXRpb24gUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrOjpwb3Np
dGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKIHsKLSAgICBJbnRQb2ludCBj
b250ZW50c1BvaW50KHBvaW50KTsKKyAgICBMYXlvdXRQb2ludCBjb250ZW50c1BvaW50KHBvaW50
KTsKIAogICAgIC8vIE11bHRpbGluZSB0ZXh0IGNvbnRyb2xzIGhhdmUgdGhlIHNjcm9sbCBvbiBz
aGFkb3dBbmNlc3Rvck5vZGUsIHNvIHdlIG5lZWQgdG8gdGFrZSB0aGF0CiAgICAgLy8gaW50byBh
Y2NvdW50IGhlcmUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCShyZXZpc2lvbiA5MDE4NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTY2LDcgKzE2Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaGFzTGluZUlmRW1wdHkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmly
dHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpOwor
ICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0
UG9pbnQmKTsKIAogICAgIGJvb2wgbV9tdWx0aUxpbmU7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCShyZXZp
c2lvbiA5MDE4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIFJlbmRl
clNWR0lubGluZVRleHQ6OmNoYXJhY3RlclN0YXJ0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1W
aXNpYmxlUG9zaXRpb24gUmVuZGVyU1ZHSW5saW5lVGV4dDo6cG9zaXRpb25Gb3JQb2ludChjb25z
dCBJbnRQb2ludCYgcG9pbnQpCitWaXNpYmxlUG9zaXRpb24gUmVuZGVyU1ZHSW5saW5lVGV4dDo6
cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiB7CiAgICAgaWYgKCFm
aXJzdFRleHRCb3goKSB8fCAhdGV4dExlbmd0aCgpKQogICAgICAgICByZXR1cm4gY3JlYXRlVmlz
aWJsZVBvc2l0aW9uKDAsIERPV05TVFJFQU0pOwpAQCAtMTgxLDcgKzE4MSw3IEBAIFZpc2libGVQ
b3NpdGlvbiBSZW5kZXJTVkdJbmxpbmVUZXh0Ojpwb3MKIAogICAgIC8vIE1hcCBsb2NhbCBwb2lu
dCB0byBhYnNvbHV0ZSBwb2ludCwgYXMgdGhlIGNoYXJhY3RlciBvcmlnaW5zIHN0b3JlZCBpbiB0
aGUgdGV4dCBmcmFnbWVudHMgdXNlIGFic29sdXRlIGNvb3JkaW5hdGVzLgogICAgIEZsb2F0UG9p
bnQgYWJzb2x1dGVQb2ludChwb2ludCk7Ci0gICAgYWJzb2x1dGVQb2ludC5tb3ZlKGNvbnRhaW5p
bmdCbG9jay0+eCgpLCBjb250YWluaW5nQmxvY2stPnkoKSk7CisgICAgYWJzb2x1dGVQb2ludC5t
b3ZlQnkoY29udGFpbmluZ0Jsb2NrLT5sb2NhdGlvbigpKTsKIAogICAgIGZsb2F0IGNsb3Nlc3RE
aXN0YW5jZSA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKTsKICAgICBmbG9hdCBj
bG9zZXN0RGlzdGFuY2VQb3NpdGlvbiA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAkocmV2aXNpb24gOTAxODYpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBy
ZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNTVkdJbmxpbmVUZXh0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBW
aXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpOworICAgIHZp
cnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQm
KTsKICAgICB2aXJ0dWFsIEludFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNh
cmV0T2Zmc2V0LCBpbnQqIGV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IDApOwogICAgIHZpcnR1YWwg
SW50UmVjdCBsaW5lc0JvdW5kaW5nQm94KCkgY29uc3Q7CiAgICAgdmlydHVhbCBJbmxpbmVUZXh0
Qm94KiBjcmVhdGVUZXh0Qm94KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDkwMTg2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3
LDcgKzIwNyw3IEBAIGJvb2wgUmVuZGVyU1ZHVGV4dDo6bm9kZUF0UG9pbnQoY29uc3QgSGkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLVZpc2libGVQb3NpdGlvbiBSZW5kZXJTVkdUZXh0Ojpwb3Np
dGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludEluQ29udGVudHMpCitWaXNpYmxlUG9z
aXRpb24gUmVuZGVyU1ZHVGV4dDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYg
cG9pbnRJbkNvbnRlbnRzKQogewogICAgIFJvb3RJbmxpbmVCb3gqIHJvb3RCb3ggPSBmaXJzdFJv
b3RCb3goKTsKICAgICBpZiAoIXJvb3RCb3gpCkBAIC0yMjEsNyArMjIxLDcgQEAgVmlzaWJsZVBv
c2l0aW9uIFJlbmRlclNWR1RleHQ6OnBvc2l0aW9uRgogICAgIGlmICghY2xvc2VzdEJveCkKICAg
ICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3NpdGlvbigwLCBET1dOU1RSRUFNKTsKIAotICAg
IHJldHVybiBjbG9zZXN0Qm94LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KEludFBvaW50
KHBvaW50SW5Db250ZW50cy54KCksIGNsb3Nlc3RCb3gtPnkoKSkpOworICAgIHJldHVybiBjbG9z
ZXN0Qm94LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KExheW91dFBvaW50KHBvaW50SW5D
b250ZW50cy54KCksIGNsb3Nlc3RCb3gtPnkoKSkpOwogfQogCiB2b2lkIFJlbmRlclNWR1RleHQ6
OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHJldmlzaW9uIDkwMTg2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0
UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSW50UG9p
bnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IEludFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwg
SGl0VGVzdEFjdGlvbik7CiAgICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3Qg
SGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJ
blBhcmVudCwgSGl0VGVzdEFjdGlvbik7Ci0gICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9z
aXRpb25Gb3JQb2ludChjb25zdCBJbnRQb2ludCYpOworICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0
aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgbGF5b3V0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>