<?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>24364</bug_id>
          
          <creation_ts>2009-03-04 12:19:37 -0800</creation_ts>
          <short_desc>Add HTMLMediaElement canPlayType method</short_desc>
          <delta_ts>2009-03-04 14:30:39 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>112259</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-04 12:19:37 -0800</bug_when>
    <thetext>Add the canPlayType method, define in 4.8.10.3 as:

The canPlayType(type) method must return the string &quot;no&quot; if type is a type that the user agent knows it cannot render; it must return &quot;probably&quot; if the user agent is confident that the type represents a media resource that it can render if used in with this audio or video element; and it must return &quot;maybe&quot; otherwise. Implementors are encouraged to return &quot;maybe&quot; unless the type can be confidently established as being supported or not. Generally, a user agent should never return &quot;probably&quot; if the type doesn&apos;t have a codecs parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112260</commentid>
    <comment_count>1</comment_count>
      <attachid>28280</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-04 12:23:32 -0800</bug_when>
    <thetext>Created attachment 28280
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112263</commentid>
    <comment_count>2</comment_count>
      <attachid>28280</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-03-04 12:43:10 -0800</bug_when>
    <thetext>Comment on attachment 28280
proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112281</commentid>
    <comment_count>3</comment_count>
      <attachid>28283</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-04 13:58:36 -0800</bug_when>
    <thetext>Created attachment 28283
revised patch

Patch revised so MediaPlayer::supportsType now takes a ContentType instead of separate type and codecs parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112283</commentid>
    <comment_count>4</comment_count>
      <attachid>28283</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-03-04 14:04:21 -0800</bug_when>
    <thetext>Comment on attachment 28283
revised patch

r=me

&gt; +    static MediaPlayer::SupportsType supportsType(ContentType contentType);

ContentType can be const here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112287</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-03-04 14:30:39 -0800</bug_when>
    <thetext>Committed revision 41432.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28280</attachid>
            <date>2009-03-04 12:23:32 -0800</date>
            <delta_ts>2009-03-04 13:58:36 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5769</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTQyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMDMtMDQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IAorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgSFRNTE1lZGlhRWxlbWVudCBjYW5QbGF5VHlwZSBt
