<?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>87268</bug_id>
          
          <creation_ts>2012-05-23 08:45:30 -0700</creation_ts>
          <short_desc>[Chromium] Move themeEngine to Platform.h</short_desc>
          <delta_ts>2012-05-23 13:42:41 -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>WebKit Misc.</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>82948</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Mark Pilgrim (Google)">pilgrim</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>631694</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-23 08:45:30 -0700</bug_when>
    <thetext>[Chromium] Move themeEngine to Platform.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631697</commentid>
    <comment_count>1</comment_count>
      <attachid>143575</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-23 08:46:08 -0700</bug_when>
    <thetext>Created attachment 143575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631699</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-23 08:47:41 -0700</bug_when>
    <thetext>This is obviously only half the story; the other half is taking all the paint* functions out of PlatformSupport.cpp/h and calling them directly from ScrollbarThemeChromium*.cpp. That&apos;ll be a followup bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631700</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-23 08:48:51 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631707</commentid>
    <comment_count>4</comment_count>
      <attachid>143575</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-23 08:57:55 -0700</bug_when>
    <thetext>Comment on attachment 143575
Patch

This is fine, but we should move the WebThemeEngine.h files too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631880</commentid>
    <comment_count>5</comment_count>
      <attachid>143610</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-23 12:01:49 -0700</bug_when>
    <thetext>Created attachment 143610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631881</commentid>
    <comment_count>6</comment_count>
      <attachid>143610</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-05-23 12:02:27 -0700</bug_when>
    <thetext>Comment on attachment 143610
Patch

Now moves WebThemeEngine files to new subdirectories in Platform/chromium/public/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631994</commentid>
    <comment_count>7</comment_count>
      <attachid>143610</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-23 13:42:36 -0700</bug_when>
    <thetext>Comment on attachment 143610
Patch

Clearing flags on attachment: 143610

Committed r118237: &lt;http://trac.webkit.org/changeset/118237&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>631995</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-23 13:42:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143575</attachid>
            <date>2012-05-23 08:46:08 -0700</date>
            <delta_ts>2012-05-23 12:01:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87268-20120523114542.patch</filename>
            <type>text/plain</type>
            <size>8776</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4MTgwKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTIzICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1v
dmUgdGhlbWVFbmdpbmUgdG8gUGxhdGZvcm0uaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcyNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0b3Jpbmcgc2VyaWVzLiBTZWUgdHJh
Y2tpbmcgYnVnIDgyOTQ4LgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmg6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUGxhdGZvcm0pOgorICAgICAgICAoV2ViS2l0
OjpQbGF0Zm9ybTo6dGhlbWVFbmdpbmUpOgorCiAyMDEyLTA1LTIyICBNYXJrIFBpbGdyaW0gIDxw
aWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIENhbGwgY2FuQWNjZWxl
cmF0ZTJkQ2FudmFzIGRpcmVjdGx5CkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMTgxODApCisrKyBTb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDcgQEAg
Y2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwogY2xhc3MgV2ViVVJMOwogY2xh
c3MgV2ViVVJMTG9hZGVyOwogY2xhc3MgV2ViU29ja2V0U3RyZWFtSGFuZGxlOworY2xhc3MgV2Vi
VGhlbWVFbmdpbmU7CiBjbGFzcyBXZWJUaHJlYWQ7CiBjbGFzcyBXZWJXb3JrZXJSdW5Mb29wOwog
CkBAIC03Nyw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICAvLyBNdXN0IHJldHVybiBub24tbnVsbC4K
ICAgICB2aXJ0dWFsIFdlYk1pbWVSZWdpc3RyeSogbWltZVJlZ2lzdHJ5KCkgeyByZXR1cm4gMDsg
fQogCisgICAgLy8gTWF5IHJldHVybiBudWxsIG9uIHNvbWUgcGxhdGZvcm1zLgorICAgIHZpcnR1
YWwgV2ViVGhlbWVFbmdpbmUqIHRoZW1lRW5naW5lKCkgeyByZXR1cm4gMDsgfQorCiAKICAgICAv
LyBBdWRpbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24g
MTE4MTgwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNS0yMyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBNb3ZlIHRoZW1lRW5naW5lIHRvIFBs
YXRmb3JtLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg3MjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UGFydCBvZiBhIHJlZmFjdG9yaW5nIHNlcmllcy4gU2VlIHRyYWNraW5nIGJ1ZyA4Mjk0OC4KKwor
ICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBsYXRmb3JtU3VwcG9ydDo6c2Fu
ZGJveFN1cHBvcnQpOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50TWVudUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TdXBwb3J0OjpwYWludFNjcm9sbGJhckFycm93KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtU3VwcG9ydDo6cGFpbnRTY3JvbGxiYXJUaHVtYik6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50U2Nyb2xsYmFyVHJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1TdXBwb3J0OjpwYWludFNwaW5CdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TdXBwb3J0OjpwYWludFRleHRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybVN1cHBvcnQ6OnBhaW50VHJhY2tiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1T
dXBwb3J0OjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3Vw
cG9ydDo6Z2V0VGhlbWVQYXJ0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBv
cnQ6OnBhaW50VGhlbWVQYXJ0KToKKwogMjAxMi0wNS0yMiAgQWxleGFuZHJlIEVsaWFzICA8YWVs
aWFzQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBBcHBseSB2aWV3cG9ydCB0YWcg
aW5pdGlhbC1zY2FsZSBvbmx5IG9uY2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBsYXRmb3JtU3VwcG9ydC5o
CShyZXZpc2lvbiAxMTgxODApCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0
Zm9ybS9XZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcs
NiBAQCBjbGFzcyBXZWJQbHVnaW5MaXN0QnVpbGRlcjsgLy8gRklYTUU6IERvCiBjbGFzcyBXZWJT
YW5kYm94U3VwcG9ydDsKIGNsYXNzIFdlYlNoYXJlZFdvcmtlclJlcG9zaXRvcnk7IC8vIEZJWE1F
OiBEb2VzIHRoaXMgYmVsb25nIGluIHBsYXRmb3JtPwogY2xhc3MgV2ViU3RvcmFnZU5hbWVzcGFj
ZTsgLy8gRklYTUU6IERvZXMgdGhpcyBiZWxvbmcgaW4gcGxhdGZvcm0/Ci1jbGFzcyBXZWJUaGVt
ZUVuZ2luZTsKIAogLy8gRklYTUU6IEV2ZW50dWFsbHkgYWxsIHRoZXNlIEFQSSB3aWxsIG5lZWQg
dG8gbW92ZSB0byBXZWJLaXQ6OlBsYXRmb3JtLgogY2xhc3MgV2ViS2l0UGxhdGZvcm1TdXBwb3J0
IDogcHVibGljIFBsYXRmb3JtIHsKQEAgLTY1LDkgKzY0LDYgQEAgcHVibGljOgogICAgIC8vIE1h
eSByZXR1cm4gbnVsbCBpZiBzYW5kYm94IHN1cHBvcnQgaXMgbm90IG5lY2Vzc2FyeQogICAgIHZp
cnR1YWwgV2ViU2FuZGJveFN1cHBvcnQqIHNhbmRib3hTdXBwb3J0KCkgeyByZXR1cm4gMDsgfQog
Ci0gICAgLy8gTWF5IHJldHVybiBudWxsIG9uIHNvbWUgcGxhdGZvcm1zLgotICAgIHZpcnR1YWwg
V2ViVGhlbWVFbmdpbmUqIHRoZW1lRW5naW5lKCkgeyByZXR1cm4gMDsgfQotCiAgICAgLy8gRE9N
IFN0b3JhZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAogICAgIC8vIFJldHVybiBhIExvY2FsU3RvcmFnZSBuYW1lc3BhY2UgdGhhdCBjb3JyZXNw
b25kcyB0byB0aGUgZm9sbG93aW5nIHBhdGguCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAJKHJldmlzaW9uIDExODE4MCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU3MSw3ICs1NzEsNyBAQCB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6cGFpbnRCdXR0b24oCiAg
ICAgR3JhcGhpY3NDb250ZXh0KiBnYywgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNT
dGF0ZSwKICAgICBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHdlYktpdFBsYXRmb3JtU3Vw
cG9ydCgpLT50aGVtZUVuZ2luZSgpLT5wYWludEJ1dHRvbigKKyAgICBXZWJLaXQ6OlBsYXRmb3Jt
OjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50QnV0dG9uKAogICAgICAgICBnYy0+cGxh
dGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBwYXJ0LCBzdGF0ZSwgY2xhc3NpY1N0YXRlLCByZWN0
KTsKIH0KIApAQCAtNTc5LDcgKzU3OSw3IEBAIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpwYWludE1l
bnVMaXN0KAogICAgIEdyYXBoaWNzQ29udGV4dCogZ2MsIGludCBwYXJ0LCBpbnQgc3RhdGUsIGlu
dCBjbGFzc2ljU3RhdGUsCiAgICAgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKLSAgICB3ZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnRNZW51TGlzdCgKKyAgICBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50TWVudUxpc3QoCiAg
ICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCksIHBhcnQsIHN0YXRlLCBjbGFz
c2ljU3RhdGUsIHJlY3QpOwogfQogCkBAIC01ODcsNyArNTg3LDcgQEAgdm9pZCBQbGF0Zm9ybVN1
cHBvcnQ6OnBhaW50U2Nyb2xsYmFyQXJybwogICAgIEdyYXBoaWNzQ29udGV4dCogZ2MsIGludCBz
dGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKICAgICBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAg
IHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhckFy
cm93KAorICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFp
bnRTY3JvbGxiYXJBcnJvdygKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMo
KSwgc3RhdGUsIGNsYXNzaWNTdGF0ZSwgcmVjdCk7CiB9CiAKQEAgLTU5NSw3ICs1OTUsNyBAQCB2
b2lkIFBsYXRmb3JtU3VwcG9ydDo6cGFpbnRTY3JvbGxiYXJUaHVtCiAgICAgR3JhcGhpY3NDb250
ZXh0KiBnYywgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKICAgICBjb25z
dCBJbnRSZWN0JiByZWN0KQogewotICAgIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT50aGVtZUVu
Z2luZSgpLT5wYWludFNjcm9sbGJhclRodW1iKAorICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJl
bnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnRTY3JvbGxiYXJUaHVtYigKICAgICAgICAgZ2MtPnBs
YXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgcGFydCwgc3RhdGUsIGNsYXNzaWNTdGF0ZSwgcmVj
dCk7CiB9CiAKQEAgLTYwMyw3ICs2MDMsNyBAQCB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6cGFpbnRT
Y3JvbGxiYXJUcmFjCiAgICAgR3JhcGhpY3NDb250ZXh0KiBnYywgaW50IHBhcnQsIGludCBzdGF0
ZSwgaW50IGNsYXNzaWNTdGF0ZSwKICAgICBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBJbnRS
ZWN0JiBhbGlnblJlY3QpCiB7Ci0gICAgd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnRoZW1lRW5n
aW5lKCktPnBhaW50U2Nyb2xsYmFyVHJhY2soCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhclRyYWNrKAogICAgICAgICBnYy0+cGxh
dGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBwYXJ0LCBzdGF0ZSwgY2xhc3NpY1N0YXRlLCByZWN0
LAogICAgICAgICBhbGlnblJlY3QpOwogfQpAQCAtNjEyLDcgKzYxMiw3IEBAIHZvaWQgUGxhdGZv
cm1TdXBwb3J0OjpwYWludFNwaW5CdXR0b24oCiAgICAgR3JhcGhpY3NDb250ZXh0KiBnYywgaW50
IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKICAgICBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewotICAgIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT50aGVtZUVuZ2luZSgpLT5wYWlu
dFNwaW5CdXR0b24oCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2lu
ZSgpLT5wYWludFNwaW5CdXR0b24oCiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2Fu
dmFzKCksIHBhcnQsIHN0YXRlLCBjbGFzc2ljU3RhdGUsIHJlY3QpOwogfQogCkBAIC02MjQsNyAr
NjI0LDcgQEAgdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50VGV4dEZpZWxkKAogICAgIC8vIEZh
bGxiYWNrIHRvIHdoaXRlIHdoZW4gfGNvbG9yfCBpcyBpbnZhbGlkLgogICAgIFJHQkEzMiBiYWNr
Z3JvdW5kQ29sb3IgPSBjb2xvci5pc1ZhbGlkKCkgPyBjb2xvci5yZ2IoKSA6IENvbG9yOjp3aGl0
ZTsKIAotICAgIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFRl
eHRGaWVsZCgKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCkt
PnBhaW50VGV4dEZpZWxkKAogICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygp
LCBwYXJ0LCBzdGF0ZSwgY2xhc3NpY1N0YXRlLCByZWN0LAogICAgICAgICBiYWNrZ3JvdW5kQ29s
b3IsIGZpbGxDb250ZW50QXJlYSwgZHJhd0VkZ2VzKTsKIH0KQEAgLTYzMywxNCArNjMzLDE0IEBA
IHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpwYWludFRyYWNrYmFyKAogICAgIEdyYXBoaWNzQ29udGV4
dCogZ2MsIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsCiAgICAgY29uc3Qg
SW50UmVjdCYgcmVjdCkKIHsKLSAgICB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+dGhlbWVFbmdp
bmUoKS0+cGFpbnRUcmFja2JhcigKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRo
ZW1lRW5naW5lKCktPnBhaW50VHJhY2tiYXIoCiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQo
KS0+Y2FudmFzKCksIHBhcnQsIHN0YXRlLCBjbGFzc2ljU3RhdGUsIHJlY3QpOwogfQogCiB2b2lk
IFBsYXRmb3JtU3VwcG9ydDo6cGFpbnRQcm9ncmVzc0JhcigKICAgICBHcmFwaGljc0NvbnRleHQq
IGdjLCBjb25zdCBJbnRSZWN0JiBiYXJSZWN0LCBjb25zdCBJbnRSZWN0JiB2YWx1ZVJlY3QsIGJv
b2wgZGV0ZXJtaW5hdGUsIGRvdWJsZSBhbmltYXRlZFNlY29uZHMpCiB7Ci0gICAgd2ViS2l0UGxh
dGZvcm1TdXBwb3J0KCktPnRoZW1lRW5naW5lKCktPnBhaW50UHJvZ3Jlc3NCYXIoCisgICAgV2Vi
S2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFByb2dyZXNzQmFy
KAogICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBiYXJSZWN0LCB2YWx1
ZVJlY3QsIGRldGVybWluYXRlLCBhbmltYXRlZFNlY29uZHMpOwogfQogCkBAIC02NTksNyArNjU5
LDcgQEAgdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50U2Nyb2xsYmFyVGh1bQogICAgIHdlYlRo
ZW1lU2Nyb2xsYmFySW5mby50b3RhbFNpemUgPSBzY3JvbGxiYXJJbmZvLnRvdGFsU2l6ZTsKIAog
ICAgIFdlYktpdDo6V2ViQ2FudmFzKiB3ZWJDYW52YXMgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCkt
PmNhbnZhcygpOwotICAgIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT50aGVtZUVuZ2luZSgpLT5w
YWludFNjcm9sbGJhclRodW1iKAorICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhl
bWVFbmdpbmUoKS0+cGFpbnRTY3JvbGxiYXJUaHVtYigKICAgICAgICAgd2ViQ2FudmFzLAogICAg
ICAgICBzdGF0aWNfY2FzdDxXZWJUaGVtZUVuZ2luZTo6U3RhdGU+KHN0YXRlKSwKICAgICAgICAg
c3RhdGljX2Nhc3Q8V2ViVGhlbWVFbmdpbmU6OlNpemU+KHNpemUpLApAQCAtNzYzLDcgKzc2Myw3
IEBAIHN0YXRpYyB2b2lkIEdldFdlYlRoZW1lRXh0cmFQYXJhbXMoUGxhdGYKIAogSW50U2l6ZSBQ
bGF0Zm9ybVN1cHBvcnQ6OmdldFRoZW1lUGFydFNpemUoVGhlbWVQYXJ0IHBhcnQpCiB7Ci0gICAg
IHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+dGhlbWVFbmdpbmUoKS0+Z2V0U2l6ZShX
ZWJUaGVtZVBhcnQocGFydCkpOworICAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVu
dCgpLT50aGVtZUVuZ2luZSgpLT5nZXRTaXplKFdlYlRoZW1lUGFydChwYXJ0KSk7CiB9CiAKIHZv
aWQgUGxhdGZvcm1TdXBwb3J0OjpwYWludFRoZW1lUGFydCgKQEAgLTc3MSw3ICs3NzEsNyBAQCB2
b2lkIFBsYXRmb3JtU3VwcG9ydDo6cGFpbnRUaGVtZVBhcnQoCiB7CiAgICAgV2ViVGhlbWVFbmdp
bmU6OkV4dHJhUGFyYW1zIHdlYlRoZW1lRXh0cmFQYXJhbXM7CiAgICAgR2V0V2ViVGhlbWVFeHRy
YVBhcmFtcyhwYXJ0LCBzdGF0ZSwgZXh0cmFQYXJhbXMsICZ3ZWJUaGVtZUV4dHJhUGFyYW1zKTsK
LSAgICB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnQoCisgICAg
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludCgKICAgICAg
ICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgV2ViVGhlbWVQYXJ0KHBhcnQpLCBX
ZWJUaGVtZVN0YXRlKHN0YXRlKSwgcmVjdCwgJndlYlRoZW1lRXh0cmFQYXJhbXMpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143610</attachid>
            <date>2012-05-23 12:01:49 -0700</date>
            <delta_ts>2012-05-23 13:42:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87268-20120523150123.patch</filename>
            <type>text/plain</type>
            <size>41808</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4MjIwKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDEyLTA1LTIzICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1v
