<?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>195284</bug_id>
          
          <creation_ts>2019-03-04 10:11:55 -0800</creation_ts>
          <short_desc>[iOS] Improve our file picker</short_desc>
          <delta_ts>2019-03-19 11:27:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=195955</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195955</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1512215</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-04 10:11:55 -0800</bug_when>
    <thetext>Improve our file picker on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512216</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-04 10:12:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/45655856&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512224</commentid>
    <comment_count>2</comment_count>
      <attachid>363523</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-04 10:26:21 -0800</bug_when>
    <thetext>Created attachment 363523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512234</commentid>
    <comment_count>3</comment_count>
      <attachid>363523</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-03-04 10:45:48 -0800</bug_when>
    <thetext>Comment on attachment 363523
Patch

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

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:321
&gt; +        if (auto UTI = adoptCF(UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, (CFStringRef)mimeType, NULL)))

Can this use UTIUtilities&apos; UTIFromMIMEType?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512235</commentid>
    <comment_count>4</comment_count>
      <attachid>363523</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-03-04 10:46:34 -0800</bug_when>
    <thetext>Comment on attachment 363523
Patch

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

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:60
&gt; +static bool arrayContainsUTIThatConformsTo(NSArray* utis, CFStringRef conformToUTI)

Nit - This type should be NSArray&lt;NSString *&gt; *.

