<?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>167731</bug_id>
          
          <creation_ts>2017-02-02 06:20:39 -0800</creation_ts>
          <short_desc>[GTK] Add initial implementation of resource usage overlay</short_desc>
          <delta_ts>2017-02-03 05:05:14 -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>WebKit Local 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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1272441</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-02 06:20:39 -0800</bug_when>
    <thetext>This is quite useful for developers to debug cpu and memory usage as well as GC timers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272446</commentid>
    <comment_count>1</comment_count>
      <attachid>300406</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-02 06:28:18 -0800</bug_when>
    <thetext>Created attachment 300406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272447</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-02 06:29:48 -0800</bug_when>
    <thetext>You can see a screenshot here:

http://people.igalia.com/cgarcia/mb-resources-overlay.png

This is just an initial version, it doesn&apos;t have cool graphs showing the history like the Apple one, but we can add more stuff later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272496</commentid>
    <comment_count>3</comment_count>
      <attachid>300406</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-02-02 09:54:47 -0800</bug_when>
    <thetext>Comment on attachment 300406
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=300406&amp;action=review

&gt; Source/WebCore/PlatformGTK.cmake:66
&gt; +    page/linux/ResourceUsageOverlayLinux.cpp
&gt; +    page/linux/ResourceUsageThreadLinux.cpp

You have to add this in a Linux conditional somewhere... it&apos;s not going to work on FreeBSD or Darwin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272878</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-03 05:05:14 -0800</bug_when>
    <thetext>Committed r211631: &lt;http://trac.webkit.org/changeset/211631&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300406</attachid>
            <date>2017-02-02 06:28:18 -0800</date>
            <delta_ts>2017-02-02 09:54:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-resources-overlay.diff</filename>
            <type>text/plain</type>
            <size>22961</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4MTM1YTcxOTQxOS4uZjE0
