--------------Boundary-00=_SW28R3E3VCZEXYL245VU Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Subject: On Monday 24 September 2001 14:48, Lars Knoll wrote: | On Monday 24 September 2001 16:28, Martijn Klingens wrote: [...] | | Once you get a style sheet, a CSSStyleSheet object is created and the | CSSParser parses the style sheet (actually StyleBaseImpl is the parser, | so every CSS element sort of has a parser builtin). | | Parsing a style sheet gives you a tree like representation of it. Think | of the simple style sheet | | a { color: red } | | This gets transformed into: | | CSSStyleSheetImpl | CSSRuleImpl //contains a style declaration | CSSStyleDeclarationImpl // contains a { ... } | CSSSelector // the selector for the declaration ( "a" ), not part of | DOM CSSPropertyList //list of properties, here "color: red" ok, let me ask you following. Suppose we have in HTML file 2 CSS stylesheets ... ... After parsing HTML/CSS, they become mystyleA.css - styleSheets[0] mystyleB.css - styleSheets[1] Than I want to disable mystyleA.css using following simple JS command: document.styleSheets[0].disabled = true; Is it possible to be done with current KHTML implementation? Concerning @MEDIA directives, I see it as following MEDIA [j] stylesheet [i] Screen Print Aureal CSS A rule 1,2 rule 3,4 ... CSS B rule 7,9 rule 10,15 ... So, each CSS Rule should have 2-dimensional cooredinates - one is indication which stylesheet it belongs too, second - to which media. Than it's quite easy to implement @MEDIA handling - to enable rendering @screen, you enable MEDIA[1] rules, and disbale MEDIA[2], ..[N] For printing, you enable MEDIA[2] and disable the rest. | | The Style selector is invoked _after_ all sheets have been parsed. It has | nothing to do with the DOM. It just colects all style sheets it can find | for the document and pulls out the useable style rules. These are then | processed according to the CSS specs and applied to the rendering elements. Are these rules actually *stored*? If not, than to access Rule[i] in styleSheet[0] ( rule = document.styleSheets[0].cssRules[i] ) you need to reconstruct (to text) CSS rule from CSSStyleDeclarationImpl I attach short testing script which illustrates handling of cssRules by MS IE and NS6/Mozilla. It seems I need to extend this script for checking @media, but even current implementation provides comprehensive info how it's handled by those two browsers. NOTE: this script crashes Konq, be careful. | | All you need to worry about for the @media support is the parser, the DOM | part (CSSMediaList and co.), and in the end making sure the | CSSStyleSelector picks up the correct rules for the document from the style | sheet (ie. leaves out media=print for visual rendering and vice versa). | | Cheers, | Lars Best Regards, -- Vadim Plessky http://kde2.newmail.ru (English) 33 Window Decorations and 6 Widget Styles for KDE http://kde2.newmail.ru/kde_themes.html Do you have Arial font installed? Just test it! http://kde2.newmail.ru/font_test_arial.html --------------Boundary-00=_SW28R3E3VCZEXYL245VU Content-Type: text/html; charset="iso-8859-1"; name="DOM_CSS.html" Content-Transfer-Encoding: base64 Content-Description: testing script Content-Disposition: attachment; filename="DOM_CSS.html" PGh0bWw+DQo8aGVhZD4NCgk8dGl0bGU+RE9NIENTUyBSdWxlcyAoZG9jdW1lbnQuc3R5bGVTaGVl dHMgYXJyYXkpPC90aXRsZT4NCjwvaGVhZD4NCg0KPGJvZHkgQkdDT0xPUj0iV2hpdGUiIFRFWFQ9 IkJsYWNrIiBMSU5LPSJCbHVlIiBWTElOSz0iUHVycGxlIiBBTElOSz0iUmVkIj4NCg0KPFNUWUxF IHR5cGU9dGV4dC9jc3M+DQogUCB7IEJBQ0tHUk9VTkQ6ICNGRkZGRkY7ICANCiAJICBDT0xPUjog IzMzMzNGRjsNCgkgfQ0KLyogZHVtbXkgY2xhc3MgYmVsb3csIHRvIGNoZWNrIGhvdyB3ZSBoYW5k bGUgY2Fsc3NlcyAqLwkgDQogIC52YWR0ZXN0DQogICAgew0KCSAgIGJhY2tncm91bmQ6IHJlZDsN CgkgICBjb2xvcjogZ3JlZW47DQoJICAgbWFyZ2luOiA4cHg7DQoJfQkgDQo8L1NUWUxFPg0KDQo8 U0NSSVBUIGxhbmd1YWdlPUphdmFTY3JpcHQ+DQp2YXIgZCA9IGRvY3VtZW50Ow0KdmFyIGF0aXRs ZSA9IGQudGl0bGU7DQoNCi8vIHZhciBhcmVmZXJyZXIgPSBkLnJlZmVycmVyOw0KLy8gdmFyIGFk b21haW4gPSBkLmRvbWFpbjsNCg0KZG9jdW1lbnQud3JpdGUoICI8UD4iKTsNCg0KLy8gZG9jdW1l bnQud3JpdGUoICI8QlI+RG9jdW1lbnQgPSAiK2RvY3VtZW50KTsNCi8vIGRvY3VtZW50LndyaXRl KCAiPEJSPmQuZ2V0RWxlbWVudEJ5SWQgOiAiK2QuZ2V0RWxlbWVudEJ5SWQpOw0KLy8gZG9jdW1l bnQud3JpdGUoICI8QlI+ZC5nZXRFbGVtZW50c0J5TmFtZSA6ICIrZC5nZXRFbGVtZW50c0J5TmFt ZSk7DQoNCmRvY3VtZW50LndyaXRlKCAiPEJSPkRvY3VtZW50ID0gIixkb2N1bWVudCk7DQpkb2N1 bWVudC53cml0ZSggIjxCUj5kLmdldEVsZW1lbnRCeUlkIDogIixkLmdldEVsZW1lbnRCeUlkKTsN CmRvY3VtZW50LndyaXRlKCAiPEJSPmQuZ2V0RWxlbWVudHNCeU5hbWUgOiAiLGQuZ2V0RWxlbWVu dHNCeU5hbWUpOw0KDQovLyBkb2N1bWVudC53cml0ZSggIjxCUj4gZC5pbXBsZW1lbnRhdGlvbiA9 ICIsZC5pbXBsZW1lbnRhdGlvbik7DQpkb2N1bWVudC53cml0ZSggIjxCUj4gZC5kb2N0eXBlID0g IixkLmRvY3R5cGUpOw0KDQpkb2N1bWVudC53cml0ZSggIjxCUj4gZG9jdW1lbnQuc3R5bGVTaGVl dHMgPSAiLGQuc3R5bGVTaGVldHMpOw0KDQppZiAoZG9jdW1lbnQuc3R5bGVTaGVldHMpIA0KICB7 DQoJdmFyIHRoZVJ1bGVzID0gbmV3IEFycmF5KCk7DQoJZG9jdW1lbnQud3JpdGUoICI8QlI+IGRv Y3VtZW50LnN0eWxlU2hlZXRzLmxlbmd0aCA9ICIsIGQuc3R5bGVTaGVldHMubGVuZ3RoICk7DQoJ dmFyIE5vT2ZDU1MgPSBkLnN0eWxlU2hlZXRzLmxlbmd0aDsNCgl2YXIgUnVsTGVuLCBNeVJ1bGU7 DQoJaWYgKCBOb09mQ1NTID4gMCApDQoJaWYgKGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNzc1J1 bGVzKQ0KCSAgIHsNCgkJdGhlUnVsZXMgPSBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5jc3NSdWxl czsNCgkJUnVsTGVuID0gZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uY3NzUnVsZXMubGVuZ3RoOw0K ZG9jdW1lbnQud3JpdGUoICI8QlI+IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNzc1J1bGVzID0g IixkLnN0eWxlU2hlZXRzWzBdLmNzc1J1bGVzKTsNCmRvY3VtZW50LndyaXRlKCAiPEJSPiBOdW1i ZXIgb2YgY3NzUnVsZXMgWy5sZW5ndGhdPSAiLFJ1bExlbik7DQoJCWZvciAoaT0wOyBpPFJ1bExl bjsgaSsrKQ0KCQkgIHsNCgkJTXlSdWxlID0gZC5zdHlsZVNoZWV0c1swXS5jc3NSdWxlc1tpXTsN CmRvY3VtZW50LndyaXRlKCAiPEJSPiBjc3NSdWxlcyBbIitpKyJdID0gIixkLnN0eWxlU2hlZXRz WzBdLmNzc1J1bGVzW2ldKTsNCmRvY3VtZW50LndyaXRlKCAiPEJSPiBjc3NSdWxlcyBbIitpKyJd LnN0eWxlID0gIixNeVJ1bGUuc3R5bGUpOw0KICBpZiAoTXlSdWxlLnN0eWxlLmNvbG9yKQ0KZG9j dW1lbnQud3JpdGUoICI8QlI+ICZuYnNwOyZuYnNwOyZuYnNwO3N0eWxlLmNvbG9yID0gIixNeVJ1 bGUuc3R5bGUuY29sb3IpOw0KICBpZiAoTXlSdWxlLnN0eWxlLmJhY2tncm91bmQpDQpkb2N1bWVu dC53cml0ZSggIjxCUj4gJm5ic3A7Jm5ic3A7Jm5ic3A7c3R5bGUuYmFja2dyb3VuZCA9ICIsTXlS dWxlLnN0eWxlLmJhY2tncm91bmQpOw0KICBpZiAoTXlSdWxlLnN0eWxlLm1hcmdpbikNCmRvY3Vt ZW50LndyaXRlKCAiPEJSPiAmbmJzcDsmbmJzcDsmbmJzcDtzdHlsZS5tYXJnaW4gPSAiLE15UnVs ZS5zdHlsZS5tYXJnaW4pOw0KICAgLyogbm93IGNoZWNrIGluIFczQyBtYW5uZXIgICAqLw0KY29s ID0gZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uY3NzUnVsZXNbaV0uc3R5bGUuZ2V0UHJvcGVydHlW YWx1ZSgnY29sb3InKQ0KZG9jdW1lbnQud3JpdGUoICI8QlI+ICZuYnNwO2RvY3VtZW50LnN0eWxl U2hlZXRzWzBdLmNzc1J1bGVzWzFdLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2NvbG9yJykgPSAi LGNvbCk7DQpiZyA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNzc1J1bGVzW2ldLnN0eWxlLmdl dFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQnKQ0KZG9jdW1lbnQud3JpdGUoICI8QlI+ICZuYnNw O2RvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNzc1J1bGVzWzFdLnN0eWxlLmdldFByb3BlcnR5VmFs dWUoJ2JhY2tncm91bmQnKSA9ICIsYmcpOw0KbWFyZyA9IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBd LmNzc1J1bGVzW2ldLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ21hcmdpbicpDQpkb2N1bWVudC53 cml0ZSggIjxCUj4gJm5ic3A7ZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uY3NzUnVsZXNbMV0uc3R5 bGUuZ2V0UHJvcGVydHlWYWx1ZSgnbWFyZ2luJykgPSAiLG1hcmcpOw0KIA0KZG9jdW1lbnQud3Jp dGUoICI8QlI+IGNzc1J1bGVzIFsiK2krIl0uc2VsZWN0b3JUZXh0ID0gIixNeVJ1bGUuc2VsZWN0 b3JUZXh0KTsNCmRvY3VtZW50LndyaXRlKCAiPEJSPiBjc3NSdWxlcyBbIitpKyJdLmNzc1RleHQg PSAiLE15UnVsZS5jc3NUZXh0KTsNCiAgIA0KICAgICAJICB9DQoJICAgIH0NCgllbHNlIA0KCSAg aWYgKGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLnJ1bGVzKQ0KCSAgIHsNCgkJdGhlUnVsZXMgPSBk b2N1bWVudC5zdHlsZVNoZWV0c1swXS5ydWxlczsNCgkJUnVsTGVuID0gZG9jdW1lbnQuc3R5bGVT aGVldHNbMF0ucnVsZXMubGVuZ3RoOw0KZG9jdW1lbnQud3JpdGUoICI8QlI+IGRvY3VtZW50LnN0 eWxlU2hlZXRzWzBdLnJ1bGVzID0gIixkLnN0eWxlU2hlZXRzWzBdLnJ1bGVzKTsNCmRvY3VtZW50 LndyaXRlKCAiPEJSPiBOdW1iZXIgb2YgY3NzUnVsZXMgWy5sZW5ndGhdPSAiLFJ1bExlbik7DQoJ CWZvciAoaT0wOyBpPFJ1bExlbjsgaSsrKQ0KCQkgIHsNCgkJTXlSdWxlID0gZC5zdHlsZVNoZWV0 c1swXS5ydWxlc1tpXTsNCg0KZG9jdW1lbnQud3JpdGUoICI8QlI+IGNzc1J1bGVzIFsiK2krIl0g PSAiLGQuc3R5bGVTaGVldHNbMF0ucnVsZXNbaV0pOw0KZG9jdW1lbnQud3JpdGUoICI8QlI+IGNz c1J1bGVzIFsiK2krIl0uc3R5bGUgPSAiLE15UnVsZS5zdHlsZSk7DQogIGlmIChNeVJ1bGUuc3R5 bGUuY29sb3IpDQpkb2N1bWVudC53cml0ZSggIjxCUj4gJm5ic3A7Jm5ic3A7Jm5ic3A7c3R5bGUu Y29sb3IgPSAiLE15UnVsZS5zdHlsZS5jb2xvcik7DQogIGlmIChNeVJ1bGUuc3R5bGUuYmFja2dy b3VuZCkNCmRvY3VtZW50LndyaXRlKCAiPEJSPiAmbmJzcDsmbmJzcDsmbmJzcDtzdHlsZS5iYWNr Z3JvdW5kID0gIixNeVJ1bGUuc3R5bGUuYmFja2dyb3VuZCk7DQogIGlmIChNeVJ1bGUuc3R5bGUu bWFyZ2luKQ0KZG9jdW1lbnQud3JpdGUoICI8QlI+ICZuYnNwOyZuYnNwOyZuYnNwO3N0eWxlLm1h cmdpbiA9ICIsTXlSdWxlLnN0eWxlLm1hcmdpbik7DQoNCmRvY3VtZW50LndyaXRlKCAiPEJSPiBj c3NSdWxlcyBbIitpKyJdLnNlbGVjdG9yVGV4dCA9ICIsTXlSdWxlLnNlbGVjdG9yVGV4dCk7DQoN Ci8qIGRvZXNuJ3Qgd29yayBpbiBNUyBJRSAqLw0KZG9jdW1lbnQud3JpdGUoICI8QlI+IGNzc1J1 bGVzIFsiK2krIl0uY3NzVGV4dCA9ICIsTXlSdWxlLmNzc1RleHQpOw0KDQoJCSAgfQ0KLyogbm93 IHdlIGRvIGl0IGluIE1TIElFPXNwZWNpZmljIHdheSAqLw0KZG9jdW1lbnQud3JpdGUoICI8QlI+ IGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNzc1RleHQgPSAiLGRvY3VtZW50LnN0eWxlU2hlZXRz WzBdLmNzc1RleHQpOw0KICANCgkgICAgfQ0KICB9DQoNCmRvY3VtZW50LndyaXRlKCAiPC9QPiIp Ow0KPC9TQ1JJUFQ+DQoNCg0KPC9ib2R5Pg0KPC9odG1sPg0K --------------Boundary-00=_SW28R3E3VCZEXYL245VU Content-Type: text/plain; charset="iso-8859-1"; name="DOM-CSS-results.txt" Content-Transfer-Encoding: base64 Content-Description: results from MS IE and NS6 Content-Disposition: attachment; filename="DOM-CSS-results.txt" TVMgSUUgNS4wIG9uIFdpbmRvd3MNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KRG9jdW1lbnQgPSBbb2JqZWN0XQ0KZC5nZXRFbGVtZW50QnlJZCA6IGZ1bmN0aW9u IGdldEVsZW1lbnRCeUlkKCkgeyBbbmF0aXZlIGNvZGVdIH0gDQpkLmdldEVsZW1lbnRzQnlOYW1l IDogZnVuY3Rpb24gZ2V0RWxlbWVudHNCeU5hbWUoKSB7IFtuYXRpdmUgY29kZV0gfSANCmQuZG9j dHlwZSA9IHVuZGVmaW5lZA0KZG9jdW1lbnQuc3R5bGVTaGVldHMgPSBbb2JqZWN0XQ0KZG9jdW1l bnQuc3R5bGVTaGVldHMubGVuZ3RoID0gMQ0KZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0ucnVsZXMg PSBbb2JqZWN0XQ0KTnVtYmVyIG9mIGNzc1J1bGVzIFsubGVuZ3RoXT0gMg0KY3NzUnVsZXMgWzBd ID0gW29iamVjdF0NCmNzc1J1bGVzIFswXS5zdHlsZSA9IFtvYmplY3RdDQogICBzdHlsZS5jb2xv ciA9ICMzMzMzZmYNCiAgIHN0eWxlLmJhY2tncm91bmQgPSAjZmZmZmZmDQpjc3NSdWxlcyBbMF0u c2VsZWN0b3JUZXh0ID0gUA0KY3NzUnVsZXMgWzBdLmNzc1RleHQgPSB1bmRlZmluZWQNCmNzc1J1 bGVzIFsxXSA9IFtvYmplY3RdDQpjc3NSdWxlcyBbMV0uc3R5bGUgPSBbb2JqZWN0XQ0KICAgc3R5 bGUuY29sb3IgPSBncmVlbg0KICAgc3R5bGUuYmFja2dyb3VuZCA9IHJlZA0KICAgc3R5bGUubWFy Z2luID0gOHB4DQpjc3NSdWxlcyBbMV0uc2VsZWN0b3JUZXh0ID0gLnZhZHRlc3QNCmNzc1J1bGVz IFsxXS5jc3NUZXh0ID0gdW5kZWZpbmVkDQpkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5jc3NUZXh0 ID0gUCB7IEJBQ0tHUk9VTkQ6ICNmZmZmZmY7IENPTE9SOiAjMzMzM2ZmIH0gLnZhZHRlc3QgeyBC QUNLR1JPVU5EOiByZWQ7IENPTE9SOiBncmVlbjsgTUFSR0lOOiA4cHggfSANCg0KTkVUU0NBUEU2 IG9uIFdpbmRvd3MNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpE b2N1bWVudCA9IFtvYmplY3QgSFRNTERvY3VtZW50XQ0KZC5nZXRFbGVtZW50QnlJZCA6IGZ1bmN0 aW9uIGdldEVsZW1lbnRCeUlkKCkgeyBbbmF0aXZlIGNvZGVdIH0NCmQuZ2V0RWxlbWVudHNCeU5h bWUgOiBmdW5jdGlvbiBnZXRFbGVtZW50c0J5TmFtZSgpIHsgW25hdGl2ZSBjb2RlXSB9DQpkLmRv Y3R5cGUgPSBudWxsDQpkb2N1bWVudC5zdHlsZVNoZWV0cyA9IFtvYmplY3QgU3R5bGVTaGVldExp c3RdDQpkb2N1bWVudC5zdHlsZVNoZWV0cy5sZW5ndGggPSAxDQpkb2N1bWVudC5zdHlsZVNoZWV0 c1swXS5jc3NSdWxlcyA9IFtvYmplY3QgQ1NTUnVsZUxpc3RdDQpOdW1iZXIgb2YgY3NzUnVsZXMg Wy5sZW5ndGhdPSAyDQpjc3NSdWxlcyBbMF0gPSBbb2JqZWN0IENTU1N0eWxlUnVsZV0NCmNzc1J1 bGVzIFswXS5zdHlsZSA9IFtvYmplY3QgQ1NTMlByb3BlcnRpZXNdDQogICBzdHlsZS5jb2xvciA9 IHJnYig1MSw1MSwyNTUpDQogICBzdHlsZS5iYWNrZ3JvdW5kID0gcmdiKDI1NSwyNTUsMjU1KSBu b25lIHJlcGVhdCBzY3JvbGwgMCUgMCUNCiBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5jc3NSdWxl c1sxXS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdjb2xvcicpID0gcmdiKDUxLDUxLDI1NSkNCiBk b2N1bWVudC5zdHlsZVNoZWV0c1swXS5jc3NSdWxlc1sxXS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVl KCdiYWNrZ3JvdW5kJykgPSByZ2IoMjU1LDI1NSwyNTUpIG5vbmUgcmVwZWF0IHNjcm9sbCAwJSAw JQ0KIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNzc1J1bGVzWzFdLnN0eWxlLmdldFByb3BlcnR5 VmFsdWUoJ21hcmdpbicpID0NCmNzc1J1bGVzIFswXS5zZWxlY3RvclRleHQgPQ0KY3NzUnVsZXMg WzBdLmNzc1RleHQgPSBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyBiYWNrZ3Jv dW5kLWltYWdlOiBub25lOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OyBiYWNrZ3JvdW5kLWF0 dGFjaG1lbnQ6IHNjcm9sbDsgLXgtYmFja2dyb3VuZC14LXBvc2l0aW9uOiAwJTsgLXgtYmFja2dy b3VuZC15LXBvc2l0aW9uOiAwJTsgY29sb3I6IHJnYig1MSw1MSwyNTUpOw0KY3NzUnVsZXMgWzFd ID0gW29iamVjdCBDU1NTdHlsZVJ1bGVdDQpjc3NSdWxlcyBbMV0uc3R5bGUgPSBbb2JqZWN0IENT UzJQcm9wZXJ0aWVzXQ0KICAgc3R5bGUuY29sb3IgPSBncmVlbg0KICAgc3R5bGUuYmFja2dyb3Vu ZCA9IHJlZCBub25lIHJlcGVhdCBzY3JvbGwgMCUgMCUNCiAgIHN0eWxlLm1hcmdpbiA9IDhweCA4 cHggOHB4IDhweA0KIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNzc1J1bGVzWzFdLnN0eWxlLmdl dFByb3BlcnR5VmFsdWUoJ2NvbG9yJykgPSBncmVlbg0KIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBd LmNzc1J1bGVzWzFdLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQnKSA9IHJlZCBu b25lIHJlcGVhdCBzY3JvbGwgMCUgMCUNCiBkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5jc3NSdWxl c1sxXS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdtYXJnaW4nKSA9IDhweCA4cHggOHB4IDhweA0K Y3NzUnVsZXMgWzFdLnNlbGVjdG9yVGV4dCA9DQpjc3NSdWxlcyBbMV0uY3NzVGV4dCA9IGJhY2tn cm91bmQtY29sb3I6IHJlZDsgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgYmFja2dyb3VuZC1yZXBl YXQ6IHJlcGVhdDsgYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGw7IC14LWJhY2tncm91bmQt eC1wb3NpdGlvbjogMCU7IC14LWJhY2tncm91bmQteS1wb3NpdGlvbjogMCU7IGNvbG9yOiBncmVl bjsgbWFyZ2luLXRvcDogOHB4OyBtYXJnaW4tcmlnaHQ6IDhweDsgbWFyZ2luLWJvdHRvbTogOHB4 OyBtYXJnaW4tbGVmdDogOHB4Ow0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo= --------------Boundary-00=_SW28R3E3VCZEXYL245VU--