&quot;utis&quot; is also a bit of a strange variable name...perhaps &quot;typeIdentifiers&quot; or just &quot;types&quot;?

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:62
&gt; +    for (id uti in utis) {

NSString *

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:63
&gt; +        if (UTTypeConformsTo((CFStringRef)uti, conformToUTI))

(__bridge CFStringRef)

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:322
&gt; +            [mediaTypes addObject:(NSString *)UTI.get()];

(__bridge NSString *)

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:363
&gt; +    NSArray *documentTypes = mediaTypes.count ? mediaTypes : @[@&quot;public.item&quot;];

Nit - This isn&apos;t new code, but maybe consider using the kUTTypeItem constant instead of @&quot;public.item&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512253</commentid>
    <comment_count>5</comment_count>
      <attachid>363532</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-04 11:43:12 -0800</bug_when>
    <thetext>Created attachment 363532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512289</commentid>
    <comment_count>6</comment_count>
      <attachid>363532</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-04 12:21:06 -0800</bug_when>
    <thetext>Comment on attachment 363532
Patch

Clearing flags on attachment: 363532

Committed r242369: &lt;https://trac.webkit.org/changeset/242369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512290</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-04 12:21:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363523</attachid>
            <date>2019-03-04 10:26:21 -0800</date>
            <delta_ts>2019-03-04 11:43:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195284-20190304102620.patch</filename>
            <type>text/plain</type>
            <size>14465</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI2NjQ5ZGM5ZTY3ZDQ4
MjlkNThiMzBjOGYyMDY3ODExZGQwYWU3Ni4uNTRmMTQwOWJhNWIyMjRmNTIxNjU0ZGRjY2JlOTYw
YmI1NWZjNTliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gSW1wcm92ZSBvdXIg
ZmlsZSBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTI4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU2NTU4NTY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3J0IFVUSVV0aWxpdGll
cy5oIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgZnJvbSBXZWJLaXQyLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTAzLTAxICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBOZXR3b3JrU3RhdGVOb3Rp
Zmllcjo6c2luZ2xldG9uKCkncyBpc01haW5UaHJlYWQoKSBhc3NlcnRpb24gd2hlbiB0aGUgV2Vi
VGhyZWFkIGlzIGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjczODI1ZjZlY2Q1ZWI0ZjY3ZmJhNDJhZjVl
YjkwOWJhYzEwMjZiOC4uMzdlMWE4NTI1NWQ1YTE5NGQ3ZTlkNDA3NTYzZDk0YTdmODY0YTE2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOS0wMy0wNCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcHJvdmUgb3VyIGZpbGUgcGlja2VyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUyODQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1NjU1ODU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcHJvdmUgb3VyIGZpbGUgcGlja2VyIG9uIGlPUyBz
byB0aGF0OgorICAgICAgICAtIEFjY2VwdGVkIGZpbGUgZXh0ZW5zaW9ucyBzcGVjaWZpZWQgaW4g
dGhlIEhUTUwgKGUuZy4gPGlucHV0IHR5cGU9ImZpbGUiPiBhY2NlcHQ9Ii5wZGYiPikgYXJlIG5v
dworICAgICAgICAgIHByb3Blcmx5IHJlZmxlY3RlZCBpbiB0aGUgZmlsZSBwaWNrZXIuIFByZXZp
b3VzbHksIHdlIG9ubHkgd2Ugb25seSBzdXBwb3J0ZWQgTUlNRSB0eXBlcyBpbiB0aGUKKyAgICAg
ICAgICBhY2NlcHQgYXR0cmlidXRlIHRoYXQgb25seSBJbWFnZSAvIFZpZGVvIG9uZXMuCisgICAg
ICAgIC0gSWYgYWNjZXB0ZWQgdHlwZXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgSFRNTCBhbmQgbm90
IG9mIHRoZW0gYXJlIFZpZGVvIG9yIEltYWdlIHR5cGVzLCB0aGVuIGJ5cGFzcworICAgICAgICAg
IHRoZSBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIGFuZCBzaG93IHRoZSBmaWxlIHBpY2tl
ciBkaXJlY3RseSAoYXMgaWYgdGhlIHVzZXIgaGFkIHRhcHBlZCBvbgorICAgICAgICAgICJCcm93
c2UuLi4iIG9uIHRoYXQgbWVudSkuIE90aGVyIG1lbnUgaXRlbXMgc3VjaCBhcyAiVGFrZSBQaG90
byBvciBWaWRlbyIgYW5kICJQaG90byBMaWJyYXJ5IiBkbworICAgICAgICAgIG5vdCBtYWtlIHNl
bnNlIGlmIHRoZSBwYWdlIG9ubHkgYWNjZXB0cyBQREYgZmlsZXMgZm9yIGV4YW1wbGUuCisKKyAg
ICAgICAgVGhpbmdzIHRoYXQgd2Ugc2hvdWxkIGRvIGJ1dCBhcmUgbm90IGZpeGVkIGluIHRoaXMg
cGF0Y2g6CisgICAgICAgIC0gU3RvcCB1c2luZyBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVy
IGVudGlyZWx5IHNpbmNlIGl0IHdhcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHVzaW5nCisgICAg
ICAgICAgVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGRpcmVjdGx5LgorICAgICAgICAt
IEFkZCBtdWx0aXBsZSBzZWxlY3Rpb24gc3VwcG9ydCwgd2hpY2ggaXMgc3VwcG9ydGVkIGJvdGgg
b24gdGhlIEhUTUwgc2lkZSBhbmQgaW4gdGhlCisgICAgICAgICAgVUlEb2N1bWVudFBpY2tlclZp
ZXdDb250cm9sbGVyIEFQSS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW06CisgICAgICAgIChhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8p
OgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBkZWFsbG9jXSk6CisgICAgICAgICgtW1dL
RmlsZVVwbG9hZFBhbmVsIHByZXNlbnRXaXRoUGFyYW1ldGVyczpyZXN1bHRMaXN0ZW5lcjpdKToK
KyAgICAgICAgKFVUSXNGb3JNSU1FVHlwZXMpOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5l
bCBfbWVkaWFUeXBlc0ZvclBpY2tlclNvdXJjZVR5cGU6XSk6CisgICAgICAgICgtW1dLRmlsZVVw
bG9hZFBhbmVsIF9jYW1lcmFCdXR0b25MYWJlbEFsbG93aW5nUGhvdG86YWxsb3dpbmdWaWRlbzpd
KToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Nob3dEb2N1bWVudFBpY2tlck1lbnVd
KToKKwogMjAxOS0wMy0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIERyb3AgY2FjaGVkIFdlYlByb2Nlc3NlcyBmb3IgYSBnaXZlbiBzZXNzaW9uIHdoZW4gdGhp
cyBzZXNzaW9uIGlzIGRlc3Ryb3llZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0NDE5NTk3NzliYzA3MGZhNGUzNDQxZTM4Y2M1
ZmI1MTczOWRiMzYuLjUyODExNzVlODI5MzBkYmRjZTM3MTZjZGRkZWI3YTkyODIzZWUzNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTY1OSw3ICs2NTksNyBAQAogCQkxRjNDM0JFQjEzNUNBRjNDMDBCOEMxQUMgLyogTWVkaWFD
b250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUYzQzNCRTkxMzVDQUYzQzAwQjhDMUFDIC8qIE1lZGlhQ29udHJvbHMuaCAqLzsgfTsKIAkJMUY3
MkJGMEIxODdGRDQ1QzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUY3MkJGMDkx
ODdGRDQyNzAwMDlCQ0IzIC8qIFRpbGVDb250cm9sbGVyTWVtb3J5SGFuZGxlcklPUy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGODc1NkIyMUUy
MkMzMzUwMDQyQzQwRCAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGODc1NkIxMUUyMkJFRUYw
MDQyQzQwRCAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxRkFGQkYxOTE1QTVGQTc0MDAw
ODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRkFGQkYxNjE1QTVGQTUyMDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmgg
Ki87IH07CisJCTFGQUZCRjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQUZCRjE2MTVBNUZB
NTIwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxRkM0MEZCQTE2NTVDQ0I5MDA0MEYyOUUgLyogU3ViaW1h
Z2VDYWNoZVdpdGhUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUZDNDBGQjcxNjU1QzU5MTAwNDBGMjlFIC8qIFN1YmltYWdlQ2FjaGVXaXRoVGlt
ZXIuaCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
ICovOyB9OwogCQkyMjVBMTZCNTBENUMxMUU5MDAwOTAyOTUgLyogV2ViRXZlbnRSZWdpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNUExNkIzMEQ1
QzExRTkwMDA5MDI5NSAvKiBXZWJFdmVudFJlZ2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KaW5kZXggZWY2YTU0MmYyNzA3MTJk
ZjY0YWJhYzdhZWYxYThlYTFjMTk3NTZhZi4uZjQ1NmIwZjJhNjZiMDNhNjE1NWJiYzQ0OTEyMDI4
YjMwM2E2NDAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRmlsZVVwbG9hZFBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpAQCAtNDEsOCArNDEsMTIgQEAKICNpbXBvcnQgIldl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5o
IgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2lt
cG9ydCA8VUlLaXQvVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdp
c3RyeS5oPgorI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIApAQCAtNTMsNiArNTcsMTUgQEAgc3RhdGljIGlubGluZSBVSUltYWdl
UGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZSBjYW1lcmFEZXZpY2VGb3JNZWRpYUNhcHR1cmVU
eXAKICAgICByZXR1cm4gbWVkaWFDYXB0dXJlVHlwZSA9PSBXZWJDb3JlOjpNZWRpYUNhcHR1cmVU
eXBlVXNlciA/IFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyQ2FtZXJhRGV2aWNlRnJvbnQgOiBVSUlt
YWdlUGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZVJlYXI7CiB9CiAKK3N0YXRpYyBib29sIGFy
cmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhOU0FycmF5KiB1dGlzLCBDRlN0cmluZ1JlZiBj
b25mb3JtVG9VVEkpCit7CisgICAgZm9yIChpZCB1dGkgaW4gdXRpcykgeworICAgICAgICBpZiAo
VVRUeXBlQ29uZm9ybXNUbygoQ0ZTdHJpbmdSZWYpdXRpLCBjb25mb3JtVG9VVEkpKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogI3ByYWdt
YSBtYXJrIC0gRG9jdW1lbnQgcGlja2VyIGljb25zCiAKIHN0YXRpYyBpbmxpbmUgVUlJbWFnZSAq
cGhvdG9MaWJyYXJ5SWNvbigpCkBAIC0xNjMsNiArMTc2LDcgQEAgQGltcGxlbWVudGF0aW9uIFdL
RmlsZVVwbG9hZFBhbmVsIHsKICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJvbGxlcj4gX3By
ZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFjdGlvbiBzaGVldCBhbmQgUGhvdG8gTGli
cmFyeS4KICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBSZXRhaW5Q
dHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50TWVudUNvbnRyb2xsZXI7
CisgICAgUmV0YWluUHRyPFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50
UGlja2VyQ29udHJvbGxlcjsKICAgICBXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlIF9tZWRpYUNh
cHR1cmVUeXBlOwogfQogCkBAIC0xNzksNiArMTkzLDcgQEAgLSAodm9pZClkZWFsbG9jCiAgICAg
W19pbWFnZVBpY2tlciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtfcHJlc2VudGF0aW9uUG9wb3Zl
ciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBzZXREZWxl
Z2F0ZTpuaWxdOworICAgIFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOm5p
bF07CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CkBAIC0yMzMsNiArMjQ4LDE0IEBAIC0gKHZv
aWQpcHJlc2VudFdpdGhQYXJhbWV0ZXJzOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFt
ZXRlcnMgcmVzdWx0TGlzdGVuCiAgICAgTlNNdXRhYmxlQXJyYXkgKm1pbWVUeXBlcyA9IFtOU011
dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTphY2NlcHRNaW1lVHlwZXMtPnNpemUoKV07CiAg
ICAgZm9yIChhdXRvIG1pbWVUeXBlIDogYWNjZXB0TWltZVR5cGVzLT5lbGVtZW50c09mVHlwZTxB
UEk6OlN0cmluZz4oKSkKICAgICAgICAgW21pbWVUeXBlcyBhZGRPYmplY3Q6bWltZVR5cGUtPnN0
cmluZygpXTsKKworICAgIFJlZjxBUEk6OkFycmF5PiBhY2NlcHRGaWxlRXh0ZW5zaW9ucyA9IHBh
cmFtZXRlcnMtPmFjY2VwdEZpbGVFeHRlbnNpb25zKCk7CisgICAgZm9yIChhdXRvIGV4dGVuc2lv
biA6IGFjY2VwdEZpbGVFeHRlbnNpb25zLT5lbGVtZW50c09mVHlwZTxBUEk6OlN0cmluZz4oKSkg
eworICAgICAgICBTdHJpbmcgbWltZVR5cGUgPSBXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojpn
ZXRNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24tPnN0cmluZ1ZpZXcoKS5zdWJzdHJpbmco
MSkudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghbWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgW21pbWVUeXBlcyBhZGRPYmplY3Q6bWltZVR5cGVdOworICAgIH0KKwogICAgIF9taW1l
VHlwZXMgPSBhZG9wdE5TKFttaW1lVHlwZXMgY29weV0pOwogCiAgICAgX21lZGlhQ2FwdHVyZVR5
cGUgPSBXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlTm9uZTsKQEAgLTI5MSwyNyArMzE0LDEzIEBA
IC0gKHZvaWQpX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQKIAogI3ByYWdt
YSBtYXJrIC0gTWVkaWEgVHlwZXMKIAotc3RhdGljIGJvb2wgc3RyaW5nSGFzUHJlZml4Q2FzZUlu
c2Vuc2l0aXZlKE5TU3RyaW5nICpzdHIsIE5TU3RyaW5nICpwcmVmaXgpCi17Ci0gICAgTlNSYW5n
ZSByYW5nZSA9IFtzdHIgcmFuZ2VPZlN0cmluZzpwcmVmaXggb3B0aW9uczooTlNDYXNlSW5zZW5z
aXRpdmVTZWFyY2ggfCBOU0FuY2hvcmVkU2VhcmNoKV07Ci0gICAgcmV0dXJuIHJhbmdlLmxvY2F0
aW9uICE9IE5TTm90Rm91bmQ7Ci19Ci0KIHN0YXRpYyBOU0FycmF5ICpVVElzRm9yTUlNRVR5cGVz
KE5TQXJyYXkgKm1pbWVUeXBlcykKIHsKLSAgICAvLyBUaGUgSFRNTDUgc3BlYyBtZW50aW9ucyB0
aGUgbGl0ZXJhbCAiaW1hZ2UvKiIgYW5kICJ2aWRlby8qIiBzdHJpbmdzLgotICAgIC8vIFdlIHN1
cHBvcnQgdGhlc2UgYW5kIGdvIGEgc3RlcCBmdXJ0aGVyLCBpZiB0aGUgTUlNRSB0eXBlIHN0YXJ0
cyB3aXRoCi0gICAgLy8gImltYWdlLyIgb3IgInZpZGVvLyIgd2UgYWRqdXN0IHRoZSBwaWNrZXIn
cyBpbWFnZSBvciB2aWRlbyBmaWx0ZXJzLgotICAgIC8vIFNvLCAiaW1hZ2UvanBlZyIgd291bGQg
bWFrZSB0aGUgcGlja2VyIGRpc3BsYXkgYWxsIGltYWdlcyB0eXBlcy4KICAgICBOU011dGFibGVT
ZXQgKm1lZGlhVHlwZXMgPSBbTlNNdXRhYmxlU2V0IHNldF07CiAgICAgZm9yIChOU1N0cmluZyAq
bWltZVR5cGUgaW4gbWltZVR5cGVzKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3Vw
cG9ydCBtb3JlIE1JTUUgdHlwZSAtPiBVVEkgbWFwcGluZ3MuIDxodHRwOi8vd2Via2l0Lm9yZy9i
LzE0MjYxND4KLSAgICAgICAgaWYgKHN0cmluZ0hhc1ByZWZpeENhc2VJbnNlbnNpdGl2ZShtaW1l
VHlwZSwgQCJpbWFnZS8iKSkKLSAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDooTlNT
dHJpbmcgKilrVVRUeXBlSW1hZ2VdOwotICAgICAgICBlbHNlIGlmIChzdHJpbmdIYXNQcmVmaXhD
YXNlSW5zZW5zaXRpdmUobWltZVR5cGUsIEAidmlkZW8vIikpCi0gICAgICAgICAgICBbbWVkaWFU
eXBlcyBhZGRPYmplY3Q6KE5TU3RyaW5nICopa1VUVHlwZU1vdmllXTsKKyAgICAgICAgaWYgKGF1
dG8gVVRJID0gYWRvcHRDRihVVFR5cGVDcmVhdGVQcmVmZXJyZWRJZGVudGlmaWVyRm9yVGFnKGtV
VFRhZ0NsYXNzTUlNRVR5cGUsIChDRlN0cmluZ1JlZiltaW1lVHlwZSwgTlVMTCkpKQorICAgICAg
ICAgICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OihOU1N0cmluZyAqKVVUSS5nZXQoKV07CiAgICAg
fQotCiAgICAgcmV0dXJuIG1lZGlhVHlwZXMuYWxsT2JqZWN0czsKIH0KIApAQCAtMzI1LDE2ICsz
MzQsNiBAQCAtIChOU0FycmF5ICopX21lZGlhVHlwZXNGb3JQaWNrZXJTb3VyY2VUeXBlOihVSUlt
YWdlUGlja2VyQ29udHJvbGxlclNvdXJjZVR5cGUpcwogICAgIHJldHVybiBbVUlJbWFnZVBpY2tl
ckNvbnRyb2xsZXIgYXZhaWxhYmxlTWVkaWFUeXBlc0ZvclNvdXJjZVR5cGU6c291cmNlVHlwZV07
CiB9CiAKLS0gKE5TQXJyYXkgKilfZG9jdW1lbnRQaWNrZXJNZW51TWVkaWFUeXBlcwotewotICAg
IE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkp
OwotICAgIGlmIChtZWRpYVR5cGVzLmNvdW50KQotICAgICAgICByZXR1cm4gbWVkaWFUeXBlczsK
LQotICAgIC8vIEZhbGxiYWNrIHRvIGV2ZXJ5IHN1cHBvcnRlZCBtZWRpYSB0eXBlIGlmIHRoZXJl
IGlzIG5vIGZpbHRlci4KLSAgICByZXR1cm4gQFtAInB1YmxpYy5pdGVtIl07Ci19Ci0KICNwcmFn
bWEgbWFyayAtIFNvdXJjZSBzZWxlY3Rpb24gbWVudQogCiAtIChOU1N0cmluZyAqKV9waG90b0xp
YnJhcnlCdXR0b25MYWJlbApAQCAtMzQyLDIwICszNDEsMTMgQEAgLSAoTlNTdHJpbmcgKilfcGhv
dG9MaWJyYXJ5QnV0dG9uTGFiZWwKICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlBob3Rv
IExpYnJhcnkiLCAiUGhvdG8gTGlicmFyeSAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJG
aWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBjaG9vc2luZyBhbiBleGlz
dGluZyBtZWRpYSBpdGVtIGZyb20gdGhlIFBob3RvIExpYnJhcnkiKTsKIH0KIAotLSAoTlNTdHJp
bmcgKilfY2FtZXJhQnV0dG9uTGFiZWwKKy0gKE5TU3RyaW5nICopX2NhbWVyYUJ1dHRvbkxhYmVs
QWxsb3dpbmdQaG90bzooQk9PTClhbGxvd1Bob3RvIGFsbG93aW5nVmlkZW86KEJPT0wpYWxsb3dW
aWRlbwogewotICAgIGlmICghW1VJSW1hZ2VQaWNrZXJDb250cm9sbGVyIGlzU291cmNlVHlwZUF2
YWlsYWJsZTpVSUltYWdlUGlja2VyQ29udHJvbGxlclNvdXJjZVR5cGVDYW1lcmFdKQotICAgICAg
ICByZXR1cm4gbmlsOwotCi0gICAgLy8gQ2hvb3NlIHRoZSBhcHByb3ByaWF0ZSBzdHJpbmcgZm9y
IHRoZSBjYW1lcmEgYnV0dG9uLgotICAgIE5TQXJyYXkgKmZpbHRlcmVkTWVkaWFUeXBlcyA9IFtz
ZWxmIF9tZWRpYVR5cGVzRm9yUGlja2VyU291cmNlVHlwZTpVSUltYWdlUGlja2VyQ29udHJvbGxl
clNvdXJjZVR5cGVDYW1lcmFdOwotICAgIEJPT0wgY29udGFpbnNJbWFnZU1lZGlhVHlwZSA9IFtm
aWx0ZXJlZE1lZGlhVHlwZXMgY29udGFpbnNPYmplY3Q6KE5TU3RyaW5nICopa1VUVHlwZUltYWdl
XTsKLSAgICBCT09MIGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUgPSBbZmlsdGVyZWRNZWRpYVR5cGVz
IGNvbnRhaW5zT2JqZWN0OihOU1N0cmluZyAqKWtVVFR5cGVNb3ZpZV07Ci0gICAgQVNTRVJUKGNv
bnRhaW5zSW1hZ2VNZWRpYVR5cGUgfHwgY29udGFpbnNWaWRlb01lZGlhVHlwZSk7Ci0gICAgaWYg
KGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgJiYgY29udGFpbnNWaWRlb01lZGlhVHlwZSkKKyAgICBB
U1NFUlQoYWxsb3dQaG90byB8fCBhbGxvd1ZpZGVvKTsKKyAgICBpZiAoYWxsb3dQaG90byAmJiBh
bGxvd1ZpZGVvKQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRha2UgUGhvdG8g
b3IgVmlkZW8iLCAiVGFrZSBQaG90byBvciBWaWRlbyAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0
KSIsICJGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBjYW1lcmEgYnV0dG9uIHN0cmluZyBmb3IgdGFr
aW5nIHBob3RvcyBvciB2aWRlb3MiKTsKIAotICAgIGlmIChjb250YWluc1ZpZGVvTWVkaWFUeXBl
KQorICAgIGlmIChhbGxvd1ZpZGVvKQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IlRha2UgVmlkZW8iLCAiVGFrZSBWaWRlbyAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJG
aWxlIFVwbG9hZCBhbGVydCBzaGVldCBjYW1lcmEgYnV0dG9uIHN0cmluZyBmb3IgdGFraW5nIG9u
bHkgdmlkZW9zIik7CiAKICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRha2UgUGhvdG8i
LCAiVGFrZSBQaG90byAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBh
bGVydCBzaGVldCBjYW1lcmEgYnV0dG9uIHN0cmluZyBmb3IgdGFraW5nIG9ubHkgcGhvdG9zIik7
CkBAIC0zNjMsMjUgKzM1NSw0MCBAQCAtIChOU1N0cmluZyAqKV9jYW1lcmFCdXR0b25MYWJlbAog
CiAtICh2b2lkKV9zaG93RG9jdW1lbnRQaWNrZXJNZW51CiB7Ci0gICAgLy8gRklYTUU6IFN1cHBv
cnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb24gd2hlbiBpbXBsZW1lbnRlZC4gPHJkYXI6Ly8xNzE3
Nzk4MT4KLSAgICBfZG9jdW1lbnRNZW51Q29udHJvbGxlciA9IGFkb3B0TlMoW1tVSURvY3VtZW50
TWVudVZpZXdDb250cm9sbGVyIGFsbG9jXSBfaW5pdElnbm9yaW5nQXBwbGljYXRpb25FbnRpdGxl
bWVudEZvckltcG9ydE9mVHlwZXM6W3NlbGYgX2RvY3VtZW50UGlja2VyTWVudU1lZGlhVHlwZXNd
XSk7Ci0gICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOworICAg
IE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkp
OwogCi0gICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIGFkZE9wdGlvbldpdGhUaXRsZTpbc2Vs
ZiBfcGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWxdIGltYWdlOnBob3RvTGlicmFyeUljb24oKSBvcmRl
cjpVSURvY3VtZW50TWVudU9yZGVyRmlyc3QgaGFuZGxlcjpeewotICAgICAgICBbc2VsZiBfc2hv
d1Bob3RvUGlja2VyV2l0aFNvdXJjZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VU
eXBlUGhvdG9MaWJyYXJ5XTsKLSAgICB9XTsKKyAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRpYVR5
cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8o
bWVkaWFUeXBlcywga1VUVHlwZUltYWdlKTsKKyAgICBCT09MIGNvbnRhaW5zVmlkZW9NZWRpYVR5
cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8o
bWVkaWFUeXBlcywga1VUVHlwZU1vdmllKTsKIAotICAgIGlmIChbVUlJbWFnZVBpY2tlckNvbnRy
b2xsZXIgaXNTb3VyY2VUeXBlQXZhaWxhYmxlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNl
VHlwZUNhbWVyYV0pIHsKLSAgICAgICAgaWYgKE5TU3RyaW5nICpjYW1lcmFTdHJpbmcgPSBbc2Vs
ZiBfY2FtZXJhQnV0dG9uTGFiZWxdKSB7CisgICAgTlNBcnJheSAqZG9jdW1lbnRUeXBlcyA9IG1l
ZGlhVHlwZXMuY291bnQgPyBtZWRpYVR5cGVzIDogQFtAInB1YmxpYy5pdGVtIl07CisgICAgaWYg
KGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgfHwgY29udGFpbnNWaWRlb01lZGlhVHlwZSkgeworICAg
ICAgICAvLyBGSVhNRTogVUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciBpcyBkZXByZWNhdGVk
LCB3ZSBzaG91bGQgdXNlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBpbnN0ZWFkLgor
ICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBtdWx0aXBsZSBmaWxlIHNlbGVjdGlvbiB3aGVuIGlt
cGxlbWVudGVkLiA8cmRhcjovLzE3MTc3OTgxPgorICAgICAgICBfZG9jdW1lbnRNZW51Q29udHJv
bGxlciA9IGFkb3B0TlMoW1tVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIGFsbG9jXSBfaW5p
dElnbm9yaW5nQXBwbGljYXRpb25FbnRpdGxlbWVudEZvckltcG9ydE9mVHlwZXM6ZG9jdW1lbnRU
eXBlc10pOworICAgICAgICBbX2RvY3VtZW50TWVudUNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2Vs
Zl07CisKKyAgICAgICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIGFkZE9wdGlvbldpdGhUaXRs
ZTpbc2VsZiBfcGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWxdIGltYWdlOnBob3RvTGlicmFyeUljb24o
KSBvcmRlcjpVSURvY3VtZW50TWVudU9yZGVyRmlyc3QgaGFuZGxlcjpeeworICAgICAgICAgICAg
W3NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3VyY2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9s
bGVyU291cmNlVHlwZVBob3RvTGlicmFyeV07CisgICAgICAgIH1dOworCisgICAgICAgIGlmIChb
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXIgaXNTb3VyY2VUeXBlQXZhaWxhYmxlOlVJSW1hZ2VQaWNr
ZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV0pIHsKKyAgICAgICAgICAgIE5TU3RyaW5nICpj
YW1lcmFTdHJpbmcgPSBbc2VsZiBfY2FtZXJhQnV0dG9uTGFiZWxBbGxvd2luZ1Bob3RvOmNvbnRh
aW5zSW1hZ2VNZWRpYVR5cGUgYWxsb3dpbmdWaWRlbzpjb250YWluc1ZpZGVvTWVkaWFUeXBlXTsK
ICAgICAgICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBhZGRPcHRpb25XaXRoVGl0bGU6
Y2FtZXJhU3RyaW5nIGltYWdlOmNhbWVyYUljb24oKSBvcmRlcjpVSURvY3VtZW50TWVudU9yZGVy
Rmlyc3QgaGFuZGxlcjpeewogICAgICAgICAgICAgICAgIF91c2luZ0NhbWVyYSA9IFlFUzsKICAg
ICAgICAgICAgICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJjZVR5cGU6VUlJbWFn
ZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXTsKICAgICAgICAgICAgIH1dOwogICAg
ICAgICB9CisKKyAgICAgICAgW3NlbGYgX3ByZXNlbnRNZW51T3B0aW9uRm9yQ3VycmVudEludGVy
ZmFjZUlkaW9tOl9kb2N1bWVudE1lbnVDb250cm9sbGVyLmdldCgpXTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICAvLyBJbWFnZSBhbmQgVmlkZW8gdHlwZXMgYXJlIG5vdCBhY2NlcHRlZCBzbyBieXBh
c3MgdGhlIG1lbnUgYW5kIG9wZW4gdGhlIGZpbGUgcGlja2VyIGRpcmVjdGx5LgorICAgICAgICAv
LyBGSVhNRTogU3VwcG9ydCBtdWx0aXBsZSBmaWxlIHNlbGVjdGlvbiB3aGVuIGltcGxlbWVudGVk
LiA8cmRhcjovLzE3MTc3OTgxPgorICAgICAgICBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyID0g
YWRvcHROUyhbW1VJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhE
b2N1bWVudFR5cGVzOmRvY3VtZW50VHlwZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNrZXJNb2RlSW1w
b3J0XSk7CisgICAgICAgIFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNl
bGZdOworICAgICAgICBbc2VsZiBfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpfZG9j
dW1lbnRQaWNrZXJDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFU107CiAgICAgfQogCi0gICAg
W3NlbGYgX3ByZXNlbnRNZW51T3B0aW9uRm9yQ3VycmVudEludGVyZmFjZUlkaW9tOl9kb2N1bWVu
dE1lbnVDb250cm9sbGVyLmdldCgpXTsKLSAgICAvLyBDbGVhciBvdXQgdGhlIHZpZXcgY29udHJv
bGxlciB3ZSBqdXN0IHByZXNlbnRlZC4gRG9uJ3Qgc2F2ZSBhIHJlZmVyZW5jZSB0byB0aGUgVUlE
b2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciBhcyBpdCBpcyBzZWxmIGRpc21pc3NpbmcuCisgICAg
Ly8gQ2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0
IHNhdmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgLyBV
SURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgog
ICAgIF9wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9IG5pbDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363532</attachid>
            <date>2019-03-04 11:43:12 -0800</date>
            <delta_ts>2019-03-04 12:21:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195284-20190304114311.patch</filename>
            <type>text/plain</type>
            <size>15111</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI2NjQ5ZGM5ZTY3ZDQ4
MjlkNThiMzBjOGYyMDY3ODExZGQwYWU3Ni4uN2Q1OGJiYjczZTBlN2QwZmM1YjllN2YwY2VlYmNh
YzBkOTE0YWI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAzLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gSW1wcm92ZSBvdXIg
ZmlsZSBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTI4NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU2NTU4NTY+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVGltIEhvcnRvbiBhbmQgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEV4cG9y
dCBVVElVdGlsaXRpZXMuaCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGZyb20gV2ViS2l0Mi4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wMy0w
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgTmV0
d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpJ3MgaXNNYWluVGhyZWFkKCkgYXNzZXJ0aW9u
IHdoZW4gdGhlIFdlYlRocmVhZCBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3MzgyNWY2ZWNkNWVi
NGY2N2ZiYTQyYWY1ZWI5MDliYWMxMDI2YjguLjM3YjE4YzVhZTBjMDA0NDEzYjZlNGNmYWFhZmU1
ZWE4N2Y2OWIwM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMDMtMDQgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBJbXByb3ZlIG91ciBm
aWxlIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk1Mjg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTY1NTg1Nj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBUaW0gSG9ydG9uIGFuZCBXZW5zb24gSHNpZWguCisKKyAgICAgICAgSW1wcm92
ZSBvdXIgZmlsZSBwaWNrZXIgb24gaU9TIHNvIHRoYXQ6CisgICAgICAgIC0gQWNjZXB0ZWQgZmls
ZSBleHRlbnNpb25zIHNwZWNpZmllZCBpbiB0aGUgSFRNTCAoZS5nLiA8aW5wdXQgdHlwZT0iZmls
ZSI+IGFjY2VwdD0iLnBkZiI+KSBhcmUgbm93CisgICAgICAgICAgcHJvcGVybHkgcmVmbGVjdGVk
IGluIHRoZSBmaWxlIHBpY2tlci4gUHJldmlvdXNseSwgd2Ugb25seSB3ZSBvbmx5IHN1cHBvcnRl
ZCBNSU1FIHR5cGVzIGluIHRoZQorICAgICAgICAgIGFjY2VwdCBhdHRyaWJ1dGUgdGhhdCBvbmx5
IEltYWdlIC8gVmlkZW8gb25lcy4KKyAgICAgICAgLSBJZiBhY2NlcHRlZCB0eXBlcyBhcmUgc3Bl
Y2lmaWVkIGluIHRoZSBIVE1MIGFuZCBub3Qgb2YgdGhlbSBhcmUgVmlkZW8gb3IgSW1hZ2UgdHlw
ZXMsIHRoZW4gYnlwYXNzCisgICAgICAgICAgdGhlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIgYW5kIHNob3cgdGhlIGZpbGUgcGlja2VyIGRpcmVjdGx5IChhcyBpZiB0aGUgdXNlciBoYWQg
dGFwcGVkIG9uCisgICAgICAgICAgIkJyb3dzZS4uLiIgb24gdGhhdCBtZW51KS4gT3RoZXIgbWVu
dSBpdGVtcyBzdWNoIGFzICJUYWtlIFBob3RvIG9yIFZpZGVvIiBhbmQgIlBob3RvIExpYnJhcnki
IGRvCisgICAgICAgICAgbm90IG1ha2Ugc2Vuc2UgaWYgdGhlIHBhZ2Ugb25seSBhY2NlcHRzIFBE
RiBmaWxlcyBmb3IgZXhhbXBsZS4KKworICAgICAgICBUaGluZ3MgdGhhdCB3ZSBzaG91bGQgZG8g
YnV0IGFyZSBub3QgZml4ZWQgaW4gdGhpcyBwYXRjaDoKKyAgICAgICAgLSBTdG9wIHVzaW5nIFVJ
RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgZW50aXJlbHkgc2luY2UgaXQgd2FzIGRlcHJlY2F0
ZWQgaW4gZmF2b3Igb2YgdXNpbmcKKyAgICAgICAgICBVSURvY3VtZW50UGlja2VyVmlld0NvbnRy
b2xsZXIgZGlyZWN0bHkuCisgICAgICAgIC0gQWRkIG11bHRpcGxlIHNlbGVjdGlvbiBzdXBwb3J0
LCB3aGljaCBpcyBzdXBwb3J0ZWQgYm90aCBvbiB0aGUgSFRNTCBzaWRlIGFuZCBpbiB0aGUKKyAg
ICAgICAgICBVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgQVBJLgorCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbToKKyAgICAgICAgKGFycmF5
Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgcHJlc2VudFdpdGhQYXJh
bWV0ZXJzOnJlc3VsdExpc3RlbmVyOl0pOgorICAgICAgICAoVVRJc0Zvck1JTUVUeXBlcyk6Cisg
ICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9tZWRpYVR5cGVzRm9yUGlja2VyU291cmNlVHlw
ZTpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NhbWVyYUJ1dHRvbkxhYmVsQWxs
b3dpbmdQaG90bzphbGxvd2luZ1ZpZGVvOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5l
bCBfc2hvd0RvY3VtZW50UGlja2VyTWVudV0pOgorCiAyMDE5LTAzLTAxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBjYWNoZWQgV2ViUHJvY2Vzc2VzIGZv
ciBhIGdpdmVuIHNlc3Npb24gd2hlbiB0aGlzIHNlc3Npb24gaXMgZGVzdHJveWVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjQ0
MTk1OTc3OWJjMDcwZmE0ZTM0NDFlMzhjYzVmYjUxNzM5ZGIzNi4uNTI4MTE3NWU4MjkzMGRiZGNl
MzcxNmNkZGRlYjdhOTI4MjNlZTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjU5LDcgKzY1OSw3IEBACiAJCTFGM0MzQkVC
MTM1Q0FGM0MwMEI4QzFBQyAvKiBNZWRpYUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjNDM0JFOTEzNUNBRjNDMDBCOEMxQUMgLyogTWVk
aWFDb250cm9scy5oICovOyB9OwogCQkxRjcyQkYwQjE4N0ZENDVDMDAwOUJDQjMgLyogVGlsZUNv
bnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxRjcyQkYwOTE4N0ZENDI3MDAwOUJDQjMgLyogVGlsZUNvbnRyb2xs
ZXJNZW1vcnlIYW5kbGVySU9TLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUY4NzU2QjIxRTIyQzMzNTAwNDJDNDBEIC8qIFdlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUY4NzU2QjExRTIyQkVFRjAwNDJDNDBEIC8qIFdlYlNRTGl0ZURhdGFiYXNlVHJh
Y2tlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTFGQUZCRjE5MTVBNUZBNzQwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQUZCRjE2MTVBNUZBNTIw
MDA4M0EyMCAvKiBVVElVdGlsaXRpZXMuaCAqLzsgfTsKKwkJMUZBRkJGMTkxNUE1RkE3NDAwMDgz
QTIwIC8qIFVUSVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUZBRkJGMTYxNUE1RkE1MjAwMDgzQTIwIC8qIFVUSVV0aWxpdGllcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFGQzQwRkJB
MTY1NUNDQjkwMDQwRjI5RSAvKiBTdWJpbWFnZUNhY2hlV2l0aFRpbWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRkM0MEZCNzE2NTVDNTkxMDA0MEYy
OUUgLyogU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5oICovOyB9OwogCQkyMEQ2MjkyNzEyNTM2OTBC
MDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyNUExNkI1MEQ1QzExRTkwMDA5
MDI5NSAvKiBXZWJFdmVudFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjI1QTE2QjMwRDVDMTFFOTAwMDkwMjk1IC8qIFdlYkV2ZW50UmVnaW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKaW5k
ZXggNzhiODc1NjNhZmY5NGIxNjc2ZjI0MWI0YzkyYWM4NGZlNzQ2MTlkNy4uZjU1MjE5NjFiNmE5
MDVkYmY3Njc4ZDAyM2YxNjIyNTU4MTk4NjBiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLmgKQEAgLTMyLDcgKzMyLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIFN0cmluZyBNSU1FVHlwZUZyb21VVEkoY29uc3QgU3RyaW5nJik7
CiBTdHJpbmcgTUlNRVR5cGVGcm9tVVRJVHJlZShjb25zdCBTdHJpbmcmKTsKLVN0cmluZyBVVElG
cm9tTUlNRVR5cGUoY29uc3QgU3RyaW5nJik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgVVRJRnJv
bU1JTUVUeXBlKGNvbnN0IFN0cmluZyYpOwogYm9vbCBpc0RlY2xhcmVkVVRJKGNvbnN0IFN0cmlu
ZyYpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGaWxlVXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGaWxlVXBsb2FkUGFuZWwubW0KaW5kZXggZWY2YTU0MmYyNzA3MTJkZjY0YWJhYzdhZWYxYThl
YTFjMTk3NTZhZi4uZTMwYjM1NWE1NjNmN2I1ZjNlMTA3ZTE2MjYyOTdlOThmNmJiNzU0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxv
YWRQYW5lbC5tbQpAQCAtNDEsOCArNDEsMTIgQEAKICNpbXBvcnQgIldlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCA8TW9i
aWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgorI2ltcG9ydCA8VUlLaXQvVUlE
b2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXpl
ZFN0cmluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IApAQCAtNTMsNiArNTcsMTUgQEAgc3RhdGljIGlubGluZSBVSUltYWdlUGlja2VyQ29udHJvbGxl
ckNhbWVyYURldmljZSBjYW1lcmFEZXZpY2VGb3JNZWRpYUNhcHR1cmVUeXAKICAgICByZXR1cm4g
bWVkaWFDYXB0dXJlVHlwZSA9PSBXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlVXNlciA/IFVJSW1h
Z2VQaWNrZXJDb250cm9sbGVyQ2FtZXJhRGV2aWNlRnJvbnQgOiBVSUltYWdlUGlja2VyQ29udHJv
bGxlckNhbWVyYURldmljZVJlYXI7CiB9CiAKK3N0YXRpYyBib29sIGFycmF5Q29udGFpbnNVVElU
aGF0Q29uZm9ybXNUbyhOU0FycmF5PE5TU3RyaW5nICo+ICp0eXBlSWRlbnRpZmllcnMsIENGU3Ry
aW5nUmVmIGNvbmZvcm1Ub1VUSSkKK3sKKyAgICBmb3IgKE5TU3RyaW5nICp1dGkgaW4gdHlwZUlk
ZW50aWZpZXJzKSB7CisgICAgICAgIGlmIChVVFR5cGVDb25mb3Jtc1RvKChfX2JyaWRnZSBDRlN0
cmluZ1JlZil1dGksIGNvbmZvcm1Ub1VUSSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiAjcHJhZ21hIG1hcmsgLSBEb2N1bWVudCBwaWNr
ZXIgaWNvbnMKIAogc3RhdGljIGlubGluZSBVSUltYWdlICpwaG90b0xpYnJhcnlJY29uKCkKQEAg
LTE2Myw2ICsxNzYsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tGaWxlVXBsb2FkUGFuZWwgewogICAg
IFJldGFpblB0cjxVSVBvcG92ZXJDb250cm9sbGVyPiBfcHJlc2VudGF0aW9uUG9wb3ZlcjsgLy8g
aVBhZCBmb3IgYWN0aW9uIHNoZWV0IGFuZCBQaG90byBMaWJyYXJ5LgogICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFJldGFpblB0cjxVSURvY3VtZW50TWVudVZpZXdD
b250cm9sbGVyPiBfZG9jdW1lbnRNZW51Q29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8VUlEb2N1
bWVudFBpY2tlclZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyOwogICAg
IFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGUgX21lZGlhQ2FwdHVyZVR5cGU7CiB9CiAKQEAgLTE3
OSw2ICsxOTMsNyBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbX2ltYWdlUGlja2VyIHNldERlbGVn
YXRlOm5pbF07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOm5pbF07CiAg
ICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CisgICAgW19kb2N1
bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKIAogICAgIFtzdXBlciBkZWFs
bG9jXTsKIH0KQEAgLTIzMyw2ICsyNDgsMTQgQEAgLSAodm9pZClwcmVzZW50V2l0aFBhcmFtZXRl
cnM6KEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyopcGFyYW1ldGVycyByZXN1bHRMaXN0ZW4KICAg
ICBOU011dGFibGVBcnJheSAqbWltZVR5cGVzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENh
cGFjaXR5OmFjY2VwdE1pbWVUeXBlcy0+c2l6ZSgpXTsKICAgICBmb3IgKGF1dG8gbWltZVR5cGUg
OiBhY2NlcHRNaW1lVHlwZXMtPmVsZW1lbnRzT2ZUeXBlPEFQSTo6U3RyaW5nPigpKQogICAgICAg
ICBbbWltZVR5cGVzIGFkZE9iamVjdDptaW1lVHlwZS0+c3RyaW5nKCldOworCisgICAgUmVmPEFQ
STo6QXJyYXk+IGFjY2VwdEZpbGVFeHRlbnNpb25zID0gcGFyYW1ldGVycy0+YWNjZXB0RmlsZUV4
dGVuc2lvbnMoKTsKKyAgICBmb3IgKGF1dG8gZXh0ZW5zaW9uIDogYWNjZXB0RmlsZUV4dGVuc2lv
bnMtPmVsZW1lbnRzT2ZUeXBlPEFQSTo6U3RyaW5nPigpKSB7CisgICAgICAgIFN0cmluZyBtaW1l
VHlwZSA9IFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBlRm9yRXh0ZW5zaW9u
KGV4dGVuc2lvbi0+c3RyaW5nVmlldygpLnN1YnN0cmluZygxKS50b1N0cmluZygpKTsKKyAgICAg
ICAgaWYgKCFtaW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBbbWltZVR5cGVzIGFkZE9i
amVjdDptaW1lVHlwZV07CisgICAgfQorCiAgICAgX21pbWVUeXBlcyA9IGFkb3B0TlMoW21pbWVU
eXBlcyBjb3B5XSk7CiAKICAgICBfbWVkaWFDYXB0dXJlVHlwZSA9IFdlYkNvcmU6Ok1lZGlhQ2Fw
dHVyZVR5cGVOb25lOwpAQCAtMjkxLDI3ICszMTQsMTQgQEAgLSAodm9pZClfZGlzbWlzc0Rpc3Bs
YXlBbmltYXRlZDooQk9PTClhbmltYXRlZAogCiAjcHJhZ21hIG1hcmsgLSBNZWRpYSBUeXBlcwog
Ci1zdGF0aWMgYm9vbCBzdHJpbmdIYXNQcmVmaXhDYXNlSW5zZW5zaXRpdmUoTlNTdHJpbmcgKnN0
ciwgTlNTdHJpbmcgKnByZWZpeCkKLXsKLSAgICBOU1JhbmdlIHJhbmdlID0gW3N0ciByYW5nZU9m
U3RyaW5nOnByZWZpeCBvcHRpb25zOihOU0Nhc2VJbnNlbnNpdGl2ZVNlYXJjaCB8IE5TQW5jaG9y
ZWRTZWFyY2gpXTsKLSAgICByZXR1cm4gcmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3VuZDsKLX0K
LQogc3RhdGljIE5TQXJyYXkgKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQog
ewotICAgIC8vIFRoZSBIVE1MNSBzcGVjIG1lbnRpb25zIHRoZSBsaXRlcmFsICJpbWFnZS8qIiBh
bmQgInZpZGVvLyoiIHN0cmluZ3MuCi0gICAgLy8gV2Ugc3VwcG9ydCB0aGVzZSBhbmQgZ28gYSBz
dGVwIGZ1cnRoZXIsIGlmIHRoZSBNSU1FIHR5cGUgc3RhcnRzIHdpdGgKLSAgICAvLyAiaW1hZ2Uv
IiBvciAidmlkZW8vIiB3ZSBhZGp1c3QgdGhlIHBpY2tlcidzIGltYWdlIG9yIHZpZGVvIGZpbHRl
cnMuCi0gICAgLy8gU28sICJpbWFnZS9qcGVnIiB3b3VsZCBtYWtlIHRoZSBwaWNrZXIgZGlzcGxh
eSBhbGwgaW1hZ2VzIHR5cGVzLgogICAgIE5TTXV0YWJsZVNldCAqbWVkaWFUeXBlcyA9IFtOU011
dGFibGVTZXQgc2V0XTsKICAgICBmb3IgKE5TU3RyaW5nICptaW1lVHlwZSBpbiBtaW1lVHlwZXMp
IHsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IG1vcmUgTUlNRSB0eXBlIC0+
IFVUSSBtYXBwaW5ncy4gPGh0dHA6Ly93ZWJraXQub3JnL2IvMTQyNjE0PgotICAgICAgICBpZiAo
c3RyaW5nSGFzUHJlZml4Q2FzZUluc2Vuc2l0aXZlKG1pbWVUeXBlLCBAImltYWdlLyIpKQotICAg
ICAgICAgICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OihOU1N0cmluZyAqKWtVVFR5cGVJbWFnZV07
Ci0gICAgICAgIGVsc2UgaWYgKHN0cmluZ0hhc1ByZWZpeENhc2VJbnNlbnNpdGl2ZShtaW1lVHlw
ZSwgQCJ2aWRlby8iKSkKLSAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDooTlNTdHJp
bmcgKilrVVRUeXBlTW92aWVdOworICAgICAgICBhdXRvIHV0aSA9IFdlYkNvcmU6OlVUSUZyb21N
SU1FVHlwZShtaW1lVHlwZSk7CisgICAgICAgIGlmICghdXRpLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDooX19icmlkZ2UgTlNTdHJpbmcgKil1dGldOwogICAg
IH0KLQogICAgIHJldHVybiBtZWRpYVR5cGVzLmFsbE9iamVjdHM7CiB9CiAKQEAgLTMyNSwxNiAr
MzM1LDYgQEAgLSAoTlNBcnJheSAqKV9tZWRpYVR5cGVzRm9yUGlja2VyU291cmNlVHlwZTooVUlJ
bWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlKXMKICAgICByZXR1cm4gW1VJSW1hZ2VQaWNr
ZXJDb250cm9sbGVyIGF2YWlsYWJsZU1lZGlhVHlwZXNGb3JTb3VyY2VUeXBlOnNvdXJjZVR5cGVd
OwogfQogCi0tIChOU0FycmF5ICopX2RvY3VtZW50UGlja2VyTWVudU1lZGlhVHlwZXMKLXsKLSAg
ICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgp
KTsKLSAgICBpZiAobWVkaWFUeXBlcy5jb3VudCkKLSAgICAgICAgcmV0dXJuIG1lZGlhVHlwZXM7
Ci0KLSAgICAvLyBGYWxsYmFjayB0byBldmVyeSBzdXBwb3J0ZWQgbWVkaWEgdHlwZSBpZiB0aGVy
ZSBpcyBubyBmaWx0ZXIuCi0gICAgcmV0dXJuIEBbQCJwdWJsaWMuaXRlbSJdOwotfQotCiAjcHJh
Z21hIG1hcmsgLSBTb3VyY2Ugc2VsZWN0aW9uIG1lbnUKIAogLSAoTlNTdHJpbmcgKilfcGhvdG9M
aWJyYXJ5QnV0dG9uTGFiZWwKQEAgLTM0MiwyMCArMzQyLDEzIEBAIC0gKE5TU3RyaW5nICopX3Bo
b3RvTGlicmFyeUJ1dHRvbkxhYmVsCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQaG90
byBMaWJyYXJ5IiwgIlBob3RvIExpYnJhcnkgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAi
RmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgYnV0dG9uIHN0cmluZyBmb3IgY2hvb3NpbmcgYW4gZXhp
c3RpbmcgbWVkaWEgaXRlbSBmcm9tIHRoZSBQaG90byBMaWJyYXJ5Iik7CiB9CiAKLS0gKE5TU3Ry
aW5nICopX2NhbWVyYUJ1dHRvbkxhYmVsCistIChOU1N0cmluZyAqKV9jYW1lcmFCdXR0b25MYWJl
bEFsbG93aW5nUGhvdG86KEJPT0wpYWxsb3dQaG90byBhbGxvd2luZ1ZpZGVvOihCT09MKWFsbG93
VmlkZW8KIHsKLSAgICBpZiAoIVtVSUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJjZVR5cGVB
dmFpbGFibGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLQotICAgIC8vIENob29zZSB0aGUgYXBwcm9wcmlhdGUgc3RyaW5nIGZv
ciB0aGUgY2FtZXJhIGJ1dHRvbi4KLSAgICBOU0FycmF5ICpmaWx0ZXJlZE1lZGlhVHlwZXMgPSBb
c2VsZiBfbWVkaWFUeXBlc0ZvclBpY2tlclNvdXJjZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xs
ZXJTb3VyY2VUeXBlQ2FtZXJhXTsKLSAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgPSBb
ZmlsdGVyZWRNZWRpYVR5cGVzIGNvbnRhaW5zT2JqZWN0OihOU1N0cmluZyAqKWtVVFR5cGVJbWFn
ZV07Ci0gICAgQk9PTCBjb250YWluc1ZpZGVvTWVkaWFUeXBlID0gW2ZpbHRlcmVkTWVkaWFUeXBl
cyBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilrVVRUeXBlTW92aWVdOwotICAgIEFTU0VSVChj
b250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpOwotICAgIGlm
IChjb250YWluc0ltYWdlTWVkaWFUeXBlICYmIGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpCisgICAg
QVNTRVJUKGFsbG93UGhvdG8gfHwgYWxsb3dWaWRlbyk7CisgICAgaWYgKGFsbG93UGhvdG8gJiYg
YWxsb3dWaWRlbykKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUYWtlIFBob3Rv
IG9yIFZpZGVvIiwgIlRha2UgUGhvdG8gb3IgVmlkZW8gKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVl
dCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJhIGJ1dHRvbiBzdHJpbmcgZm9yIHRh
a2luZyBwaG90b3Mgb3IgdmlkZW9zIik7CiAKLSAgICBpZiAoY29udGFpbnNWaWRlb01lZGlhVHlw
ZSkKKyAgICBpZiAoYWxsb3dWaWRlbykKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZ
KCJUYWtlIFZpZGVvIiwgIlRha2UgVmlkZW8gKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAi
RmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJhIGJ1dHRvbiBzdHJpbmcgZm9yIHRha2luZyBv
bmx5IHZpZGVvcyIpOwogCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUYWtlIFBob3Rv
IiwgIlRha2UgUGhvdG8gKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQg
YWxlcnQgc2hlZXQgY2FtZXJhIGJ1dHRvbiBzdHJpbmcgZm9yIHRha2luZyBvbmx5IHBob3RvcyIp
OwpAQCAtMzYzLDI1ICszNTYsNDAgQEAgLSAoTlNTdHJpbmcgKilfY2FtZXJhQnV0dG9uTGFiZWwK
IAogLSAodm9pZClfc2hvd0RvY3VtZW50UGlja2VyTWVudQogewotICAgIC8vIEZJWE1FOiBTdXBw
b3J0IG11bHRpcGxlIGZpbGUgc2VsZWN0aW9uIHdoZW4gaW1wbGVtZW50ZWQuIDxyZGFyOi8vMTcx
Nzc5ODE+Ci0gICAgX2RvY3VtZW50TWVudUNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVu
dE1lbnVWaWV3Q29udHJvbGxlciBhbGxvY10gX2luaXRJZ25vcmluZ0FwcGxpY2F0aW9uRW50aXRs
ZW1lbnRGb3JJbXBvcnRPZlR5cGVzOltzZWxmIF9kb2N1bWVudFBpY2tlck1lbnVNZWRpYVR5cGVz
XV0pOwotICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAg
ICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgp
KTsKIAotICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBhZGRPcHRpb25XaXRoVGl0bGU6W3Nl
bGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBpbWFnZTpwaG90b0xpYnJhcnlJY29uKCkgb3Jk
ZXI6VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhhbmRsZXI6XnsKLSAgICAgICAgW3NlbGYgX3No
b3dQaG90b1BpY2tlcldpdGhTb3VyY2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNl
VHlwZVBob3RvTGlicmFyeV07Ci0gICAgfV07CisgICAgQk9PTCBjb250YWluc0ltYWdlTWVkaWFU
eXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1Rv
KG1lZGlhVHlwZXMsIGtVVFR5cGVJbWFnZSk7CisgICAgQk9PTCBjb250YWluc1ZpZGVvTWVkaWFU
eXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1Rv
KG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7CiAKLSAgICBpZiAoW1VJSW1hZ2VQaWNrZXJDb250
cm9sbGVyIGlzU291cmNlVHlwZUF2YWlsYWJsZTpVSUltYWdlUGlja2VyQ29udHJvbGxlclNvdXJj
ZVR5cGVDYW1lcmFdKSB7Ci0gICAgICAgIGlmIChOU1N0cmluZyAqY2FtZXJhU3RyaW5nID0gW3Nl
bGYgX2NhbWVyYUJ1dHRvbkxhYmVsXSkgeworICAgIE5TQXJyYXkgKmRvY3VtZW50VHlwZXMgPSBt
ZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdlIE5TU3RyaW5nICopa1VU
VHlwZUl0ZW1dOworICAgIGlmIChjb250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlk
ZW9NZWRpYVR5cGUpIHsKKyAgICAgICAgLy8gRklYTUU6IFVJRG9jdW1lbnRNZW51Vmlld0NvbnRy
b2xsZXIgaXMgZGVwcmVjYXRlZCwgd2Ugc2hvdWxkIHVzZSBVSURvY3VtZW50UGlja2VyVmlld0Nv
bnRyb2xsZXIgaW5zdGVhZC4KKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbXVsdGlwbGUgZmls
ZSBzZWxlY3Rpb24gd2hlbiBpbXBsZW1lbnRlZC4gPHJkYXI6Ly8xNzE3Nzk4MT4KKyAgICAgICAg
X2RvY3VtZW50TWVudUNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVudE1lbnVWaWV3Q29u
dHJvbGxlciBhbGxvY10gX2luaXRJZ25vcmluZ0FwcGxpY2F0aW9uRW50aXRsZW1lbnRGb3JJbXBv
cnRPZlR5cGVzOmRvY3VtZW50VHlwZXNdKTsKKyAgICAgICAgW19kb2N1bWVudE1lbnVDb250cm9s
bGVyIHNldERlbGVnYXRlOnNlbGZdOworCisgICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxl
ciBhZGRPcHRpb25XaXRoVGl0bGU6W3NlbGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBpbWFn
ZTpwaG90b0xpYnJhcnlJY29uKCkgb3JkZXI6VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhhbmRs
ZXI6XnsKKyAgICAgICAgICAgIFtzZWxmIF9zaG93UGhvdG9QaWNrZXJXaXRoU291cmNlVHlwZTpV
SUltYWdlUGlja2VyQ29udHJvbGxlclNvdXJjZVR5cGVQaG90b0xpYnJhcnldOworICAgICAgICB9
XTsKKworICAgICAgICBpZiAoW1VJSW1hZ2VQaWNrZXJDb250cm9sbGVyIGlzU291cmNlVHlwZUF2
YWlsYWJsZTpVSUltYWdlUGlja2VyQ29udHJvbGxlclNvdXJjZVR5cGVDYW1lcmFdKSB7CisgICAg
ICAgICAgICBOU1N0cmluZyAqY2FtZXJhU3RyaW5nID0gW3NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVs
QWxsb3dpbmdQaG90bzpjb250YWluc0ltYWdlTWVkaWFUeXBlIGFsbG93aW5nVmlkZW86Y29udGFp
bnNWaWRlb01lZGlhVHlwZV07CiAgICAgICAgICAgICBbX2RvY3VtZW50TWVudUNvbnRyb2xsZXIg
YWRkT3B0aW9uV2l0aFRpdGxlOmNhbWVyYVN0cmluZyBpbWFnZTpjYW1lcmFJY29uKCkgb3JkZXI6
VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhhbmRsZXI6XnsKICAgICAgICAgICAgICAgICBfdXNp
bmdDYW1lcmEgPSBZRVM7CiAgICAgICAgICAgICAgICAgW3NlbGYgX3Nob3dQaG90b1BpY2tlcldp
dGhTb3VyY2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV07CiAg
ICAgICAgICAgICB9XTsKICAgICAgICAgfQorCisgICAgICAgIFtzZWxmIF9wcmVzZW50TWVudU9w
dGlvbkZvckN1cnJlbnRJbnRlcmZhY2VJZGlvbTpfZG9jdW1lbnRNZW51Q29udHJvbGxlci5nZXQo
KV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSW1hZ2UgYW5kIFZpZGVvIHR5cGVzIGFyZSBu
b3QgYWNjZXB0ZWQgc28gYnlwYXNzIHRoZSBtZW51IGFuZCBvcGVuIHRoZSBmaWxlIHBpY2tlciBk
aXJlY3RseS4KKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rp
b24gd2hlbiBpbXBsZW1lbnRlZC4gPHJkYXI6Ly8xNzE3Nzk4MT4KKyAgICAgICAgX2RvY3VtZW50
UGlja2VyQ29udHJvbGxlciA9IGFkb3B0TlMoW1tVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xs
ZXIgYWxsb2NdIGluaXRXaXRoRG9jdW1lbnRUeXBlczpkb2N1bWVudFR5cGVzIGluTW9kZTpVSURv
Y3VtZW50UGlja2VyTW9kZUltcG9ydF0pOworICAgICAgICBbX2RvY3VtZW50UGlja2VyQ29udHJv
bGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICAgICAgW3NlbGYgX3ByZXNlbnRGdWxsc2NyZWVu
Vmlld0NvbnRyb2xsZXI6X2RvY3VtZW50UGlja2VyQ29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZ
RVNdOwogICAgIH0KIAotICAgIFtzZWxmIF9wcmVzZW50TWVudU9wdGlvbkZvckN1cnJlbnRJbnRl
cmZhY2VJZGlvbTpfZG9jdW1lbnRNZW51Q29udHJvbGxlci5nZXQoKV07Ci0gICAgLy8gQ2xlYXIg
b3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUgYSBy
ZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2Vs
ZiBkaXNtaXNzaW5nLgorICAgIC8vIENsZWFyIG91dCB0aGUgdmlldyBjb250cm9sbGVyIHdlIGp1
c3QgcHJlc2VudGVkLiBEb24ndCBzYXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBVSURvY3VtZW50TWVu
dVZpZXdDb250cm9sbGVyIC8gVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFzIGl0IGlz
IHNlbGYgZGlzbWlzc2luZy4KICAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBuaWw7
CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>