├── README.md ├── dieta └── index.html ├── index-js └── index.html ├── lazy-img ├── index.html └── js │ └── lazy-img.js ├── pika └── index.html ├── py-folder └── index.html ├── py-idbfs └── index.html ├── site-js ├── $ │ ├── index.js │ └── page.js ├── index.html ├── js │ ├── lighterhtml.js │ └── module.js └── sw.js ├── snippet ├── index.html └── index.php ├── star-rate └── index.html ├── webrtc ├── index.html └── simple-share.js └── write.js /README.md: -------------------------------------------------------------------------------- 1 | # test 2 | Literally tests for any sort of thing 3 | -------------------------------------------------------------------------------- /dieta/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Dieta per colesterolo 7 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 |
Dieta consigliata in caso di ipercolesterolemia
AlimentiVietatiPermessiPer settimana
Latte e Yogurtlatte intero, yogurt intero, yogurt alla frutta, latte condensato, panna, creme di yogurtlatte parzialmente scremato e totalmente scremato, yogurt magro bianco o alla frutta (0.1% di grassi)tutti i giorni
Formaggiformaggi stagionati tipo groviera, gorgonzola, fontina, formaggi fusi, sottilette, pecorino, granaformaggi freshi tipo ricotta vaccina, mozzarella, crescenza, fiocchi di latte1 volta, non piu' di 50-80 g per porzione
Carnecarne cucinata con abbondante condimento, evitare la carne grassa (anatra, costine...) e le frattaglie (fegato, rognone, cuore ...)tutti i tipi di carne magra sono permessi: pollo (petto), tacchino, coniglio, vitello, manzo magro, cavallo, maiale magro (lonza o filetto)3 volte
Salumisalame, mortadella, coppa, pancettaprosciutto crudo magro, prosciutto cotto magro, bresaola, speak magro1-2 volte, non piu' di 50-70 g per porzione
Pescipesci conservati sott'olio (es. tonno), moderare il consumo di molluschi e crostacei (cozze, vongole, gamberi ...)freschi o surgelati tipo sogliola, merluzzo, trota, dentice, orata. Tonno in scatula al naturale.2-4 volte
Uovauova fritteuova sodeo alla coque o in frittata cotta senza condimento. Ricordare che l'albume e' privo di colesterolo.n. 2 uova/settimana
Condimentiburro, lardo, strutto, margarina animale, olio di semi variolio extravergine d'oliva, olio di semi di mais, olio di soia, olio di vinacciolo, margarine vegetali.
IN MODERATE QUANTITA'
Pane e similipane condito, fette biscottate, grissini, crackerspane comune, pane integrale, grissini all'acquatutti i giorni
Patatepatate frittepatate lessate, patate al forno, purea di patate
LegumiNESSUNOTUTTI
Pasta, riso, semolino, gnocchi di patatesolo se conditi con sughi elaboratipasta o riso o gnocchi al pomodoro o alle verdure, al ragu' magro, risotto allo zafferano, pasta o riso in brodo vegetale o tipo minestronetutti i giorni
Tortellini, ravioli, cannelloni, ecc.TUTTINESSUNO
Verduraverdura fritta o cucinata con grassi animalitutti i tipi, cotta o crudatutti i giorni
Fruttafrutta seccaTUTTA. In moderate quantita' banane, uva, fichi, kaki, frutta sciroppatatutti i giorni
BevandeNESSUNAacqua, te', caffe', bibite zuccherate e succhi di frutta in quantita' limitata. Moderare vino e birra.tutti i giorni
concesso n. 1 bicchiere di vino rosso a pasto
Zucchero, miele, marmellataNESSUNOTUTTItutti i giorni
senza eccedere
Dolci, gelati, ghiaccioligelati o dolci confezionati con uova o burro o panna, biscotti, frollini, biscotti farcitidolci fatti in casa senza burro, uova, panna, sorbetti alla frutta. Concessi a colazione biscotti secchi Pavesini, Corn-flakes
Aceto, limone, aromi, spezie, saleNESSUNOTUTTI. Limitare il consumo di sale da cucina
160 |
161 |
162 |

Consigli alimentari per una deita a basso contenuto di purine (circa 100 mg/die)

163 |

Alimenti consentiti

164 | 176 |

Alimenti da assumere con moderazione

177 | 184 |

Alimenti da evitare

185 | 199 |
200 | 201 | -------------------------------------------------------------------------------- /index-js/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lazy-img/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Image loading=lazy 7 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

Image loading lazy poly via Custom Elements

31 |
32 |

33 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tempus mauris et nunc condimentum, maximus rutrum tortor gravida. Proin fringilla ultricies finibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque at tincidunt nisi, et tincidunt augue. Ut a ligula eu enim laoreet ullamcorper et quis mauris. Nulla venenatis tellus et sodales vestibulum. Sed semper faucibus placerat. Aliquam id ante at nunc laoreet tristique quis et elit. 34 |

35 |

36 | Phasellus a massa varius, venenatis tellus quis, tempus nulla. Donec a erat consequat, tincidunt neque vitae, aliquam ex. Vivamus mollis iaculis sapien et auctor. Sed id tincidunt odio. Praesent bibendum est vel lorem cursus tristique. Integer neque massa, iaculis in ex ut, feugiat scelerisque enim. Vestibulum non augue accumsan, fringilla tellus ut, vulputate arcu. Quisque vitae luctus velit. Ut eleifend mauris sed nibh sagittis tincidunt. Suspendisse nec justo a metus imperdiet accumsan. Ut in metus cursus, sollicitudin ligula egestas, fermentum eros. 37 |

38 |

39 | Morbi nec rutrum tellus. Praesent quis ligula id nulla luctus molestie in id erat. Vestibulum faucibus condimentum leo eu pulvinar. Nam venenatis vestibulum nunc, nec euismod tellus imperdiet a. Suspendisse ultricies semper nisi sed imperdiet. Curabitur fermentum purus id efficitur commodo. Cras fermentum sit amet diam vel feugiat. Donec pulvinar, urna a commodo congue, enim ex dapibus lectus, quis blandit nibh eros a elit. Nunc non risus eu neque eleifend congue. Suspendisse tortor dui, lobortis quis tortor ornare, lacinia semper nisi. Maecenas sed ipsum odio. Mauris massa urna, aliquet ac nisl vitae, mollis gravida orci. Vestibulum auctor metus nec turpis pellentesque, quis blandit est convallis. Nulla vel tempor ligula. Quisque eleifend porttitor ipsum vel tincidunt. 40 |

41 |

42 | Morbi orci ligula, varius quis aliquam rhoncus, tempor ut tellus. Quisque vel risus vitae lacus dictum mattis. Nullam aliquet nisl sit amet congue eleifend. Nunc iaculis finibus est, at congue ligula blandit quis. Ut eget dui ac nulla semper accumsan. Pellentesque dictum odio id iaculis suscipit. Mauris vel lobortis nibh, a dapibus dolor. Donec id commodo lorem. Donec bibendum tempor nibh, ut condimentum nunc lacinia ac. Pellentesque venenatis id sem ac malesuada. Mauris et iaculis nisi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus luctus dui tellus, vitae ultricies neque lacinia eget. Praesent sollicitudin tellus id lacus ornare, nec consectetur nibh commodo. Pellentesque quis mollis arcu. 43 |

44 |

45 | Aliquam ut suscipit purus, a tincidunt ex. Praesent laoreet ex vitae turpis dapibus aliquam. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam in ipsum et nulla gravida placerat vitae ultricies justo. Nunc vitae consectetur ipsum. Sed vehicula, tellus nec mollis rutrum, lectus elit dignissim ipsum, eu mattis felis metus quis tellus. Mauris sodales vehicula tellus, id ornare sem blandit vitae. Pellentesque ligula ipsum, dapibus vel fermentum ac, malesuada ut neque. Duis lobortis turpis id facilisis varius. Vivamus tellus ex, mattis ut congue sit amet, tincidunt et sem. 46 |

47 |

48 | Mauris rutrum velit eros. Vivamus sit amet nisl id nunc aliquet lacinia. Donec sed purus dui. Suspendisse varius commodo dolor eu sodales. Vestibulum scelerisque finibus lacus, id euismod augue tristique in. In facilisis cursus velit. Vivamus in sapien sit amet dolor aliquet porta. Ut consectetur turpis consectetur ex pellentesque luctus. Suspendisse eros urna, suscipit vel leo non, convallis tristique ante. Quisque vulputate velit ut mi pretium feugiat. Etiam sodales ipsum magna, ac finibus massa varius vel. 49 |

50 |

51 | Aliquam id erat id mauris auctor egestas id vitae sapien. Sed posuere, orci eu rutrum faucibus, tellus tortor hendrerit augue, sed luctus nunc ligula eget nisl. Nulla at pulvinar mi. Praesent id eleifend justo. Vestibulum lobortis sollicitudin metus hendrerit volutpat. Nullam luctus tortor ut varius faucibus. Duis aliquet velit et massa scelerisque, aliquam sagittis risus gravida. 52 |

53 |

54 | Mauris rhoncus sit amet libero ut pulvinar. Nam vitae nisl pretium, consequat elit ac, pulvinar justo. Ut vulputate lorem et erat cursus vehicula. Nam sodales elementum libero sed lacinia. Nulla a mi ipsum. Mauris sagittis sapien vitae nisl euismod varius. Morbi enim magna, varius ut turpis viverra, iaculis congue velit. Aenean odio nisi, hendrerit in lorem id, vehicula tempus nulla. Sed pharetra gravida eleifend. Fusce convallis sagittis ligula, a sodales metus. Aenean lobortis justo ut vehicula consequat. Aliquam erat volutpat. Duis malesuada enim in nisi congue, vitae vehicula ligula ornare. Etiam faucibus vulputate congue. Duis vitae est vel ante posuere ultrices. Suspendisse a imperdiet dolor. 55 |

56 |

57 | In accumsan purus eu tincidunt venenatis. Maecenas in maximus massa. Donec sit amet commodo ipsum. Donec scelerisque non sem eu facilisis. Sed blandit, justo sit amet lacinia blandit, arcu libero egestas est, eget eleifend leo ligula quis arcu. Ut convallis vitae ante a vulputate. Vestibulum mollis, libero nec maximus condimentum, diam felis luctus urna, eu consectetur felis ipsum id nulla. Nam nibh nibh, ultricies at ante et, tempor euismod ante. Donec augue elit, efficitur non condimentum id, maximus eget enim. Nam venenatis urna et lacinia dapibus. Nam consectetur ornare tempor. In cursus libero ut arcu ornare blandit. Aliquam non laoreet metus. 58 |

