<?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>51923</bug_id>
          
          <creation_ts>2011-01-05 06:02:02 -0800</creation_ts>
          <short_desc>[GTK] Fork code of ScrollbarThemeGtk that will differ for GTK+ 3</short_desc>
          <delta_ts>2011-01-05 09:26:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>50820</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329524</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-05 06:02:02 -0800</bug_when>
    <thetext>ScrollbarThemeGtk also need to be split into ScrollbarThemeGtk2 and ScrollbarThemeGtk3 for the pieces that will differ when ported to GtkStyleContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329529</commentid>
    <comment_count>1</comment_count>
      <attachid>77995</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-05 06:13:40 -0800</bug_when>
    <thetext>Created attachment 77995
Split ScrollbarThemeGtk into ScrollbarThemeGtk2 and ScrollbarThemeGtk3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329581</commentid>
    <comment_count>2</comment_count>
      <attachid>77995</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-05 08:44:06 -0800</bug_when>
    <thetext>Comment on attachment 77995
Split ScrollbarThemeGtk into ScrollbarThemeGtk2 and ScrollbarThemeGtk3

Alright!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329597</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-01-05 09:24:03 -0800</bug_when>
    <thetext>Committed r75070: &lt;http://trac.webkit.org/changeset/75070&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77995</attachid>
            <date>2011-01-05 06:13:40 -0800</date>
            <delta_ts>2011-01-05 09:26:16 -0800</delta_ts>
            <desc>Split ScrollbarThemeGtk into ScrollbarThemeGtk2 and ScrollbarThemeGtk3</desc>
            <filename>srollbars-fork.diff</filename>
            <type>text/plain</type>
            <size>20314</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDI3M2Q2Mi4uY2NlNDY3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNCBAQAogMjAxMS0wMS0wNSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gRm9yayBjb2RlIG9mIFNjcm9sbGJhclRoZW1l