NzYwNjk3MmEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxNy0wMi0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgcmVz
b3VyY2UgdXNhZ2Ugb3ZlcmxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY3NzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRW5hYmxlIFJFU09VUkNFX1VTQUdFLgorCisgICAgICAgICogU291cmNlL2Nt
YWtlL09wdGlvbnNHVEsuY21ha2U6CisKIDIwMTctMDEtMzEgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRp
b25zR1RLLmNtYWtlIGFuZCBORVdTIGZvciAyLjE1LjQgcmVsZWFzZS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkOGQyMTY3
NzNhYi4uMmE4OTQ0MzNjYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wMi0wMiAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
QWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgcmVzb3VyY2UgdXNhZ2Ugb3ZlcmxheQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NzMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIGlucGVj
dG9yIHRlc3RzIGRlcGVuZGluZyBvbiBSRVNPVVJDRV9VU0FHRS4KKworICAgICAgICAqIHBsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE3LTAxLTMxICBSeWFuIEhhZGRhZCAgPHJ5
YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmtpbmcgZ2FtZXBhZC9nYW1lcGFkLXZp
c2liaWxpdHktMS5odG1sIGFzIGZsYWt5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBhNDBkNjU2OTNhNy4uZGM3NjM5Yzk5YTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC02NDQsOSArNjQ0LDYgQEAgd2Via2l0
Lm9yZy9iLzE1MjYyMCBjc3MzL2ZvbnQtdmFyaWFudC1zbWFsbC1jYXBzLXN5bnRoZXNpcy5odG1s
IFsgSW1hZ2VPbmx5RmFpbHUKICMgUmVxdWlyZXMgRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQog
d2Via2l0Lm9yZy9iLzE1MzQ2NiBpbnNwZWN0b3Ivc2FtcGxpbmctcHJvZmlsZXIgWyBTa2lwIF0K
IAotIyBSZXF1aXJlcyBFTkFCTEUoUkVTT1VSQ0VfVVNBR0UpLgotaW5zcGVjdG9yL21lbW9yeSBb
IFNraXAgXQotCiAjIFRoaXMgcmVxdWlyZXMgYSBzcGVjaWZpYyBmb250IG9uIE1hYwogZmFzdC90
ZXh0L2hpZHBpLXRleHQtc2VsZWN0aW9uLWdhcC1iZXR3ZWVuLXdvcmRzLmh0bWwgWyBTa2lwIF0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYTJmNWUwZGNiYTEuLmM3YmYzZGI0ZDAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wMi0wMiAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
QWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgcmVzb3VyY2UgdXNhZ2Ugb3ZlcmxheQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NzMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxzbyBleHBvc2Ug
bmV4dEZpcmVUaW1lKCkgZm9yIEdUSysgcG9ydC4KKworICAgICAgICAqIGhlYXAvR0NBY3Rpdml0
eUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVs
ZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxUaW1lcik6
CisgICAgICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKwogMjAxNy0wMS0zMSAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdmVyaWZ5RWRnZSBh
IFJFTEVBU0VfQVNTRVJUCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9H
Q0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rp
dml0eUNhbGxiYWNrLmNwcAppbmRleCBlNTVkYzZlOWY1MS4uNTkzYjIwYjFhN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApAQCAt
MTIzLDYgKzEyMyw3IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKGRv
dWJsZSBuZXdEZWxheSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9kZWxheSA9IG5ld0RlbGF5
OworICAgIG1fbmV4dEZpcmVUaW1lID0gV1RGOjpjdXJyZW50VGltZSgpICsgbmV3RGVsYXk7CiAg
ICAgaWYgKCFtX2RlbGF5KSB7CiAgICAgICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGlt
ZXIuZ2V0KCksIDApOwogICAgICAgICByZXR1cm47CkBAIC0xNDEsNiArMTQyLDcgQEAgdm9pZCBH
Q0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoZG91YmxlIG5ld0RlbGF5KQogdm9pZCBH
Q0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gLTE7Cisg
ICAgbV9uZXh0RmlyZVRpbWUgPSAwOwogICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGlt
ZXIuZ2V0KCksIC0xKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBlYzk4OGM4YzA2Yi4uM2JhYTIxYjdlYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCkBA
IC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHNfc2hvdWxkQ3JlYXRl
R0NUaW1lcjsKIAotI2lmIFVTRShDRikgfHwgUExBVEZPUk0oRUZMKQorI2lmIFVTRShDRikgfHwg
VVNFKEdMSUIpCiAgICAgZG91YmxlIG5leHRGaXJlVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4
dEZpcmVUaW1lOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlN2JkYzE5YTFiYS4uOGU5OTc5ZmNlOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDItMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFkZCBpbml0aWFsIGltcGxlbWVudGF0
aW9uIG9mIHJlc291cmNlIHVzYWdlIG92ZXJsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzczMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBSRVNPVVJDRV9VU0FHRSBmb3IgR1RLKyBwb3J0
IHRvby4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTAxLTMxICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCB1bnVzZWQg
bV9uZXN0ZWRDb3VudCBmcm9tIFJ1bkxvb3AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDExYmE0YjZjOTU0Li5h
NTRjNzlhZWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTEwLDcgKzExMTAsNyBAQAogI2RlZmluZSBV
U0VfSU9TVVJGQUNFIDEKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgUExBVEZP
Uk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKICNkZWZpbmUgRU5BQkxFX1JFU09VUkNFX1VTQUdF
IDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjM1OWJlNjEwMmQuLjc2MjMyZjBkMTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTctMDItMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFkZCBpbml0aWFsIGltcGxl
bWVudGF0aW9uIG9mIHJlc291cmNlIHVzYWdlIG92ZXJsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzczMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbXBsZW1lbnRhdGlvbiBvZiBSZXNv
dXJjZVVzYWdlT3ZlcmxheSBhbmQgUmVzb3VyY2VVc2FnZVRocmVhZCBmb3IgTGludXggc3lzdGVt
cy4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOiBBZGQgbmV3IG5ldyBmaWxlcyB0byBj
b21waWxhdGlvbi4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c2V0UmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlKTogRG8gbm90IGNyZWF0ZSB0aGUg
cGFnZSBvdmVybGF5IGlmIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzCisgICAgICAgIG5vdCBl
bmFibGVkLgorICAgICAgICAqIHBhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuaDoKKyAgICAgICAg
KiBwYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNwdVVzYWdlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdEJ5
dGVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6Z2NUaW1lclN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZVVzYWdlT3ZlcmxheTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5OjpwbGF0Zm9ybURlc3Ryb3kpOgorICAg
ICAgICAqIHBhZ2UvbGludXgvUmVzb3VyY2VVc2FnZVRocmVhZExpbnV4LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpjcHVQZXJpb2QpOgorICAgICAgICAoV2ViQ29yZTo6Y3B1VXNhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVhZDo6cGxhdGZvcm1UaHJlYWRC
b2R5KToKKwogMjAxNy0wMS0zMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFNpbXBsZSBsaW5lIGxheW91dDogRG8gbm90IGFzc2VydCBvbiB6ZXJvIGxlbmd0aC93
aWR0aCB0cmFpbGluZyB3aGl0ZXNwYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBi
MWM2ZTZiOGNlMS4uYzBiY2QyYTQ4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC02
Miw2ICs2Miw5IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGxvYWRlci9zb3Vw
L0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKICAgICBsb2FkZXIvc291cC9TdWJyZXNvdXJjZUxv
YWRlclNvdXAuY3BwCiAKKyAgICBwYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXgu
Y3BwCisgICAgcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlVGhyZWFkTGludXguY3BwCisKICAgICBw
bGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwCiAgICAgcGxhdGZvcm0vU3RhdGljUGFzdGVib2FyZC5j
cHAKICAgICBwbGF0Zm9ybS9Vc2VyQWdlbnRRdWlya3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCBlNjBjODcxNDRmOC4uYTU5N2Y2M2Q4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjEyMiw3
ICsyMTIyLDcgQEAgdm9pZCBQYWdlOjpzZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGUoYm9v
bCB2aXNpYmxlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX3Jlc291cmNl
VXNhZ2VPdmVybGF5KQorICAgIGlmICghbV9yZXNvdXJjZVVzYWdlT3ZlcmxheSAmJiBtX3NldHRp
bmdzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpKQogICAgICAgICBtX3Jlc291cmNl
VXNhZ2VPdmVybGF5ID0gc3RkOjptYWtlX3VuaXF1ZTxSZXNvdXJjZVVzYWdlT3ZlcmxheT4oKnRo
aXMpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNl
VXNhZ2VPdmVybGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5
LmgKaW5kZXggNmI3NTE2OGRiNWYuLmI5ZDA1Mzg2MWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFJF
U09VUkNFX1VTQUdFKQogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NMYXllci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIK
ICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgpAQCAtODIsNiArODMsMTEgQEAgcHJpdmF0ZToKICAg
ICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9sYXllcjsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9j
b250YWluZXJMYXllcjsKICNlbmRpZgorCisjaWYgT1MoTElOVVgpCisgICAgc3RkOjp1bmlxdWVf
cHRyPEdyYXBoaWNzTGF5ZXI+IG1fcGFpbnRMYXllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllckNsaWVudD4gbV9vdmVybGF5UGFpbnRlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9S
ZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgv
UmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjFjNGUxZTNlYzVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcApAQCAtMCwwICsxLDE2
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VVc2FnZU92ZXJsYXkuaCIKKwor
I2lmIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbW1vblZNLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1l
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VVc2FnZVRocmVhZC5oIgorI2luY2x1ZGUgPHJ1bnRpbWUv
Vk0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgUmVzb3VyY2VVc2FnZURhdGEg
Z0RhdGE7CisKK3N0YXRpYyBTdHJpbmcgY3B1VXNhZ2VTdHJpbmcoZmxvYXQgY3B1VXNhZ2UpCit7
CisgICAgaWYgKGNwdVVzYWdlIDwgMCkKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiPHVu
a25vd24+Iik7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlLjFmJSUiLCBjcHVVc2FnZSk7
Cit9CisKK3N0YXRpYyBTdHJpbmcgZm9ybWF0Qnl0ZU51bWJlcihzaXplX3QgbnVtYmVyKQorewor
ICAgIGlmIChudW1iZXIgPj0gMTAyNCAqIDEwNDg1NzYpCisgICAgICAgIHJldHVybiBTdHJpbmc6
OmZvcm1hdCgiJS4zZiBHQiIsIHN0YXRpY19jYXN0PGRvdWJsZT4obnVtYmVyKSAvICgxMDI0ICog
MTA0ODU3NikpOworICAgIGlmIChudW1iZXIgPj0gMTA0ODU3NikKKyAgICAgICAgcmV0dXJuIFN0
cmluZzo6Zm9ybWF0KCIlLjJmIE1CIiwgc3RhdGljX2Nhc3Q8ZG91YmxlPihudW1iZXIpIC8gMTA0
ODU3Nik7CisgICAgaWYgKG51bWJlciA+PSAxMDI0KQorICAgICAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIiUuMWYga0IiLCBzdGF0aWNfY2FzdDxkb3VibGU+KG51bWJlcikgLyAxMDI0KTsKKyAg
ICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVsdSIsIG51bWJlcik7Cit9CisKK3N0YXRpYyBTdHJp
bmcgZ2NUaW1lclN0cmluZyhkb3VibGUgdGltZXJGaXJlRGF0ZSwgZG91YmxlIG5vdykKK3sKKyAg
ICBpZiAoIXRpbWVyRmlyZURhdGUpCisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIltub3Qg
c2NoZWR1bGVkXSIpOworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJWciLCB0aW1lckZpcmVE
YXRlIC0gbm93KTsKK30KKworc3RhdGljIGNvbnN0IGZsb2F0IGdGb250U2l6ZSA9IDE0OworCitj
bGFzcyBSZXNvdXJjZVVzYWdlT3ZlcmxheVBhaW50ZXIgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NM
YXllckNsaWVudCB7CitwdWJsaWM6CisgICAgUmVzb3VyY2VVc2FnZU92ZXJsYXlQYWludGVyKFJl
c291cmNlVXNhZ2VPdmVybGF5JiBvdmVybGF5KQorICAgICAgICA6IG1fb3ZlcmxheShvdmVybGF5
KQorICAgIHsKKyAgICAgICAgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247
CisgICAgICAgIFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+c3lzdGVtRm9udChDU1NWYWx1
ZU1lc3NhZ2VCb3gsIGZvbnREZXNjcmlwdGlvbik7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRDb21wdXRlZFNpemUoZ0ZvbnRTaXplKTsKKyAgICAgICAgbV90ZXh0Rm9udCA9IEZvbnRDYXNj
YWRlKGZvbnREZXNjcmlwdGlvbiwgMCwgMCk7CisgICAgICAgIG1fdGV4dEZvbnQudXBkYXRlKG51
bGxwdHIpOworICAgIH0KKworICAgIH5SZXNvdXJjZVVzYWdlT3ZlcmxheVBhaW50ZXIoKQorICAg
IHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXApIG92ZXJyaWRlCisgICAgeworICAgICAgICBH
cmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisgICAgICAgIGNv
bnRleHQuZmlsbFJlY3QoY2xpcCwgQ29sb3IoMC4wZiwgMC4wZiwgMC4wZiwgMC44ZikpOworICAg
ICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihDb2xvcigwLjlmLCAwLjlmLCAwLjlmLCAxLmYpKTsK
KworICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0geyAxMCwgMjAgfTsKKyAgICAgICAgU3Ry
aW5nIHN0cmluZyA9ICAiQ1BVOiAiICsgY3B1VXNhZ2VTdHJpbmcoZ0RhdGEuY3B1KTsKKyAgICAg
ICAgY29udGV4dC5kcmF3VGV4dChtX3RleHRGb250LCBUZXh0UnVuKHN0cmluZyksIHBvc2l0aW9u
KTsKKyAgICAgICAgcG9zaXRpb24ubW92ZSgwLCBnRm9udFNpemUgKyAyKTsKKworICAgICAgICBz
dHJpbmcgPSAiTWVtb3J5OiAiICsgZm9ybWF0Qnl0ZU51bWJlcihnRGF0YS50b3RhbERpcnR5U2l6
ZSk7CisgICAgICAgIGNvbnRleHQuZHJhd1RleHQobV90ZXh0Rm9udCwgVGV4dFJ1bihzdHJpbmcp
LCBwb3NpdGlvbik7CisgICAgICAgIHBvc2l0aW9uLm1vdmUoMCwgZ0ZvbnRTaXplICsgMik7CisK
KyAgICAgICAgc3RyaW5nID0gIkV4dGVybmFsOiAiICsgZm9ybWF0Qnl0ZU51bWJlcihnRGF0YS50
b3RhbEV4dGVybmFsU2l6ZSk7CisgICAgICAgIGNvbnRleHQuZHJhd1RleHQobV90ZXh0Rm9udCwg
VGV4dFJ1bihzdHJpbmcpLCBwb3NpdGlvbik7CisgICAgICAgIHBvc2l0aW9uLm1vdmUoMCwgZ0Zv
bnRTaXplICsgMik7CisKKyAgICAgICAgc3RyaW5nID0gIkdDIEhlYXA6ICIgKyBmb3JtYXRCeXRl
TnVtYmVyKGdEYXRhLmNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcF0uZGlydHlTaXpl
KTsKKyAgICAgICAgY29udGV4dC5kcmF3VGV4dChtX3RleHRGb250LCBUZXh0UnVuKHN0cmluZyks
IHBvc2l0aW9uKTsKKyAgICAgICAgcG9zaXRpb24ubW92ZSgwLCBnRm9udFNpemUgKyAyKTsKKwor
ICAgICAgICBzdHJpbmcgPSAiR0Mgb3duZWQ6ICIgKyBmb3JtYXRCeXRlTnVtYmVyKGdEYXRhLmNh
dGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWRdLmRpcnR5U2l6ZSk7CisgICAgICAgIGNv
bnRleHQuZHJhd1RleHQobV90ZXh0Rm9udCwgVGV4dFJ1bihzdHJpbmcpLCBwb3NpdGlvbik7Cisg
ICAgICAgIHBvc2l0aW9uLm1vdmUoMCwgZ0ZvbnRTaXplICsgMik7CisKKyAgICAgICAgZG91Ymxl
IG5vdyA9IFdURjo6Y3VycmVudFRpbWUoKTsKKyAgICAgICAgc3RyaW5nID0gIkVkZW4gR0M6ICIg
KyBnY1RpbWVyU3RyaW5nKGdEYXRhLnRpbWVPZk5leHRFZGVuQ29sbGVjdGlvbiwgbm93KTsKKyAg
ICAgICAgY29udGV4dC5kcmF3VGV4dChtX3RleHRGb250LCBUZXh0UnVuKHN0cmluZyksIHBvc2l0
aW9uKTsKKyAgICAgICAgcG9zaXRpb24ubW92ZSgwLCBnRm9udFNpemUgKyAyKTsKKworICAgICAg
ICBzdHJpbmcgPSAiRnVsbCBHQzogIiArIGdjVGltZXJTdHJpbmcoZ0RhdGEudGltZU9mTmV4dEZ1
bGxDb2xsZWN0aW9uLCBub3cpOworICAgICAgICBjb250ZXh0LmRyYXdUZXh0KG1fdGV4dEZvbnQs
IFRleHRSdW4oc3RyaW5nKSwgcG9zaXRpb24pOworICAgICAgICBwb3NpdGlvbi5tb3ZlKDAsIGdG
b250U2l6ZSArIDIpOworICAgIH0KKworICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1fb3ZlcmxheS5vdmVy
bGF5KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpOworICAgIH0KKworICAgIFJlc291cmNlVXNhZ2VPdmVybGF5JiBtX292ZXJsYXk7Cisg
ICAgRm9udENhc2NhZGUgbV90ZXh0Rm9udDsKK307CisKK3ZvaWQgUmVzb3VyY2VVc2FnZU92ZXJs
YXk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAgbV9vdmVybGF5UGFpbnRlciA9IHN0ZDo6
bWFrZV91bmlxdWU8UmVzb3VyY2VVc2FnZU92ZXJsYXlQYWludGVyPigqdGhpcyk7CisgICAgbV9w
YWludExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKG92ZXJsYXkoKS5wYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICptX292ZXJsYXlQYWludGVyKTsK
KyAgICBtX3BhaW50TGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKKyAgICBt
X3BhaW50TGF5ZXItPnNldFNpemUoeyBub3JtYWxXaWR0aCwgbm9ybWFsSGVpZ2h0IH0pOworICAg
IG1fcGFpbnRMYXllci0+c2V0QmFja2dyb3VuZENvbG9yKENvbG9yKDAuMGYsIDAuMGYsIDAuMGYs
IDAuOGYpKTsKKyAgICBtX3BhaW50TGF5ZXItPnNldERyYXdzQ29udGVudCh0cnVlKTsKKyAgICBv
dmVybGF5KCkubGF5ZXIoKS5hZGRDaGlsZChtX3BhaW50TGF5ZXIuZ2V0KCkpOworCisgICAgUmVz
b3VyY2VVc2FnZVRocmVhZDo6YWRkT2JzZXJ2ZXIodGhpcywgW3RoaXNdIChjb25zdCBSZXNvdXJj
ZVVzYWdlRGF0YSYgZGF0YSkgeworICAgICAgICBnRGF0YSA9IGRhdGE7CisgICAgICAgIG1fcGFp
bnRMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVzb3VyY2VV
c2FnZU92ZXJsYXk6OnBsYXRmb3JtRGVzdHJveSgpCit7CisgICAgUmVzb3VyY2VVc2FnZVRocmVh
ZDo6cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CisgICAgaWYgKCFtX3BhaW50TGF5ZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcGFpbnRMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIG1f
cGFpbnRMYXllciA9IG51bGxwdHI7CisgICAgbV9vdmVybGF5UGFpbnRlciA9IG51bGxwdHI7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9V
U0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2Fn
ZVRocmVhZExpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2Fn
ZVRocmVhZExpbnV4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ODZhNTE4ZjQyMDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4
L1Jlc291cmNlVXNhZ2VUaHJlYWRMaW51eC5jcHAKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlJlc291cmNlVXNhZ2VUaHJlYWQuaCIKKworI2lmIEVOQUJMRShSRVNP
VVJDRV9VU0FHRSkKKworI2luY2x1ZGUgIkN1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmgiCisj
aW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGhlYXAvR0NB
Y3Rpdml0eUNhbGxiYWNrLmg+CisjaW5jbHVkZSA8cnVudGltZS9WTS5oPgorI2luY2x1ZGUgPHN0
ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNs
dWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGF0aWMgZmxvYXQgY3B1UGVyaW9kKCkKK3sKKyAgICBGSUxFKiBmaWxlID0gZm9w
ZW4oIi9wcm9jL3N0YXQiLCAiciIpOworICAgIGlmICghZmlsZSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc3RhdE1heExpbmVMZW5ndGggPSA1MTI7Cisg
ICAgY2hhciBidWZmZXJbc3RhdE1heExpbmVMZW5ndGggKyAxXTsKKyAgICBjaGFyKiBsaW5lID0g
ZmdldHMoYnVmZmVyLCBzdGF0TWF4TGluZUxlbmd0aCwgZmlsZSk7CisgICAgaWYgKCFsaW5lKSB7
CisgICAgICAgIGZjbG9zZShmaWxlKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg
dW5zaWduZWQgbG9uZyBsb25nIHVzZXJUaW1lLCBuaWNlVGltZSwgc3lzdGVtVGltZSwgaWRsZVRp
bWU7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGlvV2FpdCwgaXJxLCBzb2Z0SXJxLCBzdGVhbCwg
Z3Vlc3QsIGd1ZXN0bmljZTsKKyAgICBpb1dhaXQgPSBpcnEgPSBzb2Z0SXJxID0gc3RlYWwgPSBn
dWVzdCA9IGd1ZXN0bmljZSA9IDA7CisgICAgc3NjYW5mKGJ1ZmZlciwgImNwdSAgJTE2bGx1ICUx
NmxsdSAlMTZsbHUgJTE2bGx1ICUxNmxsdSAlMTZsbHUgJTE2bGx1ICUxNmxsdSAlMTZsbHUgJTE2
bGx1IiwKKyAgICAgICAgJnVzZXJUaW1lLCAmbmljZVRpbWUsICZzeXN0ZW1UaW1lLCAmaWRsZVRp
bWUsICZpb1dhaXQsICZpcnEsICZzb2Z0SXJxLCAmc3RlYWwsICZndWVzdCwgJmd1ZXN0bmljZSk7
CisKKyAgICAvLyBLZWVwIHBhcnNpbmcgaWYgd2Ugc3RpbGwgZG9uJ3Qga25vdyBjcHVDb3VudC4K
KyAgICBzdGF0aWMgdW5zaWduZWQgY3B1Q291bnQgPSAwOworICAgIGlmICghY3B1Q291bnQpIHsK
KyAgICAgICAgd2hpbGUgKChsaW5lID0gZmdldHMoYnVmZmVyLCBzdGF0TWF4TGluZUxlbmd0aCwg
ZmlsZSkpKSB7CisgICAgICAgICAgICBpZiAoc3RybGVuKGxpbmUpID4gNCAmJiBsaW5lWzBdID09
ICdjJyAmJiBsaW5lWzFdID09ICdwJyAmJiBsaW5lWzJdID09ICd1JykKKyAgICAgICAgICAgICAg
ICBjcHVDb3VudCsrOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorICAgIGZjbG9zZShmaWxlKTsKKworICAgIGlmICghY3B1Q291bnQp
CisgICAgICAgIHJldHVybiAwOworCisgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBwcmV2
aW91c1RvdGFsVGltZSA9IDA7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsVGltZSA9IHVz
ZXJUaW1lICsgbmljZVRpbWUgKyBzeXN0ZW1UaW1lICsgaXJxICsgc29mdElycSArIGlkbGVUaW1l
ICsgaW9XYWl0ICsgc3RlYWw7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHBlcmlvZCA9IHRvdGFs
VGltZSA+IHByZXZpb3VzVG90YWxUaW1lID8gdG90YWxUaW1lIC0gcHJldmlvdXNUb3RhbFRpbWUg
OiAwOworICAgIHByZXZpb3VzVG90YWxUaW1lID0gdG90YWxUaW1lOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxmbG9hdD4ocGVyaW9kKSAvIGNwdUNvdW50OworfQorCitzdGF0aWMgZmxvYXQgY3B1
VXNhZ2UoKQoreworICAgIGZsb2F0IHBlcmlvZCA9IGNwdVBlcmlvZCgpOworICAgIGlmICghcGVy
aW9kKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpbnQgZmQgPSBvcGVuKCIvcHJvYy9zZWxm
L3N0YXQiLCBPX1JET05MWSk7CisgICAgaWYgKGZkIDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOwor
CisgICAgc3RhdGljIGNvbnN0IHNzaXplX3QgbWF4QnVmZmVyTGVuZ3RoID0gQlVGU0laIC0gMTsK
KyAgICBjaGFyIGJ1ZmZlcltCVUZTSVpdOworICAgIGJ1ZmZlclswXSA9ICdcMCc7CisKKyAgICBz
c2l6ZV90IHRvdGFsQnl0ZXNSZWFkID0gMDsKKyAgICB3aGlsZSAodG90YWxCeXRlc1JlYWQgPCBt
YXhCdWZmZXJMZW5ndGgpIHsKKyAgICAgICAgc3NpemVfdCBieXRlc1JlYWQgPSByZWFkKGZkLCBi
dWZmZXIgKyB0b3RhbEJ5dGVzUmVhZCwgbWF4QnVmZmVyTGVuZ3RoIC0gdG90YWxCeXRlc1JlYWQp
OworICAgICAgICBpZiAoYnl0ZXNSZWFkIDwgMCkgeworICAgICAgICAgICAgaWYgKGVycm5vICE9
IEVJTlRSKSB7CisgICAgICAgICAgICAgICAgY2xvc2UoZmQpOworICAgICAgICAgICAgICAgIHJl
dHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKCFieXRlc1JlYWQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICB0b3RhbEJ5dGVzUmVhZCArPSBieXRlc1JlYWQ7CisgICAgfQorICAgIGNsb3NlKGZkKTsKKyAg
ICBidWZmZXJbdG90YWxCeXRlc1JlYWRdID0gJ1wwJzsKKworICAgIC8vIFNraXAgcGlkIGFuZCBw
cm9jZXNzIG5hbWUuCisgICAgY2hhciogcG9zaXRpb24gPSBzdHJyY2hyKGJ1ZmZlciwgJyknKTsK
KyAgICBpZiAoIXBvc2l0aW9uKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICAvLyBNb3ZlIGFm
dGVyIHN0YXRlLgorICAgIHBvc2l0aW9uICs9IDQ7CisKKyAgICAvLyBTa2lwIHBwaWQsIHBncnAs
IHNpZCwgdHR5X25yLCB0dHlfcGdycCwgZmxhZ3MsIG1pbl9mbHQsIGNtaW5fZmx0LCBtYWpfZmx0
LCBjbWFqX2ZsdC4KKyAgICB1bnNpZ25lZCB0b2tlbnNUb1NraXAgPSAxMDsKKyAgICB3aGlsZSAo
dG9rZW5zVG9Ta2lwLS0pIHsKKyAgICAgICAgd2hpbGUgKCFpc0FTQ0lJU3BhY2UocG9zaXRpb25b
MF0pKQorICAgICAgICAgICAgcG9zaXRpb24rKzsKKyAgICAgICAgcG9zaXRpb24rKzsKKyAgICB9
CisKKyAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHByZXZpb3VzVXRpbWUgPSAwOworICAg
IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcHJldmlvdXNTdGltZSA9IDA7CisgICAgdW5zaWdu
ZWQgbG9uZyBsb25nIHV0aW1lID0gc3RydG91bGwocG9zaXRpb24sICZwb3NpdGlvbiwgMTApOwor
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzdGltZSA9IHN0cnRvdWxsKHBvc2l0aW9uLCAmcG9zaXRp
b24sIDEwKTsKKyAgICBmbG9hdCB1c2FnZSA9ICh1dGltZSArIHN0aW1lIC0gKHByZXZpb3VzVXRp
bWUgKyBwcmV2aW91c1N0aW1lKSkgLyBwZXJpb2QgKiAxMDAuMDsKKyAgICBwcmV2aW91c1V0aW1l
ID0gdXRpbWU7CisgICAgcHJldmlvdXNTdGltZSA9IHN0aW1lOworCisgICAgcmV0dXJuIGNsYW1w
VG88ZmxvYXQ+KHVzYWdlLCAwLCAxMDApOworfQorCit2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6
OnBsYXRmb3JtVGhyZWFkQm9keShKU0M6OlZNKiB2bSwgUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEp
Cit7CisgICAgZGF0YS5jcHUgPSBjcHVVc2FnZSgpOworCisgICAgUHJvY2Vzc01lbW9yeVN0YXR1
cyBtZW1vcnlTdGF0dXM7CisgICAgY3VycmVudFByb2Nlc3NNZW1vcnlTdGF0dXMobWVtb3J5U3Rh
dHVzKTsKKyAgICBkYXRhLnRvdGFsRGlydHlTaXplID0gbWVtb3J5U3RhdHVzLnJlc2lkZW50IC0g
bWVtb3J5U3RhdHVzLnNoYXJlZDsKKworICAgIHNpemVfdCBjdXJyZW50R0NIZWFwQ2FwYWNpdHkg
PSB2bS0+aGVhcC5ibG9ja0J5dGVzQWxsb2NhdGVkKCk7CisgICAgc2l6ZV90IGN1cnJlbnRHQ093
bmVkRXh0cmEgPSB2bS0+aGVhcC5leHRyYU1lbW9yeVNpemUoKTsKKyAgICBzaXplX3QgY3VycmVu
dEdDT3duZWRFeHRlcm5hbCA9IHZtLT5oZWFwLmV4dGVybmFsTWVtb3J5U2l6ZSgpOworICAgIFJF
TEVBU0VfQVNTRVJUKGN1cnJlbnRHQ093bmVkRXh0ZXJuYWwgPD0gY3VycmVudEdDT3duZWRFeHRy
YSk7CisKKyAgICBkYXRhLmNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcF0uZGlydHlT
aXplID0gY3VycmVudEdDSGVhcENhcGFjaXR5OworICAgIGRhdGEuY2F0ZWdvcmllc1tNZW1vcnlD
YXRlZ29yeTo6R0NPd25lZF0uZGlydHlTaXplID0gY3VycmVudEdDT3duZWRFeHRyYSAtIGN1cnJl
bnRHQ093bmVkRXh0ZXJuYWw7CisgICAgZGF0YS5jYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpH
Q093bmVkXS5leHRlcm5hbFNpemUgPSBjdXJyZW50R0NPd25lZEV4dGVybmFsOworCisgICAgZGF0
YS50b3RhbEV4dGVybmFsU2l6ZSA9IGN1cnJlbnRHQ093bmVkRXh0ZXJuYWw7CisKKyAgICBkYXRh
LnRpbWVPZk5leHRFZGVuQ29sbGVjdGlvbiA9IHZtLT5oZWFwLmVkZW5BY3Rpdml0eUNhbGxiYWNr
KCktPm5leHRGaXJlVGltZSgpOworICAgIGRhdGEudGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9uID0g
dm0tPmhlYXAuZnVsbEFjdGl2aXR5Q2FsbGJhY2soKS0+bmV4dEZpcmVUaW1lKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9VU0FHRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5NWI1ZmJhNmMwOC4uYWY1YjI2ZmNmOTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0wMi0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2Yg
cmVzb3VyY2UgdXNhZ2Ugb3ZlcmxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY3NzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVG9nZ2xlIHRoZSByZXNvdXJjZSB1c2FnZSBvdmVybGF5IHZpc2liaWxp
dHkgYnkgcHJlc3NpbmcgQ1RSTCArIFNoaWZ0ICsgVS4gT25seSBhdmFpbGFibGUgd2hlbiBidWls
ZGluZyB3aXRoCisgICAgICAgIGRldmVsb3BlciBtb2RlIGVuYWJsZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHA6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZUtleVByZXNzRXZlbnQpOgorCiAyMDE3LTAxLTMxICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJSVENdW1dlYktpdDJdIFN1cHBvcnQg
ZXhwYW5kaW5nIHRoZSBzYW5kYm94IHRvIGFsbG93IG1pY3JvcGhvbmUgYWNjZXNzIGF0IHByb2Nl
c3MgbGF1bmNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggMDRjN2U5NTQ3MjkuLmE1MGRlMDc4ZjAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0Jhc2UuY3BwCkBAIC02ODMsNiArNjgzLDE1IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRXZWJW
aWV3QmFzZUtleVByZXNzRXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50S2V5KiBrCiAg
ICAgV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlID0gV0VCS0lUX1dFQl9WSUVXX0JBU0Uo
d2lkZ2V0KTsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSB3ZWJWaWV3QmFz
ZS0+cHJpdjsKIAorI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgT1MoTElOVVgpCisgICAg
aWYgKChrZXlFdmVudC0+c3RhdGUgJiAoR0RLX0NPTlRST0xfTUFTSyB8IEdES19TSElGVF9NQVNL
KSkgJiYga2V5RXZlbnQtPmtleXZhbCA9PSBHREtfS0VZX1UpIHsKKyAgICAgICAgYXV0byYgcHJl
ZmVyZW5jZXMgPSBwcml2LT5wYWdlUHJveHktPnByZWZlcmVuY2VzKCk7CisgICAgICAgIHByZWZl
cmVuY2VzLnNldFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZSghcHJlZmVyZW5jZXMucmVzb3Vy
Y2VVc2FnZU92ZXJsYXlWaXNpYmxlKCkpOworICAgICAgICBwcml2LT5zaG91bGRGb3J3YXJkTmV4
dEtleUV2ZW50ID0gRkFMU0U7CisgICAgICAgIHJldHVybiBUUlVFOworICAgIH0KKyNlbmRpZgor
CiAgICAgaWYgKHByaXYtPmF1dGhlbnRpY2F0aW9uRGlhbG9nKQogICAgICAgICByZXR1cm4gR1RL
X1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfYmFzZV9wYXJlbnRfY2xhc3MpLT5rZXlfcHJl
c3NfZXZlbnQod2lkZ2V0LCBrZXlFdmVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggZjI0
ZjE2OTRmY2IuLjcxZTFjYjAwZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMTcxLDYgKzE3
MSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DT05U
Uk9MU19TQ1JJUFQgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NSFRNTCBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX05PVElGSUNBVElPTlMgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QgUFJJVkFURSBPTikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSBQUklWQVRF
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NNT09USF9TQ1JP
TExJTkcgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9VU0VSU0VMRUNUX0FMTCBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUyBQUklWQVRFIE9OKQo=
</data>
<flag name="review"
          id="322298"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>