dmUgdGhlbWVFbmdpbmUgdG8gUGxhdGZvcm0uaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcyNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0b3Jpbmcgc2VyaWVzLiBTZWUgdHJh
Y2tpbmcgYnVnIDgyOTQ4LgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBj
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChQ
bGF0Zm9ybSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtOjp0aGVtZUVuZ2luZSk6CisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL2FuZHJvaWQ6IEFkZGVkLgorICAgICAgICAqIGNocm9taXVt
L3B1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYlRoZW1lRW5naW5lKToKKyAgICAgICAgKFNjcm9sbGJhclRyYWNrRXh0
cmFQYXJhbXMpOgorICAgICAgICAoQnV0dG9uRXh0cmFQYXJhbXMpOgorICAgICAgICAoVGV4dEZp
ZWxkRXh0cmFQYXJhbXMpOgorICAgICAgICAoTWVudUxpc3RFeHRyYVBhcmFtcyk6CisgICAgICAg
IChTbGlkZXJFeHRyYVBhcmFtcyk6CisgICAgICAgIChJbm5lclNwaW5CdXR0b25FeHRyYVBhcmFt
cyk6CisgICAgICAgIChQcm9ncmVzc0JhckV4dHJhUGFyYW1zKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVGhlbWVFbmdpbmU6OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJUaGVtZUVuZ2lu
ZTo6cGFpbnQpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9saW51eDogQWRkZWQuCisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlRoZW1lRW5naW5lKToKKyAgICAgICAgKFNjcm9s
bGJhclRyYWNrRXh0cmFQYXJhbXMpOgorICAgICAgICAoQnV0dG9uRXh0cmFQYXJhbXMpOgorICAg
ICAgICAoVGV4dEZpZWxkRXh0cmFQYXJhbXMpOgorICAgICAgICAoTWVudUxpc3RFeHRyYVBhcmFt
cyk6CisgICAgICAgIChTbGlkZXJFeHRyYVBhcmFtcyk6CisgICAgICAgIChJbm5lclNwaW5CdXR0
b25FeHRyYVBhcmFtcyk6CisgICAgICAgIChQcm9ncmVzc0JhckV4dHJhUGFyYW1zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVGhlbWVFbmdpbmU6OmdldFNpemUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJUaGVtZUVuZ2luZTo6cGFpbnQpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9tYWM6IEFk
ZGVkLgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9tYWMvV2ViVGhlbWVFbmdpbmUuaDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVGhlbWVFbmdpbmUpOgorICAgICAg
ICAoU2Nyb2xsYmFySW5mbyk6CisgICAgICAgIChXZWJLaXQ6OldlYlRoZW1lRW5naW5lOjpwYWlu
dFNjcm9sbGJhclRodW1iKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvd2luOiBBZGRlZC4K
KyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlRoZW1lRW5naW5lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVGhlbWVFbmdpbmU6OnBhaW50U3BpbkJ1dHRvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlRoZW1lRW5naW5lOjpwYWludFByb2dyZXNzQmFyKToKKwogMjAxMi0wNS0yMyAgTWFyayBQ
aWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3Zl
IHF1ZXJ5TG9jYWxpemVkU3RyaW5nIHRvIFBsYXRmb3JtLmgKSW5kZXg6IFNvdXJjZS9QbGF0Zm9y
bS9QbGF0Zm9ybS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5n
eXBpCShyZXZpc2lvbiAxMTgyMTYpCisrKyBTb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtMTEwLDYgKzExMCwxMCBAQAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9XZWJWaWRlb0ZyYW1lLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWRlb0ZyYW1lUHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dl
YldvcmtlclJ1bkxvb3AuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2FuZHJvaWQv
V2ViVGhlbWVFbmdpbmUuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL2xpbnV4L1dl
YlRoZW1lRW5naW5lLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9tYWMvV2ViVGhl
bWVFbmdpbmUuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL3dpbi9XZWJUaGVtZUVu
Z2luZS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9zcmMvUGxhdGZvcm0uY3BwJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9zcmMvV2ViQ1N0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3NyYy9XZWJGaWx0ZXJPcGVyYXRpb25zLmNwcCcsCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMTgyMTYpCisrKyBTb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDYgKzU2LDcgQEAgY2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OwogY2xhc3Mg
V2ViVVJMOwogY2xhc3MgV2ViVVJMTG9hZGVyOwogY2xhc3MgV2ViU29ja2V0U3RyZWFtSGFuZGxl
OworY2xhc3MgV2ViVGhlbWVFbmdpbmU7CiBjbGFzcyBXZWJUaHJlYWQ7CiBjbGFzcyBXZWJXb3Jr
ZXJSdW5Mb29wOwogCkBAIC03Nyw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICAvLyBNdXN0IHJldHVy
biBub24tbnVsbC4KICAgICB2aXJ0dWFsIFdlYk1pbWVSZWdpc3RyeSogbWltZVJlZ2lzdHJ5KCkg
eyByZXR1cm4gMDsgfQogCisgICAgLy8gTWF5IHJldHVybiBudWxsIG9uIHNvbWUgcGxhdGZvcm1z
LgorICAgIHZpcnR1YWwgV2ViVGhlbWVFbmdpbmUqIHRoZW1lRW5naW5lKCkgeyByZXR1cm4gMDsg
fQorCiAKICAgICAvLyBBdWRpbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvYW5kcm9pZC9XZWJUaGVt
ZUVuZ2luZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVGhlbWVF
bmdpbmVfaAorI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCisKKyNpbmNsdWRlICIuLi9XZWJDYW52
YXMuaCIKKyNpbmNsdWRlICIuLi9XZWJDb2xvci5oIgorI2luY2x1ZGUgIi4uL1dlYlNpemUuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJSZWN0OworCitjbGFzcyBXZWJUaGVt
ZUVuZ2luZSB7CitwdWJsaWM6CisgICAgLy8gVGhlIFVJIHBhcnQgd2hpY2ggaXMgYmVpbmcgYWNj
ZXNzZWQuCisgICAgZW51bSBQYXJ0IHsKKyAgICAgICAgLy8gU2Nyb2xsYmFyVGhlbWUgcGFydHMK
KyAgICAgICAgUGFydFNjcm9sbGJhckRvd25BcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhckxl
ZnRBcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhclJpZ2h0QXJyb3csCisgICAgICAgIFBhcnRT
Y3JvbGxiYXJVcEFycm93LAorICAgICAgICBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iLAor
ICAgICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUaHVtYiwKKyAgICAgICAgUGFydFNjcm9sbGJh
ckhvcml6b250YWxUcmFjaywKKyAgICAgICAgUGFydFNjcm9sbGJhclZlcnRpY2FsVHJhY2ssCisK
KyAgICAgICAgLy8gUmVuZGVyVGhlbWUgcGFydHMKKyAgICAgICAgUGFydENoZWNrYm94LAorICAg
ICAgICBQYXJ0UmFkaW8sCisgICAgICAgIFBhcnRCdXR0b24sCisgICAgICAgIFBhcnRUZXh0Rmll
bGQsCisgICAgICAgIFBhcnRNZW51TGlzdCwKKyAgICAgICAgUGFydFNsaWRlclRyYWNrLAorICAg
ICAgICBQYXJ0U2xpZGVyVGh1bWIsCisgICAgICAgIFBhcnRJbm5lclNwaW5CdXR0b24sCisgICAg
ICAgIFBhcnRQcm9ncmVzc0JhcgorICAgIH07CisKKyAgICAvLyBUaGUgY3VycmVudCBzdGF0ZSBv
ZiB0aGUgYXNzb2NpYXRlZCBQYXJ0LgorICAgIGVudW0gU3RhdGUgeworICAgICAgICBTdGF0ZURp
c2FibGVkLAorICAgICAgICBTdGF0ZUhvdmVyLAorICAgICAgICBTdGF0ZU5vcm1hbCwKKyAgICAg
ICAgU3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBk
cmF3aW5nIHRoZSBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRyYWNrIGFuZAorICAgIC8vIFBhcnRT
Y3JvbGxiYXJWZXJ0aWNhbFRyYWNrLgorICAgIHN0cnVjdCBTY3JvbGxiYXJUcmFja0V4dHJhUGFy
YW1zIHsKKyAgICAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgZW50aXJlIHRyYWNrLCBhcyBvcHBv
c2VkIHRvIHRoZSBwYXJ0IGJlaW5nIHBhaW50ZWQuCisgICAgICAgIGludCB0cmFja1g7CisgICAg
ICAgIGludCB0cmFja1k7CisgICAgICAgIGludCB0cmFja1dpZHRoOworICAgICAgICBpbnQgdHJh
Y2tIZWlnaHQ7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRDaGVj
a2JveCwgUGFydFB1c2hCdXR0b24gYW5kIFBhcnRSYWRpby4KKyAgICBzdHJ1Y3QgQnV0dG9uRXh0
cmFQYXJhbXMgeworICAgICAgICBib29sIGNoZWNrZWQ7CisgICAgICAgIGJvb2wgaW5kZXRlcm1p
bmF0ZTsgLy8gV2hldGhlciB0aGUgYnV0dG9uIHN0YXRlIGlzIGluZGV0ZXJtaW5hdGUuCisgICAg
ICAgIGJvb2wgaXNEZWZhdWx0OyAvLyBXaGV0aGVyIHRoZSBidXR0b24gaXMgZGVmYXVsdCBidXR0
b24uCisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5k
Q29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRUZXh0Rmll
bGQKKyAgICBzdHJ1Y3QgVGV4dEZpZWxkRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIGlzVGV4
dEFyZWE7CisgICAgICAgIGJvb2wgaXNMaXN0Ym94OworICAgICAgICBXZWJDb2xvciBiYWNrZ3Jv
dW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRNZW51
TGlzdAorICAgIHN0cnVjdCBNZW51TGlzdEV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCBoYXNC
b3JkZXI7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyUmFkaXVzOworICAgICAgICBpbnQgYXJyb3dY
OworICAgICAgICBpbnQgYXJyb3dZOworICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7
CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRTbGlkZXJUcmFjayBh
bmQgUGFydFNsaWRlclRodW1iCisgICAgc3RydWN0IFNsaWRlckV4dHJhUGFyYW1zIHsKKyAgICAg
ICAgYm9vbCB2ZXJ0aWNhbDsKKyAgICAgICAgYm9vbCBpbkRyYWc7CisgICAgfTsKKworICAgIC8v
IEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRJbm5lclNwaW5CdXR0b24KKyAgICBzdHJ1Y3QgSW5u
ZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIHNwaW5VcDsKKyAgICAgICAg
Ym9vbCByZWFkT25seTsKKyAgICB9OworCisgICAgLy8gRXh0cmEgcGFyYW1ldGVycyBmb3IgUGFy
dFByb2dyZXNzQmFyCisgICAgc3RydWN0IFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgeworICAgICAg
ICBib29sIGRldGVybWluYXRlOworICAgICAgICBpbnQgdmFsdWVSZWN0WDsKKyAgICAgICAgaW50
IHZhbHVlUmVjdFk7CisgICAgICAgIGludCB2YWx1ZVJlY3RXaWR0aDsKKyAgICAgICAgaW50IHZh
bHVlUmVjdEhlaWdodDsKKyAgICB9OworCisgICAgdW5pb24gRXh0cmFQYXJhbXMgeworICAgICAg
ICBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHNjcm9sbGJhclRyYWNrOworICAgICAgICBCdXR0
b25FeHRyYVBhcmFtcyBidXR0b247CisgICAgICAgIFRleHRGaWVsZEV4dHJhUGFyYW1zIHRleHRG
aWVsZDsKKyAgICAgICAgTWVudUxpc3RFeHRyYVBhcmFtcyBtZW51TGlzdDsKKyAgICAgICAgU2xp
ZGVyRXh0cmFQYXJhbXMgc2xpZGVyOworICAgICAgICBJbm5lclNwaW5CdXR0b25FeHRyYVBhcmFt
cyBpbm5lclNwaW47CisgICAgICAgIFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgcHJvZ3Jlc3NCYXI7
CisgICAgfTsKKworICAgIC8vIEdldHMgdGhlIHNpemUgb2YgdGhlIGdpdmVuIHRoZW1lIHBhcnQu
IEZvciB2YXJpYWJsZSBzaXplZCBpdGVtcworICAgIC8vIGxpa2UgdmVydGljYWwgc2Nyb2xsYmFy
IHRodW1icywgdGhlIHdpZHRoIHdpbGwgYmUgdGhlIHJlcXVpcmVkIHdpZHRoIG9mCisgICAgLy8g
dGhlIHRyYWNrIHdoaWxlIHRoZSBoZWlnaHQgd2lsbCBiZSB0aGUgbWluaW11bSBoZWlnaHQuCisg
ICAgdmlydHVhbCBXZWJTaXplIGdldFNpemUoUGFydCkgeyByZXR1cm4gV2ViU2l6ZSgpOyB9Cisg
ICAgLy8gUGFpbnQgdGhlIGdpdmVuIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LgorICAgIHZpcnR1YWwg
dm9pZCBwYWludChXZWJDYW52YXMqLCBQYXJ0LCBTdGF0ZSwgY29uc3QgV2ViUmVjdCYsIGNvbnN0
IEV4dHJhUGFyYW1zKikgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlRoZW1lRW5n
aW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9saW51
eC9XZWJUaGVtZUVuZ2luZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9saW51eC9XZWJUaGVtZUVuZ2luZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViVGhlbWVFbmdpbmVfaAorI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9o
CisKKyNpbmNsdWRlICIuLi9XZWJDYW52YXMuaCIKKyNpbmNsdWRlICIuLi9XZWJDb2xvci5oIgor
I2luY2x1ZGUgIi4uL1dlYlNpemUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBX
ZWJSZWN0OworCitjbGFzcyBXZWJUaGVtZUVuZ2luZSB7CitwdWJsaWM6CisgICAgLy8gVGhlIFVJ
IHBhcnQgd2hpY2ggaXMgYmVpbmcgYWNjZXNzZWQuCisgICAgZW51bSBQYXJ0IHsKKyAgICAgICAg
Ly8gU2Nyb2xsYmFyVGhlbWUgcGFydHMKKyAgICAgICAgUGFydFNjcm9sbGJhckRvd25BcnJvdywK
KyAgICAgICAgUGFydFNjcm9sbGJhckxlZnRBcnJvdywKKyAgICAgICAgUGFydFNjcm9sbGJhclJp
Z2h0QXJyb3csCisgICAgICAgIFBhcnRTY3JvbGxiYXJVcEFycm93LAorICAgICAgICBQYXJ0U2Ny
b2xsYmFySG9yaXpvbnRhbFRodW1iLAorICAgICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxUaHVt
YiwKKyAgICAgICAgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFjaywKKyAgICAgICAgUGFydFNj
cm9sbGJhclZlcnRpY2FsVHJhY2ssCisKKyAgICAgICAgLy8gUmVuZGVyVGhlbWUgcGFydHMKKyAg
ICAgICAgUGFydENoZWNrYm94LAorICAgICAgICBQYXJ0UmFkaW8sCisgICAgICAgIFBhcnRCdXR0
b24sCisgICAgICAgIFBhcnRUZXh0RmllbGQsCisgICAgICAgIFBhcnRNZW51TGlzdCwKKyAgICAg
ICAgUGFydFNsaWRlclRyYWNrLAorICAgICAgICBQYXJ0U2xpZGVyVGh1bWIsCisgICAgICAgIFBh
cnRJbm5lclNwaW5CdXR0b24sCisgICAgICAgIFBhcnRQcm9ncmVzc0JhcgorICAgIH07CisKKyAg
ICAvLyBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXNzb2NpYXRlZCBQYXJ0LgorICAgIGVudW0g
U3RhdGUgeworICAgICAgICBTdGF0ZURpc2FibGVkLAorICAgICAgICBTdGF0ZUhvdmVyLAorICAg
ICAgICBTdGF0ZU5vcm1hbCwKKyAgICAgICAgU3RhdGVQcmVzc2VkLAorICAgIH07CisKKyAgICAv
LyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBkcmF3aW5nIHRoZSBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRh
bFRyYWNrIGFuZAorICAgIC8vIFBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRyYWNrLgorICAgIHN0cnVj
dCBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHsKKyAgICAgICAgLy8gVGhlIGJvdW5kcyBvZiB0
aGUgZW50aXJlIHRyYWNrLCBhcyBvcHBvc2VkIHRvIHRoZSBwYXJ0IGJlaW5nIHBhaW50ZWQuCisg
ICAgICAgIGludCB0cmFja1g7CisgICAgICAgIGludCB0cmFja1k7CisgICAgICAgIGludCB0cmFj
a1dpZHRoOworICAgICAgICBpbnQgdHJhY2tIZWlnaHQ7CisgICAgfTsKKworICAgIC8vIEV4dHJh
IHBhcmFtZXRlcnMgZm9yIFBhcnRDaGVja2JveCwgUGFydFB1c2hCdXR0b24gYW5kIFBhcnRSYWRp
by4KKyAgICBzdHJ1Y3QgQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIGNoZWNrZWQ7
CisgICAgICAgIGJvb2wgaW5kZXRlcm1pbmF0ZTsgLy8gV2hldGhlciB0aGUgYnV0dG9uIHN0YXRl
IGlzIGluZGV0ZXJtaW5hdGUuCisgICAgICAgIGJvb2wgaXNEZWZhdWx0OyAvLyBXaGV0aGVyIHRo
ZSBidXR0b24gaXMgZGVmYXVsdCBidXR0b24uCisgICAgICAgIGJvb2wgaGFzQm9yZGVyOworICAg
ICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBh
cmFtZXRlcnMgZm9yIFBhcnRUZXh0RmllbGQKKyAgICBzdHJ1Y3QgVGV4dEZpZWxkRXh0cmFQYXJh
bXMgeworICAgICAgICBib29sIGlzVGV4dEFyZWE7CisgICAgICAgIGJvb2wgaXNMaXN0Ym94Owor
ICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJh
IHBhcmFtZXRlcnMgZm9yIFBhcnRNZW51TGlzdAorICAgIHN0cnVjdCBNZW51TGlzdEV4dHJhUGFy
YW1zIHsKKyAgICAgICAgYm9vbCBoYXNCb3JkZXI7CisgICAgICAgIGJvb2wgaGFzQm9yZGVyUmFk
aXVzOworICAgICAgICBpbnQgYXJyb3dYOworICAgICAgICBpbnQgYXJyb3dZOworICAgICAgICBX
ZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRl
cnMgZm9yIFBhcnRTbGlkZXJUcmFjayBhbmQgUGFydFNsaWRlclRodW1iCisgICAgc3RydWN0IFNs
aWRlckV4dHJhUGFyYW1zIHsKKyAgICAgICAgYm9vbCB2ZXJ0aWNhbDsKKyAgICAgICAgYm9vbCBp
bkRyYWc7CisgICAgfTsKKworICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRJbm5lclNw
aW5CdXR0b24KKyAgICBzdHJ1Y3QgSW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgeworICAgICAg
ICBib29sIHNwaW5VcDsKKyAgICAgICAgYm9vbCByZWFkT25seTsKKyAgICB9OworCisgICAgLy8g
RXh0cmEgcGFyYW1ldGVycyBmb3IgUGFydFByb2dyZXNzQmFyCisgICAgc3RydWN0IFByb2dyZXNz
QmFyRXh0cmFQYXJhbXMgeworICAgICAgICBib29sIGRldGVybWluYXRlOworICAgICAgICBpbnQg
dmFsdWVSZWN0WDsKKyAgICAgICAgaW50IHZhbHVlUmVjdFk7CisgICAgICAgIGludCB2YWx1ZVJl
Y3RXaWR0aDsKKyAgICAgICAgaW50IHZhbHVlUmVjdEhlaWdodDsKKyAgICB9OworCisgICAgdW5p
b24gRXh0cmFQYXJhbXMgeworICAgICAgICBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHNjcm9s
bGJhclRyYWNrOworICAgICAgICBCdXR0b25FeHRyYVBhcmFtcyBidXR0b247CisgICAgICAgIFRl
eHRGaWVsZEV4dHJhUGFyYW1zIHRleHRGaWVsZDsKKyAgICAgICAgTWVudUxpc3RFeHRyYVBhcmFt
cyBtZW51TGlzdDsKKyAgICAgICAgU2xpZGVyRXh0cmFQYXJhbXMgc2xpZGVyOworICAgICAgICBJ
bm5lclNwaW5CdXR0b25FeHRyYVBhcmFtcyBpbm5lclNwaW47CisgICAgICAgIFByb2dyZXNzQmFy
RXh0cmFQYXJhbXMgcHJvZ3Jlc3NCYXI7CisgICAgfTsKKworICAgIC8vIEdldHMgdGhlIHNpemUg
b2YgdGhlIGdpdmVuIHRoZW1lIHBhcnQuIEZvciB2YXJpYWJsZSBzaXplZCBpdGVtcworICAgIC8v
IGxpa2UgdmVydGljYWwgc2Nyb2xsYmFyIHRodW1icywgdGhlIHdpZHRoIHdpbGwgYmUgdGhlIHJl
cXVpcmVkIHdpZHRoIG9mCisgICAgLy8gdGhlIHRyYWNrIHdoaWxlIHRoZSBoZWlnaHQgd2lsbCBi
ZSB0aGUgbWluaW11bSBoZWlnaHQuCisgICAgdmlydHVhbCBXZWJTaXplIGdldFNpemUoUGFydCkg
eyByZXR1cm4gV2ViU2l6ZSgpOyB9CisgICAgLy8gUGFpbnQgdGhlIGdpdmVuIHRoZSBnaXZlbiB0
aGVtZSBwYXJ0LgorICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBQYXJ0LCBTdGF0
ZSwgY29uc3QgV2ViUmVjdCYsIGNvbnN0IEV4dHJhUGFyYW1zKikgeyB9Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL21hYy9XZWJUaGVtZUVuZ2luZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9y
bS9jaHJvbWl1bS9wdWJsaWMvbWFjL1dlYlRoZW1lRW5naW5lLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL21hYy9XZWJUaGVtZUVuZ2luZS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJUaGVtZUVuZ2luZV9oCisjZGVmaW5l
IFdlYlRoZW1lRW5naW5lX2gKKworI2luY2x1ZGUgIi4uL1dlYkNhbnZhcy5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworc3RydWN0IFdlYlJlY3Q7CisKK2NsYXNzIFdlYlRoZW1lRW5naW5lIHsK
K3B1YmxpYzoKKyAgICBlbnVtIFN0YXRlIHsKKyAgICAgICAgU3RhdGVEaXNhYmxlZCwKKyAgICAg
ICAgU3RhdGVJbmFjdGl2ZSwKKyAgICAgICAgU3RhdGVBY3RpdmUsCisgICAgICAgIFN0YXRlUHJl
c3NlZCwKKyAgICB9OworCisgICAgZW51bSBTaXplIHsKKyAgICAgICAgU2l6ZVJlZ3VsYXIsCisg
ICAgICAgIFNpemVTbWFsbCwKKyAgICB9OworCisgICAgZW51bSBTY3JvbGxiYXJPcmllbnRhdGlv
biB7CisgICAgICAgIFNjcm9sbGJhck9yaWVudGF0aW9uSG9yaXpvbnRhbCwKKyAgICAgICAgU2Ny
b2xsYmFyT3JpZW50YXRpb25WZXJ0aWNhbCwKKyAgICB9OworCisgICAgZW51bSBTY3JvbGxiYXJQ
YXJlbnQgeworICAgICAgICBTY3JvbGxiYXJQYXJlbnRTY3JvbGxWaWV3LAorICAgICAgICBTY3Jv
bGxiYXJQYXJlbnRSZW5kZXJMYXllciwKKyAgICB9OworCisgICAgc3RydWN0IFNjcm9sbGJhcklu
Zm8geworICAgICAgICBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbjsKKyAgICAgICAg
U2Nyb2xsYmFyUGFyZW50IHBhcmVudDsKKyAgICAgICAgaW50IG1heFZhbHVlOworICAgICAgICBp
bnQgY3VycmVudFZhbHVlOworICAgICAgICBpbnQgdmlzaWJsZVNpemU7CisgICAgICAgIGludCB0
b3RhbFNpemU7CisgICAgfTsKKworICAgIHZpcnR1YWwgdm9pZCBwYWludFNjcm9sbGJhclRodW1i
KFdlYkNhbnZhcyosIFN0YXRlLCBTaXplLCBjb25zdCBXZWJSZWN0JiwgY29uc3QgU2Nyb2xsYmFy
SW5mbyYpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpJbmRleDog
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL3dpbi9XZWJUaGVtZUVu
Z2luZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy93
aW4vV2ViVGhlbWVFbmdpbmUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViVGhlbWVFbmdpbmVfaAorI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCisKKyNpbmNsdWRlICIu
Li9XZWJDYW52YXMuaCIKKyNpbmNsdWRlICIuLi9XZWJDb2xvci5oIgorI2luY2x1ZGUgIi4uL1dl
YlNpemUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJSZWN0Oworc3RydWN0
IFdlYlNpemU7CisKK2NsYXNzIFdlYlRoZW1lRW5naW5lIHsKK3B1YmxpYzoKKy8vIFRoZSBwYXJ0
IGFuZCBzdGF0ZSBwYXJhbWV0ZXJzIGNvcnJlc3BvbmQgdG8gdmFsdWVzIGRlZmluZWQgYnkgdGhl
CisvLyBXaW5kb3dzIFRoZW1lIEFQSSAoc2VlCisvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29t
L2VuLXVzL2xpYnJhcnkvYmI3NzMxODcoVlMuODUpLmFzcHggKS4KKy8vIFRoZSBjbGFzc2ljU3Rh
dGUgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvIHRoZSB1U3RhdGUKKy8vIHBhcmFtZXRlciBvZiB0
aGUgV2luZG93cyBEcmF3RnJhbWVDb250cm9sKCkgZnVuY3Rpb24uCisvLyBTZWUgdGhlIGRlZmlu
aXRpb25zIGluIDx2c3N0eWxlLmg+IGFuZCA8d2ludXNlci5oPi4KKyAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRCdXR0b24oCisgICAgICAgIFdlYkNhbnZhcyosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGlu
dCBjbGFzc2ljU3RhdGUsCisgICAgICAgIGNvbnN0IFdlYlJlY3QmKSA9IDA7CisKKyAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRNZW51TGlzdCgKKyAgICAgICAgV2ViQ2FudmFzKiwgaW50IHBhcnQsIGlu
dCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKKyAgICAgICAgY29uc3QgV2ViUmVjdCYpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBwYWludFNjcm9sbGJhckFycm93KAorICAgICAgICBXZWJDYW52
YXMqLCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsCisgICAgICAgIGNvbnN0IFdlYlJlY3Qm
KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRTY3JvbGxiYXJUaHVtYigKKyAgICAgICAg
V2ViQ2FudmFzKiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKKyAgICAg
ICAgY29uc3QgV2ViUmVjdCYpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBwYWludFNjcm9sbGJh
clRyYWNrKAorICAgICAgICBXZWJDYW52YXMqLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xh
c3NpY1N0YXRlLAorICAgICAgICBjb25zdCBXZWJSZWN0JiwgY29uc3QgV2ViUmVjdCYgYWxpZ25S
ZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRTcGluQnV0dG9uKAorICAgICAgICBX
ZWJDYW52YXMqLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAorICAgICAg
ICBjb25zdCBXZWJSZWN0JikgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUZXh0RmllbGQo
CisgICAgICAgIFdlYkNhbnZhcyosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3Rh
dGUsCisgICAgICAgIGNvbnN0IFdlYlJlY3QmLCBXZWJDb2xvciwgYm9vbCBmaWxsQ29udGVudEFy
ZWEsIGJvb2wgZHJhd0VkZ2VzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUcmFja2Jh
cigKKyAgICAgICAgV2ViQ2FudmFzKiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNT
dGF0ZSwKKyAgICAgICAgY29uc3QgV2ViUmVjdCYpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBw
YWludFByb2dyZXNzQmFyKAorICAgICAgICBXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiBiYXJS
ZWN0LCBjb25zdCBXZWJSZWN0JiB2YWx1ZVJlY3QsCisgICAgICAgIGJvb2wgZGV0ZXJtaW5hdGUs
IGRvdWJsZSBhbmltYXRlZFNlY29uZHMpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODIy
MCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTItMDUtMjMgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gTW92ZSB0aGVtZUVuZ2luZSB0byBQbGF0Zm9y
bS5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzI2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcnQg
b2YgYSByZWZhY3RvcmluZyBzZXJpZXMuIFNlZSB0cmFja2luZyBidWcgODI5NDguCisKKyAgICAg
ICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJLaXRQbGF0Zm9y
bVN1cHBvcnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktpdFBs
YXRmb3JtU3VwcG9ydDo6c2FuZGJveFN1cHBvcnQpOgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9y
bS9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL2xp
bnV4L1dlYlRoZW1lRW5naW5lLmg6CisgICAgICAgICogcHVibGljL3BsYXRmb3JtL21hYy9XZWJU
aGVtZUVuZ2luZS5oOgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS93aW4vV2ViVGhlbWVFbmdp
bmUuaDoKKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6CisgICAgICAgICog
c3JjL1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBv
cnQ6OnBhaW50QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6cGFp
bnRNZW51TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50U2Ny
b2xsYmFyQXJyb3cpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpwYWludFNj
cm9sbGJhclRodW1iKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6cGFpbnRT
Y3JvbGxiYXJUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50
U3BpbkJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50VGV4
dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6cGFpbnRUcmFja2Jh
cik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50UHJvZ3Jlc3NCYXIp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpnZXRUaGVtZVBhcnRTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3VwcG9ydDo6cGFpbnRUaGVtZVBhcnQpOgorCiAy
MDEyLTA1LTIzICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gTGF5ZXJzIG9uIG1haW4gdGhyZWFkIHNob3VsZCBnZXQgYSBSZW5kZXJTdXJm
YWNlIGZvciBhbmltYXRpbmcgdHJhbnNmb3JtIG9ubHkgaWYgbWFza3NUb0JvdW5kcyBpcyB0cnVl
IGFsc28KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDExODIxNikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpAQCAt
MzQyLDEyICszNDIsOCBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vV2ViVVJM
UmVzcG9uc2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9wbGF0Zm9ybS9XZWJWZWN0b3Iu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9wbGF0Zm9ybS9hbmRyb2lkL1dlYlNhbmRib3hT
dXBwb3J0LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vYW5kcm9pZC9XZWJU
aGVtZUVuZ2luZS5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL3BsYXRmb3JtL2xpbnV4L1dl
YlRoZW1lRW5naW5lLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vbWFjL1dl
YlNhbmRib3hTdXBwb3J0LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vbWFj
L1dlYlRoZW1lRW5naW5lLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0vd2lu
L1dlYlNhbmRib3hTdXBwb3J0LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvcGxhdGZvcm0v
d2luL1dlYlRoZW1lRW5naW5lLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvd2luL1dlYklu
cHV0RXZlbnRGYWN0b3J5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvd2luL1dlYlNhbmRi
b3hTdXBwb3J0LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvd2luL1dlYlNjcmVlbkluZm9G
YWN0b3J5LmgnLApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0v
V2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgJKHJldmlzaW9uIDEx
ODIxNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYktpdFBs
YXRmb3JtU3VwcG9ydC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw2IEBAIGNsYXNzIFdl
YlBsdWdpbkxpc3RCdWlsZGVyOyAvLyBGSVhNRTogRG8KIGNsYXNzIFdlYlNhbmRib3hTdXBwb3J0
OwogY2xhc3MgV2ViU2hhcmVkV29ya2VyUmVwb3NpdG9yeTsgLy8gRklYTUU6IERvZXMgdGhpcyBi
ZWxvbmcgaW4gcGxhdGZvcm0/CiBjbGFzcyBXZWJTdG9yYWdlTmFtZXNwYWNlOyAvLyBGSVhNRTog
RG9lcyB0aGlzIGJlbG9uZyBpbiBwbGF0Zm9ybT8KLWNsYXNzIFdlYlRoZW1lRW5naW5lOwogCiAv
LyBGSVhNRTogRXZlbnR1YWxseSBhbGwgdGhlc2UgQVBJIHdpbGwgbmVlZCB0byBtb3ZlIHRvIFdl
YktpdDo6UGxhdGZvcm0uCiBjbGFzcyBXZWJLaXRQbGF0Zm9ybVN1cHBvcnQgOiBwdWJsaWMgUGxh
dGZvcm0gewpAQCAtNjUsOSArNjQsNiBAQCBwdWJsaWM6CiAgICAgLy8gTWF5IHJldHVybiBudWxs
IGlmIHNhbmRib3ggc3VwcG9ydCBpcyBub3QgbmVjZXNzYXJ5CiAgICAgdmlydHVhbCBXZWJTYW5k
Ym94U3VwcG9ydCogc2FuZGJveFN1cHBvcnQoKSB7IHJldHVybiAwOyB9CiAKLSAgICAvLyBNYXkg
cmV0dXJuIG51bGwgb24gc29tZSBwbGF0Zm9ybXMuCi0gICAgdmlydHVhbCBXZWJUaGVtZUVuZ2lu
ZSogdGhlbWVFbmdpbmUoKSB7IHJldHVybiAwOyB9Ci0KICAgICAvLyBET00gU3RvcmFnZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8g
UmV0dXJuIGEgTG9jYWxTdG9yYWdlIG5hbWVzcGFjZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBm
b2xsb3dpbmcgcGF0aC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRm
b3JtL2FuZHJvaWQvV2ViVGhlbWVFbmdpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmgJKHJldmlz
aW9uIDExODIxNikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL2Fu
ZHJvaWQvV2ViVGhlbWVFbmdpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTI1ICsyOCw0IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViVGhlbWVFbmdpbmVfaAotI2RlZmlu
ZSBXZWJUaGVtZUVuZ2luZV9oCi0KLSNpbmNsdWRlICIuLi9XZWJDYW52YXMuaCIKLSNpbmNsdWRl
ICIuLi9XZWJDb2xvci5oIgotI2luY2x1ZGUgIi4uL1dlYlNpemUuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLXN0cnVjdCBXZWJSZWN0OwotCi1jbGFzcyBXZWJUaGVtZUVuZ2luZSB7Ci1wdWJs
aWM6Ci0gICAgLy8gVGhlIFVJIHBhcnQgd2hpY2ggaXMgYmVpbmcgYWNjZXNzZWQuCi0gICAgZW51
bSBQYXJ0IHsKLSAgICAgICAgLy8gU2Nyb2xsYmFyVGhlbWUgcGFydHMKLSAgICAgICAgUGFydFNj
cm9sbGJhckRvd25BcnJvdywKLSAgICAgICAgUGFydFNjcm9sbGJhckxlZnRBcnJvdywKLSAgICAg
ICAgUGFydFNjcm9sbGJhclJpZ2h0QXJyb3csCi0gICAgICAgIFBhcnRTY3JvbGxiYXJVcEFycm93
LAotICAgICAgICBQYXJ0U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iLAotICAgICAgICBQYXJ0U2Ny
b2xsYmFyVmVydGljYWxUaHVtYiwKLSAgICAgICAgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFj
aywKLSAgICAgICAgUGFydFNjcm9sbGJhclZlcnRpY2FsVHJhY2ssCi0KLSAgICAgICAgLy8gUmVu
ZGVyVGhlbWUgcGFydHMKLSAgICAgICAgUGFydENoZWNrYm94LAotICAgICAgICBQYXJ0UmFkaW8s
Ci0gICAgICAgIFBhcnRCdXR0b24sCi0gICAgICAgIFBhcnRUZXh0RmllbGQsCi0gICAgICAgIFBh
cnRNZW51TGlzdCwKLSAgICAgICAgUGFydFNsaWRlclRyYWNrLAotICAgICAgICBQYXJ0U2xpZGVy
VGh1bWIsCi0gICAgICAgIFBhcnRJbm5lclNwaW5CdXR0b24sCi0gICAgICAgIFBhcnRQcm9ncmVz
c0JhcgotICAgIH07Ci0KLSAgICAvLyBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXNzb2NpYXRl
ZCBQYXJ0LgotICAgIGVudW0gU3RhdGUgewotICAgICAgICBTdGF0ZURpc2FibGVkLAotICAgICAg
ICBTdGF0ZUhvdmVyLAotICAgICAgICBTdGF0ZU5vcm1hbCwKLSAgICAgICAgU3RhdGVQcmVzc2Vk
LAotICAgIH07Ci0KLSAgICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBkcmF3aW5nIHRoZSBQYXJ0
U2Nyb2xsYmFySG9yaXpvbnRhbFRyYWNrIGFuZAotICAgIC8vIFBhcnRTY3JvbGxiYXJWZXJ0aWNh
bFRyYWNrLgotICAgIHN0cnVjdCBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHsKLSAgICAgICAg
Ly8gVGhlIGJvdW5kcyBvZiB0aGUgZW50aXJlIHRyYWNrLCBhcyBvcHBvc2VkIHRvIHRoZSBwYXJ0
IGJlaW5nIHBhaW50ZWQuCi0gICAgICAgIGludCB0cmFja1g7Ci0gICAgICAgIGludCB0cmFja1k7
Ci0gICAgICAgIGludCB0cmFja1dpZHRoOwotICAgICAgICBpbnQgdHJhY2tIZWlnaHQ7Ci0gICAg
fTsKLQotICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRDaGVja2JveCwgUGFydFB1c2hC
dXR0b24gYW5kIFBhcnRSYWRpby4KLSAgICBzdHJ1Y3QgQnV0dG9uRXh0cmFQYXJhbXMgewotICAg
ICAgICBib29sIGNoZWNrZWQ7Ci0gICAgICAgIGJvb2wgaW5kZXRlcm1pbmF0ZTsgLy8gV2hldGhl
ciB0aGUgYnV0dG9uIHN0YXRlIGlzIGluZGV0ZXJtaW5hdGUuCi0gICAgICAgIGJvb2wgaXNEZWZh
dWx0OyAvLyBXaGV0aGVyIHRoZSBidXR0b24gaXMgZGVmYXVsdCBidXR0b24uCi0gICAgICAgIGJv
b2wgaGFzQm9yZGVyOwotICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Ci0gICAgfTsK
LQotICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRUZXh0RmllbGQKLSAgICBzdHJ1Y3Qg
VGV4dEZpZWxkRXh0cmFQYXJhbXMgewotICAgICAgICBib29sIGlzVGV4dEFyZWE7Ci0gICAgICAg
IGJvb2wgaXNMaXN0Ym94OwotICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Ci0gICAg
fTsKLQotICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRNZW51TGlzdAotICAgIHN0cnVj
dCBNZW51TGlzdEV4dHJhUGFyYW1zIHsKLSAgICAgICAgYm9vbCBoYXNCb3JkZXI7Ci0gICAgICAg
IGJvb2wgaGFzQm9yZGVyUmFkaXVzOwotICAgICAgICBpbnQgYXJyb3dYOwotICAgICAgICBpbnQg
YXJyb3dZOwotICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Ci0gICAgfTsKLQotICAg
IC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRTbGlkZXJUcmFjayBhbmQgUGFydFNsaWRlclRo
dW1iCi0gICAgc3RydWN0IFNsaWRlckV4dHJhUGFyYW1zIHsKLSAgICAgICAgYm9vbCB2ZXJ0aWNh
bDsKLSAgICAgICAgYm9vbCBpbkRyYWc7Ci0gICAgfTsKLQotICAgIC8vIEV4dHJhIHBhcmFtZXRl
cnMgZm9yIFBhcnRJbm5lclNwaW5CdXR0b24KLSAgICBzdHJ1Y3QgSW5uZXJTcGluQnV0dG9uRXh0
cmFQYXJhbXMgewotICAgICAgICBib29sIHNwaW5VcDsKLSAgICAgICAgYm9vbCByZWFkT25seTsK
LSAgICB9OwotCi0gICAgLy8gRXh0cmEgcGFyYW1ldGVycyBmb3IgUGFydFByb2dyZXNzQmFyCi0g
ICAgc3RydWN0IFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgewotICAgICAgICBib29sIGRldGVybWlu
YXRlOwotICAgICAgICBpbnQgdmFsdWVSZWN0WDsKLSAgICAgICAgaW50IHZhbHVlUmVjdFk7Ci0g
ICAgICAgIGludCB2YWx1ZVJlY3RXaWR0aDsKLSAgICAgICAgaW50IHZhbHVlUmVjdEhlaWdodDsK
LSAgICB9OwotCi0gICAgdW5pb24gRXh0cmFQYXJhbXMgewotICAgICAgICBTY3JvbGxiYXJUcmFj
a0V4dHJhUGFyYW1zIHNjcm9sbGJhclRyYWNrOwotICAgICAgICBCdXR0b25FeHRyYVBhcmFtcyBi
dXR0b247Ci0gICAgICAgIFRleHRGaWVsZEV4dHJhUGFyYW1zIHRleHRGaWVsZDsKLSAgICAgICAg
TWVudUxpc3RFeHRyYVBhcmFtcyBtZW51TGlzdDsKLSAgICAgICAgU2xpZGVyRXh0cmFQYXJhbXMg
c2xpZGVyOwotICAgICAgICBJbm5lclNwaW5CdXR0b25FeHRyYVBhcmFtcyBpbm5lclNwaW47Ci0g
ICAgICAgIFByb2dyZXNzQmFyRXh0cmFQYXJhbXMgcHJvZ3Jlc3NCYXI7Ci0gICAgfTsKLQotICAg
IC8vIEdldHMgdGhlIHNpemUgb2YgdGhlIGdpdmVuIHRoZW1lIHBhcnQuIEZvciB2YXJpYWJsZSBz
aXplZCBpdGVtcwotICAgIC8vIGxpa2UgdmVydGljYWwgc2Nyb2xsYmFyIHRodW1icywgdGhlIHdp
ZHRoIHdpbGwgYmUgdGhlIHJlcXVpcmVkIHdpZHRoIG9mCi0gICAgLy8gdGhlIHRyYWNrIHdoaWxl
IHRoZSBoZWlnaHQgd2lsbCBiZSB0aGUgbWluaW11bSBoZWlnaHQuCi0gICAgdmlydHVhbCBXZWJT
aXplIGdldFNpemUoUGFydCkgeyByZXR1cm4gV2ViU2l6ZSgpOyB9Ci0gICAgLy8gUGFpbnQgdGhl
IGdpdmVuIHRoZSBnaXZlbiB0aGVtZSBwYXJ0LgotICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJD
YW52YXMqLCBQYXJ0LCBTdGF0ZSwgY29uc3QgV2ViUmVjdCYsIGNvbnN0IEV4dHJhUGFyYW1zKikg
eyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4v
Li4vLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2FuZHJvaWQvV2ViVGhlbWVFbmdp
bmUuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL2xpbnV4
L1dlYlRoZW1lRW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvcGxhdGZvcm0vbGludXgvV2ViVGhlbWVFbmdpbmUuaAkocmV2aXNpb24gMTE4MjE2KQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vbGludXgvV2ViVGhlbWVF
bmdpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTI1ICsyOCw0IEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLSNpZm5kZWYgV2ViVGhlbWVFbmdpbmVfaAotI2RlZmluZSBXZWJUaGVtZUVuZ2lu
ZV9oCi0KLSNpbmNsdWRlICIuLi9XZWJDYW52YXMuaCIKLSNpbmNsdWRlICIuLi9XZWJDb2xvci5o
IgotI2luY2x1ZGUgIi4uL1dlYlNpemUuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVj
dCBXZWJSZWN0OwotCi1jbGFzcyBXZWJUaGVtZUVuZ2luZSB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhl
IFVJIHBhcnQgd2hpY2ggaXMgYmVpbmcgYWNjZXNzZWQuCi0gICAgZW51bSBQYXJ0IHsKLSAgICAg
ICAgLy8gU2Nyb2xsYmFyVGhlbWUgcGFydHMKLSAgICAgICAgUGFydFNjcm9sbGJhckRvd25BcnJv
dywKLSAgICAgICAgUGFydFNjcm9sbGJhckxlZnRBcnJvdywKLSAgICAgICAgUGFydFNjcm9sbGJh
clJpZ2h0QXJyb3csCi0gICAgICAgIFBhcnRTY3JvbGxiYXJVcEFycm93LAotICAgICAgICBQYXJ0
U2Nyb2xsYmFySG9yaXpvbnRhbFRodW1iLAotICAgICAgICBQYXJ0U2Nyb2xsYmFyVmVydGljYWxU
aHVtYiwKLSAgICAgICAgUGFydFNjcm9sbGJhckhvcml6b250YWxUcmFjaywKLSAgICAgICAgUGFy
dFNjcm9sbGJhclZlcnRpY2FsVHJhY2ssCi0KLSAgICAgICAgLy8gUmVuZGVyVGhlbWUgcGFydHMK
LSAgICAgICAgUGFydENoZWNrYm94LAotICAgICAgICBQYXJ0UmFkaW8sCi0gICAgICAgIFBhcnRC
dXR0b24sCi0gICAgICAgIFBhcnRUZXh0RmllbGQsCi0gICAgICAgIFBhcnRNZW51TGlzdCwKLSAg
ICAgICAgUGFydFNsaWRlclRyYWNrLAotICAgICAgICBQYXJ0U2xpZGVyVGh1bWIsCi0gICAgICAg
IFBhcnRJbm5lclNwaW5CdXR0b24sCi0gICAgICAgIFBhcnRQcm9ncmVzc0JhcgotICAgIH07Ci0K
LSAgICAvLyBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXNzb2NpYXRlZCBQYXJ0LgotICAgIGVu
dW0gU3RhdGUgewotICAgICAgICBTdGF0ZURpc2FibGVkLAotICAgICAgICBTdGF0ZUhvdmVyLAot
ICAgICAgICBTdGF0ZU5vcm1hbCwKLSAgICAgICAgU3RhdGVQcmVzc2VkLAotICAgIH07Ci0KLSAg
ICAvLyBFeHRyYSBwYXJhbWV0ZXJzIGZvciBkcmF3aW5nIHRoZSBQYXJ0U2Nyb2xsYmFySG9yaXpv
bnRhbFRyYWNrIGFuZAotICAgIC8vIFBhcnRTY3JvbGxiYXJWZXJ0aWNhbFRyYWNrLgotICAgIHN0
cnVjdCBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHsKLSAgICAgICAgLy8gVGhlIGJvdW5kcyBv
ZiB0aGUgZW50aXJlIHRyYWNrLCBhcyBvcHBvc2VkIHRvIHRoZSBwYXJ0IGJlaW5nIHBhaW50ZWQu
Ci0gICAgICAgIGludCB0cmFja1g7Ci0gICAgICAgIGludCB0cmFja1k7Ci0gICAgICAgIGludCB0
cmFja1dpZHRoOwotICAgICAgICBpbnQgdHJhY2tIZWlnaHQ7Ci0gICAgfTsKLQotICAgIC8vIEV4
dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRDaGVja2JveCwgUGFydFB1c2hCdXR0b24gYW5kIFBhcnRS
YWRpby4KLSAgICBzdHJ1Y3QgQnV0dG9uRXh0cmFQYXJhbXMgewotICAgICAgICBib29sIGNoZWNr
ZWQ7Ci0gICAgICAgIGJvb2wgaW5kZXRlcm1pbmF0ZTsgLy8gV2hldGhlciB0aGUgYnV0dG9uIHN0
YXRlIGlzIGluZGV0ZXJtaW5hdGUuCi0gICAgICAgIGJvb2wgaXNEZWZhdWx0OyAvLyBXaGV0aGVy
IHRoZSBidXR0b24gaXMgZGVmYXVsdCBidXR0b24uCi0gICAgICAgIGJvb2wgaGFzQm9yZGVyOwot
ICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Ci0gICAgfTsKLQotICAgIC8vIEV4dHJh
IHBhcmFtZXRlcnMgZm9yIFBhcnRUZXh0RmllbGQKLSAgICBzdHJ1Y3QgVGV4dEZpZWxkRXh0cmFQ
YXJhbXMgewotICAgICAgICBib29sIGlzVGV4dEFyZWE7Ci0gICAgICAgIGJvb2wgaXNMaXN0Ym94
OwotICAgICAgICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Ci0gICAgfTsKLQotICAgIC8vIEV4
dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRNZW51TGlzdAotICAgIHN0cnVjdCBNZW51TGlzdEV4dHJh
UGFyYW1zIHsKLSAgICAgICAgYm9vbCBoYXNCb3JkZXI7Ci0gICAgICAgIGJvb2wgaGFzQm9yZGVy
UmFkaXVzOwotICAgICAgICBpbnQgYXJyb3dYOwotICAgICAgICBpbnQgYXJyb3dZOwotICAgICAg
ICBXZWJDb2xvciBiYWNrZ3JvdW5kQ29sb3I7Ci0gICAgfTsKLQotICAgIC8vIEV4dHJhIHBhcmFt
ZXRlcnMgZm9yIFBhcnRTbGlkZXJUcmFjayBhbmQgUGFydFNsaWRlclRodW1iCi0gICAgc3RydWN0
IFNsaWRlckV4dHJhUGFyYW1zIHsKLSAgICAgICAgYm9vbCB2ZXJ0aWNhbDsKLSAgICAgICAgYm9v
bCBpbkRyYWc7Ci0gICAgfTsKLQotICAgIC8vIEV4dHJhIHBhcmFtZXRlcnMgZm9yIFBhcnRJbm5l
clNwaW5CdXR0b24KLSAgICBzdHJ1Y3QgSW5uZXJTcGluQnV0dG9uRXh0cmFQYXJhbXMgewotICAg
ICAgICBib29sIHNwaW5VcDsKLSAgICAgICAgYm9vbCByZWFkT25seTsKLSAgICB9OwotCi0gICAg
Ly8gRXh0cmEgcGFyYW1ldGVycyBmb3IgUGFydFByb2dyZXNzQmFyCi0gICAgc3RydWN0IFByb2dy
ZXNzQmFyRXh0cmFQYXJhbXMgewotICAgICAgICBib29sIGRldGVybWluYXRlOwotICAgICAgICBp
bnQgdmFsdWVSZWN0WDsKLSAgICAgICAgaW50IHZhbHVlUmVjdFk7Ci0gICAgICAgIGludCB2YWx1
ZVJlY3RXaWR0aDsKLSAgICAgICAgaW50IHZhbHVlUmVjdEhlaWdodDsKLSAgICB9OwotCi0gICAg
dW5pb24gRXh0cmFQYXJhbXMgewotICAgICAgICBTY3JvbGxiYXJUcmFja0V4dHJhUGFyYW1zIHNj
cm9sbGJhclRyYWNrOwotICAgICAgICBCdXR0b25FeHRyYVBhcmFtcyBidXR0b247Ci0gICAgICAg
IFRleHRGaWVsZEV4dHJhUGFyYW1zIHRleHRGaWVsZDsKLSAgICAgICAgTWVudUxpc3RFeHRyYVBh
cmFtcyBtZW51TGlzdDsKLSAgICAgICAgU2xpZGVyRXh0cmFQYXJhbXMgc2xpZGVyOwotICAgICAg
ICBJbm5lclNwaW5CdXR0b25FeHRyYVBhcmFtcyBpbm5lclNwaW47Ci0gICAgICAgIFByb2dyZXNz
QmFyRXh0cmFQYXJhbXMgcHJvZ3Jlc3NCYXI7Ci0gICAgfTsKLQotICAgIC8vIEdldHMgdGhlIHNp
emUgb2YgdGhlIGdpdmVuIHRoZW1lIHBhcnQuIEZvciB2YXJpYWJsZSBzaXplZCBpdGVtcwotICAg
IC8vIGxpa2UgdmVydGljYWwgc2Nyb2xsYmFyIHRodW1icywgdGhlIHdpZHRoIHdpbGwgYmUgdGhl
IHJlcXVpcmVkIHdpZHRoIG9mCi0gICAgLy8gdGhlIHRyYWNrIHdoaWxlIHRoZSBoZWlnaHQgd2ls
bCBiZSB0aGUgbWluaW11bSBoZWlnaHQuCi0gICAgdmlydHVhbCBXZWJTaXplIGdldFNpemUoUGFy
dCkgeyByZXR1cm4gV2ViU2l6ZSgpOyB9Ci0gICAgLy8gUGFpbnQgdGhlIGdpdmVuIHRoZSBnaXZl
biB0aGVtZSBwYXJ0LgotICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDYW52YXMqLCBQYXJ0LCBT
dGF0ZSwgY29uc3QgV2ViUmVjdCYsIGNvbnN0IEV4dHJhUGFyYW1zKikgeyB9Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4vLi4vLi4vLi4vLi4vUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYlRoZW1lRW5naW5lLmgiCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9tYWMvV2ViVGhlbWVFbmdpbmUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9tYWMv
V2ViVGhlbWVFbmdpbmUuaAkocmV2aXNpb24gMTE4MjE2KQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvcGxhdGZvcm0vbWFjL1dlYlRoZW1lRW5naW5lLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDUxICsyOCw0IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViVGhl
bWVFbmdpbmVfaAotI2RlZmluZSBXZWJUaGVtZUVuZ2luZV9oCi0KLSNpbmNsdWRlICIuLi9XZWJD
YW52YXMuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXZWJSZWN0OwotCi1jbGFz
cyBXZWJUaGVtZUVuZ2luZSB7Ci1wdWJsaWM6Ci0gICAgZW51bSBTdGF0ZSB7Ci0gICAgICAgIFN0
YXRlRGlzYWJsZWQsCi0gICAgICAgIFN0YXRlSW5hY3RpdmUsCi0gICAgICAgIFN0YXRlQWN0aXZl
LAotICAgICAgICBTdGF0ZVByZXNzZWQsCi0gICAgfTsKLQotICAgIGVudW0gU2l6ZSB7Ci0gICAg
ICAgIFNpemVSZWd1bGFyLAotICAgICAgICBTaXplU21hbGwsCi0gICAgfTsKLQotICAgIGVudW0g
U2Nyb2xsYmFyT3JpZW50YXRpb24gewotICAgICAgICBTY3JvbGxiYXJPcmllbnRhdGlvbkhvcml6
b250YWwsCi0gICAgICAgIFNjcm9sbGJhck9yaWVudGF0aW9uVmVydGljYWwsCi0gICAgfTsKLQot
ICAgIGVudW0gU2Nyb2xsYmFyUGFyZW50IHsKLSAgICAgICAgU2Nyb2xsYmFyUGFyZW50U2Nyb2xs
VmlldywKLSAgICAgICAgU2Nyb2xsYmFyUGFyZW50UmVuZGVyTGF5ZXIsCi0gICAgfTsKLQotICAg
IHN0cnVjdCBTY3JvbGxiYXJJbmZvIHsKLSAgICAgICAgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3Jp
ZW50YXRpb247Ci0gICAgICAgIFNjcm9sbGJhclBhcmVudCBwYXJlbnQ7Ci0gICAgICAgIGludCBt
YXhWYWx1ZTsKLSAgICAgICAgaW50IGN1cnJlbnRWYWx1ZTsKLSAgICAgICAgaW50IHZpc2libGVT
aXplOwotICAgICAgICBpbnQgdG90YWxTaXplOwotICAgIH07Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRTY3JvbGxiYXJUaHVtYihXZWJDYW52YXMqLCBTdGF0ZSwgU2l6ZSwgY29uc3QgV2ViUmVj
dCYsIGNvbnN0IFNjcm9sbGJhckluZm8mKSB7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYKKyNpbmNsdWRlICIuLi8uLi8uLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvbWFjL1dlYlRoZW1lRW5naW5lLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9wbGF0Zm9ybS93aW4vV2ViVGhlbWVFbmdpbmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS93aW4vV2ViVGhlbWVFbmdpbmUuaAko
cmV2aXNpb24gMTE4MjE2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vd2luL1dlYlRoZW1lRW5naW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYzICsyOCw0IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViVGhlbWVFbmdpbmVfaAotI2RlZmlu
ZSBXZWJUaGVtZUVuZ2luZV9oCi0KLSNpbmNsdWRlICIuLi9XZWJDYW52YXMuaCIKLSNpbmNsdWRl
ICIuLi9XZWJDb2xvci5oIgotI2luY2x1ZGUgIi4uL1dlYlNpemUuaCIKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLXN0cnVjdCBXZWJSZWN0Owotc3RydWN0IFdlYlNpemU7Ci0KLWNsYXNzIFdlYlRo
ZW1lRW5naW5lIHsKLXB1YmxpYzoKLS8vIFRoZSBwYXJ0IGFuZCBzdGF0ZSBwYXJhbWV0ZXJzIGNv
cnJlc3BvbmQgdG8gdmFsdWVzIGRlZmluZWQgYnkgdGhlCi0vLyBXaW5kb3dzIFRoZW1lIEFQSSAo
c2VlCi0vLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvYmI3NzMxODco
VlMuODUpLmFzcHggKS4KLS8vIFRoZSBjbGFzc2ljU3RhdGUgcGFyYW1ldGVyIGNvcnJlc3BvbmRz
IHRvIHRoZSB1U3RhdGUKLS8vIHBhcmFtZXRlciBvZiB0aGUgV2luZG93cyBEcmF3RnJhbWVDb250
cm9sKCkgZnVuY3Rpb24uCi0vLyBTZWUgdGhlIGRlZmluaXRpb25zIGluIDx2c3N0eWxlLmg+IGFu
ZCA8d2ludXNlci5oPi4KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRCdXR0b24oCi0gICAgICAgIFdl
YkNhbnZhcyosIGludCBwYXJ0LCBpbnQgc3RhdGUsIGludCBjbGFzc2ljU3RhdGUsCi0gICAgICAg
IGNvbnN0IFdlYlJlY3QmKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNZW51TGlzdCgK
LSAgICAgICAgV2ViQ2FudmFzKiwgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0
ZSwKLSAgICAgICAgY29uc3QgV2ViUmVjdCYpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBwYWlu
dFNjcm9sbGJhckFycm93KAotICAgICAgICBXZWJDYW52YXMqLCBpbnQgc3RhdGUsIGludCBjbGFz
c2ljU3RhdGUsCi0gICAgICAgIGNvbnN0IFdlYlJlY3QmKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRTY3JvbGxiYXJUaHVtYigKLSAgICAgICAgV2ViQ2FudmFzKiwgaW50IHBhcnQsIGlu
dCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKLSAgICAgICAgY29uc3QgV2ViUmVjdCYpID0gMDsK
LQotICAgIHZpcnR1YWwgdm9pZCBwYWludFNjcm9sbGJhclRyYWNrKAotICAgICAgICBXZWJDYW52
YXMqLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAotICAgICAgICBjb25z
dCBXZWJSZWN0JiwgY29uc3QgV2ViUmVjdCYgYWxpZ25SZWN0KSA9IDA7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRTcGluQnV0dG9uKAotICAgICAgICBXZWJDYW52YXMqLCBpbnQgcGFydCwgaW50
IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAotICAgICAgICBjb25zdCBXZWJSZWN0Jikge30KLQot
ICAgIHZpcnR1YWwgdm9pZCBwYWludFRleHRGaWVsZCgKLSAgICAgICAgV2ViQ2FudmFzKiwgaW50
IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKLSAgICAgICAgY29uc3QgV2ViUmVj
dCYsIFdlYkNvbG9yLCBib29sIGZpbGxDb250ZW50QXJlYSwgYm9vbCBkcmF3RWRnZXMpID0gMDsK
LQotICAgIHZpcnR1YWwgdm9pZCBwYWludFRyYWNrYmFyKAotICAgICAgICBXZWJDYW52YXMqLCBp
bnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAotICAgICAgICBjb25zdCBXZWJS
ZWN0JikgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHBhaW50UHJvZ3Jlc3NCYXIoCi0gICAgICAg
IFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGJhclJlY3QsIGNvbnN0IFdlYlJlY3QmIHZhbHVl
UmVjdCwKLSAgICAgICAgYm9vbCBkZXRlcm1pbmF0ZSwgZG91YmxlIGFuaW1hdGVkU2Vjb25kcykg
e30KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKKyNpbmNsdWRlICIuLi8u
Li8uLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvd2luL1dlYlRoZW1lRW5naW5lLmgi
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGlu
Z0VudW1zLmNwcAkocmV2aXNpb24gMTE4MjE2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgs
NyBAQAogCiAjaWYgT1MoREFSV0lOKQogI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgotI2lu
Y2x1ZGUgInBsYXRmb3JtL21hYy9XZWJUaGVtZUVuZ2luZS5oIgorI2luY2x1ZGUgPHB1YmxpYy9t
YWMvV2ViVGhlbWVFbmdpbmUuaD4KICNlbmRpZgogCiAjZGVmaW5lIENPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0od2Via2l0X25hbWUsIHdlYmNvcmVfbmFtZSkgXApJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCShyZXZpc2lvbiAxMTgy
MTYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MSwxNyArNjEsMTcgQEAKIAogI2lmIE9TKFdJTkRPV1MpCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViUmVjdC5oIgotI2luY2x1ZGUgInBsYXRmb3JtL3dpbi9XZWJUaGVt
ZUVuZ2luZS5oIgorI2luY2x1ZGUgPHB1YmxpYy93aW4vV2ViVGhlbWVFbmdpbmUuaD4KICNlbmRp
ZgogCiAjaWYgT1MoREFSV0lOKQotI2luY2x1ZGUgInBsYXRmb3JtL21hYy9XZWJUaGVtZUVuZ2lu
ZS5oIgorI2luY2x1ZGUgPHB1YmxpYy9tYWMvV2ViVGhlbWVFbmdpbmUuaD4KICNlbGlmIE9TKFVO
SVgpICYmICFPUyhBTkRST0lEKQotI2luY2x1ZGUgInBsYXRmb3JtL2xpbnV4L1dlYlRoZW1lRW5n
aW5lLmgiCiAjaW5jbHVkZSAiV2ViRm9udEluZm8uaCIKICNpbmNsdWRlICJXZWJGb250UmVuZGVy
U3R5bGUuaCIKKyNpbmNsdWRlIDxwdWJsaWMvbGludXgvV2ViVGhlbWVFbmdpbmUuaD4KICNlbGlm
IE9TKEFORFJPSUQpCi0jaW5jbHVkZSAicGxhdGZvcm0vYW5kcm9pZC9XZWJUaGVtZUVuZ2luZS5o
IgorI2luY2x1ZGUgPHB1YmxpYy9hbmRyb2lkL1dlYlRoZW1lRW5naW5lLmg+CiAjZW5kaWYKIAog
I2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgpAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgUGxh
dGZvcm1TdXBwb3J0OjpwYWludEJ1dHRvbigKICAgICBHcmFwaGljc0NvbnRleHQqIGdjLCBpbnQg
cGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAogICAgIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7Ci0gICAgd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnRoZW1lRW5naW5lKCktPnBhaW50
QnV0dG9uKAorICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+
cGFpbnRCdXR0b24oCiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCksIHBh
cnQsIHN0YXRlLCBjbGFzc2ljU3RhdGUsIHJlY3QpOwogfQogCkBAIC01NzksNyArNTc5LDcgQEAg
dm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50TWVudUxpc3QoCiAgICAgR3JhcGhpY3NDb250ZXh0
KiBnYywgaW50IHBhcnQsIGludCBzdGF0ZSwgaW50IGNsYXNzaWNTdGF0ZSwKICAgICBjb25zdCBJ
bnRSZWN0JiByZWN0KQogewotICAgIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT50aGVtZUVuZ2lu
ZSgpLT5wYWludE1lbnVMaXN0KAorICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhl
bWVFbmdpbmUoKS0+cGFpbnRNZW51TGlzdCgKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgp
LT5jYW52YXMoKSwgcGFydCwgc3RhdGUsIGNsYXNzaWNTdGF0ZSwgcmVjdCk7CiB9CiAKQEAgLTU4
Nyw3ICs1ODcsNyBAQCB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6cGFpbnRTY3JvbGxiYXJBcnJvCiAg
ICAgR3JhcGhpY3NDb250ZXh0KiBnYywgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAogICAg
IGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPnRo
ZW1lRW5naW5lKCktPnBhaW50U2Nyb2xsYmFyQXJyb3coCisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6
Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhckFycm93KAogICAgICAgICBn
Yy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBzdGF0ZSwgY2xhc3NpY1N0YXRlLCByZWN0
KTsKIH0KIApAQCAtNTk1LDcgKzU5NSw3IEBAIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpwYWludFNj
cm9sbGJhclRodW0KICAgICBHcmFwaGljc0NvbnRleHQqIGdjLCBpbnQgcGFydCwgaW50IHN0YXRl
LCBpbnQgY2xhc3NpY1N0YXRlLAogICAgIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgd2Vi
S2l0UGxhdGZvcm1TdXBwb3J0KCktPnRoZW1lRW5naW5lKCktPnBhaW50U2Nyb2xsYmFyVGh1bWIo
CisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNj
cm9sbGJhclRodW1iKAogICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLCBw
YXJ0LCBzdGF0ZSwgY2xhc3NpY1N0YXRlLCByZWN0KTsKIH0KIApAQCAtNjAzLDcgKzYwMyw3IEBA
IHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpwYWludFNjcm9sbGJhclRyYWMKICAgICBHcmFwaGljc0Nv
bnRleHQqIGdjLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3NpY1N0YXRlLAogICAgIGNv
bnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFJlY3QmIGFsaWduUmVjdCkKIHsKLSAgICB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnRTY3JvbGxiYXJUcmFjaygK
KyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50U2Ny
b2xsYmFyVHJhY2soCiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCksIHBh
cnQsIHN0YXRlLCBjbGFzc2ljU3RhdGUsIHJlY3QsCiAgICAgICAgIGFsaWduUmVjdCk7CiB9CkBA
IC02MTIsNyArNjEyLDcgQEAgdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50U3BpbkJ1dHRvbigK
ICAgICBHcmFwaGljc0NvbnRleHQqIGdjLCBpbnQgcGFydCwgaW50IHN0YXRlLCBpbnQgY2xhc3Np
Y1N0YXRlLAogICAgIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgd2ViS2l0UGxhdGZvcm1T
dXBwb3J0KCktPnRoZW1lRW5naW5lKCktPnBhaW50U3BpbkJ1dHRvbigKKyAgICBXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPnBhaW50U3BpbkJ1dHRvbigKICAgICAg
ICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgcGFydCwgc3RhdGUsIGNsYXNzaWNT
dGF0ZSwgcmVjdCk7CiB9CiAKQEAgLTYyNCw3ICs2MjQsNyBAQCB2b2lkIFBsYXRmb3JtU3VwcG9y
dDo6cGFpbnRUZXh0RmllbGQoCiAgICAgLy8gRmFsbGJhY2sgdG8gd2hpdGUgd2hlbiB8Y29sb3J8
IGlzIGludmFsaWQuCiAgICAgUkdCQTMyIGJhY2tncm91bmRDb2xvciA9IGNvbG9yLmlzVmFsaWQo
KSA/IGNvbG9yLnJnYigpIDogQ29sb3I6OndoaXRlOwogCi0gICAgd2ViS2l0UGxhdGZvcm1TdXBw
b3J0KCktPnRoZW1lRW5naW5lKCktPnBhaW50VGV4dEZpZWxkKAorICAgIFdlYktpdDo6UGxhdGZv
cm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnRUZXh0RmllbGQoCiAgICAgICAgIGdj
LT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCksIHBhcnQsIHN0YXRlLCBjbGFzc2ljU3RhdGUs
IHJlY3QsCiAgICAgICAgIGJhY2tncm91bmRDb2xvciwgZmlsbENvbnRlbnRBcmVhLCBkcmF3RWRn
ZXMpOwogfQpAQCAtNjMzLDE0ICs2MzMsMTQgQEAgdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50
VHJhY2tiYXIoCiAgICAgR3JhcGhpY3NDb250ZXh0KiBnYywgaW50IHBhcnQsIGludCBzdGF0ZSwg
aW50IGNsYXNzaWNTdGF0ZSwKICAgICBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIHdlYktp
dFBsYXRmb3JtU3VwcG9ydCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFRyYWNrYmFyKAorICAgIFdl
YktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+dGhlbWVFbmdpbmUoKS0+cGFpbnRUcmFja2JhcigK
ICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSwgcGFydCwgc3RhdGUsIGNs
YXNzaWNTdGF0ZSwgcmVjdCk7CiB9CiAKIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpwYWludFByb2dy
ZXNzQmFyKAogICAgIEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IEludFJlY3QmIGJhclJlY3Qs
IGNvbnN0IEludFJlY3QmIHZhbHVlUmVjdCwgYm9vbCBkZXRlcm1pbmF0ZSwgZG91YmxlIGFuaW1h
dGVkU2Vjb25kcykKIHsKLSAgICB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+dGhlbWVFbmdpbmUo
KS0+cGFpbnRQcm9ncmVzc0JhcigKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRo
ZW1lRW5naW5lKCktPnBhaW50UHJvZ3Jlc3NCYXIoCiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRl
eHQoKS0+Y2FudmFzKCksIGJhclJlY3QsIHZhbHVlUmVjdCwgZGV0ZXJtaW5hdGUsIGFuaW1hdGVk
U2Vjb25kcyk7CiB9CiAKQEAgLTY1OSw3ICs2NTksNyBAQCB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6
cGFpbnRTY3JvbGxiYXJUaHVtCiAgICAgd2ViVGhlbWVTY3JvbGxiYXJJbmZvLnRvdGFsU2l6ZSA9
IHNjcm9sbGJhckluZm8udG90YWxTaXplOwogCiAgICAgV2ViS2l0OjpXZWJDYW52YXMqIHdlYkNh
bnZhcyA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCk7Ci0gICAgd2ViS2l0UGxhdGZv
cm1TdXBwb3J0KCktPnRoZW1lRW5naW5lKCktPnBhaW50U2Nyb2xsYmFyVGh1bWIoCisgICAgV2Vi
S2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT50aGVtZUVuZ2luZSgpLT5wYWludFNjcm9sbGJhclRo
dW1iKAogICAgICAgICB3ZWJDYW52YXMsCiAgICAgICAgIHN0YXRpY19jYXN0PFdlYlRoZW1lRW5n
aW5lOjpTdGF0ZT4oc3RhdGUpLAogICAgICAgICBzdGF0aWNfY2FzdDxXZWJUaGVtZUVuZ2luZTo6
U2l6ZT4oc2l6ZSksCkBAIC03NjMsNyArNzYzLDcgQEAgc3RhdGljIHZvaWQgR2V0V2ViVGhlbWVF
eHRyYVBhcmFtcyhQbGF0ZgogCiBJbnRTaXplIFBsYXRmb3JtU3VwcG9ydDo6Z2V0VGhlbWVQYXJ0
U2l6ZShUaGVtZVBhcnQgcGFydCkKIHsKLSAgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9y
dCgpLT50aGVtZUVuZ2luZSgpLT5nZXRTaXplKFdlYlRoZW1lUGFydChwYXJ0KSk7CisgICAgIHJl
dHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnRoZW1lRW5naW5lKCktPmdldFNpemUo
V2ViVGhlbWVQYXJ0KHBhcnQpKTsKIH0KIAogdm9pZCBQbGF0Zm9ybVN1cHBvcnQ6OnBhaW50VGhl
bWVQYXJ0KApAQCAtNzcxLDcgKzc3MSw3IEBAIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpwYWludFRo
ZW1lUGFydCgKIHsKICAgICBXZWJUaGVtZUVuZ2luZTo6RXh0cmFQYXJhbXMgd2ViVGhlbWVFeHRy
YVBhcmFtczsKICAgICBHZXRXZWJUaGVtZUV4dHJhUGFyYW1zKHBhcnQsIHN0YXRlLCBleHRyYVBh
cmFtcywgJndlYlRoZW1lRXh0cmFQYXJhbXMpOwotICAgIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgp
LT50aGVtZUVuZ2luZSgpLT5wYWludCgKKyAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCkt
PnRoZW1lRW5naW5lKCktPnBhaW50KAogICAgICAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNh
bnZhcygpLCBXZWJUaGVtZVBhcnQocGFydCksIFdlYlRoZW1lU3RhdGUoc3RhdGUpLCByZWN0LCAm
d2ViVGhlbWVFeHRyYVBhcmFtcyk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>