R3RrIHRoYXQgd2lsbCBkaWZmZXIgZm9yIEdUSysgMworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE5MjMKKworICAgICAgICBTcGxpdCBvdXQgcGllY2Vz
IG9mIFNjcm9sbGJhclRoZW1lR3RrIGludG8gU2Nyb2xsYmFyVGhlbWVHdGsyIGFuZAorICAgICAg
ICBTY3JvbGxiYXJUaGVtZUd0azMgdGhhdCB3aWxsIGRpZmZlciBiZXR3ZWVuIEdUSysgMiBhbmQg
R1RLKyAzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyBzaG91bGQgbm90IGNoYW5nZSBm
dW5jdGlvbmFsaXR5LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCBTY3JvbGxiYXJU
aGVtZUd0azIuY3BwIGFuZCBTY3JvbGxiYXJUaGVtZUd0azMuY3BwCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
clRoZW1lR3RrOjp1cGRhdGVTY3JvbGxiYXJzRnJhbWVUaGlja25lc3MpOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9T
Y3JvbGxiYXJUaGVtZUd0azIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
clRoZW1lR3RrOjp1cGRhdGVUaGVtZVByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWVHdGs6OnBhaW50VHJhY2tCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludFNjcm9sbGJhckJhY2tncm91bmQpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VGh1bWIpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50QnV0dG9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvU2Nyb2xsYmFyVGhlbWVHdGszLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZUd0azo6dXBkYXRlVGhlbWVQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludFRyYWNrQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRTY3JvbGxiYXJCYWNrZ3JvdW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludFRodW1iKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludEJ1dHRvbik6CisKKzIwMTEtMDEtMDUgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KIAogICAgICAgICBbR1RLXSBVc2UgR3RrU3R5bGVDb250
ZXh0IHRvIGdldCBwbGF0Zm9ybSBjb2xvcnMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDExZWI5YzUuLmYwMTA4OGUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMzcwOSw2ICszNzA5LDggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9s
bGJhclRoZW1lR3RrLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3Rr
Mi5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMy5jcHAgXAog
CVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbFZpZXdHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2d0ay9TZWFyY2hQb3B1cE1lbnVHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9T
ZWFyY2hQb3B1cE1lbnVHdGsuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9T
Y3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVt
ZUd0ay5jcHAKaW5kZXggMTBmN2U3MS4uMDgzNWM3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1Njcm9sbGJhclRoZW1lR3RrLmNwcApAQCAtMzAsOSArMzAsNiBAQAogI2luY2x1ZGUgIlJlbmRl
clRoZW1lR3RrLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbGJh
ci5oIgotI2luY2x1ZGUgIldpZGdldFJlbmRlcmluZ0NvbnRleHQuaCIKLSNpbmNsdWRlICJndGtk
cmF3aW5nLmgiCi0jaW5jbHVkZSA8Z3RrL2d0ay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTcyLDIwICs2OSw4IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnVucmVnaXN0ZXJTY3Jv
bGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiAgICAgfQogfQogCi12b2lkIFNjcm9sbGJhclRo
ZW1lR3RrOjp1cGRhdGVUaGVtZVByb3BlcnRpZXMoKQordm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6
dXBkYXRlU2Nyb2xsYmFyc0ZyYW1lVGhpY2tuZXNzKCkKIHsKLSAgICBNb3pHdGtTY3JvbGxiYXJN
ZXRyaWNzIG1ldHJpY3M7Ci0gICAgbW96X2d0a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MoJm1ldHJp
Y3MpOwotCi0gICAgbV90aHVtYkZhdG5lc3MgPSBtZXRyaWNzLnNsaWRlcl93aWR0aDsKLSAgICBt
X3Ryb3VnaEJvcmRlcldpZHRoID0gbWV0cmljcy50cm91Z2hfYm9yZGVyOwotICAgIG1fc3RlcHBl
clNpemUgPSBtZXRyaWNzLnN0ZXBwZXJfc2l6ZTsKLSAgICBtX3N0ZXBwZXJTcGFjaW5nID0gbWV0
cmljcy5zdGVwcGVyX3NwYWNpbmc7Ci0gICAgbV9taW5UaHVtYkxlbmd0aCA9IG1ldHJpY3MubWlu
X3NsaWRlcl9zaXplOwotICAgIG1fdHJvdWdoVW5kZXJTdGVwcGVycyA9IG1ldHJpY3MudHJvdWdo
X3VuZGVyX3N0ZXBwZXJzOwotICAgIG1faGFzRm9yd2FyZEJ1dHRvblN0YXJ0UGFydCA9IG1ldHJp
Y3MuaGFzX3NlY29uZGFyeV9mb3J3YXJkX3N0ZXBwZXI7Ci0gICAgbV9oYXNCYWNrQnV0dG9uRW5k
UGFydCA9IG1ldHJpY3MuaGFzX3NlY29uZGFyeV9iYWNrd2FyZF9zdGVwcGVyOwotCiAgICAgaWYg
KCFnU2Nyb2xsYmFycykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTksNTQgKzE4NCw2IEBAIElu
dFJlY3QgU2Nyb2xsYmFyVGhlbWVHdGs6OnRyYWNrUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwg
Ym9vbCkKICAgICAgICAgICAgICAgICAgICB0aGlja25lc3MsIHNjcm9sbGJhci0+aGVpZ2h0KCkg
LSAoMiAqIG1vdmVtZW50QXhpc1BhZGRpbmcpIC0gYWx0ZXJuYXRlQnV0dG9uV2lkdGgpOwogfQog
Ci12b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludFRyYWNrQmFja2dyb3VuZChHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0
KQotewotICAgIEd0a1dpZGdldFN0YXRlIHN0YXRlOwotICAgIHN0YXRlLmZvY3VzZWQgPSBGQUxT
RTsKLSAgICBzdGF0ZS5pc0RlZmF1bHQgPSBGQUxTRTsKLSAgICBzdGF0ZS5jYW5EZWZhdWx0ID0g
RkFMU0U7Ci0gICAgc3RhdGUuZGlzYWJsZWQgPSBGQUxTRTsKLSAgICBzdGF0ZS5hY3RpdmUgPSBG
QUxTRTsKLSAgICBzdGF0ZS5pbkhvdmVyID0gRkFMU0U7Ci0KLSAgICAvLyBQYWludCB0aGUgdHJh
Y2sgYmFja2dyb3VuZC4gSWYgdGhlIHRyb3VnaC11bmRlci1zdGVwcGVycyBwcm9wZXJ0eSBpcyB0
cnVlLCB0aGlzCi0gICAgLy8gc2hvdWxkIGJlIHRoZSBmdWxsIHNpemUgb2YgdGhlIHNjcm9sbGJh
ciwgYnV0IGlmIGlzIGZhbHNlLCBpdCBzaG91bGQgb25seSBiZSB0aGUKLSAgICAvLyB0cmFjayBy
ZWN0LgotICAgIEludFJlY3QgZnVsbFNjcm9sbGJhclJlY3QgPSByZWN0OwotICAgIGlmIChtX3Ry
b3VnaFVuZGVyU3RlcHBlcnMpCi0gICAgICAgIGZ1bGxTY3JvbGxiYXJSZWN0ID0gSW50UmVjdChz
Y3JvbGxiYXItPngoKSwgc2Nyb2xsYmFyLT55KCksIHNjcm9sbGJhci0+d2lkdGgoKSwgc2Nyb2xs
YmFyLT5oZWlnaHQoKSk7Ci0KLSAgICBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSA9IHNjcm9sbGJh
ci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhciA/IE1PWl9HVEtfU0NST0xMQkFS
X1RSQUNLX1ZFUlRJQ0FMIDogTU9aX0dUS19TQ1JPTExCQVJfVFJBQ0tfSE9SSVpPTlRBTDsKLSAg
ICBXaWRnZXRSZW5kZXJpbmdDb250ZXh0IHdpZGdldENvbnRleHQoY29udGV4dCwgZnVsbFNjcm9s
bGJhclJlY3QpOwotICAgIHdpZGdldENvbnRleHQucGFpbnRNb3ppbGxhV2lkZ2V0KHR5cGUsICZz
dGF0ZSwgMCk7Ci19Ci0KLXZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50U2Nyb2xsYmFyQmFj
a2dyb3VuZChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFNjcm9sbGJhciogc2Nyb2xsYmFyKQot
ewotICAgIC8vIFRoaXMgaXMgdW51c2VkIGJ5IHRoZSBtb3pfZ3RrX3Njcm9sbGVjZF93aW5kb3df
cGFpbnQuCi0gICAgR3RrV2lkZ2V0U3RhdGUgc3RhdGU7Ci0gICAgSW50UmVjdCBmdWxsU2Nyb2xs
YmFyUmVjdCA9IEludFJlY3Qoc2Nyb2xsYmFyLT54KCksIHNjcm9sbGJhci0+eSgpLCBzY3JvbGxi
YXItPndpZHRoKCksIHNjcm9sbGJhci0+aGVpZ2h0KCkpOwotICAgIFdpZGdldFJlbmRlcmluZ0Nv
bnRleHQgd2lkZ2V0Q29udGV4dChjb250ZXh0LCBmdWxsU2Nyb2xsYmFyUmVjdCk7Ci0gICAgd2lk
Z2V0Q29udGV4dC5wYWludE1vemlsbGFXaWRnZXQoTU9aX0dUS19TQ1JPTExFRF9XSU5ET1csICZz
dGF0ZSwgMCk7Ci19Ci0KLXZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VGh1bWIoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYg
cmVjdCkKLXsKLSAgICBHdGtXaWRnZXRTdGF0ZSBzdGF0ZTsKLSAgICBzdGF0ZS5mb2N1c2VkID0g
RkFMU0U7Ci0gICAgc3RhdGUuaXNEZWZhdWx0ID0gRkFMU0U7Ci0gICAgc3RhdGUuY2FuRGVmYXVs
dCA9IEZBTFNFOwotICAgIHN0YXRlLmRpc2FibGVkID0gRkFMU0U7Ci0gICAgc3RhdGUuYWN0aXZl
ID0gc2Nyb2xsYmFyLT5wcmVzc2VkUGFydCgpID09IFRodW1iUGFydDsKLSAgICBzdGF0ZS5pbkhv
dmVyID0gc2Nyb2xsYmFyLT5ob3ZlcmVkUGFydCgpID09IFRodW1iUGFydDsKLSAgICBzdGF0ZS5t
YXhwb3MgPSBzY3JvbGxiYXItPm1heGltdW0oKTsKLSAgICBzdGF0ZS5jdXJwb3MgPSBzY3JvbGxi
YXItPmN1cnJlbnRQb3MoKTsKLQotICAgIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlID0gc2Nyb2xs
YmFyLT5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyID8gTU9aX0dUS19TQ1JPTExC
QVJfVEhVTUJfVkVSVElDQUwgOiBNT1pfR1RLX1NDUk9MTEJBUl9USFVNQl9IT1JJWk9OVEFMOwot
ICAgIFdpZGdldFJlbmRlcmluZ0NvbnRleHQgd2lkZ2V0Q29udGV4dChjb250ZXh0LCByZWN0KTsK
LSAgICB3aWRnZXRDb250ZXh0LnBhaW50TW96aWxsYVdpZGdldCh0eXBlLCAmc3RhdGUsIDApOwot
fQotCiBJbnRSZWN0IFNjcm9sbGJhclRoZW1lR3RrOjp0aHVtYlJlY3QoU2Nyb2xsYmFyKiBzY3Jv
bGxiYXIsIGNvbnN0IEludFJlY3QmIHVuY29uc3RyYWluZWRUcmFja1JlY3QpCiB7CiAgICAgSW50
UmVjdCB0cmFja1JlY3QgPSBjb25zdHJhaW5UcmFja1JlY3RUb1RyYWNrUGllY2VzKHNjcm9sbGJh
ciwgdW5jb25zdHJhaW5lZFRyYWNrUmVjdCk7CkBAIC0zMjYsNDAgKzI2Myw2IEBAIGJvb2wgU2Ny
b2xsYmFyVGhlbWVHdGs6OnBhaW50KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRl
eHQqIGdyYXBoaWNzQ29uCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2Nyb2xsYmFyVGhl
bWVHdGs6OnBhaW50QnV0dG9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QsIFNjcm9sbGJhclBhcnQgcGFydCkKLXsKLSAg
ICBpbnQgZmxhZ3MgPSAwOwotICAgIGlmIChzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVy
dGljYWxTY3JvbGxiYXIpCi0gICAgICAgIGZsYWdzIHw9IE1PWl9HVEtfU1RFUFBFUl9WRVJUSUNB
TDsKLQotICAgIGlmIChwYXJ0ID09IEZvcndhcmRCdXR0b25FbmRQYXJ0KQotICAgICAgICBmbGFn
cyB8PSAoTU9aX0dUS19TVEVQUEVSX0RPV04gfCBNT1pfR1RLX1NURVBQRVJfQk9UVE9NKTsKLSAg
ICBpZiAocGFydCA9PSBGb3J3YXJkQnV0dG9uU3RhcnRQYXJ0KQotICAgICAgICBmbGFncyB8PSBN
T1pfR1RLX1NURVBQRVJfRE9XTjsKLQotICAgIEd0a1dpZGdldFN0YXRlIHN0YXRlOwotICAgIHN0
YXRlLmZvY3VzZWQgPSBUUlVFOwotICAgIHN0YXRlLmlzRGVmYXVsdCA9IFRSVUU7Ci0gICAgc3Rh
dGUuY2FuRGVmYXVsdCA9IFRSVUU7Ci0gICAgc3RhdGUuZGVwcmVzc2VkID0gRkFMU0U7Ci0KLSAg
ICBpZiAoKEJhY2tCdXR0b25TdGFydFBhcnQgPT0gcGFydCAmJiBzY3JvbGxiYXItPmN1cnJlbnRQ
b3MoKSkKLSAgICAgICAgfHwgKEJhY2tCdXR0b25FbmRQYXJ0ID09IHBhcnQgJiYgc2Nyb2xsYmFy
LT5jdXJyZW50UG9zKCkpCi0gICAgICAgIHx8IChGb3J3YXJkQnV0dG9uRW5kUGFydCA9PSBwYXJ0
ICYmIHNjcm9sbGJhci0+Y3VycmVudFBvcygpICE9IHNjcm9sbGJhci0+bWF4aW11bSgpKQotICAg
ICAgICB8fCAoRm9yd2FyZEJ1dHRvblN0YXJ0UGFydCA9PSBwYXJ0ICYmIHNjcm9sbGJhci0+Y3Vy
cmVudFBvcygpICE9IHNjcm9sbGJhci0+bWF4aW11bSgpKSkgewotICAgICAgICBzdGF0ZS5kaXNh
YmxlZCA9IEZBTFNFOwotICAgICAgICBzdGF0ZS5hY3RpdmUgPSBwYXJ0ID09IHNjcm9sbGJhci0+
cHJlc3NlZFBhcnQoKTsKLSAgICAgICAgc3RhdGUuaW5Ib3ZlciA9IHBhcnQgPT0gc2Nyb2xsYmFy
LT5ob3ZlcmVkUGFydCgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXRlLmRpc2FibGVkID0g
VFJVRTsKLSAgICAgICAgc3RhdGUuYWN0aXZlID0gRkFMU0U7Ci0gICAgICAgIHN0YXRlLmluSG92
ZXIgPSBGQUxTRTsKLSAgICB9Ci0KLSAgICBXaWRnZXRSZW5kZXJpbmdDb250ZXh0IHdpZGdldENv
bnRleHQoY29udGV4dCwgcmVjdCk7Ci0gICAgd2lkZ2V0Q29udGV4dC5wYWludE1vemlsbGFXaWRn
ZXQoTU9aX0dUS19TQ1JPTExCQVJfQlVUVE9OLCAmc3RhdGUsIGZsYWdzKTsKLX0KLQogdm9pZCBT
Y3JvbGxiYXJUaGVtZUd0azo6cGFpbnRTY3JvbGxDb3JuZXIoU2Nyb2xsVmlldyogdmlldywgR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBjb3JuZXJSZWN0KQogewogICAg
IC8vIFNjcm9sbGJhclRoZW1lQ29tcG9zaXRlOjpwYWludFNjcm9sbENvcm5lciBpbmNvcnJlY3Rs
eSBhc3N1bWVzIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3Jv
bGxiYXJUaGVtZUd0ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsu
aAppbmRleCA4Zjk5MGQ1Li5lMzY0MmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TY3JvbGxiYXJUaGVtZUd0ay5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJh
clRoZW1lR3RrLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZG91Ymxl
IGluaXRpYWxBdXRvc2Nyb2xsVGltZXJEZWxheSgpIHsgcmV0dXJuIDAuMjA7IH0KICAgICB2aXJ0
dWFsIGRvdWJsZSBhdXRvc2Nyb2xsVGltZXJEZWxheSgpIHsgcmV0dXJuIDAuMDI7IH0KICAgICB2
b2lkIHVwZGF0ZVRoZW1lUHJvcGVydGllcygpOworICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFyc0Zy
YW1lVGhpY2tuZXNzKCk7CiAgICAgdm9pZCByZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXIqKTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0azIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmI3ODJkZDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0azIuY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZUd0ay5oIgorCisjaWZkZWYgR1RLX0FQSV9WRVJTSU9O
XzIKKworI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlJlbmRlclRo
ZW1lR3RrLmgiCisjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgorI2luY2x1ZGUgIlNjcm9sbGJhci5o
IgorI2luY2x1ZGUgIldpZGdldFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJndGtkcmF3
aW5nLmgiCisjaW5jbHVkZSA8Z3RrL2d0ay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Zv
aWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnVwZGF0ZVRoZW1lUHJvcGVydGllcygpCit7CisgICAgTW96
R3RrU2Nyb2xsYmFyTWV0cmljcyBtZXRyaWNzOworICAgIG1vel9ndGtfZ2V0X3Njcm9sbGJhcl9t
ZXRyaWNzKCZtZXRyaWNzKTsKKworICAgIG1fdGh1bWJGYXRuZXNzID0gbWV0cmljcy5zbGlkZXJf
d2lkdGg7CisgICAgbV90cm91Z2hCb3JkZXJXaWR0aCA9IG1ldHJpY3MudHJvdWdoX2JvcmRlcjsK
KyAgICBtX3N0ZXBwZXJTaXplID0gbWV0cmljcy5zdGVwcGVyX3NpemU7CisgICAgbV9zdGVwcGVy
U3BhY2luZyA9IG1ldHJpY3Muc3RlcHBlcl9zcGFjaW5nOworICAgIG1fbWluVGh1bWJMZW5ndGgg
PSBtZXRyaWNzLm1pbl9zbGlkZXJfc2l6ZTsKKyAgICBtX3Ryb3VnaFVuZGVyU3RlcHBlcnMgPSBt
ZXRyaWNzLnRyb3VnaF91bmRlcl9zdGVwcGVyczsKKyAgICBtX2hhc0ZvcndhcmRCdXR0b25TdGFy
dFBhcnQgPSBtZXRyaWNzLmhhc19zZWNvbmRhcnlfZm9yd2FyZF9zdGVwcGVyOworICAgIG1faGFz
QmFja0J1dHRvbkVuZFBhcnQgPSBtZXRyaWNzLmhhc19zZWNvbmRhcnlfYmFja3dhcmRfc3RlcHBl
cjsKKworICAgIHVwZGF0ZVNjcm9sbGJhcnNGcmFtZVRoaWNrbmVzcygpOworfQorCit2b2lkIFNj
cm9sbGJhclRoZW1lR3RrOjpwYWludFRyYWNrQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAg
IEd0a1dpZGdldFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmZvY3VzZWQgPSBGQUxTRTsKKyAgICBz
dGF0ZS5pc0RlZmF1bHQgPSBGQUxTRTsKKyAgICBzdGF0ZS5jYW5EZWZhdWx0ID0gRkFMU0U7Cisg
ICAgc3RhdGUuZGlzYWJsZWQgPSBGQUxTRTsKKyAgICBzdGF0ZS5hY3RpdmUgPSBGQUxTRTsKKyAg
ICBzdGF0ZS5pbkhvdmVyID0gRkFMU0U7CisKKyAgICAvLyBQYWludCB0aGUgdHJhY2sgYmFja2dy
b3VuZC4gSWYgdGhlIHRyb3VnaC11bmRlci1zdGVwcGVycyBwcm9wZXJ0eSBpcyB0cnVlLCB0aGlz
CisgICAgLy8gc2hvdWxkIGJlIHRoZSBmdWxsIHNpemUgb2YgdGhlIHNjcm9sbGJhciwgYnV0IGlm
IGlzIGZhbHNlLCBpdCBzaG91bGQgb25seSBiZSB0aGUKKyAgICAvLyB0cmFjayByZWN0LgorICAg
IEludFJlY3QgZnVsbFNjcm9sbGJhclJlY3QgPSByZWN0OworICAgIGlmIChtX3Ryb3VnaFVuZGVy
U3RlcHBlcnMpCisgICAgICAgIGZ1bGxTY3JvbGxiYXJSZWN0ID0gSW50UmVjdChzY3JvbGxiYXIt
PngoKSwgc2Nyb2xsYmFyLT55KCksIHNjcm9sbGJhci0+d2lkdGgoKSwgc2Nyb2xsYmFyLT5oZWln
aHQoKSk7CisKKyAgICBHdGtUaGVtZVdpZGdldFR5cGUgdHlwZSA9IHNjcm9sbGJhci0+b3JpZW50
YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhciA/IE1PWl9HVEtfU0NST0xMQkFSX1RSQUNLX1ZF
UlRJQ0FMIDogTU9aX0dUS19TQ1JPTExCQVJfVFJBQ0tfSE9SSVpPTlRBTDsKKyAgICBXaWRnZXRS
ZW5kZXJpbmdDb250ZXh0IHdpZGdldENvbnRleHQoY29udGV4dCwgZnVsbFNjcm9sbGJhclJlY3Qp
OworICAgIHdpZGdldENvbnRleHQucGFpbnRNb3ppbGxhV2lkZ2V0KHR5cGUsICZzdGF0ZSwgMCk7
Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50U2Nyb2xsYmFyQmFja2dyb3VuZChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIC8v
IFRoaXMgaXMgdW51c2VkIGJ5IHRoZSBtb3pfZ3RrX3Njcm9sbGVjZF93aW5kb3dfcGFpbnQuCisg
ICAgR3RrV2lkZ2V0U3RhdGUgc3RhdGU7CisgICAgSW50UmVjdCBmdWxsU2Nyb2xsYmFyUmVjdCA9
IEludFJlY3Qoc2Nyb2xsYmFyLT54KCksIHNjcm9sbGJhci0+eSgpLCBzY3JvbGxiYXItPndpZHRo
KCksIHNjcm9sbGJhci0+aGVpZ2h0KCkpOworICAgIFdpZGdldFJlbmRlcmluZ0NvbnRleHQgd2lk
Z2V0Q29udGV4dChjb250ZXh0LCBmdWxsU2Nyb2xsYmFyUmVjdCk7CisgICAgd2lkZ2V0Q29udGV4
dC5wYWludE1vemlsbGFXaWRnZXQoTU9aX0dUS19TQ1JPTExFRF9XSU5ET1csICZzdGF0ZSwgMCk7
Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VGh1bWIoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sK
KyAgICBHdGtXaWRnZXRTdGF0ZSBzdGF0ZTsKKyAgICBzdGF0ZS5mb2N1c2VkID0gRkFMU0U7Cisg
ICAgc3RhdGUuaXNEZWZhdWx0ID0gRkFMU0U7CisgICAgc3RhdGUuY2FuRGVmYXVsdCA9IEZBTFNF
OworICAgIHN0YXRlLmRpc2FibGVkID0gRkFMU0U7CisgICAgc3RhdGUuYWN0aXZlID0gc2Nyb2xs
YmFyLT5wcmVzc2VkUGFydCgpID09IFRodW1iUGFydDsKKyAgICBzdGF0ZS5pbkhvdmVyID0gc2Ny
b2xsYmFyLT5ob3ZlcmVkUGFydCgpID09IFRodW1iUGFydDsKKyAgICBzdGF0ZS5tYXhwb3MgPSBz
Y3JvbGxiYXItPm1heGltdW0oKTsKKyAgICBzdGF0ZS5jdXJwb3MgPSBzY3JvbGxiYXItPmN1cnJl
bnRQb3MoKTsKKworICAgIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlID0gc2Nyb2xsYmFyLT5vcmll
bnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyID8gTU9aX0dUS19TQ1JPTExCQVJfVEhVTUJf
VkVSVElDQUwgOiBNT1pfR1RLX1NDUk9MTEJBUl9USFVNQl9IT1JJWk9OVEFMOworICAgIFdpZGdl
dFJlbmRlcmluZ0NvbnRleHQgd2lkZ2V0Q29udGV4dChjb250ZXh0LCByZWN0KTsKKyAgICB3aWRn
ZXRDb250ZXh0LnBhaW50TW96aWxsYVdpZGdldCh0eXBlLCAmc3RhdGUsIDApOworfQorCit2b2lk
IFNjcm9sbGJhclRoZW1lR3RrOjpwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0LCBTY3JvbGxiYXJQYXJ0
IHBhcnQpCit7CisgICAgaW50IGZsYWdzID0gMDsKKyAgICBpZiAoc2Nyb2xsYmFyLT5vcmllbnRh
dGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKQorICAgICAgICBmbGFncyB8PSBNT1pfR1RLX1NU
RVBQRVJfVkVSVElDQUw7CisKKyAgICBpZiAocGFydCA9PSBGb3J3YXJkQnV0dG9uRW5kUGFydCkK
KyAgICAgICAgZmxhZ3MgfD0gKE1PWl9HVEtfU1RFUFBFUl9ET1dOIHwgTU9aX0dUS19TVEVQUEVS
X0JPVFRPTSk7CisgICAgaWYgKHBhcnQgPT0gRm9yd2FyZEJ1dHRvblN0YXJ0UGFydCkKKyAgICAg
ICAgZmxhZ3MgfD0gTU9aX0dUS19TVEVQUEVSX0RPV047CisKKyAgICBHdGtXaWRnZXRTdGF0ZSBz
dGF0ZTsKKyAgICBzdGF0ZS5mb2N1c2VkID0gVFJVRTsKKyAgICBzdGF0ZS5pc0RlZmF1bHQgPSBU
UlVFOworICAgIHN0YXRlLmNhbkRlZmF1bHQgPSBUUlVFOworICAgIHN0YXRlLmRlcHJlc3NlZCA9
IEZBTFNFOworCisgICAgaWYgKChCYWNrQnV0dG9uU3RhcnRQYXJ0ID09IHBhcnQgJiYgc2Nyb2xs
YmFyLT5jdXJyZW50UG9zKCkpCisgICAgICAgIHx8IChCYWNrQnV0dG9uRW5kUGFydCA9PSBwYXJ0
ICYmIHNjcm9sbGJhci0+Y3VycmVudFBvcygpKQorICAgICAgICB8fCAoRm9yd2FyZEJ1dHRvbkVu
ZFBhcnQgPT0gcGFydCAmJiBzY3JvbGxiYXItPmN1cnJlbnRQb3MoKSAhPSBzY3JvbGxiYXItPm1h
eGltdW0oKSkKKyAgICAgICAgfHwgKEZvcndhcmRCdXR0b25TdGFydFBhcnQgPT0gcGFydCAmJiBz
Y3JvbGxiYXItPmN1cnJlbnRQb3MoKSAhPSBzY3JvbGxiYXItPm1heGltdW0oKSkpIHsKKyAgICAg
ICAgc3RhdGUuZGlzYWJsZWQgPSBGQUxTRTsKKyAgICAgICAgc3RhdGUuYWN0aXZlID0gcGFydCA9
PSBzY3JvbGxiYXItPnByZXNzZWRQYXJ0KCk7CisgICAgICAgIHN0YXRlLmluSG92ZXIgPSBwYXJ0
ID09IHNjcm9sbGJhci0+aG92ZXJlZFBhcnQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0
ZS5kaXNhYmxlZCA9IFRSVUU7CisgICAgICAgIHN0YXRlLmFjdGl2ZSA9IEZBTFNFOworICAgICAg
ICBzdGF0ZS5pbkhvdmVyID0gRkFMU0U7CisgICAgfQorCisgICAgV2lkZ2V0UmVuZGVyaW5nQ29u
dGV4dCB3aWRnZXRDb250ZXh0KGNvbnRleHQsIHJlY3QpOworICAgIHdpZGdldENvbnRleHQucGFp
bnRNb3ppbGxhV2lkZ2V0KE1PWl9HVEtfU0NST0xMQkFSX0JVVFRPTiwgJnN0YXRlLCBmbGFncyk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdUS19BUElfVkVSU0lP
Tl8yCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0azMu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGszLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGQwMjFlCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGszLmNwcApAQCAtMCwwICsxLDE0
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVHdGsuaCIKKworI2lmbmRl
ZiBHVEtfQVBJX1ZFUlNJT05fMgorCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyVGhlbWVHdGsuaCIKKyNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCisjaW5j
bHVkZSAiU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAiV2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgImd0a2RyYXdpbmcuaCIKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6dXBkYXRlVGhlbWVQcm9wZXJ0
aWVzKCkKK3sKKyAgICBNb3pHdGtTY3JvbGxiYXJNZXRyaWNzIG1ldHJpY3M7CisgICAgbW96X2d0
a19nZXRfc2Nyb2xsYmFyX21ldHJpY3MoJm1ldHJpY3MpOworCisgICAgbV90aHVtYkZhdG5lc3Mg
PSBtZXRyaWNzLnNsaWRlcl93aWR0aDsKKyAgICBtX3Ryb3VnaEJvcmRlcldpZHRoID0gbWV0cmlj
cy50cm91Z2hfYm9yZGVyOworICAgIG1fc3RlcHBlclNpemUgPSBtZXRyaWNzLnN0ZXBwZXJfc2l6
ZTsKKyAgICBtX3N0ZXBwZXJTcGFjaW5nID0gbWV0cmljcy5zdGVwcGVyX3NwYWNpbmc7CisgICAg
bV9taW5UaHVtYkxlbmd0aCA9IG1ldHJpY3MubWluX3NsaWRlcl9zaXplOworICAgIG1fdHJvdWdo
VW5kZXJTdGVwcGVycyA9IG1ldHJpY3MudHJvdWdoX3VuZGVyX3N0ZXBwZXJzOworICAgIG1faGFz
Rm9yd2FyZEJ1dHRvblN0YXJ0UGFydCA9IG1ldHJpY3MuaGFzX3NlY29uZGFyeV9mb3J3YXJkX3N0
ZXBwZXI7CisgICAgbV9oYXNCYWNrQnV0dG9uRW5kUGFydCA9IG1ldHJpY3MuaGFzX3NlY29uZGFy
eV9iYWNrd2FyZF9zdGVwcGVyOworCisgICAgdXBkYXRlU2Nyb2xsYmFyc0ZyYW1lVGhpY2tuZXNz
KCk7Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50VHJhY2tCYWNrZ3JvdW5kKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCit7CisgICAgR3RrV2lkZ2V0U3RhdGUgc3RhdGU7CisgICAgc3RhdGUuZm9jdXNl
ZCA9IEZBTFNFOworICAgIHN0YXRlLmlzRGVmYXVsdCA9IEZBTFNFOworICAgIHN0YXRlLmNhbkRl
ZmF1bHQgPSBGQUxTRTsKKyAgICBzdGF0ZS5kaXNhYmxlZCA9IEZBTFNFOworICAgIHN0YXRlLmFj
dGl2ZSA9IEZBTFNFOworICAgIHN0YXRlLmluSG92ZXIgPSBGQUxTRTsKKworICAgIC8vIFBhaW50
IHRoZSB0cmFjayBiYWNrZ3JvdW5kLiBJZiB0aGUgdHJvdWdoLXVuZGVyLXN0ZXBwZXJzIHByb3Bl
cnR5IGlzIHRydWUsIHRoaXMKKyAgICAvLyBzaG91bGQgYmUgdGhlIGZ1bGwgc2l6ZSBvZiB0aGUg
c2Nyb2xsYmFyLCBidXQgaWYgaXMgZmFsc2UsIGl0IHNob3VsZCBvbmx5IGJlIHRoZQorICAgIC8v
IHRyYWNrIHJlY3QuCisgICAgSW50UmVjdCBmdWxsU2Nyb2xsYmFyUmVjdCA9IHJlY3Q7CisgICAg
aWYgKG1fdHJvdWdoVW5kZXJTdGVwcGVycykKKyAgICAgICAgZnVsbFNjcm9sbGJhclJlY3QgPSBJ
bnRSZWN0KHNjcm9sbGJhci0+eCgpLCBzY3JvbGxiYXItPnkoKSwgc2Nyb2xsYmFyLT53aWR0aCgp
LCBzY3JvbGxiYXItPmhlaWdodCgpKTsKKworICAgIEd0a1RoZW1lV2lkZ2V0VHlwZSB0eXBlID0g
c2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyID8gTU9aX0dUS19T
Q1JPTExCQVJfVFJBQ0tfVkVSVElDQUwgOiBNT1pfR1RLX1NDUk9MTEJBUl9UUkFDS19IT1JJWk9O
VEFMOworICAgIFdpZGdldFJlbmRlcmluZ0NvbnRleHQgd2lkZ2V0Q29udGV4dChjb250ZXh0LCBm
dWxsU2Nyb2xsYmFyUmVjdCk7CisgICAgd2lkZ2V0Q29udGV4dC5wYWludE1vemlsbGFXaWRnZXQo
dHlwZSwgJnN0YXRlLCAwKTsKK30KKwordm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRTY3Jv
bGxiYXJCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBzY3Jv
bGxiYXIpCit7CisgICAgLy8gVGhpcyBpcyB1bnVzZWQgYnkgdGhlIG1vel9ndGtfc2Nyb2xsZWNk
X3dpbmRvd19wYWludC4KKyAgICBHdGtXaWRnZXRTdGF0ZSBzdGF0ZTsKKyAgICBJbnRSZWN0IGZ1
bGxTY3JvbGxiYXJSZWN0ID0gSW50UmVjdChzY3JvbGxiYXItPngoKSwgc2Nyb2xsYmFyLT55KCks
IHNjcm9sbGJhci0+d2lkdGgoKSwgc2Nyb2xsYmFyLT5oZWlnaHQoKSk7CisgICAgV2lkZ2V0UmVu
ZGVyaW5nQ29udGV4dCB3aWRnZXRDb250ZXh0KGNvbnRleHQsIGZ1bGxTY3JvbGxiYXJSZWN0KTsK
KyAgICB3aWRnZXRDb250ZXh0LnBhaW50TW96aWxsYVdpZGdldChNT1pfR1RLX1NDUk9MTEVEX1dJ
TkRPVywgJnN0YXRlLCAwKTsKK30KKwordm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRUaHVt
YihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQoreworICAgIEd0a1dpZGdldFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmZv
Y3VzZWQgPSBGQUxTRTsKKyAgICBzdGF0ZS5pc0RlZmF1bHQgPSBGQUxTRTsKKyAgICBzdGF0ZS5j
YW5EZWZhdWx0ID0gRkFMU0U7CisgICAgc3RhdGUuZGlzYWJsZWQgPSBGQUxTRTsKKyAgICBzdGF0
ZS5hY3RpdmUgPSBzY3JvbGxiYXItPnByZXNzZWRQYXJ0KCkgPT0gVGh1bWJQYXJ0OworICAgIHN0
YXRlLmluSG92ZXIgPSBzY3JvbGxiYXItPmhvdmVyZWRQYXJ0KCkgPT0gVGh1bWJQYXJ0OworICAg
IHN0YXRlLm1heHBvcyA9IHNjcm9sbGJhci0+bWF4aW11bSgpOworICAgIHN0YXRlLmN1cnBvcyA9
IHNjcm9sbGJhci0+Y3VycmVudFBvcygpOworCisgICAgR3RrVGhlbWVXaWRnZXRUeXBlIHR5cGUg
PSBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIgPyBNT1pfR1RL
X1NDUk9MTEJBUl9USFVNQl9WRVJUSUNBTCA6IE1PWl9HVEtfU0NST0xMQkFSX1RIVU1CX0hPUkla
T05UQUw7CisgICAgV2lkZ2V0UmVuZGVyaW5nQ29udGV4dCB3aWRnZXRDb250ZXh0KGNvbnRleHQs
IHJlY3QpOworICAgIHdpZGdldENvbnRleHQucGFpbnRNb3ppbGxhV2lkZ2V0KHR5cGUsICZzdGF0
ZSwgMCk7Cit9CisKK3ZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50QnV0dG9uKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJl
Y3QsIFNjcm9sbGJhclBhcnQgcGFydCkKK3sKKyAgICBpbnQgZmxhZ3MgPSAwOworICAgIGlmIChz
Y3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpCisgICAgICAgIGZs
YWdzIHw9IE1PWl9HVEtfU1RFUFBFUl9WRVJUSUNBTDsKKworICAgIGlmIChwYXJ0ID09IEZvcndh
cmRCdXR0b25FbmRQYXJ0KQorICAgICAgICBmbGFncyB8PSAoTU9aX0dUS19TVEVQUEVSX0RPV04g
fCBNT1pfR1RLX1NURVBQRVJfQk9UVE9NKTsKKyAgICBpZiAocGFydCA9PSBGb3J3YXJkQnV0dG9u
U3RhcnRQYXJ0KQorICAgICAgICBmbGFncyB8PSBNT1pfR1RLX1NURVBQRVJfRE9XTjsKKworICAg
IEd0a1dpZGdldFN0YXRlIHN0YXRlOworICAgIHN0YXRlLmZvY3VzZWQgPSBUUlVFOworICAgIHN0
YXRlLmlzRGVmYXVsdCA9IFRSVUU7CisgICAgc3RhdGUuY2FuRGVmYXVsdCA9IFRSVUU7CisgICAg
c3RhdGUuZGVwcmVzc2VkID0gRkFMU0U7CisKKyAgICBpZiAoKEJhY2tCdXR0b25TdGFydFBhcnQg
PT0gcGFydCAmJiBzY3JvbGxiYXItPmN1cnJlbnRQb3MoKSkKKyAgICAgICAgfHwgKEJhY2tCdXR0
b25FbmRQYXJ0ID09IHBhcnQgJiYgc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCkpCisgICAgICAgIHx8
IChGb3J3YXJkQnV0dG9uRW5kUGFydCA9PSBwYXJ0ICYmIHNjcm9sbGJhci0+Y3VycmVudFBvcygp
ICE9IHNjcm9sbGJhci0+bWF4aW11bSgpKQorICAgICAgICB8fCAoRm9yd2FyZEJ1dHRvblN0YXJ0
UGFydCA9PSBwYXJ0ICYmIHNjcm9sbGJhci0+Y3VycmVudFBvcygpICE9IHNjcm9sbGJhci0+bWF4
aW11bSgpKSkgeworICAgICAgICBzdGF0ZS5kaXNhYmxlZCA9IEZBTFNFOworICAgICAgICBzdGF0
ZS5hY3RpdmUgPSBwYXJ0ID09IHNjcm9sbGJhci0+cHJlc3NlZFBhcnQoKTsKKyAgICAgICAgc3Rh
dGUuaW5Ib3ZlciA9IHBhcnQgPT0gc2Nyb2xsYmFyLT5ob3ZlcmVkUGFydCgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHN0YXRlLmRpc2FibGVkID0gVFJVRTsKKyAgICAgICAgc3RhdGUuYWN0aXZl
ID0gRkFMU0U7CisgICAgICAgIHN0YXRlLmluSG92ZXIgPSBGQUxTRTsKKyAgICB9CisKKyAgICBX
aWRnZXRSZW5kZXJpbmdDb250ZXh0IHdpZGdldENvbnRleHQoY29udGV4dCwgcmVjdCk7CisgICAg
d2lkZ2V0Q29udGV4dC5wYWludE1vemlsbGFXaWRnZXQoTU9aX0dUS19TQ1JPTExCQVJfQlVUVE9O
LCAmc3RhdGUsIGZsYWdzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gIUdUS19BUElfVkVSU0lPTl8yCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>