ZXRob2QuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUpOiBBZGQgY2FuUGxheVR5cGUgbWV0aG9kLgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOiBBZGQgcHJvdG90eXBlLgorICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6IERpdHRvLgorCiAyMDA5LTAzLTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhdmUgSHlhdHQKQEAgLTEwMjgsNyArMTA0MSw3IEBACiAgICAgICAgIChXZWJDb3JlOjpKU1hN
TEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgogICAgICAg
ICAqIGRvbS9FdmVudEV4Y2VwdGlvbi5pZGw6CiAgICAgICAgICogZG9tL0V2ZW50TGlzdGVuZXIu
aWRsOgotICAgICAgICBDaG5hZ2UgdG8gaGF2ZSB0aGUgTm9TdGF0aWNUYWJsZXMgYXR0cmlidXRl
IHNpbmNlIHRoZXkgYXJlIHVzZWQgZnJvbSBYSFIuCisgICAgICAgIENoYW5nZWQgdG8gaGF2ZSB0
aGUgTm9TdGF0aWNUYWJsZXMgYXR0cmlidXRlIHNpbmNlIHRoZXkgYXJlIHVzZWQgZnJvbSBYSFIu
CiAKICAgICAgICAgKiBsb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHA6CiAgICAgICAg
IChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkRmluaXNoTG9hZGluZyk6CkBAIC0xMDQ2LDcgKzEw
NTksNyBAQAogICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGw6CiAgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw6CiAgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmlkbDoKLSAgICAgICAgQ2huYWdlIHRvIGhhdmUgdGhlIE5v
U3RhdGljVGFibGVzIGF0dHJpYnV0ZSBzaW5jZSB0aGV5IGFyZSB1c2VkIGZyb20gWEhSLgorICAg
ICAgICBDaGFuZ2VkIHRvIGhhdmUgdGhlIE5vU3RhdGljVGFibGVzIGF0dHJpYnV0ZSBzaW5jZSB0
aGV5IGFyZSB1c2VkIGZyb20gWEhSLgogCiAyMDA5LTAzLTAxICBIb3JpYSBPbGFydSAgPG9sYXJ1
QGFkb2JlLmNvbT4KIApAQCAtMTIwNTIsNyArMTIwNjUsNyBAQAogCiAgICAgICAgIFJ1YmJlci1z
dGFtcGVkIGJ5IEFkYSBDaGFuLgogCi0gICAgICAgICogZG9tL0RvY3VtZW50Lmg6IENobmFnZWQg
SGl0VGVzdFJlcXVlc3QgdG8gYSBjbGFzcyBmcm9tIGEgc3RydWN0LgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5oOiBDaGFuZ2VkIEhpdFRlc3RSZXF1ZXN0IHRvIGEgY2xhc3MgZnJvbSBhIHN0cnVj
dC4KICAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOiBEaXR0by4KICAgICAgICAgKiByZW5k
ZXJpbmcvRWxsaXBzaXNCb3guaDogRGl0dG8uCiAgICAgICAgICogcmVuZGVyaW5nL0lubGluZUJv
eC5oOiBEaXR0by4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDQx
NDIwKQorKysgV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMDcsNiArMzA3LDI4IEBAIGZsb2F0IEhUTUxNZWRpYUVsZW1lbnQ6OmJ1ZmZlcmluZ1Jh
dGUoKQogICAgIC8vcmV0dXJuIG1fcGxheWVyLT5kYXRhUmF0ZSgpOwogfQogCitTdHJpbmcgSFRN
TE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QK
K3sKKyAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZShtaW1lVHlwZSk7CisgICAgTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShjb250
ZW50VHlwZS50eXBlKCksIGNvbnRlbnRUeXBlLnBhcmFtZXRlcigiY29kZWNzIikpOworCisgICAg
U3RyaW5nIGNhblBsYXk7CisgICAgc3dpdGNoIChzdXBwb3J0KQorICAgIHsKKyAgICAgICAgY2Fz
ZSBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ6CisgICAgICAgICAgICBjYW5QbGF5ID0gIm5v
IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1lZGlhUGxheWVyOjpNYXlCZVN1
cHBvcnRlZDoKKyAgICAgICAgICAgIGNhblBsYXkgPSAibWF5YmUiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTWVkaWFQbGF5ZXI6OklzU3VwcG9ydGVkOgorICAgICAgICAgICAg
Y2FuUGxheSA9ICJwcm9iYWJseSI7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIGNhblBsYXk7Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZChFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9yZXN0cmljdGlvbnMgJiBSZXF1aXJlVXNlckdl
c3R1cmVGb3JMb2FkUmVzdHJpY3Rpb24gJiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDQxMzkzKQorKysgV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsOCBAQCBw
dWJsaWM6CiAgICAgZmxvYXQgYnVmZmVyaW5nUmF0ZSgpOwogICAgIFBhc3NSZWZQdHI8VGltZVJh
bmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICB2b2lkIGxvYWQoRXhjZXB0aW9uQ29kZSYpOwor
ICAgIAorICAgIFN0cmluZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25z
dDsKIAogLy8gcmVhZHkgc3RhdGUKICAgICBlbnVtIFJlYWR5U3RhdGUgeyBEQVRBX1VOQVZBSUxB
QkxFLCBDQU5fU0hPV19DVVJSRU5UX0ZSQU1FLCBDQU5fUExBWSwgQ0FOX1BMQVlfVEhST1VHSCB9
OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAkocmV2aXNpb24gNDEzOTMpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDkgQEAgaW50ZXJmYWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yLCBDb25kaXRpbwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBUaW1lUmFuZ2VzIGJ1ZmZlcmVkOwogICAgIHZvaWQgbG9hZCgpIAog
ICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgCisgICAgRE9NU3RyaW5nIGNhblBs
YXlUeXBlKGluIERPTVN0cmluZyB0eXBlKTsKKwogCiAgICAgLy8gcmVhZHkgc3RhdGUKICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBEQVRBX1VOQVZBSUxBQkxFID0gMDsKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDQxNDI3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMDktMDMtMDQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzY0CisgICAgICAgIFRl
c3QgSFRNTE1lZGlhRWxlbWVudCBjYW5QbGF5VHlwZSBtZXRob2QuCisKKyAgICAgICAgKiBtZWRp
YS92aWRlby1jYW4tcGxheS10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDA5LTAzLTA0ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmUgSHlhdHQKSW5kZXg6IExheW91dFRlc3RzL21lZGlhL3ZpZGVvLWNhbi1wbGF5LXR5cGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBl
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKworPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIHZpZGVvIHsgYmFja2dyb3VuZC1jb2xvcjog
eWVsbG93OyB3aWR0aDogMzIwcHg7IGhlaWdodDogMjQwcHg7fSAKKyAgICAgICAgPC9zdHlsZT4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisKKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzID48L3Zp
ZGVvPgorCisgICAgICAgIDxwPlRlc3QgSFRNTE1lZGlhRWxlbWVudCA8ZW0+Y2FuUGxheVR5cGUo
KTwvZW0+IG1ldGhvZC48L3A+CisKKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgCisgICAgICAgICAgICB2aWRlbyA9
IG1lZGlhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisKKyAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUoKSIsICJubyIpOworICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jYW5QbGF5VHlwZSgndmlkZW8vJykiLCAibm8i
KTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvL2Js
YWhibGFoJykiLCAibm8iKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxh
eVR5cGUoJ3ZpZGVvL21wZWc7IGNvZGVjcz0mcXVvdDthdmMxLjRENDAwQyZxdW90OycpIiwgIm1h
eWJlIik7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNhblBsYXlUeXBlKCcJICAg
ICAgICB2aWRlby9tcDQgIDsgdmlkZW8vbXA0OyBjb2RlY3M9JnF1b3Q7bXA0di4yMC44LCBtcDRh
LjQwLjImcXVvdDsnKSIsICJtYXliZSIpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRl
by5jYW5QbGF5VHlwZSgnYXVkaW8vbXBlZycpIiwgInByb2JhYmx5Iik7CisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLmNhblBsYXlUeXBlKCdhdWRpby93YXYnKSIsICJwcm9iYWJseSIp
OworCisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="13835"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28283</attachid>
            <date>2009-03-04 13:58:36 -0800</date>
            <delta_ts>2009-03-04 14:04:21 -0800</delta_ts>
            <desc>revised patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13147</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTQyOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMDMtMDQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzY0CisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBIVE1MTWVkaWFFbGVtZW50IGNhblBsYXlUeXBlIG1ldGhvZC4gTWFr
ZQorICAgICAgICBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlIHRha2UgYSBDb250ZW50VHlwZSBp
bnN0ZWFkIG9mIGEKKyAgICAgICAgc2VwYXJhdGUgbWltZSB0eXBlIGFuZCBjb2RlY3MgcGFyYW1l
dGVyLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLWNhbi1wbGF5LXR5cGUuaHRtbAorCisg
ICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhblBs
YXlUeXBlKTogQWRkIGNhblBsYXlUeXBlIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmxvYWRJbnRlcm5hbCk6IHNlbGVjdE1lZGlhVVJMIHJldHVybnMgYSBDb250
ZW50VHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlh
VVJMKTogUmV0dXJuIGEgQ29udGVudFR5cGUgaW5zdGVhZCBvZiByYXcgTUlNRSB0eXBlLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aW5pdGlhbFVSTCk6IHNlbGVjdE1lZGlh
VVJMIHJldHVybnMgYSBDb250ZW50VHlwZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDogQWRkIHByb3RvdHlwZS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRs
OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bG9hZCk6IFRha2UgYSBDb250ZW50VHlwZSBp
bnN0ZWFkIG9mIHJhdyBNSU1FIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6
c3VwcG9ydHNUeXBlKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaDoKKwogMjAwOS0wMy0wMiAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkBAIC0xMDQzLDcgKzEwNjgsNyBAQAogICAgICAg
ICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KToKICAgICAgICAgKiBkb20vRXZlbnRFeGNlcHRpb24uaWRsOgogICAgICAgICAqIGRv
bS9FdmVudExpc3RlbmVyLmlkbDoKLSAgICAgICAgQ2huYWdlIHRvIGhhdmUgdGhlIE5vU3RhdGlj
VGFibGVzIGF0dHJpYnV0ZSBzaW5jZSB0aGV5IGFyZSB1c2VkIGZyb20gWEhSLgorICAgICAgICBD
aGFuZ2UgdG8gaGF2ZSB0aGUgTm9TdGF0aWNUYWJsZXMgYXR0cmlidXRlIHNpbmNlIHRoZXkgYXJl
IHVzZWQgZnJvbSBYSFIuCiAKICAgICAgICAgKiBsb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRl
ci5jcHA6CiAgICAgICAgIChXZWJDb3JlOjp3b3JrZXJDb250ZXh0RGlkRmluaXNoTG9hZGluZyk6
CkBAIC0xMDYxLDcgKzEwODYsNyBAQAogICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbi5pZGw6CiAgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw6
CiAgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmlkbDoKLSAgICAgICAgQ2huYWdl
IHRvIGhhdmUgdGhlIE5vU3RhdGljVGFibGVzIGF0dHJpYnV0ZSBzaW5jZSB0aGV5IGFyZSB1c2Vk
IGZyb20gWEhSLgorICAgICAgICBDaGFuZ2UgdG8gaGF2ZSB0aGUgTm9TdGF0aWNUYWJsZXMgYXR0
cmlidXRlIHNpbmNlIHRoZXkgYXJlIHVzZWQgZnJvbSBYSFIuCiAKIDIwMDktMDMtMDEgIEhvcmlh
IE9sYXJ1ICA8b2xhcnVAYWRvYmUuY29tPgogCkBAIC0xMjA2Nyw3ICsxMjA5Miw3IEBACiAKICAg
ICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQWRhIENoYW4uCiAKLSAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDogQ2huYWdlZCBIaXRUZXN0UmVxdWVzdCB0byBhIGNsYXNzIGZyb20gYSBzdHJ1Y3QuCisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6IENoYW5nZWQgSGl0VGVzdFJlcXVlc3QgdG8gYSBjbGFz
cyBmcm9tIGEgc3RydWN0LgogICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IERpdHRvLgog
ICAgICAgICAqIHJlbmRlcmluZy9FbGxpcHNpc0JveC5oOiBEaXR0by4KICAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lQm94Lmg6IERpdHRvLgpJbmRleDogV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNw
cAkocmV2aXNpb24gNDE0MjkpCisrKyBXZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogCisjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAj
aW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtMzQ3LDcgKzM0OCw3IEBAIFBhc3NSZWZQdHI8RG9jdW1l
bnQ+IERPTUltcGxlbWVudGF0aW9uOjoKIAogI2lmIEVOQUJMRShWSURFTykKICAgICAgLy8gQ2hl
Y2sgdG8gc2VlIGlmIHRoZSB0eXBlIGNhbiBiZSBwbGF5ZWQgYnkgb3VyIE1lZGlhUGxheWVyLCBp
ZiBzbyBjcmVhdGUgYSBNZWRpYURvY3VtZW50Ci0gICAgIGlmIChNZWRpYVBsYXllcjo6c3VwcG9y
dHNUeXBlKHR5cGUpKQorICAgICBpZiAoTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShDb250ZW50
VHlwZSh0eXBlKSkpCiAgICAgICAgICByZXR1cm4gTWVkaWFEb2N1bWVudDo6Y3JlYXRlKGZyYW1l
KTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiA0
MTQyOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzA3LDYgKzMwNywyOCBAQCBmbG9hdCBIVE1MTWVkaWFFbGVtZW50OjpidWZmZXJpbmdS
YXRlKCkKICAgICAvL3JldHVybiBtX3BsYXllci0+ZGF0YVJhdGUoKTsKIH0KIAorU3RyaW5nIEhU
TUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0
Cit7CisgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6
OnN1cHBvcnRzVHlwZShDb250ZW50VHlwZShtaW1lVHlwZSkpOworICAgIFN0cmluZyBjYW5QbGF5
OworCisgICAgLy8gNC44LjEwLjMKKyAgICBzd2l0Y2ggKHN1cHBvcnQpCisgICAgeworICAgICAg
ICBjYXNlIE1lZGlhUGxheWVyOjpJc05vdFN1cHBvcnRlZDoKKyAgICAgICAgICAgIGNhblBsYXkg
PSAibm8iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFQbGF5ZXI6Ok1h
eUJlU3VwcG9ydGVkOgorICAgICAgICAgICAgY2FuUGxheSA9ICJtYXliZSI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYVBsYXllcjo6SXNTdXBwb3J0ZWQ6CisgICAgICAg
ICAgICBjYW5QbGF5ID0gInByb2JhYmx5IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICAKKyAgICByZXR1cm4gY2FuUGxheTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2Fk
KEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChtX3Jlc3RyaWN0aW9ucyAmIFJlcXVpcmVV
c2VyR2VzdHVyZUZvckxvYWRSZXN0cmljdGlvbiAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
IHsKQEAgLTMyMCw3ICszNDIsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQoRXhjZXB0
aW9uQ29kCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRJbnRlcm5hbChFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBTdHJpbmcgbWVkaWFTcmM7Ci0gICAgU3RyaW5nIG1lZGlhTUlNRVR5cGU7
CisgICAgQ29udGVudFR5cGUgY29udGVudFR5cGUoIiIpOwogCiAgICAgLy8gMy4xNC45LjQuIExv
YWRpbmcgdGhlIG1lZGlhIHJlc291cmNlCiAgICAgLy8gMQpAQCAtMzY5LDcgKzM5MSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZEludGVybmFsKEV4Y2UKICAgICB9CiAgICAgCiAgICAg
Ly8gNgotICAgIG1lZGlhU3JjID0gc2VsZWN0TWVkaWFVUkwobWVkaWFNSU1FVHlwZSk7CisgICAg
bWVkaWFTcmMgPSBzZWxlY3RNZWRpYVVSTChjb250ZW50VHlwZSk7CiAgICAgaWYgKG1lZGlhU3Jj
LmlzRW1wdHkoKSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICBn
b3RvIGVuZDsKQEAgLTM5OCw3ICs0MjAsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRJ
bnRlcm5hbChFeGNlCiAjZW5kaWYKIAogICAgIHVwZGF0ZVZvbHVtZSgpOwotICAgIG1fcGxheWVy
LT5sb2FkKG1fY3VycmVudFNyYywgbWVkaWFNSU1FVHlwZSk7CisgICAgbV9wbGF5ZXItPmxvYWQo
bV9jdXJyZW50U3JjLCBjb250ZW50VHlwZSk7CiAgICAgaWYgKG1fbG9hZE5lc3RpbmdMZXZlbCA8
IG1fdGVybWluYXRlTG9hZEJlbG93TmVzdGluZ0xldmVsKQogICAgICAgICBnb3RvIGVuZDsKICAg
ICAKQEAgLTk1Miw3ICs5NzQsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXkoKSBj
b25zdAogICAgIHJldHVybiBwYXVzZWQoKSB8fCBlbmRlZCgpIHx8IG5ldHdvcmtTdGF0ZSgpIDwg
TE9BREVEX01FVEFEQVRBOwogfQogCi1TdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TWVk
aWFVUkwoU3RyaW5nJiBtZWRpYU1JTUVUeXBlKQorU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OnNl
bGVjdE1lZGlhVVJMKENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKIHsKICAgICAvLyAzLjE0Ljku
Mi4gTG9jYXRpb24gb2YgdGhlIG1lZGlhIHJlc291cmNlCiAgICAgU3RyaW5nIG1lZGlhU3JjID0g
Z2V0QXR0cmlidXRlKHNyY0F0dHIpOwpAQCAtOTY5LDEyICs5OTEsMTIgQEAgU3RyaW5nIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhVVJMKAogICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChzb3VyY2UtPmhh
c0F0dHJpYnV0ZSh0eXBlQXR0cikpIHsKLSAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUg
Y29udGVudFR5cGUoc291cmNlLT50eXBlKCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIU1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoY29udGVudFR5cGUudHlwZSgpLCBjb250ZW50VHlwZS5w
YXJhbWV0ZXIoImNvZGVjcyIpKSkKKyAgICAgICAgICAgICAgICAgICAgQ29udGVudFR5cGUgdHlw
ZShzb3VyY2UtPnR5cGUoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghTWVkaWFQbGF5ZXI6
OnN1cHBvcnRzVHlwZSh0eXBlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB0eXBlIHdpdGggYWxsIHBhcmFtZXRlcnMg
aW4gcGxhY2Ugc28gdGhlIG1lZGlhIGVuZ2luZSBjYW4gdXNlIHRoZW0KLSAgICAgICAgICAgICAg
ICAgICAgbWVkaWFNSU1FVHlwZSA9IGNvbnRlbnRUeXBlLnJhdygpOworICAgICAgICAgICAgICAg
ICAgICBjb250ZW50VHlwZSA9IHR5cGU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIG1lZGlhU3JjID0gc291cmNlLT5zcmMoKS5zdHJpbmcoKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTEyNjIsNyArMTI4NCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFQbGF5ZXJQcm8KIAogU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmluaXRpYWxVUkwoKQogewot
ICAgIFN0cmluZyBpZ25vcmVkVHlwZTsKKyAgICBDb250ZW50VHlwZSBpZ25vcmVkVHlwZTsKICAg
ICBTdHJpbmcgaW5pdGlhbFNyYyA9IHNlbGVjdE1lZGlhVVJMKGlnbm9yZWRUeXBlKTsKICAgICBt
X2N1cnJlbnRTcmMgPSBpbml0aWFsU3JjOwogICAgIHJldHVybiBpbml0aWFsU3JjOwpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lvbiA0MTQyOSkKKysrIFdlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDggQEAgcHVibGlj
OgogICAgIGZsb2F0IGJ1ZmZlcmluZ1JhdGUoKTsKICAgICBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+
IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgdm9pZCBsb2FkKEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAK
KyAgICBTdHJpbmcgY2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAK
IC8vIHJlYWR5IHN0YXRlCiAgICAgZW51bSBSZWFkeVN0YXRlIHsgREFUQV9VTkFWQUlMQUJMRSwg
Q0FOX1NIT1dfQ1VSUkVOVF9GUkFNRSwgQ0FOX1BMQVksIENBTl9QTEFZX1RIUk9VR0ggfTsKQEAg
LTE4Myw3ICsxODUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYmVnaW5Qcm9jZXNzaW5nTWVkaWFQ
bGF5ZXJDYWxsYmFjaygpIHsgKyttX3Byb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrOyB9CiAg
ICAgdm9pZCBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpIHsgQVNTRVJUKG1fcHJv
Y2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2spOyAtLW1fcHJvY2Vzc2luZ01lZGlhUGxheWVyQ2Fs
bGJhY2s7IH0KIAotICAgIFN0cmluZyBzZWxlY3RNZWRpYVVSTChTdHJpbmcmIG1lZGlhTUlNRVR5
cGUpOworICAgIFN0cmluZyBzZWxlY3RNZWRpYVVSTChDb250ZW50VHlwZSYgY29udGVudFR5cGUp
OwogICAgIHZvaWQgdXBkYXRlVm9sdW1lKCk7CiAgICAgdm9pZCB1cGRhdGVQbGF5U3RhdGUoKTsK
ICAgICBmbG9hdCBlZmZlY3RpdmVTdGFydCgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmlkbAkocmV2aXNpb24gNDE0MjkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDkgQEAgaW50ZXJmYWNlIFtHZW5l
cmF0ZUNvbnN0cnVjdG9yLCBDb25kaXRpbwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUaW1lUmFu
Z2VzIGJ1ZmZlcmVkOwogICAgIHZvaWQgbG9hZCgpIAogICAgICAgICByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisgICAgCisgICAgRE9NU3RyaW5nIGNhblBsYXlUeXBlKGluIERPTVN0cmluZyB0eXBl
KTsKKwogCiAgICAgLy8gcmVhZHkgc3RhdGUKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBEQVRB
X1VOQVZBSUxBQkxFID0gMDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCShyZXZpc2lvbiA0MTQyOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsMTEgKzE5MywxNCBAQCBNZWRp
YVBsYXllcjo6fk1lZGlhUGxheWVyKCkKIHsKIH0KIAotdm9pZCBNZWRpYVBsYXllcjo6bG9hZChj
b25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3ZvaWQgTWVkaWFQbGF5
ZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlw
ZSkKIHsKKyAgICBTdHJpbmcgdHlwZSA9IGNvbnRlbnRUeXBlLnR5cGUoKTsKKyAgICBTdHJpbmcg
Y29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJjb2RlY3MiKTsKKwogICAgIC8vIGlmIHdl
IGRvbid0IGtub3cgdGhlIE1JTUUgdHlwZSwgc2VlIGlmIHRoZSBwYXRoIGNhbiBoZWxwCi0gICAg
U3RyaW5nIHR5cGUgPSBtaW1lVHlwZS5pc0VtcHR5KCkgPyBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRN
SU1FVHlwZUZvclBhdGgodXJsKSA6IG1pbWVUeXBlOwotICAgIFN0cmluZyBjb2RlY3MgPSBDb250
ZW50VHlwZSh0eXBlKS5wYXJhbWV0ZXIoImNvZGVjcyIpOworICAgIGlmICh0eXBlLmlzRW1wdHko
KSkgCisgICAgICAgIHR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgo
dXJsKTsKIAogICAgIE1lZGlhUGxheWVyRmFjdG9yeSogZW5naW5lID0gY2hvb3NlQmVzdEVuZ2lu
ZUZvclR5cGVBbmRDb2RlY3ModHlwZSwgY29kZWNzKTsKIApAQCAtMzc2LDggKzM3OSwxMCBAQCB2
b2lkIE1lZGlhUGxheWVyOjpwYWludChHcmFwaGljc0NvbnRleHQqCiAgICAgbV9wcml2YXRlLT5w
YWludChwLCByKTsKIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllcjo6
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCitN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUoQ29udGVu
dFR5cGUgY29udGVudFR5cGUpCiB7CisgICAgU3RyaW5nIHR5cGUgPSBjb250ZW50VHlwZS50eXBl
KCk7CisgICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRUeXBlLnBhcmFtZXRlcigiY29kZWNzIik7
CiAgICAgTWVkaWFQbGF5ZXJGYWN0b3J5KiBlbmdpbmUgPSBjaG9vc2VCZXN0RW5naW5lRm9yVHlw
ZUFuZENvZGVjcyh0eXBlLCBjb2RlY3MpOwogCiAgICAgaWYgKCFlbmdpbmUpCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCShyZXZpc2lvbiA0MTQyOSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NDAsNiArNDAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENvbnRlbnRUeXBl
OwogY2xhc3MgRnJhbWVWaWV3OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50UmVj
dDsKQEAgLTY1LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgLy8gbWVkaWEgZW5naW5lIHN1cHBv
cnQKICAgICBlbnVtIFN1cHBvcnRzVHlwZSB7IElzTm90U3VwcG9ydGVkLCBJc1N1cHBvcnRlZCwg
TWF5QmVTdXBwb3J0ZWQgfTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBz
dXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGNvZGVjcyA9ICIi
KTsKKyAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGUoQ29u
dGVudFR5cGUgY29udGVudFR5cGUpOwogICAgIHN0YXRpYyB2b2lkIGdldFN1cHBvcnRlZFR5cGVz
KEhhc2hTZXQ8U3RyaW5nPiYpOwogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CiAgICAg
CkBAIC04Miw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHJlY3QoKSBjb25zdCB7IHJl
dHVybiBtX3JlY3Q7IH0KICAgICB2b2lkIHNldFJlY3QoY29uc3QgSW50UmVjdCYgcik7CiAgICAg
Ci0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KTsKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IENvbnRlbnRUeXBlJiBj
b250ZW50VHlwZSk7CiAgICAgdm9pZCBjYW5jZWxMb2FkKCk7CiAgICAgCiAgICAgYm9vbCB2aXNp
YmxlKCkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MTQyOSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5LTAzLTA0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNDM2NAorICAgICAgICBUZXN0IEhUTUxNZWRpYUVsZW1lbnQgY2FuUGxheVR5
cGUgbWV0aG9kLgorCisgICAgICAgICogbWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWNhbi1wbGF5LXR5cGUuaHRtbDog
QWRkZWQuCisKIDIwMDktMDMtMDQgIEtldmluIE1jQ3VsbG91Z2ggIDxrbWNjdWxsb3VnaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgLSBCdWlsZCBib3QgZml4LgpJbmRleDogTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9tZWRpYS92aWRlby1jYW4tcGxheS10eXBlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGVzdCBIVE1MTWVkaWFFbGVtZW50IGNhblBs
YXlUeXBlKCkgbWV0aG9kLgorCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoKSA9PSAnbm8n
KSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby8nKSA9PSAnbm8nKSBPSwor
RVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby9ibGFoYmxhaCcpID09ICdubycpIE9L
CitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoJ3ZpZGVvL21wZWc7IGNvZGVjcz0iYXZjMS40
RDQwMEMiJykgPT0gJ21heWJlJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgnCSB2
aWRlby9tcDQgOyB2aWRlby9tcDQ7IGNvZGVjcz0ibXA0di4yMC44LCBtcDRhLjQwLjIiJykgPT0g
J21heWJlJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgnYXVkaW8vbXBlZycpID09
ICdwcm9iYWJseScpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoJ2F1ZGlvL3dhdicp
ID09ICdwcm9iYWJseScpIE9LCitFTkQgT0YgVEVTVAorCkluZGV4OiBMYXlvdXRUZXN0cy9tZWRp
YS92aWRlby1jYW4tcGxheS10eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tY2FuLXBsYXktdHlwZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tY2FuLXBsYXktdHlwZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMw
IEBACisKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICB2
aWRlbyB7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgd2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDI0
MHB4O30gCisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorCisgICAg
ICAgIDx2aWRlbyBjb250cm9scyA+PC92aWRlbz4KKworICAgICAgICA8cD5UZXN0IEhUTUxNZWRp
YUVsZW1lbnQgPGVtPmNhblBsYXlUeXBlKCk8L2VtPiBtZXRob2QuPC9wPgorCisgICAgICAgIDxz
Y3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgIAorICAgICAgICAgICAgdmlkZW8gPSBtZWRpYSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCd2aWRlbycpWzBdOworCisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmNh
blBsYXlUeXBlKCkiLCAibm8iKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2Fu
UGxheVR5cGUoJ3ZpZGVvLycpIiwgIm5vIik7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLmNhblBsYXlUeXBlKCd2aWRlby9ibGFoYmxhaCcpIiwgIm5vIik7CisgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLmNhblBsYXlUeXBlKCd2aWRlby9tcGVnOyBjb2RlY3M9JnF1b3Q7
YXZjMS40RDQwMEMmcXVvdDsnKSIsICJtYXliZSIpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby5jYW5QbGF5VHlwZSgnCSAgICAgICAgdmlkZW8vbXA0ICA7IHZpZGVvL21wNDsgY29k
ZWNzPSZxdW90O21wNHYuMjAuOCwgbXA0YS40MC4yJnF1b3Q7JykiLCAibWF5YmUiKTsKKyAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uY2FuUGxheVR5cGUoJ2F1ZGlvL21wZWcnKSIsICJw
cm9iYWJseSIpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby5jYW5QbGF5VHlwZSgn
YXVkaW8vd2F2JykiLCAicHJvYmFibHkiKTsKKworICAgICAgICAgICAgZW5kVGVzdCgpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="13837"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>