summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/pl/javascript-trap.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/pl/javascript-trap.html')
-rw-r--r--talermerchantdemos/blog/articles/pl/javascript-trap.html375
1 files changed, 375 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/pl/javascript-trap.html b/talermerchantdemos/blog/articles/pl/javascript-trap.html
new file mode 100644
index 0000000..08711c4
--- /dev/null
+++ b/talermerchantdemos/blog/articles/pl/javascript-trap.html
@@ -0,0 +1,375 @@
+<!--#set var="PO_FILE"
+ value='<a href="/philosophy/po/javascript-trap.pl.po">
+ https://www.gnu.org/philosophy/po/javascript-trap.pl.po</a>'
+ --><!--#set var="ORIGINAL_FILE" value="/philosophy/javascript-trap.html"
+ --><!--#set var="DIFF_FILE" value="/philosophy/po/javascript-trap.pl-diff.html"
+ --><!--#set var="OUTDATED_SINCE" value="2016-03-27" -->
+
+<!--#include virtual="/server/header.pl.html" -->
+<!-- Parent-Version: 1.77 -->
+
+<!-- This file is automatically generated by GNUnited Nations! -->
+<title>Pułapka JavaScript'u</title>
+
+<!--#include virtual="/philosophy/po/javascript-trap.translist" -->
+<!--#include virtual="/server/banner.pl.html" -->
+<!--#include virtual="/server/outdated.pl.html" -->
+<h2>Pułapka JavaScript'u</h2>
+
+<p><a href="http://www.stallman.org/">Richard Stallman</a></p>
+
+<p><strong>Możliwe, że&nbsp;korzystasz z&nbsp;niewolnych programów
+na&nbsp;swoim komputerze każdego dnia &mdash; przez przeglądarkę
+internetową</strong></p>
+
+<p>W&nbsp;społeczności wolnego oprogramowania, znana jest idea tego,
+że&nbsp;niewolne programy źle traktują użytkowników. Niektórzy z&nbsp;nas
+całkowicie odmawiają instalacji prawnie zastrzeżonego oprogramowania,
+a&nbsp;wielu innych fakt bycia niewolnym uważa za&nbsp;wadę programu. Wielu
+użytkowników jest świadomych tego, że&nbsp;kwestia ta ma zastosowanie
+do&nbsp;wtyczek oferowanych do&nbsp;instalacji przez przeglądarki, jako
+że&nbsp;mogą one być wolne bądź&nbsp;niewolne.</p>
+
+<p>Jednak&nbsp;przeglądarki uruchamiają inne niewolne programy, o co nie pytają
+użytkowników ani&nbsp;nawet ich o tym nie informują &mdash; programy zawarte
+bezpośrednio bądź&nbsp;przez odnośnik na&nbsp;stronach internetowych. Te
+programy najczęściej napisane są w&nbsp;JavaScript, choć&nbsp;wykorzystywane
+są także i&nbsp;inne języki.</p>
+
+<p>JavaScript (oficjalnie nazywany ECMAScript, choć&nbsp;niewielu korzysta
+z&nbsp;tej nazwy) był dawniej wykorzystywany do&nbsp;drobnych upiększeń
+na&nbsp;stronach internetowych, takich jak ładne, lecz&nbsp;nieistotne
+elementy nawigacji bądź&nbsp;wyświetlania. Dopuszczalnym było traktowanie
+ich jedynie jako rozszerzenia znaczników HTML, raczej niż prawdziwe
+oprogramowanie; nie stanowiły one znaczącej kwestii.</p>
+
+<p>Wiele stron korzysta z&nbsp;JavaScript w&nbsp;ten sposób,
+jednak&nbsp;niektóre wykorzystują go do&nbsp;większych programów
+wykonujących duże zadania. Przykładowo, Google Docs próbuje pobrać
+na&nbsp;maszynę użytkownika program JavaScript o objętości pół megabajta,
+upakowany w&nbsp;formie, którą nazwać można Obfuscriptem (celowo
+nieczytelnie napisany kod) ponieważ&nbsp;nie posiada żadnych komentarzy
+i&nbsp;prawie żadnych białych znaków, a&nbsp;nazwy metod są
+jednoliterowe. Kod źródłowy programu jest preferowaną formą do&nbsp;jego
+modyfikacji; upakowany kod nie jest kodem źródłowym,
+natomiast&nbsp;prawdziwy kod źródłowy tego programu nie jest dostępny dla
+użytkownika.</p>
+
+<p>Przeglądarki normalnie nie informują użytkownika kiedy ładują programy
+JavaScript. Niektóre przeglądarki ma możliwość by wyłączyć JavaScript
+całkowicie, jednak&nbsp;nawet jeśli o tym wiesz, jest nieoczywiste jak
+rozróżnić nietrywialne niewolne oprogramowanie i&nbsp;je zablokować. Jednak,
+nawet w&nbsp;społeczności wolnego oprogramowania, większość użytkowników nie
+jest świadoma tej kwestii; milczenie przeglądarek sprzyja zaś&nbsp;zatajaniu
+tego.</p>
+
+<p>Jest możliwym wydanie programu JavaScript jako wolnego oprogramowania, przez
+dystrybucję kodu objętego licencją wolnego oprogramowania. Jeśli program
+jest samowystarczalny&nbsp;&ndash; jeśli jego funkcja czy&nbsp;cel są
+niezależne od&nbsp;strony na&nbsp;której jest&nbsp;&ndash; to jest
+w&nbsp;porządku; możecie skopiować program do&nbsp;pliku na&nbsp;komputerze,
+zmodyfikować go i&nbsp;odwiedzić w&nbsp;przeglądarce aby&nbsp;go
+uruchomić. Ale&nbsp;to nietypowy przypadek.</p>
+
+<p>Zwykle programy JavaScript są zaprojektowane aby&nbsp;działać
+z&nbsp;konkretną stroną czy&nbsp;witryną i&nbsp;strona czy&nbsp;witryna
+wymaga ich do&nbsp;funkcjonowania. Wtedy jest dodatkowy problem: nawet jeśli
+jest kod źródłowy programu, przeglądarki nie oferują udogodnień
+umożliwiających uruchomienie własnej zmodyfikowanej wersji zamiast tej
+dostarczanej na&nbsp;stronie. Efekt jest porównywalny do&nbsp;tivoizacji
+(ang. tivoization - od&nbsp;urządzenia TiVo), jednak&nbsp;nie jest on aż tak
+trudny do&nbsp;obejścia.</p>
+
+<p>JavaScript nie jest jedynym językiem w&nbsp;którym strony przesyłają
+programy. Flash umożliwia programowanie poprzez&nbsp;rozszerzony wariant
+JavaScript; jeśli kiedykolwiek będziemy mieli wystarczająco kompletny,
+wolny, program do&nbsp;odtwarzania Flash, będziemy musieli się uporać
+z&nbsp;niewolnymi programami Flash. Silverlight wydaje się stwarzać problemy
+podobne do&nbsp;Flasha, jedynie gorsze, skoro Microsoft używa go jako
+platformy do&nbsp;niewolnych kodeków. Wolne zastępstwo Silverlight nie
+byłoby wystarczające dla wolnego świata chyba, że&nbsp;standardowo zawiera
+wolne zastępcze kodeki.</p>
+
+<p>Aplety Java także są uruchamiane w&nbsp;przeglądarce i&nbsp;wzbudzają
+podobne kłopoty. Ogólnie rzecz biorąc, każdy typ systemu apletów stanowi
+tego typu zagrożenie. Posiadanie wolnego środowiska wykonawczego dla apletu
+jedynie przybliża nas aby&nbsp;bezpośrednio zetknąć się z&nbsp;sednem
+sprawy.</p>
+
+<p>Teoretycznie jest możliwe aby&nbsp;programować w&nbsp;HTML i&nbsp;CSS,
+ale&nbsp;w praktyce jest to ograniczone i&nbsp;niewygodne;
+aby&nbsp;cokolwiek zrobiło to już dobre przedsięwzięcie. Takie programy
+powinny być wolne, ale&nbsp;CSS nie jest poważnym problemem dla wolności
+użytkowników w&nbsp;roku 2016.</p>
+
+<p>Powstał silny ruch który domaga się od&nbsp;stron internetowych by
+komunikowały się jedynie przez formaty i&nbsp;protokoły, które są wolne
+(niektórzy powiedzą &bdquo;otwarte&rdquo;); a&nbsp;więc takich, których
+dokumentacja została opublikowana i&nbsp;które każdy może
+zaimplementować. Z&nbsp;obecnością programów na&nbsp;stronach internetowych,
+takie kryterium jest konieczne, lecz&nbsp;nie wystarczające. JavaScript sam
+w&nbsp;sobie, jako format, jest wolny, a&nbsp;wykorzystanie JavaScript
+w&nbsp;na stronie internetowej samo w&nbsp;sobie nie jest złe. Jednak, jak
+widać po&nbsp;powyższych przykładach, nie jest to automatycznie
+w&nbsp;porządku. Kiedy strona przesyła program do&nbsp;użytkowanika, nie
+jest wystarczającym by program był napisany w&nbsp;udokumentowanym
+i&nbsp;nieobciążonym języku; taki program musi być także
+wolny. &bdquo;Jedynie wolne programy przesyłane do&nbsp;użytkownika&rdquo;
+mogą stać się częścią kryterium dla poprawnego zachowania się stron
+internetowych.</p>
+
+<p>Ciche ładowanie i&nbsp;uruchamianie niewolnych programów jest jedną
+z&nbsp;wielu kwestii wnoszonych przez &bdquo;aplikacje
+sieciowe&rdquo;. Termin &bdquo;aplikacji sieciowych&rdquo; został
+zaprojektowany by ignorować fundamentalne różnice między oprogramowaniem
+dostarczonym do&nbsp;użytkowników, a&nbsp;oprogramowaniem działającym
+na&nbsp;serwerze. Może się on odnosić do&nbsp;wyspecjalizowanego programu
+uruchamianego bezpośrednio w&nbsp;przeglądarce; może się on odnosić
+do&nbsp;wyspecjalizowanego oprogramowania serwera; może się on odnosić
+do&nbsp;wyspecjalizowanego programu w&nbsp;przeglądarce działającego
+wspólnie z&nbsp;wyspecjalizowanym oprogramowaniem serwera. Strony klienta
+i&nbsp;serwera podnoszą różne kwestie etyczne, nawet jeśli są tak mocno
+zintegrowane, że&nbsp;w efekcie tworzą części jednego programu. To
+opracowanie dotyczy tylko oprogramowanie po&nbsp;stronie
+klienta. Oprogramowanie na&nbsp;serwerach omawiamy osobno.</p>
+
+<p>W&nbsp;kwestiach praktycznych, jak możemy sobie radzić z&nbsp;problemem
+niewolnych programów JavaScript na&nbsp;stronach internetowych? Pierwszym
+krokiem jest aby&nbsp;go nie uruchamiać.</p>
+
+<p>Po&nbsp;pierwsze, co mamy na&nbsp;myśli przez &bdquo;nietrywialne&rdquo;?
+Skoro pojęcie &bdquo;nietrywialności&rdquo; jest stopniowane, jest kwestią
+zaprojektowania prostego kryterium dającego dobre rezultaty, raczej niż
+ustalania jednej poprawnej odpowiedzi.</p>
+<p>
+Nasza wstępna zasada jest aby&nbsp;program JavaScript był nietrywialny
+jeśli:</p>
+
+<ul>
+ <li>robi żądania AJAX lub&nbsp;jest ładowany ze skryptami, które robią żądania
+AJAX,</li>
+
+ <li>ładuje dynamicznie zewnętrzne skrypty lub&nbsp;jest ładowany razem ze
+skryptami, które to robią,</li>
+
+ <li>definiuje funkcje i&nbsp;albo ładuje zewnętrzny skrypt (z wnętrza html)
+lub&nbsp;jest ładowany jako taki,</li>
+
+ <li>używa dynamiczne struktury JavaScript, które są trudne do&nbsp;analizowania
+bez&nbsp;uruchamiania programu, lub&nbsp;jest ładowany razem ze skryptami,
+które używają takich struktur. Te struktury to:
+ <ul>
+ <li>używanie funkcji eval,</li>
+ <li>wywoływanie funkcji za&nbsp;pomocą kwadratowych nawiasów,</li>
+ <li>Używanie konstrukcji innych niż ciąg znaków z&nbsp;niektórymi funkcjami
+(Obj.write, Obj.createElement, ...).</li>
+ </ul>
+ </li>
+</ul>
+
+<p>Jak rozróżnić czy&nbsp;dany kod JavaScript jest wolny? Na&nbsp;zakończenie
+tego artykułu proponujemy konwencję, według której nietrywialne programy
+JavaScript na&nbsp;stronie internetowej mogłyby podać URL pod&nbsp;którym
+znajduje się ich kod źródłowy, a&nbsp;także przy wykorzystaniu stylizowanych
+komentarzy określać swoją licencję.</p>
+
+<p>W&nbsp;końcu musimy zmienić wolne przeglądarki aby&nbsp;rozpoznawały
+i&nbsp;blokowały nietrywialny JavaScript na&nbsp;stronach
+internetowych. Program <a href="/software/librejs/">LibreJS</a> wykrywa
+niewolny, nietrywialny JavaScript na&nbsp;stronach, które odwiedzacie
+i&nbsp;go blokuje. LibreJS jest dodatkiem dla IceCat i&nbsp;IceWeasel (i dla
+Firefoksa).</p>
+
+<p>Użytkownicy przeglądarek potrzebują wygodnej metody określenia kodu
+JavaScript, którego chcą użyć <em>zamiast</em> JavaScript na&nbsp;wybranej
+stronie. (Określony kod może być całkowitym zastąpieniem,
+bądź&nbsp;zmodyfikowaną wersją wolnego programu JavaScript obecnego
+na&nbsp;wybranej stronie.) Greasemonkey jest bliskie umożliwienia tego,
+jednak&nbsp;nie do&nbsp;końca, gdyż nie gwarantuje modyfikacji kodu
+JavaScript na&nbsp;stronie zanim ten zacznie się wykonywać. Wykorzystanie
+lokalnego proxy działa, jednak&nbsp;jest zbyt niedogodne by być realnym
+rozwiązaniem. Potrzebujemy rozwiązania, które jest niezawodne
+i&nbsp;wygodne, jak i&nbsp;witryny gdzie można się dzielić zmianami. Projekt
+GNU zarekomenduje strony, które są dedykowane jedynie wolnym zmianom.</p>
+
+<p>Takie możliwości umożliwią programom JavaScript zawartym na&nbsp;stronach
+internetowych bycie wolnymi w&nbsp;rzeczywistym i&nbsp;praktycznym
+sensie. JavaScript nie będzie nadal szczególną przeszkodą do&nbsp;naszej
+wolnośći &mdash; nie bardziej niż C i&nbsp;Java są nimi teraz. Będziemy
+mogli odrzucić a&nbsp;nawet podmienić niewolne, nietrywialne programy
+JavaScript, tak samo jak możemy podmienić niewolne pakiety normalnie
+oferowane nam do&nbsp;instalacji. Nasza kampania dla stron internetowych by
+uwolnić ich JavaScript może się wtedy zacząć.</p>
+
+<p>W&nbsp;międzyczasie jest jeden przypadek gdzie jest dopuszczalne uruchamiać
+niewolny program JavaScript: aby&nbsp;wysłać zażalenie do&nbsp;operatorów
+witryn internetowych, że&nbsp;powinni uwolnić lub&nbsp;usunąć JavaScript ze
+stron. Nie wahajcie się włączyć JavaScript tymczasowo aby&nbsp;to zrobić,
+ale&nbsp;pamiętajcie go potem wyłączyć.</p>
+
+<p><strong>Podziękowania dla <a href="/people/people.html#mattlee">Matta
+Lee</a> i&nbsp;<a href="http://ejohn.org">Johna Resiga</a> za&nbsp;ich pomoc
+w&nbsp;definiowaniu naszej propozycji kryterium, oraz&nbsp;dla Davida
+Parunakiana za&nbsp;pomoc w&nbsp;uświadomieniu mi problemu.</strong></p>
+
+<h3 id="AppendixA">Załącznik A: konwencja dla wypuszczania wolnych programów JavaScript.</h3>
+
+<p>Odnośniki do&nbsp;kodu źródłowego proponujemy oznaczać</p>
+<pre dir="ltr">
+
+ // @source:
+
+</pre>
+
+<p>a&nbsp;następnie URL. To spełnia wymóg GNU GPL aby&nbsp;rozprowadzać kod
+źródłowy. Jeśli kod jest na&nbsp;innej stronie, musicie zwrócić uwagę
+aby&nbsp;<a href="/licenses/gpl-faq.html#SourceAndBinaryOnDifferentSites">o
+to właściwie zadbać</a>. Kod źródłowy jest konieczny aby&nbsp;program był
+wolny.
+</p>
+
+<p>By wskazać licencję kodu JavaScript zawartego na&nbsp;stronie, proponujemy
+umieszczenie licencji między dwoma komentarzami w&nbsp;tej formie:</p>
+<pre dir="ltr">
+<!--TRANSLATORS: Do not translate these license notices. The <pre>
+
+ elements have dir="ltr" explicitly set to cater for RTL languages.-->
+
+ @licstart The following is the entire license notice for the
+ JavaScript code in this page.
+ ...
+ @licend The above is the entire license notice
+ for the JavaScript code in this page.
+</pre>
+<p>Oczywiście, wszystko to powinno być zawarte w&nbsp;wielowierszowym
+komentarzu.</p>
+
+<p><a href="/licenses/gpl.html">GNU GPL</a>, tak jak wiele innych licencji
+wolnego oprogramowania wymaga dystrybucji kopii licencji zarówno
+z&nbsp;kodem jak i&nbsp;binariami programu. Jednakże, GNU GPL jest
+na&nbsp;tyle długie, że&nbsp;załączanie go do&nbsp;strony zawierającej
+JavaScript może być uciążliwe. Można pominąć to wymaganie, dla kodu
+do&nbsp;którego posiada się prawa autorskie, taką notatką licencyjną:</p>
+<pre dir="ltr">
+
+ Copyright (C) YYYY Developer
+
+ Kod JavaScript na&nbsp;tej stronie jest wolnym oprogramowaniem: można
+ go rozprowadzać oraz&nbsp;modyfikować go zgodnie z&nbsp;warunkami GNU
+ General Public License (GNU GPL) opublikowanym przez Free Software
+ Foundation, licencji w&nbsp;wersji 3, bądź&nbsp;(opcjonalnie) każdą późniejszą wersją
+ Kod dystrybuowany jest BEZ&nbsp;JAKIEJKOLWIEK GWARANCJI;
+ nawet bez&nbsp;domniemanej gwarancji ZDATNOŚCI DO&nbsp;HANDLU
+ czy&nbsp;ZDATNOŚCI DO&nbsp;OKREŚLONEGO CELU. Proszę odwołać się
+ do&nbsp;GNU GPL po&nbsp;szczegóły.
+
+ Jako dodatkowe zezwolenie zgodne z&nbsp;GNU GPL wersji 3 sekcji 7,
+ można dystrybuować nie-źródłowe (np., zminimalizowane bądź&nbsp; upakowane)
+ formy tego kodu bez&nbsp;kopii GNU GPL normalnie wymaganej
+ w&nbsp;sekcji 4, pod&nbsp;warunkiem załączenia tej notatki licencyjnej i&nbsp;URL
+ przez które odbiorcy mogą dotrzeć do&nbsp;Właściwego Źródła
+
+</pre>
+
+<p>Dziękuje Jaffarowi Rumithowi za&nbsp;zwrócenie mojej uwagi na&nbsp;tę
+kwestię.</p>
+
+<h3 id="AppendixB">Załącznik B: konwencja dla wypuszczania wolnych programów JavaScript.</h3>
+
+<p>Jeśli jesteście webmasterem rozprowadzającym wolne oprogramowanie JavaScript
+na&nbsp;Waszej stronie, to jasne i&nbsp;konsekwentne umieszczanie informacji
+o licencjach i&nbsp;kodzie źródłowym pomaga odwiedzającym upewnić się,
+że&nbsp;uruchamiają wolne oprogramowanie i&nbsp;pomogą Wam przestrzegać
+warunki licencji.</p>
+
+<p>Jedną z&nbsp;metod przedstawiania licencji jest ta opisana wyżej w&nbsp;<a
+href="#AppendixA">Dodatku A</a>. Druga metoda, <a
+href="/licenses/javascript-labels.html">JavaScript license web labels</a>,
+może być wygodniejsza dla bibliotek z-minifi-owanym kodem JavaScript,
+szczególnie gdy to nie Wy go napisaliście.</p>
+
+<div class="translators-notes">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
+ </div>
+</div>
+
+<!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.pl.html" -->
+<div id="footer">
+<div class="unprintable">
+
+<p>Wszelkie pytania dotyczące GNU i&nbsp;FSF prosimy kierować na&nbsp;adres <a
+href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Inne metody kontaktu
+z&nbsp;FSF można znaleźć na&nbsp;stronie <a
+href="/contact/contact.html">kontakt</a> <br /> Informacje o niedziałających
+odnośnikach oraz&nbsp;inne poprawki (lub propozycje) prosimy wysyłać
+na&nbsp;adres <a
+href="mailto:web-translators@gnu.org">&lt;web-translators@gnu.org&gt;</a>.</p>
+
+<p>
+<!-- TRANSLATORS: Ignore the original text in this paragraph,
+ replace it with the translation of these two:
+
+ We work hard and do our best to provide accurate, good quality
+ translations. However, we are not exempt from imperfection.
+ Please send your comments and general suggestions in this regard
+ to <a href="mailto:web-translators@gnu.org">
+
+ &lt;web-translators@gnu.org&gt;</a>.</p>
+
+ <p>For information on coordinating and submitting translations of
+ our web pages, see <a
+ href="/server/standards/README.translations.html">Translations
+ README</a>. -->
+Staramy się, aby&nbsp;tłumaczenia były wierne i&nbsp;wysokiej jakości,
+ale&nbsp;nie jesteśmy zwolnieni z&nbsp;niedoskonałości. Komentarze odnośnie
+tłumaczenia polskiego oraz&nbsp;zgłoszenia dotyczące chęci współpracy
+w&nbsp;tłumaczeniu prosimy kierować na&nbsp;adres <a
+href="mailto:www-pl-trans@gnu.org">www-pl-trans@gnu.org</a>. <br /> Więcej
+informacji na&nbsp;temat koordynacji oraz&nbsp;zgłaszania propozycji
+tłumaczeń artykułów znajdziecie na&nbsp;<a
+href="/server/standards/README.translations.html">stronie tłumaczeń</a>.</p>
+</div>
+
+<!-- Regarding copyright, in general, standalone pages (as opposed to
+ files generated as part of manuals) on the GNU web server should
+ be under CC BY-ND 4.0. Please do NOT change or remove this
+ without talking with the webmasters or licensing team first.
+ Please make sure the copyright date is consistent with the
+ document. For web pages, it is ok to list just the latest year the
+ document was modified, or published.
+
+ If you wish to list earlier years, that is ok too.
+ Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
+ years, as long as each year in the range is in fact a copyrightable
+ year, i.e., a year in which the document was published (including
+ being publicly visible on the web or in a revision control system).
+
+ There is more detail about copyright years in the GNU Maintainers
+ Information document, www.gnu.org/prep/maintain. -->
+<p>Copyright &copy; 2009-2013, 2016 Richard Stallman</p>
+
+<p>Ta strona jest dostępna na&nbsp;<a rel="license"
+href="http://creativecommons.org/licenses/by-nd/4.0/deed.pl">licencji
+Creative Commons Uznanie autorstwa&nbsp;&ndash; Bez&nbsp;utworów zależnych
+4.0 Międzynarodowe</a>.</p>
+
+<!--#include virtual="/server/bottom-notes.pl.html" -->
+<div class="translators-credits">
+
+<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
+Tłumaczenie: Jan Owoc 2012, 2016, Jan Wieremjewicz 2010, 2012; poprawki Jan
+Owoc 2010, 2011, 2013.</div>
+
+<p class="unprintable"><!-- timestamp start -->
+Aktualizowane:
+
+$Date: 2016/11/18 07:32:45 $
+
+<!-- timestamp end -->
+</p>
+</div>
+</div>
+</body>
+</html>