59 |

60 | Maecenas efficitur ligula tellus, in elementum lectus pellentesque vitae. Cras a vehicula magna. Mauris commodo risus condimentum, bibendum tellus pulvinar, egestas justo. Curabitur lobortis sit amet mauris non mollis. Mauris quis consequat nulla, eu tincidunt risus. Aliquam erat volutpat. Cras venenatis urna erat, vel pharetra sapien hendrerit a. Nullam tempor leo quis magna aliquet varius. Mauris eu metus velit. Phasellus auctor semper lectus, eu accumsan nunc suscipit a. Ut vitae sapien sed risus aliquet vulputate ac eget magna. 61 |

62 |

63 | Pellentesque luctus turpis at dui mollis, vel vehicula orci faucibus. Quisque vitae lorem velit. Morbi et arcu in urna ullamcorper tempor. Vestibulum placerat eros vel felis vestibulum, in pretium dui volutpat. Nullam finibus, urna vitae porta pulvinar, nisi arcu fermentum ipsum, at mattis nibh nibh et elit. Morbi malesuada, libero ut sodales malesuada, nisl massa bibendum est, id condimentum mi justo nec turpis. Pellentesque sed scelerisque dolor. Donec dapibus viverra justo ac placerat. Suspendisse sagittis consectetur turpis laoreet ultricies. Nam ac turpis quis arcu tristique facilisis. Quisque semper purus et imperdiet efficitur. Donec eu feugiat ex. Mauris egestas at odio ac bibendum. Nulla quis neque quis arcu euismod dictum. Integer euismod erat elementum libero condimentum, et consequat dui vehicula. Mauris mattis sem at augue sollicitudin blandit. 64 |

65 |

66 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam erat volutpat. Proin nulla tortor, vehicula vel aliquet sit amet, dignissim nec ipsum. Sed lacinia dui eros, et cursus purus efficitur nec. Mauris nec interdum nulla. Mauris tempor at orci eu hendrerit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean sed ipsum dapibus, cursus nibh id, venenatis eros. Vestibulum elementum pretium ultrices. Vestibulum a odio in diam tincidunt hendrerit a ut purus. 67 |

68 |

69 | Nulla sagittis quam eget turpis pharetra iaculis. Donec quis neque consectetur, fermentum orci eget, ultrices massa. Aenean eget erat id enim fringilla pulvinar. Nullam nisl est, suscipit sed eros in, feugiat iaculis nulla. Nullam iaculis sapien quis pharetra dignissim. Quisque et sapien in velit rhoncus posuere vel vel orci. Nunc commodo, mi tincidunt mollis porttitor, nunc ante vulputate tellus, et varius dolor enim vitae enim. Sed elementum gravida sem vitae mattis. Donec elementum sem sit amet dui lacinia congue. Mauris et ultricies diam. Aliquam justo nibh, finibus id est quis, dignissim vehicula nulla. Nam tempor mattis eros, quis dignissim libero mollis eget. Phasellus et posuere turpis. Aenean et magna sed arcu dapibus aliquam at in lacus. Pellentesque congue a quam sit amet aliquam. Curabitur venenatis ipsum a rutrum consectetur. 70 |

71 | 72 |

73 | Sed aliquet dictum magna ut pellentesque. Vivamus iaculis ullamcorper leo at posuere. Phasellus maximus arcu sed dictum fringilla. Vestibulum in velit vitae est dignissim euismod. Cras neque mi, finibus quis congue sit amet, malesuada at elit. Nam ultrices magna non luctus tempor. Vivamus vitae dolor orci. Curabitur ac est ac ligula dapibus euismod eu sit amet nunc. 74 |

75 |

76 | In hac habitasse platea dictumst. Nulla nec erat pretium, pulvinar elit vel, ullamcorper ipsum. Sed ante nisl, efficitur nec sodales id, hendrerit nec dolor. Etiam tristique odio vel ipsum sagittis elementum. Duis id euismod elit. Donec rutrum ligula in blandit gravida. Vestibulum id ultrices mi. Integer ultrices urna ac eros venenatis pretium. Vivamus euismod sem condimentum, pharetra urna et, accumsan nunc. 77 |

78 |
79 |
80 |

81 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis tempus mauris et nunc condimentum, maximus rutrum tortor gravida. Proin fringilla ultricies finibus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque at tincidunt nisi, et tincidunt augue. Ut a ligula eu enim laoreet ullamcorper et quis mauris. Nulla venenatis tellus et sodales vestibulum. Sed semper faucibus placerat. Aliquam id ante at nunc laoreet tristique quis et elit. 82 |

83 |

84 | Phasellus a massa varius, venenatis tellus quis, tempus nulla. Donec a erat consequat, tincidunt neque vitae, aliquam ex. Vivamus mollis iaculis sapien et auctor. Sed id tincidunt odio. Praesent bibendum est vel lorem cursus tristique. Integer neque massa, iaculis in ex ut, feugiat scelerisque enim. Vestibulum non augue accumsan, fringilla tellus ut, vulputate arcu. Quisque vitae luctus velit. Ut eleifend mauris sed nibh sagittis tincidunt. Suspendisse nec justo a metus imperdiet accumsan. Ut in metus cursus, sollicitudin ligula egestas, fermentum eros. 85 |

86 |

87 | Morbi nec rutrum tellus. Praesent quis ligula id nulla luctus molestie in id erat. Vestibulum faucibus condimentum leo eu pulvinar. Nam venenatis vestibulum nunc, nec euismod tellus imperdiet a. Suspendisse ultricies semper nisi sed imperdiet. Curabitur fermentum purus id efficitur commodo. Cras fermentum sit amet diam vel feugiat. Donec pulvinar, urna a commodo congue, enim ex dapibus lectus, quis blandit nibh eros a elit. Nunc non risus eu neque eleifend congue. Suspendisse tortor dui, lobortis quis tortor ornare, lacinia semper nisi. Maecenas sed ipsum odio. Mauris massa urna, aliquet ac nisl vitae, mollis gravida orci. Vestibulum auctor metus nec turpis pellentesque, quis blandit est convallis. Nulla vel tempor ligula. Quisque eleifend porttitor ipsum vel tincidunt. 88 |

89 |

90 | Morbi orci ligula, varius quis aliquam rhoncus, tempor ut tellus. Quisque vel risus vitae lacus dictum mattis. Nullam aliquet nisl sit amet congue eleifend. Nunc iaculis finibus est, at congue ligula blandit quis. Ut eget dui ac nulla semper accumsan. Pellentesque dictum odio id iaculis suscipit. Mauris vel lobortis nibh, a dapibus dolor. Donec id commodo lorem. Donec bibendum tempor nibh, ut condimentum nunc lacinia ac. Pellentesque venenatis id sem ac malesuada. Mauris et iaculis nisi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus luctus dui tellus, vitae ultricies neque lacinia eget. Praesent sollicitudin tellus id lacus ornare, nec consectetur nibh commodo. Pellentesque quis mollis arcu. 91 |

92 |

93 | Aliquam ut suscipit purus, a tincidunt ex. Praesent laoreet ex vitae turpis dapibus aliquam. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam in ipsum et nulla gravida placerat vitae ultricies justo. Nunc vitae consectetur ipsum. Sed vehicula, tellus nec mollis rutrum, lectus elit dignissim ipsum, eu mattis felis metus quis tellus. Mauris sodales vehicula tellus, id ornare sem blandit vitae. Pellentesque ligula ipsum, dapibus vel fermentum ac, malesuada ut neque. Duis lobortis turpis id facilisis varius. Vivamus tellus ex, mattis ut congue sit amet, tincidunt et sem. 94 |

95 |

96 | Mauris rutrum velit eros. Vivamus sit amet nisl id nunc aliquet lacinia. Donec sed purus dui. Suspendisse varius commodo dolor eu sodales. Vestibulum scelerisque finibus lacus, id euismod augue tristique in. In facilisis cursus velit. Vivamus in sapien sit amet dolor aliquet porta. Ut consectetur turpis consectetur ex pellentesque luctus. Suspendisse eros urna, suscipit vel leo non, convallis tristique ante. Quisque vulputate velit ut mi pretium feugiat. Etiam sodales ipsum magna, ac finibus massa varius vel. 97 |

98 |

99 | Aliquam id erat id mauris auctor egestas id vitae sapien. Sed posuere, orci eu rutrum faucibus, tellus tortor hendrerit augue, sed luctus nunc ligula eget nisl. Nulla at pulvinar mi. Praesent id eleifend justo. Vestibulum lobortis sollicitudin metus hendrerit volutpat. Nullam luctus tortor ut varius faucibus. Duis aliquet velit et massa scelerisque, aliquam sagittis risus gravida. 100 |

101 |

102 | Mauris rhoncus sit amet libero ut pulvinar. Nam vitae nisl pretium, consequat elit ac, pulvinar justo. Ut vulputate lorem et erat cursus vehicula. Nam sodales elementum libero sed lacinia. Nulla a mi ipsum. Mauris sagittis sapien vitae nisl euismod varius. Morbi enim magna, varius ut turpis viverra, iaculis congue velit. Aenean odio nisi, hendrerit in lorem id, vehicula tempus nulla. Sed pharetra gravida eleifend. Fusce convallis sagittis ligula, a sodales metus. Aenean lobortis justo ut vehicula consequat. Aliquam erat volutpat. Duis malesuada enim in nisi congue, vitae vehicula ligula ornare. Etiam faucibus vulputate congue. Duis vitae est vel ante posuere ultrices. Suspendisse a imperdiet dolor. 103 |

104 |

105 | In accumsan purus eu tincidunt venenatis. Maecenas in maximus massa. Donec sit amet commodo ipsum. Donec scelerisque non sem eu facilisis. Sed blandit, justo sit amet lacinia blandit, arcu libero egestas est, eget eleifend leo ligula quis arcu. Ut convallis vitae ante a vulputate. Vestibulum mollis, libero nec maximus condimentum, diam felis luctus urna, eu consectetur felis ipsum id nulla. Nam nibh nibh, ultricies at ante et, tempor euismod ante. Donec augue elit, efficitur non condimentum id, maximus eget enim. Nam venenatis urna et lacinia dapibus. Nam consectetur ornare tempor. In cursus libero ut arcu ornare blandit. Aliquam non laoreet metus. 106 |

