<?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>26174</bug_id>
          
          <creation_ts>2009-06-03 15:20:21 -0700</creation_ts>
          <short_desc>[Chromium] Change scrollbar theme code to use different classes on Windows and Linux</short_desc>
          <delta_ts>2009-06-03 16:37: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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Langley">agl</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>124223</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-06-03 15:20:21 -0700</bug_when>
    <thetext>Change Chromium scrollbar theme code to use different classes on
Windows and Linux rather than suppling symbols. The ScrollbarTheme
class is already using virtual dispatch, so there&apos;s no reason not to.

This should not affect any layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124224</commentid>
    <comment_count>1</comment_count>
      <attachid>30926</attachid>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-06-03 15:21:02 -0700</bug_when>
    <thetext>Created attachment 30926
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124229</commentid>
    <comment_count>2</comment_count>
      <attachid>30926</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-03 15:32:48 -0700</bug_when>
    <thetext>Comment on attachment 30926
patch

spelling:
 6         Windows and Linux rather than suppling symbols. The ScrollbarTheme
I think you meant supplying.

I know you&apos;re just moving, but we don&apos;t name arguments when the names don&apos;t add anything:
42         virtual void paintTrackPiece(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect&amp; rect, ScrollbarPart partType);
 43         virtual void paintButton(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect&amp; rect, ScrollbarPart partType);
 44         virtual void paintThumb(GraphicsContext* gc, Scrollbar* scrollbar, const IntRect&amp; rect);

Looks sane to me.  r+ you can fix the above nits when landing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30926</attachid>
            <date>2009-06-03 15:21:02 -0700</date>
            <delta_ts>2009-06-03 15:32:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22264</size>
            <attacher name="Adam Langley">agl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTUxZjE4MC4uMzcwNWI5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAwOS0wNi0wMyAgQWRhbSBMYW5nbGV5
ICA8YWdsQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hhbmdlIENocm9taXVtIHNjcm9sbGJhciB0aGVtZSBjb2RlIHRvIHVzZSBk
aWZmZXJlbnQgY2xhc3NlcyBvbgorICAgICAgICBXaW5kb3dzIGFuZCBMaW51eCByYXRoZXIgdGhh
biBzdXBwbGluZyBzeW1ib2xzLiBUaGUgU2Nyb2xsYmFyVGhlbWUKKyAgICAgICAgY2xhc3MgaXMg
YWxyZWFkeSB1c2luZyB2aXJ0dWFsIGRpc3BhdGNoLCBzbyB0aGVyZSdzIG5vIHJlYXNvbiBub3Qg
dG8uCisKKyAgICAgICAgVGhpcyBzaG91bGQgbm90IGFmZmVjdCBhbnkgbGF5b3V0IHRlc3RzLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjE3NAor
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpzY3JvbGxiYXJUaGlj
a25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4Ojpw
YWludFRyYWNrUGllY2UpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1
bUxpbnV4OjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNo
cm9taXVtTGludXg6OnBhaW50VGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bUxpbnV4OjpidXR0b25TaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguaDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW46OmludmFsaWRhdGVPbk1vdXNlRW50ZXJF
eGl0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW46OnNob3Vs
ZFNuYXBCYWNrVG9EcmFnT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1l
Q2hyb21pdW1XaW46OnBhaW50VHJhY2tQaWVjZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxi
YXJUaGVtZUNocm9taXVtV2luOjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZUNocm9taXVtV2luOjpwYWludFRodW1iKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGJhclRoZW1lQ2hyb21pdW1XaW46OmdldFRoZW1lU3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6Z2V0VGhlbWVBcnJvd1N0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW46OmdldENsYXNzaWNUaGVtZVN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW46OmJ1dHRv
blNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21p
dW1XaW4uaDogQWRkZWQuCisKIDIwMDktMDYtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5jcHAKaW5kZXgg
YjE4YzZlOC4uNzhmYzA4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9T
Y3JvbGxiYXJUaGVtZUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uY3BwCkBAIC00MCwyNCArNDAsNiBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVNjcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhl
bWUoKQotewotICAgIHN0YXRpYyBTY3JvbGxiYXJUaGVtZUNocm9taXVtIHRoZW1lOwotICAgIHJl
dHVybiAmdGhlbWU7Ci19Ci0KLVNjcm9sbGJhclRoZW1lQ2hyb21pdW06OlNjcm9sbGJhclRoZW1l
Q2hyb21pdW0oKQotewotfQotCi1TY3JvbGxiYXJUaGVtZUNocm9taXVtOjp+U2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bSgpCi17Ci19Ci0KLXZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bTo6dGhlbWVD
aGFuZ2VkKCkKLXsKLX0KLQogYm9vbCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpoYXNUaHVtYihT
Y3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBqdXN0IGNhbGxl
ZCBhcyBhIHBhaW50LXRpbWUgb3B0aW1pemF0aW9uIHRvIHNlZSBpZgpAQCAtMTUxLDM2ICsxMzMs
NCBAQCBib29sIFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OnNob3VsZENlbnRlck9uVGh1bWIoU2Ny
b2xsYmFyKiwgY29uc3QgUGxhdGZvcm1Nb3VzZQogICAgIHJldHVybiBldnQuc2hpZnRLZXkoKSAm
JiBldnQuYnV0dG9uKCkgPT0gTGVmdEJ1dHRvbjsKIH0KIAotSW50U2l6ZSBTY3JvbGxiYXJUaGVt
ZUNocm9taXVtOjpidXR0b25TaXplKFNjcm9sbGJhciogc2Nyb2xsYmFyKQotewotI2lmIGRlZmlu
ZWQoX19saW51eF9fKQotICAgIC8vIE9uIExpbnV4LCB3ZSBkb24ndCB1c2UgYnV0dG9ucwotICAg
IHJldHVybiBJbnRTaXplKDAsIDApOwotI2VuZGlmCi0KLSAgICAvLyBPdXIgZGVzaXJlZCByZWN0
IGlzIGVzc2VudGlhbGx5IHRoaWNrbmVzcyBieSB0aGlja25lc3MuCi0KLSAgICAvLyBPdXIgYWN0
dWFsIHJlY3Qgd2lsbCBzaHJpbmsgdG8gaGFsZiB0aGUgYXZhaWxhYmxlIHNwYWNlIHdoZW4gd2Ug
aGF2ZSA8IDIKLSAgICAvLyB0aW1lcyB0aGlja25lc3MgcGl4ZWxzIGxlZnQuICBUaGlzIGFsbG93
cyB0aGUgc2Nyb2xsYmFyIHRvIHNjYWxlIGRvd24KLSAgICAvLyBhbmQgZnVuY3Rpb24gZXZlbiBh
dCB0aW55IHNpemVzLgotCi0gICAgaW50IHRoaWNrbmVzcyA9IHNjcm9sbGJhclRoaWNrbmVzcyhz
Y3JvbGxiYXItPmNvbnRyb2xTaXplKCkpOwotCi0gICAgLy8gSW4gbGF5b3V0IHRlc3QgbW9kZSwg
d2UgZm9yY2UgdGhlIGJ1dHRvbiAiZ2lydGgiIChpLmUuLCB0aGUgbGVuZ3RoIG9mCi0gICAgLy8g
dGhlIGJ1dHRvbiBhbG9uZyB0aGUgYXhpcyBvZiB0aGUgc2Nyb2xsYmFyKSB0byBiZSBhIGZpeGVk
IHNpemUuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgcmV0YXJkZWQhICBzY3JvbGxiYXJUaGlja25l
c3MgaXMgYWxyZWFkeSBmaXhlZCBpbiBsYXlvdXQKLSAgICAvLyB0ZXN0IG1vZGUgc28gdGhhdCBz
aG91bGQgYmUgZW5vdWdoIHRvIHJlc3VsdCBpbiByZXBlYXRhYmxlIHJlc3VsdHMsIGJ1dAotICAg
IC8vIHByZXNlcnZpbmcgdGhpcyBoYWNrIGF2b2lkcyBoYXZpbmcgdG8gcmViYXNlbGluZSBwaXhl
bCB0ZXN0cy4KLSAgICBjb25zdCBpbnQga0xheW91dFRlc3RNb2RlR2lydGggPSAxNzsKLSAgICBp
bnQgZ2lydGggPSBDaHJvbWl1bUJyaWRnZTo6bGF5b3V0VGVzdE1vZGUoKSA/IGtMYXlvdXRUZXN0
TW9kZUdpcnRoIDogdGhpY2tuZXNzOwotCi0gICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24o
KSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSB7Ci0gICAgICAgIGludCB3aWR0aCA9IHNjcm9sbGJh
ci0+d2lkdGgoKSA8IDIgKiBnaXJ0aCA/IHNjcm9sbGJhci0+d2lkdGgoKSAvIDIgOiBnaXJ0aDsK
LSAgICAgICAgcmV0dXJuIEludFNpemUod2lkdGgsIHRoaWNrbmVzcyk7Ci0gICAgfQotCi0gICAg
aW50IGhlaWdodCA9IHNjcm9sbGJhci0+aGVpZ2h0KCkgPCAyICogZ2lydGggPyBzY3JvbGxiYXIt
PmhlaWdodCgpIC8gMiA6IGdpcnRoOwotICAgIHJldHVybiBJbnRTaXplKHRoaWNrbmVzcywgaGVp
Z2h0KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0uaAppbmRleCBiMTUzNWM2Li43MWQ0
ODE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1l
Q2hyb21pdW0uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1l
Q2hyb21pdW0uaApAQCAtMSwxMCArMSwxMCBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwOCwg
MjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAorICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQogICogbWV0OgotICogCisgKgogICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
ICAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKQEAgLTE0LDcgKzE0LDcgQEAKICAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CiAgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICogCisgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgpAQCAtMzcsMjIgKzM3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgUGxh
dGZvcm1Nb3VzZUV2ZW50OwogCi0gICAgLy8gVGhpcyBjbGFzcyBjb250YWlucyB0aGUgQ2hyb21p
dW0gc2Nyb2xsYmFyIGltcGxlbWVudGF0aW9ucyBmb3IgV2luZG93cwotICAgIC8vIGFuZCBMaW51
eC4gQWxsIG9mIHRoZSBzeW1ib2xzIGhlcmUgaW4gbXVzdCBiZSBkZWZpbmVkIHNvbWV3aGVyZSBp
biB0aGUKLSAgICAvLyBjb2RlIGFuZCB3ZSBtYW5hZ2UgdGhlIHBsYXRmb3JtIHNwZWNpZmljIHBh
cnRzIGJ5IGxpbmtpbmcgaW4gZGlmZmVyZW50LAotICAgIC8vIHBsYXRmb3JtIHNwZWNpZmljLCBm
aWxlcy4gTWV0aG9kcyB0aGF0IHdlIHNoYXJlZCBhY3Jvc3MgcGxhdGZvcm1zIGFyZQotICAgIC8v
IGltcGxlbWVudGVkIGluIFNjcm9sbGJhclRoZW1lQ2hyb21pdW0uY3BwCisgICAgLy8gVGhpcyBj
bGFzcyBjb250YWlucyB0aGUgc2Nyb2xsYmFyIGNvZGUgd2hpY2ggaXMgc2hhcmVkIGJldHdlZW4g
Q2hyb21pdW0KKyAgICAvLyBXaW5kb3dzIGFuZCBMaW51eC4KICAgICBjbGFzcyBTY3JvbGxiYXJU
aGVtZUNocm9taXVtIDogcHVibGljIFNjcm9sbGJhclRoZW1lQ29tcG9zaXRlIHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIFNjcm9sbGJhclRoZW1lQ2hyb21pdW0oKTsKLSAgICAgICAgdmlydHVhbCB+
U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bSgpOwotCi0gICAgICAgIHZpcnR1YWwgaW50IHNjcm9sbGJh
clRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIpOwotCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKTsKLSAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBpbnZhbGlkYXRlT25Nb3VzZUVudGVyRXhpdCgpOwotCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhTY3JvbGxiYXIqKSB7IHJldHVybiB0
cnVlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNUaHVtYihTY3JvbGxiYXIqKTsKQEAgLTYz
LDIyICs1MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHBhaW50U2Nyb2xsQ29ybmVyKFNjcm9sbFZpZXcqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJ
bnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDZW50ZXJPblRodW1iKFNjcm9s
bGJhciosIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkU25hcEJhY2tUb0RyYWdPcmlnaW4oU2Nyb2xsYmFyKiwgY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50Jik7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50VHJhY2tCYWNrZ3JvdW5kKEdy
YXBoaWNzQ29udGV4dCosIFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHBhaW50VHJhY2tQaWVjZShHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXIqLCBj
b25zdCBJbnRSZWN0JiwgU2Nyb2xsYmFyUGFydCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwYWlu
dEJ1dHRvbihHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JiwgU2Ny
b2xsYmFyUGFydCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwYWludFRodW1iKEdyYXBoaWNzQ29u
dGV4dCosIFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHBhaW50VGlja21hcmtzKEdyYXBoaWNzQ29udGV4dCosIFNjcm9sbGJhciosIGNvbnN0IEludFJl
Y3QmKTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAgIEludFNpemUgYnV0dG9uU2l6ZShTY3JvbGxi
YXIqKTsKLQotICAgICAgICBpbnQgZ2V0VGhlbWVTdGF0ZShTY3JvbGxiYXIqLCBTY3JvbGxiYXJQ
YXJ0KSBjb25zdDsKLSAgICAgICAgaW50IGdldFRoZW1lQXJyb3dTdGF0ZShTY3JvbGxiYXIqLCBT
Y3JvbGxiYXJQYXJ0KSBjb25zdDsKLSAgICAgICAgaW50IGdldENsYXNzaWNUaGVtZVN0YXRlKFNj
cm9sbGJhciosIFNjcm9sbGJhclBhcnQpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEludFNpemUg
YnV0dG9uU2l6ZShTY3JvbGxiYXIqKSA9IDA7CiAgICAgfTsKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Ny
b2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAppbmRleCAwZDhhMWJhLi5iYTM2NTdkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21p
dW1MaW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtTGludXguY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJT
Y3JvbGxiYXJUaGVtZUNocm9taXVtTGludXguaCIKIAogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4
dFNraWEuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKQEAgLTM4LDE0ICszOCwx
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWludCBTY3JvbGxiYXJUaGVtZUNocm9taXVt
OjpzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUpCitT
Y3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKCkKIHsKLSAgICByZXR1
cm4gMTU7CisgICAgc3RhdGljIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eCB0aGVtZTsKKyAg
ICByZXR1cm4gJnRoZW1lOwogfQogCi1ib29sIFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OmludmFs
aWRhdGVPbk1vdXNlRW50ZXJFeGl0KCkKK2ludCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6
OnNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6ZSkKIHsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIDE1OwogfQogCiBzdGF0aWMgdm9pZCBkcmF3
VmVydExpbmUoU2tDYW52YXMqIGNhbnZhcywgaW50IHgsIGludCB5MSwgaW50IHkyLCBjb25zdCBT
a1BhaW50JiBwYWludCkKQEAgLTgxLDEzICs4Miw3IEBAIEludFJlY3QgU2Nyb2xsYmFyVGhlbWVD
aHJvbWl1bTo6dHJhY2tSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBib29sKQogICAgIHJldHVy
biBJbnRSZWN0KHNjcm9sbGJhci0+eCgpLCBzY3JvbGxiYXItPnkoKSArIGJzLmhlaWdodCgpLCB0
aGlja25lc3MsIHNjcm9sbGJhci0+aGVpZ2h0KCkpOwogfQogCi1ib29sIFNjcm9sbGJhclRoZW1l
Q2hyb21pdW06OnNob3VsZFNuYXBCYWNrVG9EcmFnT3JpZ2luKFNjcm9sbGJhciosIGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFNjcm9s
bGJhclRoZW1lQ2hyb21pdW06OnBhaW50VHJhY2tQaWVjZShHcmFwaGljc0NvbnRleHQqIGdjLCBT
Y3JvbGxiYXIqIHNjcm9sbGJhciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEludFJlY3QmIHJlY3QsIFNjcm9sbGJhclBhcnQgcGFydFR5cGUpCit2
b2lkIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eDo6cGFpbnRUcmFja1BpZWNlKEdyYXBoaWNz
Q29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0LCBT
Y3JvbGxiYXJQYXJ0IHBhcnRUeXBlKQogewogICAgIFNrQ2FudmFzKiBjb25zdCBjYW52YXMgPSBn
Yy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOwogICAgIFNrUGFpbnQgcGFpbnQ7CkBAIC0x
MDEsMTMgKzk2LDEyIEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bTo6cGFpbnRUcmFja1Bp
ZWNlKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2NyCiAgICAgZHJhd0JveChjYW52
YXMsIHJlY3QsIHBhaW50KTsKIH0KIAotdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpwYWlu
dEJ1dHRvbihHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxiYXIqIHNjcm9sbGJhciwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcmVjdCwg
U2Nyb2xsYmFyUGFydCBwYXJ0KQordm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBh
aW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25z
dCBJbnRSZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnQpCiB7CiAgICAgLy8gV2UgZG9uJ3Qg
dXNlIGJ1dHRvbnMKIH0KIAotdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpwYWludFRodW1i
KEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0
JiByZWN0KQordm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtTGludXg6OnBhaW50VGh1bWIoR3Jh
cGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7CiAgICAgY29uc3QgYm9vbCBob3ZlcmVkID0gc2Nyb2xsYmFyLT5ob3ZlcmVkUGFydCgp
ID09IFRodW1iUGFydDsKICAgICBjb25zdCBpbnQgbWlkeCA9IHJlY3QueCgpICsgcmVjdC53aWR0
aCgpIC8gMjsKQEAgLTE1Miw0ICsxNDYsMTAgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVt
OjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmEKICAg
ICB9CiB9CiAKK0ludFNpemUgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4OjpidXR0b25TaXpl
KFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIC8vIE9uIExpbnV4LCB3ZSBkb24ndCB1c2Ug
YnV0dG9ucworICAgIHJldHVybiBJbnRTaXplKDAsIDApOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRo
ZW1lQ2hyb21pdW1MaW51eC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJU
aGVtZUNocm9taXVtTGludXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i
OThmMDFhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3Jv
bGxiYXJUaGVtZUNocm9taXVtTGludXguaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bUxpbnV4X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxp
bnV4X2gKKworI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21pdW0uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIGNsYXNzIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eCA6IHB1Ymxp
YyBTY3JvbGxiYXJUaGVtZUNocm9taXVtIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwg
aW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSk7CisKKyAgICBwcm90
ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgdm9pZCBwYWludFRyYWNrUGllY2UoR3JhcGhpY3NDb250
ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QsIFNjcm9s
bGJhclBhcnQgcGFydFR5cGUpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRCdXR0b24oR3Jh
cGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJl
Y3QsIFNjcm9sbGJhclBhcnQgcGFydFR5cGUpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRU
aHVtYihHcmFwaGljc0NvbnRleHQqIGdjLCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50
UmVjdCYgcmVjdCk7CisKKyAgICAgICAgdmlydHVhbCBJbnRTaXplIGJ1dHRvblNpemUoU2Nyb2xs
YmFyKik7CisgICAgfTsKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4u
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtV2lu
LmNwcAppbmRleCAxYThkYWRjLi4zMzRiNzY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbi5jcHAKQEAgLTI1LDcgKzI1
LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4uaCIKIAog
I2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx2c3N0eWxlLmg+CkBAIC0zOSw2ICszOSwx
MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Njcm9sbGJhclRoZW1lKiBTY3JvbGxiYXJU
aGVtZTo6bmF0aXZlVGhlbWUoKQoreworICAgIHN0YXRpYyBTY3JvbGxiYXJUaGVtZUNocm9taXVt
V2luIHRoZW1lOworICAgIHJldHVybiAmdGhlbWU7Cit9CisKIC8vIFRoZSBzY3JvbGxiYXIgc2l6
ZSBpbiBEdW1wUmVuZGVyVHJlZSBvbiB0aGUgTWFjIC0gc28gd2UgY2FuIG1hdGNoIHRoZWlyCiAv
LyBsYXlvdXQgcmVzdWx0cy4gIEVudHJpZXMgYXJlIGZvciByZWd1bGFyLCBzbWFsbCwgYW5kIG1p
bmkgc2Nyb2xsYmFycy4KIC8vIE1ldHJpY3Mgb2J0YWluZWQgdXNpbmcgW05TU2Nyb2xsZXIgc2Ny
b2xsZXJXaWR0aEZvckNvbnRyb2xTaXplOl0KQEAgLTY5LDcgKzc1LDcgQEAgSW50UmVjdCBTY3Jv
bGxiYXJUaGVtZUNocm9taXVtOjp0cmFja1JlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGJvb2wp
CiAgICAgcmV0dXJuIEludFJlY3Qoc2Nyb2xsYmFyLT54KCksIHNjcm9sbGJhci0+eSgpICsgYnMu
aGVpZ2h0KCksIHRoaWNrbmVzcywgc2Nyb2xsYmFyLT5oZWlnaHQoKSAtIDIgKiBicy5oZWlnaHQo
KSk7CiB9CiAKLWludCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpzY3JvbGxiYXJUaGlja25lc3Mo
U2Nyb2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUpCitpbnQgU2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bVdpbjo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xT
aXplKQogewogICAgIHN0YXRpYyBpbnQgdGhpY2tuZXNzOwogICAgIGlmICghdGhpY2tuZXNzKSB7
CkBAIC04MCwxMiArODYsMTIgQEAgaW50IFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OnNjcm9sbGJh
clRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6ZSkKICAgICByZXR1cm4g
dGhpY2tuZXNzOwogfQogCi1ib29sIFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OmludmFsaWRhdGVP
bk1vdXNlRW50ZXJFeGl0KCkKK2Jvb2wgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6aW52YWxp
ZGF0ZU9uTW91c2VFbnRlckV4aXQoKQogewogICAgIHJldHVybiBpc1Zpc3RhT3JOZXdlcigpOwog
fQogCi1ib29sIFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OnNob3VsZFNuYXBCYWNrVG9EcmFnT3Jp
Z2luKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2dCkK
K2Jvb2wgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6c2hvdWxkU25hcEJhY2tUb0RyYWdPcmln
aW4oU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0KQog
ewogICAgIC8vIEZpbmQgdGhlIHJlY3Qgd2l0aGluIHdoaWNoIHdlIHNob3VsZG4ndCBzbmFwLCBi
eSBleHBhbmRpbmcgdGhlIHRyYWNrIHJlY3QKICAgICAvLyBpbiBib3RoIGRpbWVuc2lvbnMuCkBA
IC0xMDMsNyArMTA5LDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpzaG91bGRTbmFw
QmFja1RvRHJhZ09yaWdpbihTY3JvbGxiYXIqIHNjcm9sbGJhciwgY28KICAgICByZXR1cm4gIXJl
Y3QuY29udGFpbnMobW91c2VQb3NpdGlvbik7CiB9CiAKLXZvaWQgU2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bTo6cGFpbnRUcmFja1BpZWNlKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Ny
b2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlKQordm9p
ZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtV2luOjpwYWludFRyYWNrUGllY2UoR3JhcGhpY3NDb250
ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QsIFNjcm9s
bGJhclBhcnQgcGFydFR5cGUpCiB7CiAgICAgYm9vbCBob3J6ID0gc2Nyb2xsYmFyLT5vcmllbnRh
dGlvbigpID09IEhvcml6b250YWxTY3JvbGxiYXI7CiAKQEAgLTEyNSw3ICsxMzEsNyBAQCB2b2lk
IFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OnBhaW50VHJhY2tQaWVjZShHcmFwaGljc0NvbnRleHQq
IGdjLCBTY3JvbGxiYXIqIHNjcgogICAgICAgICBhbGlnblJlY3QpOwogfQogCi12b2lkIFNjcm9s
bGJhclRoZW1lQ2hyb21pdW06OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9s
bGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnQp
Cit2b2lkIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW46OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29u
dGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0LCBTY3Jv
bGxiYXJQYXJ0IHBhcnQpCiB7CiAgICAgYm9vbCBob3J6ID0gc2Nyb2xsYmFyLT5vcmllbnRhdGlv
bigpID09IEhvcml6b250YWxTY3JvbGxiYXI7CiAKQEAgLTE0Myw3ICsxNDksNyBAQCB2b2lkIFNj
cm9sbGJhclRoZW1lQ2hyb21pdW06OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNj
cm9sbGJhciogc2Nyb2xsYgogICAgICAgICByZWN0KTsKIH0KIAotdm9pZCBTY3JvbGxiYXJUaGVt
ZUNocm9taXVtOjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Ny
b2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVt
V2luOjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFy
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGJvb2wgaG9yeiA9IHNjcm9sbGJhci0+b3Jp
ZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyOwogCkBAIC0xNjQsNyArMTcwLDcgQEAg
dm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpwYWludFRodW1iKEdyYXBoaWNzQ29udGV4dCog
Z2MsIFNjcm9sbGJhciogc2Nyb2xsYmEKICAgICAgICAgcmVjdCk7CiB9CiAKLWludCBTY3JvbGxi
YXJUaGVtZUNocm9taXVtOjpnZXRUaGVtZVN0YXRlKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBTY3Jv
bGxiYXJQYXJ0IHBhcnQpIGNvbnN0CitpbnQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bVdpbjo6Z2V0
VGhlbWVTdGF0ZShTY3JvbGxiYXIqIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFydCBwYXJ0KSBjb25z
dAogewogICAgIC8vIFdoZW4gZHJhZ2dpbmcgdGhlIHRodW1iLCBkcmF3IHRodW1iIHByZXNzZWQg
YW5kIG90aGVyIHNlZ21lbnRzIG5vcm1hbAogICAgIC8vIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgdGhl
IGN1cnNvciBhY3R1YWxseSBpcy4gIFNlZSBhbHNvIGZvdXIgcGxhY2VzIGluCkBAIC0xODMsNyAr
MTg5LDcgQEAgaW50IFNjcm9sbGJhclRoZW1lQ2hyb21pdW06OmdldFRoZW1lU3RhdGUoU2Nyb2xs
YmFyKiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQgcGEKICAgICByZXR1cm4gKHNjcm9sbGJhci0+
cHJlc3NlZFBhcnQoKSA9PSBwYXJ0KSA/IFNDUkJTX1BSRVNTRUQgOiBTQ1JCU19OT1JNQUw7CiB9
CiAKLWludCBTY3JvbGxiYXJUaGVtZUNocm9taXVtOjpnZXRUaGVtZUFycm93U3RhdGUoU2Nyb2xs
YmFyKiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQgcGFydCkgY29uc3QKK2ludCBTY3JvbGxiYXJU
aGVtZUNocm9taXVtV2luOjpnZXRUaGVtZUFycm93U3RhdGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIs
IFNjcm9sbGJhclBhcnQgcGFydCkgY29uc3QKIHsKICAgICAvLyBXZSBjb3VsZCB0YWtlIGFkdmFu
dGFnZSBvZiBrbm93aW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHN0YXRlIGVudW0gdG8gd3JpdGUKICAg
ICAvLyBzb21lIHNpbXBsZXIgY29kZSwgYnV0IHRyZWF0aW5nIHRoZSBzdGF0ZSBlbnVtIGFzIGEg
YmxhY2sgYm94IHNlZW1zCkBAIC0yMzMsNyArMjM5LDcgQEAgaW50IFNjcm9sbGJhclRoZW1lQ2hy
b21pdW06OmdldFRoZW1lQXJyb3dTdGF0ZShTY3JvbGxiYXIqIHNjcm9sbGJhciwgU2Nyb2xsYmFy
UGEKICAgICByZXR1cm4gKHNjcm9sbGJhci0+cHJlc3NlZFBhcnQoKSA9PSBwYXJ0KSA/IEFCU19E
T1dOUFJFU1NFRCA6IEFCU19ET1dOTk9STUFMOwogfQogCi1pbnQgU2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bTo6Z2V0Q2xhc3NpY1RoZW1lU3RhdGUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIFNjcm9sbGJh
clBhcnQgcGFydCkgY29uc3QKK2ludCBTY3JvbGxiYXJUaGVtZUNocm9taXVtV2luOjpnZXRDbGFz
c2ljVGhlbWVTdGF0ZShTY3JvbGxiYXIqIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFydCBwYXJ0KSBj
b25zdAogewogICAgIC8vIFdoZW4gZHJhZ2dpbmcgdGhlIHRodW1iLCBkcmF3IHRoZSBidXR0b25z
IG5vcm1hbCBldmVuIHdoZW4gaG92ZXJlZC4KICAgICBpZiAoc2Nyb2xsYmFyLT5wcmVzc2VkUGFy
dCgpID09IFRodW1iUGFydCkKQEAgLTI0Nyw0ICsyNTMsMzIgQEAgaW50IFNjcm9sbGJhclRoZW1l
Q2hyb21pdW06OmdldENsYXNzaWNUaGVtZVN0YXRlKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBTY3Jv
bGxiYXIKICAgICByZXR1cm4gKHNjcm9sbGJhci0+cHJlc3NlZFBhcnQoKSA9PSBwYXJ0KSA/IChE
RkNTX1BVU0hFRCB8IERGQ1NfRkxBVCkgOiAwOwogfQogCitJbnRTaXplIFNjcm9sbGJhclRoZW1l
Q2hyb21pdW1XaW46OmJ1dHRvblNpemUoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCit7CisgICAgLy8g
T3VyIGRlc2lyZWQgcmVjdCBpcyBlc3NlbnRpYWxseSB0aGlja25lc3MgYnkgdGhpY2tuZXNzLgor
CisgICAgLy8gT3VyIGFjdHVhbCByZWN0IHdpbGwgc2hyaW5rIHRvIGhhbGYgdGhlIGF2YWlsYWJs
ZSBzcGFjZSB3aGVuIHdlIGhhdmUgPCAyCisgICAgLy8gdGltZXMgdGhpY2tuZXNzIHBpeGVscyBs
ZWZ0LiAgVGhpcyBhbGxvd3MgdGhlIHNjcm9sbGJhciB0byBzY2FsZSBkb3duCisgICAgLy8gYW5k
IGZ1bmN0aW9uIGV2ZW4gYXQgdGlueSBzaXplcy4KKworICAgIGludCB0aGlja25lc3MgPSBzY3Jv
bGxiYXJUaGlja25lc3Moc2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpKTsKKworICAgIC8vIEluIGxh
eW91dCB0ZXN0IG1vZGUsIHdlIGZvcmNlIHRoZSBidXR0b24gImdpcnRoIiAoaS5lLiwgdGhlIGxl
bmd0aCBvZgorICAgIC8vIHRoZSBidXR0b24gYWxvbmcgdGhlIGF4aXMgb2YgdGhlIHNjcm9sbGJh
cikgdG8gYmUgYSBmaXhlZCBzaXplLgorICAgIC8vIEZJWE1FOiBUaGlzIGlzIHJldGFyZGVkISAg
c2Nyb2xsYmFyVGhpY2tuZXNzIGlzIGFscmVhZHkgZml4ZWQgaW4gbGF5b3V0CisgICAgLy8gdGVz
dCBtb2RlIHNvIHRoYXQgc2hvdWxkIGJlIGVub3VnaCB0byByZXN1bHQgaW4gcmVwZWF0YWJsZSBy
ZXN1bHRzLCBidXQKKyAgICAvLyBwcmVzZXJ2aW5nIHRoaXMgaGFjayBhdm9pZHMgaGF2aW5nIHRv
IHJlYmFzZWxpbmUgcGl4ZWwgdGVzdHMuCisgICAgY29uc3QgaW50IGtMYXlvdXRUZXN0TW9kZUdp
cnRoID0gMTc7CisgICAgaW50IGdpcnRoID0gQ2hyb21pdW1CcmlkZ2U6OmxheW91dFRlc3RNb2Rl
KCkgPyBrTGF5b3V0VGVzdE1vZGVHaXJ0aCA6IHRoaWNrbmVzczsKKworICAgIGlmIChzY3JvbGxi
YXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgeworICAgICAgICBpbnQg
d2lkdGggPSBzY3JvbGxiYXItPndpZHRoKCkgPCAyICogZ2lydGggPyBzY3JvbGxiYXItPndpZHRo
KCkgLyAyIDogZ2lydGg7CisgICAgICAgIHJldHVybiBJbnRTaXplKHdpZHRoLCB0aGlja25lc3Mp
OworICAgIH0KKworICAgIGludCBoZWlnaHQgPSBzY3JvbGxiYXItPmhlaWdodCgpIDwgMiAqIGdp
cnRoID8gc2Nyb2xsYmFyLT5oZWlnaHQoKSAvIDIgOiBnaXJ0aDsKKyAgICByZXR1cm4gSW50U2l6
ZSh0aGlja25lc3MsIGhlaWdodCk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVt
V2luLmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1X
aW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTU1NjVkCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9t
aXVtV2luLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1X
aW5faAorI2RlZmluZSBTY3JvbGxiYXJUaGVtZUNocm9taXVtV2luX2gKKworI2luY2x1ZGUgIlNj
cm9sbGJhclRoZW1lQ2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNz
IFNjcm9sbGJhclRoZW1lQ2hyb21pdW1XaW4gOiBwdWJsaWMgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1
bSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25lc3Mo
U2Nyb2xsYmFyQ29udHJvbFNpemUpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaW52YWxpZGF0ZU9u
TW91c2VFbnRlckV4aXQoKTsKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFNuYXBCYWNrVG9E
cmFnT3JpZ2luKFNjcm9sbGJhciosIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOworCisgICAg
cHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUcmFja1BpZWNlKEdyYXBoaWNz
Q29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0LCBT
Y3JvbGxiYXJQYXJ0IHBhcnRUeXBlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50QnV0dG9u
KEdyYXBoaWNzQ29udGV4dCogZ2MsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0
JiByZWN0LCBTY3JvbGxiYXJQYXJ0IHBhcnRUeXBlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBh
aW50VGh1bWIoR3JhcGhpY3NDb250ZXh0KiBnYywgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0
IEludFJlY3QmIHJlY3QpOworICAgICAgICB2aXJ0dWFsIEludFNpemUgYnV0dG9uU2l6ZShTY3Jv
bGxiYXIqKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGludCBnZXRUaGVtZVN0YXRlKFNjcm9s
bGJhciosIFNjcm9sbGJhclBhcnQpIGNvbnN0OworICAgICAgICBpbnQgZ2V0VGhlbWVBcnJvd1N0
YXRlKFNjcm9sbGJhciosIFNjcm9sbGJhclBhcnQpIGNvbnN0OworICAgICAgICBpbnQgZ2V0Q2xh
c3NpY1RoZW1lU3RhdGUoU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyUGFydCkgY29uc3Q7CisgICAgfTsK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCg==
</data>
<flag name="review"
          id="15718"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>