107 |

108 | Maecenas efficitur ligula tellus, in elementum lectus pellentesque vitae. Cras a vehicula magna. Mauris commodo risus condimentum, bibendum tellus pulvinar, egestas justo. Curabitur lobortis sit amet mauris non mollis. Mauris quis consequat nulla, eu tincidunt risus. Aliquam erat volutpat. Cras venenatis urna erat, vel pharetra sapien hendrerit a. Nullam tempor leo quis magna aliquet varius. Mauris eu metus velit. Phasellus auctor semper lectus, eu accumsan nunc suscipit a. Ut vitae sapien sed risus aliquet vulputate ac eget magna. 109 |

110 |

111 | Pellentesque luctus turpis at dui mollis, vel vehicula orci faucibus. Quisque vitae lorem velit. Morbi et arcu in urna ullamcorper tempor. Vestibulum placerat eros vel felis vestibulum, in pretium dui volutpat. Nullam finibus, urna vitae porta pulvinar, nisi arcu fermentum ipsum, at mattis nibh nibh et elit. Morbi malesuada, libero ut sodales malesuada, nisl massa bibendum est, id condimentum mi justo nec turpis. Pellentesque sed scelerisque dolor. Donec dapibus viverra justo ac placerat. Suspendisse sagittis consectetur turpis laoreet ultricies. Nam ac turpis quis arcu tristique facilisis. Quisque semper purus et imperdiet efficitur. Donec eu feugiat ex. Mauris egestas at odio ac bibendum. Nulla quis neque quis arcu euismod dictum. Integer euismod erat elementum libero condimentum, et consequat dui vehicula. Mauris mattis sem at augue sollicitudin blandit. 112 |

113 |

114 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam erat volutpat. Proin nulla tortor, vehicula vel aliquet sit amet, dignissim nec ipsum. Sed lacinia dui eros, et cursus purus efficitur nec. Mauris nec interdum nulla. Mauris tempor at orci eu hendrerit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean sed ipsum dapibus, cursus nibh id, venenatis eros. Vestibulum elementum pretium ultrices. Vestibulum a odio in diam tincidunt hendrerit a ut purus. 115 |

116 |

117 | Nulla sagittis quam eget turpis pharetra iaculis. Donec quis neque consectetur, fermentum orci eget, ultrices massa. Aenean eget erat id enim fringilla pulvinar. Nullam nisl est, suscipit sed eros in, feugiat iaculis nulla. Nullam iaculis sapien quis pharetra dignissim. Quisque et sapien in velit rhoncus posuere vel vel orci. Nunc commodo, mi tincidunt mollis porttitor, nunc ante vulputate tellus, et varius dolor enim vitae enim. Sed elementum gravida sem vitae mattis. Donec elementum sem sit amet dui lacinia congue. Mauris et ultricies diam. Aliquam justo nibh, finibus id est quis, dignissim vehicula nulla. Nam tempor mattis eros, quis dignissim libero mollis eget. Phasellus et posuere turpis. Aenean et magna sed arcu dapibus aliquam at in lacus. Pellentesque congue a quam sit amet aliquam. Curabitur venenatis ipsum a rutrum consectetur. 118 |

119 | 120 |

121 | Sed aliquet dictum magna ut pellentesque. Vivamus iaculis ullamcorper leo at posuere. Phasellus maximus arcu sed dictum fringilla. Vestibulum in velit vitae est dignissim euismod. Cras neque mi, finibus quis congue sit amet, malesuada at elit. Nam ultrices magna non luctus tempor. Vivamus vitae dolor orci. Curabitur ac est ac ligula dapibus euismod eu sit amet nunc. 122 |

123 |

124 | In hac habitasse platea dictumst. Nulla nec erat pretium, pulvinar elit vel, ullamcorper ipsum. Sed ante nisl, efficitur nec sodales id, hendrerit nec dolor. Etiam tristique odio vel ipsum sagittis elementum. Duis id euismod elit. Donec rutrum ligula in blandit gravida. Vestibulum id ultrices mi. Integer ultrices urna ac eros venenatis pretium. Vivamus euismod sem condimentum, pharetra urna et, accumsan nunc. 125 |

126 |
127 | 128 | -------------------------------------------------------------------------------- /lazy-img/js/lazy-img.js: -------------------------------------------------------------------------------- 1 | customElements.define( 2 | 'lazy-img', 3 | class extends HTMLImageElement { 4 | static get observedAttributes() { return ['data-src']; } 5 | attributeChangedCallback(name, oldVal, newVal) { 6 | if (name === 'data-src') { 7 | if (!oldVal) 8 | this.setAttribute('loading', 'lazy'); 9 | this.src = newVal; 10 | } 11 | } 12 | }, 13 | {extends: 'img'} 14 | ); -------------------------------------------------------------------------------- /pika/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Pika CDN and @ungap 7 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /py-folder/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Pyodide Mounted Folder 8 | 43 | 44 | 45 | 46 | 47 |

48 | 
49 | 
50 | 


--------------------------------------------------------------------------------
/py-idbfs/index.html:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | 
 5 |   
 6 |   
 7 |   Pyodide Persistent IDBFS
 8 |   
51 | 
52 | 
53 |   
54 |   

55 | 
56 | 
57 | 


--------------------------------------------------------------------------------
/site-js/$/index.js:
--------------------------------------------------------------------------------
1 | import {render, html} from '../js/lighterhtml.js';
2 | import {title, content} from '../js/module.js';
3 | 
4 | document.title = title;
5 | 
6 | render(document.body, () => content(html));
7 | 


--------------------------------------------------------------------------------
/site-js/$/page.js:
--------------------------------------------------------------------------------
1 | import {render, html} from '../js/lighterhtml.js';
2 | 
3 | document.title = 'This is page';
4 | 
5 | render(document.body, () => html`

${document.title}

`); 6 | -------------------------------------------------------------------------------- /site-js/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site-js/js/lighterhtml.js: -------------------------------------------------------------------------------- 1 | import {render, html, svg} from 'https://unpkg.com/lighterhtml?module'; 2 | 3 | export {render, html, svg}; 4 | -------------------------------------------------------------------------------- /site-js/js/module.js: -------------------------------------------------------------------------------- 1 | export const title = 'Hello World'; 2 | export const content = html => html` 3 |

${title}

4 |

5 | go to page 6 |

`; 7 | -------------------------------------------------------------------------------- /site-js/sw.js: -------------------------------------------------------------------------------- 1 | addEventListener('fetch', event => { 2 | const {request} = event; 3 | const {hostname, pathname} = new URL(request.url); 4 | if (hostname === location.hostname && /\/\$\//.test(pathname)) 5 | event.respondWith(fetch(request).then(response => { 6 | if (response.ok) { 7 | return response.text().then(js => { 8 | return new Response( 9 | ` 10 | 11 | 12 | 13 | 14 | 15 | `, 16 | { 17 | status: 200, 18 | headers: {'Content-Type': 'text/html;charset=utf-8'} 19 | } 20 | ); 21 | }); 22 | } else { 23 | return new Response('Not found', {status: 404}); 24 | } 25 | })); 26 | }); 27 | -------------------------------------------------------------------------------- /snippet/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Some Random Content 7 | 13 | 14 | 15 |

16 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. In finibus erat elit, vel placerat orci rutrum malesuada. Aliquam nec sapien vitae magna vestibulum aliquam. Etiam et massa blandit, vehicula lorem varius, ullamcorper mauris. Phasellus et metus pharetra, fermentum lectus sed, tincidunt eros. Morbi quis nibh turpis. Proin sit amet lacus lectus. Nulla molestie, sapien vitae mattis tincidunt, felis ligula auctor ligula, euismod maximus risus ex quis dui. Sed ac mauris enim. In varius, lectus at mattis ornare, magna nisl faucibus libero, vitae ultrices neque magna a nisl. 17 |

18 |

19 | Sed tempus risus vitae neque scelerisque porttitor. Curabitur finibus sapien id leo placerat convallis. Etiam augue nunc, finibus laoreet lectus vel, feugiat molestie mi. Cras id elit in risus maximus ullamcorper. Cras tempus nisl eget ornare condimentum. Ut dapibus dapibus congue. Suspendisse rutrum condimentum sem, sit amet tristique risus. Nunc at fringilla nisl. Aliquam lacinia ligula quis bibendum euismod. 20 |

21 |

22 | Sed et consectetur dui. Ut in pulvinar nibh, eu rhoncus orci. Duis tempor interdum elit at venenatis. Etiam eu odio consequat, dapibus ante ut, commodo ante. Suspendisse blandit quis leo eget auctor. Sed a ornare eros, id facilisis ex. Cras pharetra nisl non rhoncus sagittis. Vivamus ullamcorper odio id nunc pellentesque efficitur. Proin mollis eleifend ante a ornare. Nunc tincidunt massa leo, a eleifend lacus volutpat eu. Nulla id sollicitudin neque. 23 |

24 |

25 | Sed sit amet volutpat ex. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur velit mi, consectetur in nibh eu, sodales ullamcorper urna. Nam at pellentesque massa, et molestie purus. Proin risus massa, vestibulum et neque ac, tincidunt tristique orci. Vivamus efficitur id tortor vitae mattis. Maecenas tempus cursus ante, at porta tellus condimentum a. Praesent tincidunt, neque eget semper tincidunt, libero nibh cursus tortor, ac interdum purus nisl consequat ex. Suspendisse maximus luctus augue quis rhoncus. Nullam congue sit amet justo non egestas. Duis ullamcorper congue justo vitae fringilla. Ut ac urna ut dolor pulvinar finibus at vitae leo. Phasellus molestie tellus a enim facilisis scelerisque non a justo. 26 |

27 |

28 | In vitae lorem et mi aliquet feugiat sed non quam. Donec tincidunt lacus enim, non euismod nibh molestie a. Phasellus quis tellus tincidunt, volutpat lorem eget, eleifend nunc. Praesent non nisi a purus tempor faucibus. Sed semper diam in magna efficitur fringilla ac vel augue. Quisque mauris dolor, feugiat quis aliquet in, eleifend sit amet felis. Mauris ac nisl arcu. Phasellus non lorem molestie, tempor lectus quis, aliquet quam. Donec vestibulum ex vitae lacinia pellentesque. Fusce scelerisque scelerisque diam et posuere. Mauris dignissim, magna sed aliquam gravida, tellus mauris suscipit tortor, sit amet laoreet nulla magna eu eros. 29 |

30 |

31 | Donec et arcu vitae justo sagittis dignissim. Nullam vulputate augue vel diam porta, sit amet volutpat tellus sollicitudin. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum blandit congue turpis in dictum. Proin efficitur pharetra rhoncus. Donec luctus odio non sem posuere fermentum. Aliquam fringilla sodales mi, hendrerit euismod sem gravida eget. Sed in convallis ex. Phasellus neque massa, molestie ut tincidunt at, elementum a ante. Fusce sit amet mauris ut diam sodales tristique non vel quam. 32 |

33 |

34 | Proin nisl nisl, viverra vitae pulvinar eget, interdum non augue. Mauris euismod tempor nisl, et aliquam tortor suscipit ac. Praesent ornare vitae neque ac ultricies. Sed ut eleifend nibh. Nam eu arcu erat. Pellentesque quis dolor tempor, tincidunt arcu in, ornare neque. Aenean lobortis pretium orci, eget laoreet sapien blandit sit amet. Nulla purus tellus, porttitor at volutpat sed, luctus ut sem. Vestibulum sit amet ligula pulvinar, auctor magna quis, fringilla magna. Curabitur posuere diam ac elit semper ultricies nec vitae libero. Duis rhoncus nulla ac tincidunt sagittis. Nam sagittis tincidunt tempus. Mauris laoreet sem nec risus laoreet, ut gravida ipsum aliquam. Quisque enim nisi, sodales quis erat vel, posuere imperdiet dolor. 35 |

36 |

37 | Suspendisse in maximus nulla, non gravida quam. In at eros vitae ipsum fringilla venenatis in quis felis. Aenean lacinia non metus ut mattis. Mauris mattis magna ut scelerisque semper. Aenean sit amet erat dictum, efficitur nulla vitae, aliquet mauris. Maecenas semper tristique tortor at blandit. Duis et nunc rutrum, tempor tortor in, lacinia ligula. Morbi maximus, eros ut pretium suscipit, justo lacus ullamcorper nunc, nec posuere erat odio vitae nibh. Aenean lectus tortor, convallis et arcu in, congue finibus neque. Donec sit amet lobortis magna, at feugiat urna. Duis lorem ex, tempus ac eleifend id, faucibus non eros. 38 |

39 |

40 | Aliquam eu nisl ut sem maximus aliquam ac quis leo. Ut tincidunt suscipit neque, id condimentum turpis placerat iaculis. Nunc varius ultrices mollis. Morbi accumsan gravida velit. Sed a metus quis erat cursus fermentum at vel ipsum. Sed gravida malesuada odio, eu blandit dolor consectetur non. Ut aliquam dapibus diam ut semper. Nullam vestibulum urna nulla, sit amet pellentesque velit suscipit ac. 41 |

42 |

43 | Proin convallis dolor elit, ut sagittis purus cursus ut. Suspendisse potenti. Phasellus sed nisi augue. Aenean a urna lacus. Nam sed erat at dui hendrerit consectetur. Maecenas sed iaculis odio, vitae laoreet tellus. Donec ultricies, est ut pulvinar suscipit, lorem ipsum scelerisque elit, sit amet venenatis est ipsum ac metus. Nullam at ex neque. Quisque ornare ultricies pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent hendrerit commodo ipsum, quis laoreet neque tempor at. Aenean sit amet lacinia dolor. Etiam blandit non sem ultrices efficitur. Praesent tincidunt varius urna et ultrices. Vestibulum nunc nisi, posuere at dapibus et, commodo sit amet nulla. 44 |

45 |

46 | Vestibulum ligula dui, auctor nec lorem in, sodales laoreet dolor. Integer commodo lacus sit amet lobortis lacinia. Vivamus sagittis quis velit rutrum placerat. Cras eros urna, egestas sit amet consectetur id, posuere ac ante. Nam at nisl sagittis, tristique risus at, porta tellus. Duis viverra, quam rhoncus fringilla consequat, ante tellus bibendum enim, et tincidunt justo mi id mi. Maecenas efficitur nulla euismod, viverra urna et, blandit nunc. Curabitur nunc ligula, malesuada eget laoreet vitae, sagittis sit amet lorem. Maecenas ut arcu ut risus facilisis dapibus sit amet nec neque. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent nec tristique orci. 47 |

48 |

49 | Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin convallis sem a metus feugiat, a ultrices ante vehicula. Nunc lacinia justo blandit eros finibus, nec lacinia libero iaculis. Aliquam erat volutpat. Vestibulum maximus fermentum nunc nec convallis. Sed mattis massa eu neque eleifend, dictum posuere tortor accumsan. Aliquam volutpat, quam quis condimentum vestibulum, dui diam aliquam ante, a hendrerit nibh metus quis turpis. Nullam ut ipsum hendrerit, condimentum quam in, sagittis libero. Etiam quis finibus erat. Phasellus ac ex ut quam volutpat tincidunt. Vivamus eget rhoncus arcu. Integer tortor tortor, ultricies vel volutpat vel, suscipit ac nisi. Praesent vel fringilla libero. Phasellus ullamcorper pulvinar rhoncus. 50 |

51 |

52 | Nulla sed dolor ex. Duis vitae rhoncus augue. Mauris vel quam augue. Vivamus feugiat arcu sed convallis pretium. Maecenas nec dui vel orci pellentesque volutpat. Pellentesque interdum, est et tincidunt vulputate, nibh nisi mollis felis, ac ultrices sapien nisi ut erat. Nam id nulla id diam vestibulum auctor. Nulla ornare nisi id ligula cursus, et mollis metus lacinia. Curabitur vel libero quis neque consectetur tristique ut a nunc. Mauris tincidunt id sapien a vehicula. Nulla facilisi. Suspendisse nec urna sed libero lacinia dapibus. Duis vulputate enim et enim pharetra, et sollicitudin eros hendrerit. Morbi aliquet quam ante, eu vestibulum magna sagittis nec. 53 |

54 |

55 | Donec vestibulum magna quis magna ultricies, a tincidunt nisi imperdiet. Morbi id lorem vitae leo tempus gravida. Curabitur maximus purus non magna elementum, vel euismod turpis euismod. Aenean sed metus tortor. Quisque non efficitur urna. Praesent maximus lobortis faucibus. Sed et augue viverra, congue purus at, accumsan orci. Ut tristique fringilla tortor, ut tristique eros vestibulum eget. Curabitur quis nisi tortor. 56 |

57 |

58 | Quisque sagittis convallis tellus, et bibendum sem mollis a. Duis nec nunc euismod, tincidunt turpis sit amet, scelerisque odio. Fusce in metus eget velit mollis ornare ut sit amet dui. Quisque id malesuada quam, non sollicitudin neque. Nulla facilisi. In lobortis nulla in urna blandit malesuada. Sed consectetur nunc nec iaculis imperdiet. Integer lobortis felis a sapien rhoncus, et pharetra sem lacinia. Sed congue velit lacus, in ullamcorper felis egestas id. Nulla magna ante, posuere eu lacus et, consectetur ultrices erat. Integer id arcu aliquam, mattis justo et, consequat arcu. Nunc pretium lobortis augue ac congue. Proin cursus diam lectus, ut tempus elit molestie quis. 59 |

60 |

61 | Sed id lorem id turpis volutpat lobortis. Etiam porta consectetur tellus, id dignissim enim vehicula et. Duis rhoncus, diam vel hendrerit dapibus, erat nulla rhoncus tortor, et aliquam sem tortor ac augue. Morbi sit amet dignissim est. Donec auctor pretium erat a egestas. Quisque in dui at eros euismod placerat in ut libero. Mauris ex elit, pellentesque a mi congue, efficitur semper neque. Curabitur auctor sapien sit amet interdum porta. Donec pellentesque ex lacinia vehicula eleifend. Vestibulum enim velit, tempus vel interdum in, finibus vitae neque. Sed dapibus est eget molestie malesuada. Donec vestibulum vehicula purus nec vulputate. Praesent bibendum tellus in eros faucibus sollicitudin. Aliquam laoreet mattis neque, id suscipit sapien pharetra eu. In vehicula velit eget sem dapibus convallis. Quisque ut velit eu mauris finibus eleifend in at dui. 62 |

63 |

64 | Vestibulum ex lacus, scelerisque a justo ac, gravida congue lorem. Etiam euismod elementum neque, varius faucibus nibh vulputate in. Maecenas nec diam sollicitudin ipsum vestibulum blandit. Donec sollicitudin sapien ac enim tincidunt, eget placerat dolor imperdiet. Etiam vitae ullamcorper felis. Aenean dictum massa eget placerat tincidunt. Nunc iaculis nisl est, at eleifend eros venenatis vitae. Suspendisse finibus scelerisque sapien hendrerit laoreet. Sed in vulputate massa. Duis magna elit, tincidunt id sem eu, finibus fringilla magna. Sed at vulputate magna. Donec sed nibh et leo interdum consequat ac in magna. 65 |

66 |

67 | Pellentesque et tortor a nibh tincidunt dapibus in nec erat. Donec aliquet nisl porta malesuada pretium. Nunc ac sem quis ante porta hendrerit sit amet vel odio. Aliquam ullamcorper quis turpis in tristique. In hac habitasse platea dictumst. Ut ac ante metus. Phasellus semper sodales eros non vehicula. Maecenas finibus nibh et mauris lobortis iaculis. Cras facilisis, massa sit amet cursus eleifend, arcu felis sollicitudin lectus, at volutpat ligula lacus sed mi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin erat nulla, consectetur eu venenatis a, facilisis eu neque. Pellentesque semper tempus quam, id mattis massa varius a. 68 |

69 |

70 | Aliquam feugiat mauris vel ex rutrum, sit amet ultricies quam pretium. Nullam ac ultrices mauris. Phasellus non sapien eu mauris vehicula mollis. Pellentesque semper sapien in tortor consectetur tristique. Praesent iaculis in mauris in faucibus. Ut vel consequat nisl. Praesent sollicitudin velit lacus, nec lobortis orci viverra id. Phasellus porta lorem lectus, vitae imperdiet eros ullamcorper sit amet. 71 |

72 |

73 | In eget dignissim ante. Pellentesque tempor sem vitae feugiat placerat. Ut eu magna ac velit hendrerit porta in ac nisl. Morbi velit ex, rhoncus eu neque in, varius fermentum tellus. Phasellus nec tortor odio. Fusce risus felis, euismod sed mi dapibus, luctus suscipit risus. Mauris aliquam viverra efficitur. Sed eros elit, lobortis ac mauris ut, elementum mattis tellus. Nullam eget nulla tempus, venenatis est molestie, venenatis nulla. Mauris rutrum maximus ante sit amet semper. Aliquam convallis est ac dolor auctor, non rhoncus neque vehicula. Etiam ut nulla eleifend, posuere est a, egestas est. Ut scelerisque risus vitae vulputate suscipit. 74 |

75 |

76 | Vivamus porta sapien odio, quis ornare libero rutrum id. Phasellus ex orci, tristique quis vestibulum at, aliquet et ipsum. Duis lobortis luctus nisi, vel congue dui luctus pulvinar. Nulla varius, mauris eget tincidunt tristique, enim ante facilisis elit, quis tristique felis risus sed lectus. Morbi hendrerit at velit a feugiat. Etiam tristique ullamcorper euismod. Aliquam vulputate tortor a nulla maximus fringilla. Morbi ipsum tortor, tincidunt et blandit eu, pulvinar nec libero. Integer commodo augue libero, a luctus orci pretium vitae. Pellentesque lorem lacus, luctus eget nibh eget, suscipit scelerisque purus. Ut tempus cursus lacus et consectetur. Vivamus fringilla elit quis tempus lacinia. 77 |

78 |

79 | Nulla facilisi. Aenean sit amet ex porttitor, imperdiet tellus porttitor, blandit enim. Nulla id dapibus quam, ut convallis lectus. In hac habitasse platea dictumst. Nam urna orci, lobortis at gravida fermentum, commodo nec tellus. Phasellus porta velit odio, nec posuere purus pellentesque at. Integer eu nisl ipsum. Pellentesque eget mollis orci. Mauris non vehicula mauris, sed consectetur ligula. Proin justo augue, elementum eget nisi vitae, bibendum rhoncus elit. In hac habitasse platea dictumst. Proin feugiat maximus mauris dictum placerat. Donec sagittis elit dolor, in aliquam massa hendrerit nec. Sed malesuada ex augue. 80 |

81 |

82 | Quisque gravida massa eget posuere facilisis. Cras enim dui, feugiat vel justo vestibulum, dictum auctor nunc. Pellentesque eu elit rutrum, pellentesque dolor nec, facilisis lorem. Vestibulum sed orci mollis, pulvinar dolor at, placerat sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus id est eu nunc pellentesque tincidunt. Ut tristique urna at mi bibendum, ac tincidunt enim ullamcorper. Cras blandit ultrices interdum. Nulla porttitor nulla vitae orci sollicitudin, non pharetra lacus molestie. Aliquam eu odio quis ligula dapibus consectetur. Donec eleifend, ex id imperdiet egestas, ante nisl volutpat urna, quis aliquet nibh nunc molestie augue. Ut sed turpis in nisl pulvinar pulvinar. Etiam ante arcu, dapibus sit amet luctus tristique, rhoncus in urna. Quisque tortor massa, posuere a faucibus sed, mollis sit amet enim. Sed metus felis, dapibus in nisl vitae, varius accumsan quam. 83 |

84 |

85 | Sed eget purus erat. Donec a justo mollis, sollicitudin diam at, venenatis nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce mollis convallis sollicitudin. Vestibulum mattis pellentesque volutpat. Morbi ut leo et odio feugiat viverra. Proin accumsan ex ut nunc fringilla, in venenatis erat commodo. Fusce justo massa, imperdiet eleifend finibus eu, rhoncus vel lorem. Suspendisse gravida cursus neque, eu sagittis metus varius a. Mauris maximus turpis urna, ut facilisis nisi cursus vel. Donec blandit, metus et rhoncus posuere, neque orci interdum sem, sed vulputate mi ex at ex. In sed enim sit amet dui pellentesque auctor. Sed bibendum diam id ullamcorper laoreet. Donec et placerat nunc. Vestibulum posuere tellus sed imperdiet pharetra. Aliquam erat volutpat. 86 |

87 |

88 | Pellentesque iaculis eu nunc sit amet porttitor. In hac habitasse platea dictumst. Maecenas finibus, nunc in fringilla accumsan, augue erat molestie neque, ac pharetra lorem metus vel lacus. Donec posuere ex et sem iaculis efficitur. Nam porttitor viverra arcu id malesuada. Duis viverra pretium sem a feugiat. Phasellus interdum felis quis sem accumsan euismod. Proin tincidunt arcu odio. 89 |

90 |

91 | Sed ultrices libero leo, nec ultricies urna congue eget. Cras convallis cursus libero sed dictum. Nulla in tincidunt lacus, cursus congue metus. Fusce sagittis elementum enim sit amet semper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus viverra euismod velit, a ornare ligula tincidunt nec. Mauris lacinia ante a efficitur pretium. Quisque eget mauris sollicitudin, consequat dolor a, pretium felis. Integer pharetra id urna ac lacinia. 92 |

93 |

94 | Pellentesque porta tempus rutrum. Vivamus nibh ligula, viverra vitae mi et, bibendum consectetur dui. Pellentesque vehicula nibh a nisi interdum aliquet. Suspendisse iaculis lacus vitae arcu maximus laoreet. Quisque convallis sit amet quam vitae condimentum. Nunc quis laoreet ipsum. Phasellus quis pellentesque sem, id egestas nunc. Nulla gravida eget sem sit amet dapibus. Ut id lectus et nunc rutrum viverra at feugiat turpis. Nunc feugiat fermentum fringilla. Sed sed sem fermentum, bibendum ex consectetur, tristique massa. Maecenas ut ligula laoreet, finibus tellus eu, facilisis purus. 95 |

96 |

97 | Donec vitae diam quis odio congue efficitur. Nullam et interdum est, quis hendrerit tortor. Duis vel fringilla neque, ac pellentesque massa. Mauris at orci in dui auctor ultricies. Nullam ultricies at libero nec bibendum. Donec in elit at libero sollicitudin condimentum a sed eros. Donec ornare, felis ut suscipit sagittis, lorem augue congue ante, at sollicitudin justo mauris eget est. Vestibulum in velit vitae risus maximus convallis laoreet id nunc. Curabitur mattis leo ut tortor eleifend feugiat. Nullam et mattis sem. 98 |

99 |

100 | Quisque eget nunc vehicula, rutrum sapien ac, lacinia tortor. Quisque in finibus ligula, at pretium velit. Maecenas ac dictum est, non venenatis purus. Pellentesque et vehicula felis, id efficitur erat. Donec consectetur mollis sem, in accumsan metus mollis et. Suspendisse vehicula feugiat mi ac volutpat. Nam at odio quis sem rhoncus elementum. Nulla facilisi. 101 |

102 |

103 | Fusce condimentum dui enim, sed sollicitudin est finibus quis. Nullam eu porta augue. Pellentesque placerat nisl eu mi molestie dictum a porttitor orci. Etiam eu urna sed elit dapibus tincidunt. Vestibulum quis sem efficitur ipsum dignissim pharetra. Suspendisse ac lacinia diam. Suspendisse elementum dolor eu finibus eleifend. Integer quis posuere urna. Vestibulum aliquet imperdiet vestibulum. Vivamus cursus lacus eget mi dictum tincidunt. Cras venenatis aliquet mi, eget tristique tellus. Nullam est orci, vehicula at nisi non, porttitor blandit lorem. Nulla molestie sapien eu nunc venenatis consectetur. 104 |

105 |

106 | Nunc eu finibus eros. Donec tincidunt ipsum et lacus blandit, volutpat condimentum eros tempor. Nulla finibus purus eu neque molestie vehicula. Nunc erat erat, suscipit ac pulvinar id, suscipit in elit. Aliquam malesuada maximus orci. Ut egestas felis id semper commodo. Fusce laoreet ligula vitae justo laoreet, vitae ornare ante ornare. Nullam id pretium arcu. Nunc aliquet sapien sed tortor sollicitudin fermentum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris vulputate auctor eros, a fermentum nisl aliquam non. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vel lobortis elit. Aenean dignissim turpis eget fringilla varius. Vivamus tempus quam ac semper tristique. Proin tincidunt quam non semper maximus. 107 |

108 |

109 | Morbi eu mi quis orci ullamcorper suscipit. In in arcu quis ipsum tempor lobortis at hendrerit felis. Vestibulum finibus erat eu volutpat convallis. Quisque nec nulla quis dui efficitur posuere sed eu nibh. Vestibulum commodo nisl ut neque congue, vestibulum imperdiet massa interdum. Suspendisse potenti. Nunc posuere nulla sit amet quam tristique congue. Nunc laoreet augue in erat lacinia, nec euismod risus molestie. Aliquam quis velit eu quam gravida viverra. Praesent quam magna, elementum eget mollis volutpat, interdum vitae justo. Nullam dapibus condimentum nisi, at ornare ipsum sagittis eu. Phasellus ac nunc et ante mollis feugiat ac at nisl. 110 |

111 |

112 | Nunc laoreet venenatis dolor. Vestibulum a gravida mauris, vel ullamcorper magna. Nunc eget metus tristique, porta ante gravida, laoreet dolor. Integer eget metus mollis, dapibus magna nec, sodales lacus. In eget euismod turpis. Quisque molestie justo et leo semper, eget tempor diam sodales. Vestibulum et dictum ligula, vel gravida augue. Vivamus est lectus, laoreet ac purus sed, posuere volutpat ex. Fusce bibendum tincidunt neque sit amet molestie. Etiam eleifend turpis sed neque suscipit, suscipit varius lectus venenatis. Aliquam eu mauris scelerisque, porttitor lectus id, rutrum sapien. 113 |

114 |

115 | Nam quis tristique mi. Proin quis ex massa. Morbi varius ipsum at consectetur laoreet. Duis condimentum nibh ex, at ullamcorper nisl venenatis a. Vivamus ut aliquam augue. Donec scelerisque turpis bibendum dolor volutpat fermentum. Proin nec blandit nulla. Cras maximus nec elit interdum tristique. Nam ante ipsum, sagittis tristique dui in, sodales efficitur metus. Pellentesque egestas felis libero, sed bibendum est congue in. Maecenas at erat tempor, condimentum neque eget, sagittis purus. Donec fermentum nisi in eros hendrerit, at aliquet nisl maximus. 116 |

117 |

118 | Quisque ut aliquam dui, interdum placerat augue. Aliquam orci ipsum, commodo vitae velit vel, rhoncus bibendum mi. In sed tellus ut nibh auctor volutpat. Fusce a eleifend diam. Proin et odio odio. Mauris ac facilisis augue. Vivamus sed lobortis enim, ut luctus justo. Donec vel posuere dolor. Suspendisse metus eros, fermentum sit amet enim eu, efficitur mollis tellus. Curabitur vitae velit lectus. Nullam tempus interdum dui, non auctor quam ornare ac. Ut pharetra lacus placerat lorem auctor vehicula. Aliquam ut tempus eros, sed ultricies eros. Duis pretium justo nisl, consectetur posuere elit eleifend a. 119 |

120 | 126 | 127 | -------------------------------------------------------------------------------- /snippet/index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Some Random Content 8 | 14 | 20 | 21 | 22 |

23 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. In finibus erat elit, vel placerat orci rutrum malesuada. Aliquam nec sapien vitae magna vestibulum aliquam. Etiam et massa blandit, vehicula lorem varius, ullamcorper mauris. Phasellus et metus pharetra, fermentum lectus sed, tincidunt eros. Morbi quis nibh turpis. Proin sit amet lacus lectus. Nulla molestie, sapien vitae mattis tincidunt, felis ligula auctor ligula, euismod maximus risus ex quis dui. Sed ac mauris enim. In varius, lectus at mattis ornare, magna nisl faucibus libero, vitae ultrices neque magna a nisl. 24 |

25 |

26 | Sed tempus risus vitae neque scelerisque porttitor. Curabitur finibus sapien id leo placerat convallis. Etiam augue nunc, finibus laoreet lectus vel, feugiat molestie mi. Cras id elit in risus maximus ullamcorper. Cras tempus nisl eget ornare condimentum. Ut dapibus dapibus congue. Suspendisse rutrum condimentum sem, sit amet tristique risus. Nunc at fringilla nisl. Aliquam lacinia ligula quis bibendum euismod. 27 |

28 |

29 | Sed et consectetur dui. Ut in pulvinar nibh, eu rhoncus orci. Duis tempor interdum elit at venenatis. Etiam eu odio consequat, dapibus ante ut, commodo ante. Suspendisse blandit quis leo eget auctor. Sed a ornare eros, id facilisis ex. Cras pharetra nisl non rhoncus sagittis. Vivamus ullamcorper odio id nunc pellentesque efficitur. Proin mollis eleifend ante a ornare. Nunc tincidunt massa leo, a eleifend lacus volutpat eu. Nulla id sollicitudin neque. 30 |

31 |

32 | Sed sit amet volutpat ex. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur velit mi, consectetur in nibh eu, sodales ullamcorper urna. Nam at pellentesque massa, et molestie purus. Proin risus massa, vestibulum et neque ac, tincidunt tristique orci. Vivamus efficitur id tortor vitae mattis. Maecenas tempus cursus ante, at porta tellus condimentum a. Praesent tincidunt, neque eget semper tincidunt, libero nibh cursus tortor, ac interdum purus nisl consequat ex. Suspendisse maximus luctus augue quis rhoncus. Nullam congue sit amet justo non egestas. Duis ullamcorper congue justo vitae fringilla. Ut ac urna ut dolor pulvinar finibus at vitae leo. Phasellus molestie tellus a enim facilisis scelerisque non a justo. 33 |

34 |

35 | In vitae lorem et mi aliquet feugiat sed non quam. Donec tincidunt lacus enim, non euismod nibh molestie a. Phasellus quis tellus tincidunt, volutpat lorem eget, eleifend nunc. Praesent non nisi a purus tempor faucibus. Sed semper diam in magna efficitur fringilla ac vel augue. Quisque mauris dolor, feugiat quis aliquet in, eleifend sit amet felis. Mauris ac nisl arcu. Phasellus non lorem molestie, tempor lectus quis, aliquet quam. Donec vestibulum ex vitae lacinia pellentesque. Fusce scelerisque scelerisque diam et posuere. Mauris dignissim, magna sed aliquam gravida, tellus mauris suscipit tortor, sit amet laoreet nulla magna eu eros. 36 |

37 |

38 | Donec et arcu vitae justo sagittis dignissim. Nullam vulputate augue vel diam porta, sit amet volutpat tellus sollicitudin. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum blandit congue turpis in dictum. Proin efficitur pharetra rhoncus. Donec luctus odio non sem posuere fermentum. Aliquam fringilla sodales mi, hendrerit euismod sem gravida eget. Sed in convallis ex. Phasellus neque massa, molestie ut tincidunt at, elementum a ante. Fusce sit amet mauris ut diam sodales tristique non vel quam. 39 |

40 |

41 | Proin nisl nisl, viverra vitae pulvinar eget, interdum non augue. Mauris euismod tempor nisl, et aliquam tortor suscipit ac. Praesent ornare vitae neque ac ultricies. Sed ut eleifend nibh. Nam eu arcu erat. Pellentesque quis dolor tempor, tincidunt arcu in, ornare neque. Aenean lobortis pretium orci, eget laoreet sapien blandit sit amet. Nulla purus tellus, porttitor at volutpat sed, luctus ut sem. Vestibulum sit amet ligula pulvinar, auctor magna quis, fringilla magna. Curabitur posuere diam ac elit semper ultricies nec vitae libero. Duis rhoncus nulla ac tincidunt sagittis. Nam sagittis tincidunt tempus. Mauris laoreet sem nec risus laoreet, ut gravida ipsum aliquam. Quisque enim nisi, sodales quis erat vel, posuere imperdiet dolor. 42 |

43 |

44 | Suspendisse in maximus nulla, non gravida quam. In at eros vitae ipsum fringilla venenatis in quis felis. Aenean lacinia non metus ut mattis. Mauris mattis magna ut scelerisque semper. Aenean sit amet erat dictum, efficitur nulla vitae, aliquet mauris. Maecenas semper tristique tortor at blandit. Duis et nunc rutrum, tempor tortor in, lacinia ligula. Morbi maximus, eros ut pretium suscipit, justo lacus ullamcorper nunc, nec posuere erat odio vitae nibh. Aenean lectus tortor, convallis et arcu in, congue finibus neque. Donec sit amet lobortis magna, at feugiat urna. Duis lorem ex, tempus ac eleifend id, faucibus non eros. 45 |

46 |

47 | Aliquam eu nisl ut sem maximus aliquam ac quis leo. Ut tincidunt suscipit neque, id condimentum turpis placerat iaculis. Nunc varius ultrices mollis. Morbi accumsan gravida velit. Sed a metus quis erat cursus fermentum at vel ipsum. Sed gravida malesuada odio, eu blandit dolor consectetur non. Ut aliquam dapibus diam ut semper. Nullam vestibulum urna nulla, sit amet pellentesque velit suscipit ac. 48 |

49 |

50 | Proin convallis dolor elit, ut sagittis purus cursus ut. Suspendisse potenti. Phasellus sed nisi augue. Aenean a urna lacus. Nam sed erat at dui hendrerit consectetur. Maecenas sed iaculis odio, vitae laoreet tellus. Donec ultricies, est ut pulvinar suscipit, lorem ipsum scelerisque elit, sit amet venenatis est ipsum ac metus. Nullam at ex neque. Quisque ornare ultricies pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent hendrerit commodo ipsum, quis laoreet neque tempor at. Aenean sit amet lacinia dolor. Etiam blandit non sem ultrices efficitur. Praesent tincidunt varius urna et ultrices. Vestibulum nunc nisi, posuere at dapibus et, commodo sit amet nulla. 51 |

52 |

53 | Vestibulum ligula dui, auctor nec lorem in, sodales laoreet dolor. Integer commodo lacus sit amet lobortis lacinia. Vivamus sagittis quis velit rutrum placerat. Cras eros urna, egestas sit amet consectetur id, posuere ac ante. Nam at nisl sagittis, tristique risus at, porta tellus. Duis viverra, quam rhoncus fringilla consequat, ante tellus bibendum enim, et tincidunt justo mi id mi. Maecenas efficitur nulla euismod, viverra urna et, blandit nunc. Curabitur nunc ligula, malesuada eget laoreet vitae, sagittis sit amet lorem. Maecenas ut arcu ut risus facilisis dapibus sit amet nec neque. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent nec tristique orci. 54 |

55 |

56 | Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin convallis sem a metus feugiat, a ultrices ante vehicula. Nunc lacinia justo blandit eros finibus, nec lacinia libero iaculis. Aliquam erat volutpat. Vestibulum maximus fermentum nunc nec convallis. Sed mattis massa eu neque eleifend, dictum posuere tortor accumsan. Aliquam volutpat, quam quis condimentum vestibulum, dui diam aliquam ante, a hendrerit nibh metus quis turpis. Nullam ut ipsum hendrerit, condimentum quam in, sagittis libero. Etiam quis finibus erat. Phasellus ac ex ut quam volutpat tincidunt. Vivamus eget rhoncus arcu. Integer tortor tortor, ultricies vel volutpat vel, suscipit ac nisi. Praesent vel fringilla libero. Phasellus ullamcorper pulvinar rhoncus. 57 |

58 |

59 | Nulla sed dolor ex. Duis vitae rhoncus augue. Mauris vel quam augue. Vivamus feugiat arcu sed convallis pretium. Maecenas nec dui vel orci pellentesque volutpat. Pellentesque interdum, est et tincidunt vulputate, nibh nisi mollis felis, ac ultrices sapien nisi ut erat. Nam id nulla id diam vestibulum auctor. Nulla ornare nisi id ligula cursus, et mollis metus lacinia. Curabitur vel libero quis neque consectetur tristique ut a nunc. Mauris tincidunt id sapien a vehicula. Nulla facilisi. Suspendisse nec urna sed libero lacinia dapibus. Duis vulputate enim et enim pharetra, et sollicitudin eros hendrerit. Morbi aliquet quam ante, eu vestibulum magna sagittis nec. 60 |

61 |

62 | Donec vestibulum magna quis magna ultricies, a tincidunt nisi imperdiet. Morbi id lorem vitae leo tempus gravida. Curabitur maximus purus non magna elementum, vel euismod turpis euismod. Aenean sed metus tortor. Quisque non efficitur urna. Praesent maximus lobortis faucibus. Sed et augue viverra, congue purus at, accumsan orci. Ut tristique fringilla tortor, ut tristique eros vestibulum eget. Curabitur quis nisi tortor. 63 |

64 |

65 | Quisque sagittis convallis tellus, et bibendum sem mollis a. Duis nec nunc euismod, tincidunt turpis sit amet, scelerisque odio. Fusce in metus eget velit mollis ornare ut sit amet dui. Quisque id malesuada quam, non sollicitudin neque. Nulla facilisi. In lobortis nulla in urna blandit malesuada. Sed consectetur nunc nec iaculis imperdiet. Integer lobortis felis a sapien rhoncus, et pharetra sem lacinia. Sed congue velit lacus, in ullamcorper felis egestas id. Nulla magna ante, posuere eu lacus et, consectetur ultrices erat. Integer id arcu aliquam, mattis justo et, consequat arcu. Nunc pretium lobortis augue ac congue. Proin cursus diam lectus, ut tempus elit molestie quis. 66 |

67 |

68 | Sed id lorem id turpis volutpat lobortis. Etiam porta consectetur tellus, id dignissim enim vehicula et. Duis rhoncus, diam vel hendrerit dapibus, erat nulla rhoncus tortor, et aliquam sem tortor ac augue. Morbi sit amet dignissim est. Donec auctor pretium erat a egestas. Quisque in dui at eros euismod placerat in ut libero. Mauris ex elit, pellentesque a mi congue, efficitur semper neque. Curabitur auctor sapien sit amet interdum porta. Donec pellentesque ex lacinia vehicula eleifend. Vestibulum enim velit, tempus vel interdum in, finibus vitae neque. Sed dapibus est eget molestie malesuada. Donec vestibulum vehicula purus nec vulputate. Praesent bibendum tellus in eros faucibus sollicitudin. Aliquam laoreet mattis neque, id suscipit sapien pharetra eu. In vehicula velit eget sem dapibus convallis. Quisque ut velit eu mauris finibus eleifend in at dui. 69 |

70 |

71 | Vestibulum ex lacus, scelerisque a justo ac, gravida congue lorem. Etiam euismod elementum neque, varius faucibus nibh vulputate in. Maecenas nec diam sollicitudin ipsum vestibulum blandit. Donec sollicitudin sapien ac enim tincidunt, eget placerat dolor imperdiet. Etiam vitae ullamcorper felis. Aenean dictum massa eget placerat tincidunt. Nunc iaculis nisl est, at eleifend eros venenatis vitae. Suspendisse finibus scelerisque sapien hendrerit laoreet. Sed in vulputate massa. Duis magna elit, tincidunt id sem eu, finibus fringilla magna. Sed at vulputate magna. Donec sed nibh et leo interdum consequat ac in magna. 72 |

73 |

74 | Pellentesque et tortor a nibh tincidunt dapibus in nec erat. Donec aliquet nisl porta malesuada pretium. Nunc ac sem quis ante porta hendrerit sit amet vel odio. Aliquam ullamcorper quis turpis in tristique. In hac habitasse platea dictumst. Ut ac ante metus. Phasellus semper sodales eros non vehicula. Maecenas finibus nibh et mauris lobortis iaculis. Cras facilisis, massa sit amet cursus eleifend, arcu felis sollicitudin lectus, at volutpat ligula lacus sed mi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin erat nulla, consectetur eu venenatis a, facilisis eu neque. Pellentesque semper tempus quam, id mattis massa varius a. 75 |

76 |

77 | Aliquam feugiat mauris vel ex rutrum, sit amet ultricies quam pretium. Nullam ac ultrices mauris. Phasellus non sapien eu mauris vehicula mollis. Pellentesque semper sapien in tortor consectetur tristique. Praesent iaculis in mauris in faucibus. Ut vel consequat nisl. Praesent sollicitudin velit lacus, nec lobortis orci viverra id. Phasellus porta lorem lectus, vitae imperdiet eros ullamcorper sit amet. 78 |

79 |

80 | In eget dignissim ante. Pellentesque tempor sem vitae feugiat placerat. Ut eu magna ac velit hendrerit porta in ac nisl. Morbi velit ex, rhoncus eu neque in, varius fermentum tellus. Phasellus nec tortor odio. Fusce risus felis, euismod sed mi dapibus, luctus suscipit risus. Mauris aliquam viverra efficitur. Sed eros elit, lobortis ac mauris ut, elementum mattis tellus. Nullam eget nulla tempus, venenatis est molestie, venenatis nulla. Mauris rutrum maximus ante sit amet semper. Aliquam convallis est ac dolor auctor, non rhoncus neque vehicula. Etiam ut nulla eleifend, posuere est a, egestas est. Ut scelerisque risus vitae vulputate suscipit. 81 |

82 |

83 | Vivamus porta sapien odio, quis ornare libero rutrum id. Phasellus ex orci, tristique quis vestibulum at, aliquet et ipsum. Duis lobortis luctus nisi, vel congue dui luctus pulvinar. Nulla varius, mauris eget tincidunt tristique, enim ante facilisis elit, quis tristique felis risus sed lectus. Morbi hendrerit at velit a feugiat. Etiam tristique ullamcorper euismod. Aliquam vulputate tortor a nulla maximus fringilla. Morbi ipsum tortor, tincidunt et blandit eu, pulvinar nec libero. Integer commodo augue libero, a luctus orci pretium vitae. Pellentesque lorem lacus, luctus eget nibh eget, suscipit scelerisque purus. Ut tempus cursus lacus et consectetur. Vivamus fringilla elit quis tempus lacinia. 84 |

85 |

86 | Nulla facilisi. Aenean sit amet ex porttitor, imperdiet tellus porttitor, blandit enim. Nulla id dapibus quam, ut convallis lectus. In hac habitasse platea dictumst. Nam urna orci, lobortis at gravida fermentum, commodo nec tellus. Phasellus porta velit odio, nec posuere purus pellentesque at. Integer eu nisl ipsum. Pellentesque eget mollis orci. Mauris non vehicula mauris, sed consectetur ligula. Proin justo augue, elementum eget nisi vitae, bibendum rhoncus elit. In hac habitasse platea dictumst. Proin feugiat maximus mauris dictum placerat. Donec sagittis elit dolor, in aliquam massa hendrerit nec. Sed malesuada ex augue. 87 |

88 |

89 | Quisque gravida massa eget posuere facilisis. Cras enim dui, feugiat vel justo vestibulum, dictum auctor nunc. Pellentesque eu elit rutrum, pellentesque dolor nec, facilisis lorem. Vestibulum sed orci mollis, pulvinar dolor at, placerat sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus id est eu nunc pellentesque tincidunt. Ut tristique urna at mi bibendum, ac tincidunt enim ullamcorper. Cras blandit ultrices interdum. Nulla porttitor nulla vitae orci sollicitudin, non pharetra lacus molestie. Aliquam eu odio quis ligula dapibus consectetur. Donec eleifend, ex id imperdiet egestas, ante nisl volutpat urna, quis aliquet nibh nunc molestie augue. Ut sed turpis in nisl pulvinar pulvinar. Etiam ante arcu, dapibus sit amet luctus tristique, rhoncus in urna. Quisque tortor massa, posuere a faucibus sed, mollis sit amet enim. Sed metus felis, dapibus in nisl vitae, varius accumsan quam. 90 |

91 |

92 | Sed eget purus erat. Donec a justo mollis, sollicitudin diam at, venenatis nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce mollis convallis sollicitudin. Vestibulum mattis pellentesque volutpat. Morbi ut leo et odio feugiat viverra. Proin accumsan ex ut nunc fringilla, in venenatis erat commodo. Fusce justo massa, imperdiet eleifend finibus eu, rhoncus vel lorem. Suspendisse gravida cursus neque, eu sagittis metus varius a. Mauris maximus turpis urna, ut facilisis nisi cursus vel. Donec blandit, metus et rhoncus posuere, neque orci interdum sem, sed vulputate mi ex at ex. In sed enim sit amet dui pellentesque auctor. Sed bibendum diam id ullamcorper laoreet. Donec et placerat nunc. Vestibulum posuere tellus sed imperdiet pharetra. Aliquam erat volutpat. 93 |

94 |

95 | Pellentesque iaculis eu nunc sit amet porttitor. In hac habitasse platea dictumst. Maecenas finibus, nunc in fringilla accumsan, augue erat molestie neque, ac pharetra lorem metus vel lacus. Donec posuere ex et sem iaculis efficitur. Nam porttitor viverra arcu id malesuada. Duis viverra pretium sem a feugiat. Phasellus interdum felis quis sem accumsan euismod. Proin tincidunt arcu odio. 96 |

97 |

98 | Sed ultrices libero leo, nec ultricies urna congue eget. Cras convallis cursus libero sed dictum. Nulla in tincidunt lacus, cursus congue metus. Fusce sagittis elementum enim sit amet semper. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus viverra euismod velit, a ornare ligula tincidunt nec. Mauris lacinia ante a efficitur pretium. Quisque eget mauris sollicitudin, consequat dolor a, pretium felis. Integer pharetra id urna ac lacinia. 99 |

100 |

101 | Pellentesque porta tempus rutrum. Vivamus nibh ligula, viverra vitae mi et, bibendum consectetur dui. Pellentesque vehicula nibh a nisi interdum aliquet. Suspendisse iaculis lacus vitae arcu maximus laoreet. Quisque convallis sit amet quam vitae condimentum. Nunc quis laoreet ipsum. Phasellus quis pellentesque sem, id egestas nunc. Nulla gravida eget sem sit amet dapibus. Ut id lectus et nunc rutrum viverra at feugiat turpis. Nunc feugiat fermentum fringilla. Sed sed sem fermentum, bibendum ex consectetur, tristique massa. Maecenas ut ligula laoreet, finibus tellus eu, facilisis purus. 102 |

103 |

104 | Donec vitae diam quis odio congue efficitur. Nullam et interdum est, quis hendrerit tortor. Duis vel fringilla neque, ac pellentesque massa. Mauris at orci in dui auctor ultricies. Nullam ultricies at libero nec bibendum. Donec in elit at libero sollicitudin condimentum a sed eros. Donec ornare, felis ut suscipit sagittis, lorem augue congue ante, at sollicitudin justo mauris eget est. Vestibulum in velit vitae risus maximus convallis laoreet id nunc. Curabitur mattis leo ut tortor eleifend feugiat. Nullam et mattis sem. 105 |

106 |

107 | Quisque eget nunc vehicula, rutrum sapien ac, lacinia tortor. Quisque in finibus ligula, at pretium velit. Maecenas ac dictum est, non venenatis purus. Pellentesque et vehicula felis, id efficitur erat. Donec consectetur mollis sem, in accumsan metus mollis et. Suspendisse vehicula feugiat mi ac volutpat. Nam at odio quis sem rhoncus elementum. Nulla facilisi. 108 |

109 |

110 | Fusce condimentum dui enim, sed sollicitudin est finibus quis. Nullam eu porta augue. Pellentesque placerat nisl eu mi molestie dictum a porttitor orci. Etiam eu urna sed elit dapibus tincidunt. Vestibulum quis sem efficitur ipsum dignissim pharetra. Suspendisse ac lacinia diam. Suspendisse elementum dolor eu finibus eleifend. Integer quis posuere urna. Vestibulum aliquet imperdiet vestibulum. Vivamus cursus lacus eget mi dictum tincidunt. Cras venenatis aliquet mi, eget tristique tellus. Nullam est orci, vehicula at nisi non, porttitor blandit lorem. Nulla molestie sapien eu nunc venenatis consectetur. 111 |

112 |

113 | Nunc eu finibus eros. Donec tincidunt ipsum et lacus blandit, volutpat condimentum eros tempor. Nulla finibus purus eu neque molestie vehicula. Nunc erat erat, suscipit ac pulvinar id, suscipit in elit. Aliquam malesuada maximus orci. Ut egestas felis id semper commodo. Fusce laoreet ligula vitae justo laoreet, vitae ornare ante ornare. Nullam id pretium arcu. Nunc aliquet sapien sed tortor sollicitudin fermentum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris vulputate auctor eros, a fermentum nisl aliquam non. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vel lobortis elit. Aenean dignissim turpis eget fringilla varius. Vivamus tempus quam ac semper tristique. Proin tincidunt quam non semper maximus. 114 |

115 |

116 | Morbi eu mi quis orci ullamcorper suscipit. In in arcu quis ipsum tempor lobortis at hendrerit felis. Vestibulum finibus erat eu volutpat convallis. Quisque nec nulla quis dui efficitur posuere sed eu nibh. Vestibulum commodo nisl ut neque congue, vestibulum imperdiet massa interdum. Suspendisse potenti. Nunc posuere nulla sit amet quam tristique congue. Nunc laoreet augue in erat lacinia, nec euismod risus molestie. Aliquam quis velit eu quam gravida viverra. Praesent quam magna, elementum eget mollis volutpat, interdum vitae justo. Nullam dapibus condimentum nisi, at ornare ipsum sagittis eu. Phasellus ac nunc et ante mollis feugiat ac at nisl. 117 |

118 |

119 | Nunc laoreet venenatis dolor. Vestibulum a gravida mauris, vel ullamcorper magna. Nunc eget metus tristique, porta ante gravida, laoreet dolor. Integer eget metus mollis, dapibus magna nec, sodales lacus. In eget euismod turpis. Quisque molestie justo et leo semper, eget tempor diam sodales. Vestibulum et dictum ligula, vel gravida augue. Vivamus est lectus, laoreet ac purus sed, posuere volutpat ex. Fusce bibendum tincidunt neque sit amet molestie. Etiam eleifend turpis sed neque suscipit, suscipit varius lectus venenatis. Aliquam eu mauris scelerisque, porttitor lectus id, rutrum sapien. 120 |

121 |

122 | Nam quis tristique mi. Proin quis ex massa. Morbi varius ipsum at consectetur laoreet. Duis condimentum nibh ex, at ullamcorper nisl venenatis a. Vivamus ut aliquam augue. Donec scelerisque turpis bibendum dolor volutpat fermentum. Proin nec blandit nulla. Cras maximus nec elit interdum tristique. Nam ante ipsum, sagittis tristique dui in, sodales efficitur metus. Pellentesque egestas felis libero, sed bibendum est congue in. Maecenas at erat tempor, condimentum neque eget, sagittis purus. Donec fermentum nisi in eros hendrerit, at aliquet nisl maximus. 123 |

124 |

125 | Quisque ut aliquam dui, interdum placerat augue. Aliquam orci ipsum, commodo vitae velit vel, rhoncus bibendum mi. In sed tellus ut nibh auctor volutpat. Fusce a eleifend diam. Proin et odio odio. Mauris ac facilisis augue. Vivamus sed lobortis enim, ut luctus justo. Donec vel posuere dolor. Suspendisse metus eros, fermentum sit amet enim eu, efficitur mollis tellus. Curabitur vitae velit lectus. Nullam tempus interdum dui, non auctor quam ornare ac. Ut pharetra lacus placerat lorem auctor vehicula. Aliquam ut tempus eros, sed ultricies eros. Duis pretium justo nisl, consectetur posuere elit eleifend a. 126 |

127 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /star-rate/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Most basic star-rate Custom Element 8 | 13 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /webrtc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WebRTC File Share 8 | 9 | 10 | 20 | 21 | 22 |
23 | 24 | 25 |
26 |

27 |   
28 |   
83 | 
84 | 
85 | 


--------------------------------------------------------------------------------
/webrtc/simple-share.js:
--------------------------------------------------------------------------------
  1 | const SimpleShare = (function () {
  2 | 
  3 |   const {parse, stringify} = JSON;
  4 |   const {min, random} = Math;
  5 | 
  6 |   const BYTES_PER_CHUNK = 12000;
  7 | 
  8 |   const ss = new WeakMap;
  9 |   
 10 |   let uniqueID = Date.now();
 11 |   
 12 |   class SimpleShare {
 13 |     constructor(options) {
 14 |       const initiator = !!(options && options.initiator);
 15 |       const peer = new SimplePeer(options);
 16 |       const connect = new Promise($ => { peer.on('connect', $); });
 17 |       const uid = (initiator ? '🎱' : '🕳').concat(uniqueID++, random());
 18 |       peer.on('error', console.error);
 19 |       ss.set(this, {initiator, peer, connect, uid, listeners: new Map});
 20 |     }
 21 |     get isInitiator() { return ss.get(this).initiator; }
 22 |     receiveFile() {
 23 |       const {peer, connect} = ss.get(this);
 24 |       connect.then(() => {
 25 |         let buffer = [];
 26 |         let bytesReceived = 0;
 27 |         let fileSize = 0;
 28 |         this.on('data', function onData({action, data}) {
 29 |           switch (action) {
 30 |             case "data":
 31 |               const ui8 = new Uint8Array(data);
 32 |               bytesReceived += ui8.byteLength;
 33 |               buffer.push(ui8);
 34 |               peer.emit('receive:progress', bytesReceived / fileSize);
 35 |               break;
 36 |             case "start":
 37 |               fileSize = data.size;
 38 |               peer.emit('receive:start', data);
 39 |               break;
 40 |             case "end":
 41 |               const {name, type} = data;
 42 |               const blob = new Blob(buffer, {type});
 43 |               const href = URL.createObjectURL(blob);
 44 |               const anchor = document.createElement('a');
 45 |               anchor.href = href;
 46 |               anchor.download = name;
 47 |               anchor.textContent = 'DOWNLOAD';
 48 |               this.removeListener('data', onData);
 49 |               peer.emit('receive:end', data);
 50 |               this.send('completed');
 51 |               document.body.appendChild(anchor);
 52 |               anchor.onclick = () => {
 53 |                 document.body.removeChild(anchor);
 54 |               };
 55 |               try {
 56 |                 anchor.click();
 57 |               }
 58 |               catch(meh) {
 59 | 
 60 |               }
 61 |               // setTimeout(() => URL.revokeObjectURL(href), 5000);
 62 |               break;
 63 |           }
 64 |         });
 65 |       });
 66 |     }
 67 |     sendFile(file) {
 68 |       const {peer, connect} = ss.get(this);
 69 |       this.on('data', function onData(downloaded) {
 70 |         if (downloaded === 'completed')
 71 |           peer.emit('send:completed');
 72 |       });
 73 |       return connect.then(() => new Promise($ => {
 74 |         const {name, type, size} = file;
 75 |         this.send({action: "start", data: {name, type, size}});
 76 |         let currentChunk = 0;
 77 |         const fileReader = new FileReader();
 78 |         fileReader.onload = () => {
 79 |           const dv = new DataView(fileReader.result);
 80 |           const data = [];
 81 |           for (let i = 0, {byteLength} = dv; i < byteLength; i++)
 82 |             data.push(dv.getUint8(i));
 83 |           this.send({action: "data", data});
 84 |           currentChunk++;
 85 |           if(BYTES_PER_CHUNK * currentChunk < file.size)
 86 |             readNextChunk();
 87 |           else {
 88 |             this.send({action: "end", data: {name, type, size}});
 89 |             $(file);
 90 |           }
 91 |         };
 92 |         readNextChunk();
 93 |         function readNextChunk() {
 94 |           const start = BYTES_PER_CHUNK * currentChunk;
 95 |           const end = min(size, start + BYTES_PER_CHUNK);
 96 |           fileReader.readAsArrayBuffer(file.slice(start, end));
 97 |           peer.emit('send:progress', end / size);
 98 |         }
 99 |       }));
100 |     }
101 |     send(data) {
102 |       const {peer, connect, uid} = ss.get(this);
103 |       connect.then(() => {
104 |         peer.send(stringify({
105 |           from: uid,
106 |           value: data
107 |         }));
108 |       });
109 |       return this;
110 |     }
111 |     signal(data) {
112 |       const {peer} = ss.get(this);
113 |       peer.signal(typeof data === "string" ? parse(data) : data);
114 |       return this;
115 |     }
116 |     removeListener(type, listener) {
117 |       const {peer, listeners} = ss.get(this);
118 |       peer.removeListener(type, listeners.get(listener) || listener);
119 |       return this;
120 |     }
121 |     on(type, listener) {
122 |       const {peer, uid, listeners} = ss.get(this);
123 |       if (type === "data") {
124 |         const real = listener;
125 |         listener = function (data) {
126 |           const {from, value} = parse(data);
127 |           if (from !== uid)
128 |             real.call(this, value);
129 |         };
130 |         listeners.set(real, listener);
131 |       }
132 |       peer.on(type, listener.bind(this));
133 |       return this;
134 |     }
135 |   }
136 | 
137 |   return SimpleShare;
138 | }());
139 | 


--------------------------------------------------------------------------------
/write.js:
--------------------------------------------------------------------------------
1 | function write(o,O){try{if(typeof o!='string'||!window[o])o()}catch(o){document.write('